powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / [игнор отключен] [закрыт для гостей] / 1См77 Как получить значение переодического реквизита в запросе?
10 сообщений из 10, страница 1 из 1
1См77 Как получить значение переодического реквизита в запросе?
    #34758016
Фотография klen_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!
Надо посчитать общую сумму денег, но только без учеников
Если без запроса, а просто читать записи из журнала зарплата,
то я делаю так
Код: plaintext
Если жрнЗП.Объект.Ученик.Получить(жрнЗП.ДатаОкончания) <> Перечисление.ДаНет.Да Тогда

а как такое условие написать в запросе?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
	"//{{ЗАПРОС
	| с ДатаНач по ДатаКон;
	|       Сотрудник = ЖурналРасчетов.Зарплата.Объект;
	|   ДатаОкончания = ЖурналРасчетов.Зарплата.ДатаОкончания;
	|       Результат = ЖурналРасчетов.Зарплата.Результат;
	|          Ученик = ЖурналРасчетов.Зарплата.Объект.Ученик.Получить(ДатаОкончания);
	|   Функция Сумма = Сумма(Результат) когда (ВидРасч.ВходитВГруппу(ГруппаРасчетов.БазаРасчетовОплатыПоСреднему)=1);
	| Группировка ВидРасч Без Групп;
	| Условие (Ученик <> Перечисление.ДаНет.Да);
	|"//}}ЗАПРОС
так, как я написал, не работает
Заранее благодарю!
С уважением Игорь.
...
Рейтинг: 0 / 0
1См77 Как получить значение переодического реквизита в запросе?
    #34758084
Убрать Получить(ДатаОкончания), в запросе сисетма сама выбирает периодические реквизиты на конечную дату запроса.
...
Рейтинг: 0 / 0
1См77 Как получить значение переодического реквизита в запросе?
    #34758133
Фотография klen_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Старый 1С-ик, большое спасибо.
я только хочу уточнить,
что если сотрудник перешёл, скажем на другую должность учеником, как раз на ДатаКон
в этом случае, не потеряются ли записи, когда он не был учеником?
Скажем период пользователь задаёт за весь год.
...
Рейтинг: 0 / 0
1См77 Как получить значение переодического реквизита в запросе?
    #34758310
tvm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
klen_ не потеряются ли записи, когда он не был учеником?
Скажем период пользователь задаёт за весь год.
ответ:
Старый 1С-ик сисетма сама выбирает периодические реквизиты на конечную дату запроса
...
Рейтинг: 0 / 0
1См77 Как получить значение переодического реквизита в запросе?
    #34758495
Фотография klen_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Большое спасибо, и Старый 1С-ик, и tvm
Я почему ещё раз спрашиваю, потому что результаты получаются разные
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
	"//{{ЗАПРОС
	| с ДатаНач по ДатаКон;
	|       Сотрудник = ЖурналРасчетов.Зарплата.Объект;
	|         ФизЛицо = ЖурналРасчетов.Зарплата.Объект.ОсновнойЭлемент;
	|         ВидРасч = ЖурналРасчетов.Зарплата.ВидРасч;
	|       Результат = ЖурналРасчетов.Зарплата.Результат;
	|          Ученик = ЖурналРасчетов.Зарплата.Объект.Ученик;
	|Функция Сумма    = Сумма(Результат) когда (ВидРасч.ВходитВГруппу(ГруппаРасчетов.БазаРасчетовОплатыПоСреднему)=1);
	| Группировка ВидРасч Без Групп;
	| Условие (
	|              (Результат <> 0)
	|            И (ФизЛицо = Сотрудник)
	|            И (Ученик <> Перечисление.ДаНет.Да)
	|         );
	|"//}}ЗАПРОС

просто перебором записей получается на 5 рублей с копейками БОЛЬШЕ
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
	СЧ =  0 ;
	жрнЗП = СоздатьОбъект("ЖурналРасчетов.Зарплата"); 
	жрнЗП.ВыбратьЗаписи(ВыбНачПериода,ВыбКонПериода);
	Пока жрнЗП.ПолучитьЗапись() =  1  Цикл 
		
		Если (жрнЗП.Результат <>  0 ) И (жрнЗП.Объект = жрнЗП.Объект.ОсновнойЭлемент) Тогда  
			
			Если жрнЗП.Объект.Ученик.Получить(жрнЗП.ДатаОкончания) <> Перечисление.ДаНет.Да Тогда 
				
				Если жрнЗП.ВидРасч.ВходитВГруппу(ГруппаРасчетов.БазаРасчетовОплатыПоСреднему) =  1  Тогда
					ТЗ.НоваяСтрока(); 
					ТЗ.Сумма = жрнЗП.Результат; 
					СЧ = СЧ +  1 ;
					Состояние("Помещено в таблицу..." + СЧ + " записей");
				КонецЕсли;
				
			КонецЕсли;
						
		КонецЕсли; 
	КонецЦикла;
период задаю, с начала года и по сей день
...
Рейтинг: 0 / 0
1См77 Как получить значение переодического реквизита в запросе?
    #34758590
Фотография klen_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
думал, может быть из-за дат,
поменял на
Код: plaintext
1.
 	"//{{ЗАПРОС
	| с ВыбНачПериода по ВыбКонПериода;
всё равно разница на 5 р. с копейками
видимо запросом такие вещи делать нельзя
...
Рейтинг: 0 / 0
1См77 Как получить значение переодического реквизита в запросе?
    #34793824
Lunx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, запрос не разбивается по периодам периодического реквизита - всегда получаешь последнее. Лучше делать прямой выборкой из sql, засовывать все в таблицу значений, а потом сливать таблицы на локальной машине.
...
Рейтинг: 0 / 0
1См77 Как получить значение переодического реквизита в запросе?
    #34793861
Фотография klen_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
прямой выбор - это как?
не указывать период?
...
Рейтинг: 0 / 0
1См77 Как получить значение переодического реквизита в запросе?
    #34793892
Фотография klen_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
понял
Код: plaintext
 	жрнЗП.ВыбратьЗаписи(ВыбНачПериода,ВыбКонПериода);
...
Рейтинг: 0 / 0
1См77 Как получить значение переодического реквизита в запросе?
    #34798162
Lunx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет - через 1СPP.dll или через ADO. Результат в первом случае возращается в таблицу значений. Далее таблицу сворачиваем по сотруднику. То, что Вы написали будем работать не очень быстро - но смысл тот же. Если писать без прямого обращения к таблице - то пишите цикл по выборке записей накапливая итог, запросом здесь не стоит пользоваться. Вообще - запрос - не самая быстрая вещь на свете. Опыт показывает - что выборка документов по графе отбора в таблицу значений с последующими расчетами итогов непосредственно в клиенте сработает существенно быстрее чем запрос с функцией.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / [игнор отключен] [закрыт для гостей] / 1См77 Как получить значение переодического реквизита в запросе?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]