Имя: Пароль:
1C
1C 7.7
v7: Несколько периодов в запросе
0 unlstu
 
18.09.12
10:21
Как изменить запрос:
   Запрос = СоздатьОбъект("Запрос");
   ТекстЗапроса =
   "//{{ЗАПРОС(Свод)
   |Период с ДатаНач по ДатаКон;
   |Сотрудник                = ЖурналРасчетов.Зарплата.Объект;
   |ОсновнойЭлемент        = ЖурналРасчетов.Зарплата.Объект.ОсновнойЭлемент;
   |Подразделение            = ЖурналРасчетов.Зарплата.Объект.ОсновнойЭлемент.Подразделение;
   |Расчет                    = ЖурналРасчетов.Зарплата.ВидРасч;
   |ТекущийДокумент        = ЖурналРасчетов.Зарплата.ТекущийДокумент;
   |Результат                = ЖурналРасчетов.Зарплата.Результат;
   |ДниВЖурнале            = ЖурналРасчетов.Зарплата.Дни;
   |ЧасыВЖурнале            = ЖурналРасчетов.Зарплата.Часы;  
   |Действие               = ЖурналРасчетов.Зарплата.ПериодДействия;";
   
   ТекстЗапроса = ТекстЗапроса + "
   |Функция Сумма                = Сумма(Результат);
   |Функция СуммаНачисления    = Сумма(Результат)    когда (Расчет.ВходитВГруппу(ГруппаРасчетов.ВсеНачисления)=1);
   |Функция СуммаУдержания        = Сумма(Результат)    когда (Расчет.ВходитВГруппу(ГруппаРасчетов.ВсеУдержания)=1);
   |Функция СуммаПрочего        = Сумма(Результат)    когда (Расчет.ВходитВГруппу(ГруппаРасчетов.ДоходыВНатуральнойФорме)=1);
   |Функция СуммаВыплаты        = Сумма(Результат)    когда (Расчет = ВидРасчета.ВыплатаЗарплаты);
   |Функция СуммаВыплатыШтрафа    = Сумма(Результат)    когда (Расчет = ВидРасчета.КомпенсацияЗаПросрочкуЗарплаты);
   |Функция ВозвратВКассу        = Сумма(Результат)    когда (Расчет = ВидРасчета.Возврат);
   |Функция ДолгРаботников        = Сумма(Результат)    когда (((Расчет=ВидРасчета.НачальноеСальдоЗадолженность)или(Расчет=ВидРасчета.НачальноеСальдоОкругления)или(Расчет=ВидРасчета.НачальноеСальдоПереплатаНДФЛ)) и (Результат < 0));
   |Функция ДолгПредприятия    = Сумма(Результат)    когда (((Расчет=ВидРасчета.НачальноеСальдоЗадолженность)или(Расчет=ВидРасчета.НачальноеСальдоОкругления)или(Расчет=ВидРасчета.НачальноеСальдоПереплатаНДФЛ)) и (Результат > 0));
   |Функция ЗадолженностьПредприятия        = Сумма(Результат)    когда ((Расчет=ВидРасчета.НачальноеСальдоЗадолженность) и (Результат > 0));
   |Функция СальдоОкругленияРаботников        = Сумма(Результат)    когда ((Расчет=ВидРасчета.НачальноеСальдоОкругления) и (Результат < 0));
   |Функция СальдоОкругленияПредприятия    = Сумма(Результат)    когда ((Расчет=ВидРасчета.НачальноеСальдоОкругления) и (Результат > 0));
   |Функция ПереплатаНДФЛПредприятия        = Сумма(Результат)    когда ((Расчет=ВидРасчета.НачальноеСальдоПереплатаНДФЛ) и (Результат > 0));
   |Функция Дни                = Сумма(ДниВЖурнале);
   |Функция Часы                = Сумма(ЧасыВЖурнале);
   |Группировка Расчет упорядочить по Расчет.Очередность;";
   
   ТекстЗапроса = ТекстЗапроса + "
   |Группировка ТекущийДокумент упорядочить по ТекущийДокумент.ДатаДок;
   |Группировка ОсновнойЭлемент упорядочить по ОсновнойЭлемент.Код Без Групп;";                        
   ТекстЗапроса = ТекстЗапроса + "
   |Условие((Результат<>0)или(ДниВЖурнале<>0));
   |Условие(Сотрудник=СотрудникРасч);
   |"//}}ЗАПРОС
;
чтобы, например, можно было получить выборку данных по месяцам.
1 Guk
 
18.09.12
10:22
например, добавить группировку Месяц...
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший