Кому полезно: любому, кто пишет отчеты в ЗУП 3.1
На данный момент веду разработку в ЗУП 3.1. В последнее время при разработке часто стал сталкиваться с необходимостью вывести в отчет или обработку иерархию подразделений в виде таблицы.
Чтобы не писать каждый раз новый запрос я решил расширить механизм представлений, с которым сталкивается каждый, кто пишет отчеты в ЗУП 3. Провел анализ кода и появилось понимание, что механизм представлений очень легко расширяется.
Механизм представлений запускается функцией: ЗарплатаКадрыОбщиеНаборыДанных.ЗаполнитьОбщиеИсточникиДанныхОтчета(Объект, ДополнительныеПоляПредставлений = Неопределено, ТолькоРазрешенные = Истина), где Объект – наш отчет.
Представления заменяются конкретными запросами в функции «ПолучитьЗапросПоПредставлению» модуля «ЗарплатаКадрыОбщиеНаборыДанныхРасширенный», ее то я и доработал.
Функция обрабатывает имена временных таблиц представлений и возвращает запрос с текстом и параметрами. На данный момент существуют следующие ключевые слова используемые в механизме представлений:
- ШтатноеРасписание. Пример применения: отчет «ИзменениеШтатногоРасписания».
- ТекущаяКадроваяРасстановка. Пример применения: отчет «ОрганизационнаяСтруктура».
- ФункциональныеОпцииОрганизаций.
- ФактическиеОтпускаСотрудников. Пример применения: отчет «ФактическиеОтпускаСотрудников».
- ПлановыеНачисленияСотрудников. Пример применения: отчет «КадроваяИсторияСотрудников».
- ПлановыеУдержанияСотрудников. Пример применения: отчет «ПлановыеУдержанияСотрудников».
- СтажиСотрудников. Пример применения: отчет «СтажиСотрудников».
- СвойстваСтатейФинансирования. Пример применения: отчет «СтатистикаПерсонала».
- БухучетЗарплатыСотрудников. Пример применения: отчет «НастройкиБухучета».
- ДанныеУчетаРабочегоВремениСотрудников.
- ДанныеУчетаВремениИСостоянийСотрудников. Пример применения: отчет «УнифицированнаяФормаТ13».
- ПлановоеВремя. Пример применения: отчет «СостоянияСотрудников».
- КадровыеДанныеФизическихЛиц. Пример применения: отчет «АнализВзносовВФонды».
- КадровыеДанныеСотрудников. Пример применения: отчет «КадроваяИсторияСотрудников».
- СотрудникиОрганизации. Пример применения: отчет «НастройкиБухучета».
- НачисленныеДоходыНДФЛ. Пример применения: отчет «НачисленныеДоходыВОтчетахПоНДФЛ».
- ТаблицаРегистра, СрезПоследних, СрезПервых. Пример применения: отчет «КадроваяИсторияСотрудников»
В нашем случае параметры будут "Только разрешенные" и "Уровень". Свою временную таблицу я решил назвать «Представления_ИерархияПодразделений». Добавляем формирование запроса внутрь проверок:
Чтобы получить динамически количество колонок, не прописывая в тексте запроса СКД каждую, в функции «ЗарплатаКадрыОбщиеНаборыДанных.ЗаменитьЗапросыКПредставлениямВиртуальныхТаблиц» добавляем код:
После выполнения процедуры:
В модуле же «ПР_ОбщегоНазначенияСервер» прописал следующие процедуры и функции: