В ЗУПе при разработке отчетов или дополнительного функционала, частенько требуется получить базу начислений за указанный период начислений:
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ОсновныеНачисленияРаботниковОрганизаций.ВидРасчета КАК ВидРасчета, | ОсновныеНачисленияРаботниковОрганизаций.Сотрудник КАК Сотрудник, | СУММА(ОсновныеНачисленияРаботниковОрганизаций.Результат) КАК Сумма, | ОсновныеНачисленияРаботниковОрганизаций.ВидРасчета.РН_КБК КАК КБК |ИЗ | РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций КАК ОсновныеНачисленияРаботниковОрганизаций |ГДЕ | ОсновныеНачисленияРаботниковОрганизаций.ПериодРегистрации = &ПериодРегистрации | И ОсновныеНачисленияРаботниковОрганизаций.Организация = &Организация | |СГРУППИРОВАТЬ ПО | ОсновныеНачисленияРаботниковОрганизаций.ВидРасчета, | ОсновныеНачисленияРаботниковОрганизаций.Сотрудник, | ОсновныеНачисленияРаботниковОрганизаций.ВидРасчета.РН_КБК | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | ДополнительныеНачисленияРаботниковОрганизаций.ВидРасчета, | ДополнительныеНачисленияРаботниковОрганизаций.Сотрудник, | ДополнительныеНачисленияРаботниковОрганизаций.Результат, | ДополнительныеНачисленияРаботниковОрганизаций.ВидРасчета.РН_КБК |ИЗ | РегистрРасчета.ДополнительныеНачисленияРаботниковОрганизаций КАК ДополнительныеНачисленияРаботниковОрганизаций |ГДЕ | ДополнительныеНачисленияРаботниковОрганизаций.ПериодРегистрации = &ПериодРегистрации | И ДополнительныеНачисленияРаботниковОрганизаций.Организация = &Организация | |УПОРЯДОЧИТЬ ПО | Сотрудник, | ВидРасчета |АВТОУПОРЯДОЧИВАНИЕ"; Запрос.УстановитьПараметр("ПериодРегистрации", НачалоМесяца(ПериодРегистрации)); Запрос.УстановитьПараметр("Организация", Организация); КБК.Загрузить(Запрос.Выполнить().Выгрузить());
Запрос=новый Запрос; Запрос.Текст=" |ВЫБРАТЬ | БУОсновныеНачисления.Организация КАК Организация, | БУОсновныеНачисления.ВидРасчета, | БУОсновныеНачисления.ФизЛицо КАК ФизЛицо, | БУОсновныеНачисления.ПериодРегистрации, | БУОсновныеНачисления.Результат * -1 КАК Результат, | ""ОсновныеБУ"" КАК ВариантНачислений, | БУОсновныеНачисления.СчетДт, | БУОсновныеНачисления.СчетКт |ИЗ | РегистрРасчета.БУОсновныеНачисления КАК БУОсновныеНачисления |ГДЕ | БУОсновныеНачисления.ПериодРегистрации МЕЖДУ &НужныйПериодН И &НужныйПериодК | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | ОсновныеНачисленияРаботниковОрганизаций.Организация, | ОсновныеНачисленияРаботниковОрганизаций.ВидРасчета, | ОсновныеНачисленияРаботниковОрганизаций.ФизЛицо, | ОсновныеНачисленияРаботниковОрганизаций.ПериодРегистрации, | ОсновныеНачисленияРаботниковОрганизаций.Результат, | ""Основные"", | NULL, | NULL |ИЗ | РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций КАК ОсновныеНачисленияРаботниковОрганизаций |ГДЕ | ОсновныеНачисленияРаботниковОрганизаций.ПериодРегистрации МЕЖДУ &НужныйПериодН И &НужныйПериодК | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | ДополнительныеНачисленияРаботниковОрганизаций.Организация, | ДополнительныеНачисленияРаботниковОрганизаций.ВидРасчета, | ДополнительныеНачисленияРаботниковОрганизаций.ФизЛицо, | ДополнительныеНачисленияРаботниковОрганизаций.ПериодРегистрации, | ДополнительныеНачисленияРаботниковОрганизаций.Результат, | ""Дополнительные"", | NULL, | NULL |ИЗ | РегистрРасчета.ДополнительныеНачисленияРаботниковОрганизаций КАК ДополнительныеНачисленияРаботниковОрганизаций |ГДЕ | ДополнительныеНачисленияРаботниковОрганизаций.ПериодРегистрации МЕЖДУ &НужныйПериодН И &НужныйПериодК | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | БУДополнительныеНачисления.Организация, | БУДополнительныеНачисления.ВидРасчета, | БУДополнительныеНачисления.ФизЛицо, | БУДополнительныеНачисления.ПериодРегистрации, | БУДополнительныеНачисления.Результат * -1, | ""ДополнительныеБУ"", | БУДополнительныеНачисления.СчетДт, | БУДополнительныеНачисления.СчетКт |ИЗ | РегистрРасчета.БУДополнительныеНачисления КАК БУДополнительныеНачисления |ГДЕ | БУДополнительныеНачисления.ПериодРегистрации МЕЖДУ &НужныйПериодН И &НужныйПериодК | |УПОРЯДОЧИТЬ ПО | ФизЛицо |ИТОГИ | СУММА(Результат) |ПО | ОБЩИЕ, | Организация, | ФизЛицо |"; Запрос.УстановитьПараметр("НужныйПериодН",); Запрос.УстановитьПараметр("НужныйПериодК",); Результат = Запрос.Выполнить(); Результат = Результат.Выбрать(); Пока Результат.Следующий() Цикл //Код обработки результата запроса КонецЦикла;