В программе ЗУП 3 есть возможность начислять зарплату отдельно по каждому подразделению, к сожалению, из коробки нет инструмента для группового формирования документов. Предложенная обработка это пример того, как это можно сделать.
Порядок работы:
- На закладке "Основная формы (шаблон)" заполняем Организацию, Месяц и Дату.
- На закладке "Подразделения" нажимаем кнопку "Заполнить подразделения"
- На закладке "Подразделения" нажимаем кнопку "Создать документы начисления"
Принцип работы:
Если в ЗУП 2.5 эта задача решалась элементарно, буквально тремя строчками кода.
Начисление = Документы.НачислениеЗарплатыРаботникамОрганизаций.СоздатьДокумент();
...
Начисление ПодразделениеОрганизации = ПодразделениеОрганизации;
Начисление.Автозаполнение();
Начисление.РассчитатьВсе();
Начисление.Записать();
В ЗУП 3 все заполнение неразрывно связано с формой, мы не можем просто дергать методы объекта, как раньше. Выходом из ситуации стало копирование формы документа в форму обработки и вызов методов формы, как будто мы открываем вручную форму документа и вручную нажимаем кнопку "Заполнить", только подсовываем в цикле каждый раз новый документ через "ЗначениеВРеквизитФормы(Начисление.ПолучитьОбъект(), "Объект")". Плюс небольшая доработка, чтобы заполнение происходило не в фоновом режиме, по-другому никак, потому что форма физически в обработке одна, а уникальных идентификаторов формы должно быть столько, сколько документов мы собираемся создать.
В предложенном варианте табличная часть заполняется по табелям. Подразумевается, что табели тоже создают по подразделениям. На каждую строку таблицы создается и заполняется документ начисления. При желании можно использовать любой другой принцип, хоть вручную добавлять подразделения в табличную часть.
Из минусов, очень большая нагрузка на клиентскую часть, я тестировал на 20 подразделениях, заполнение происходило минут 5, в каждом документе от 5 до 20 сотрудников. Так же при обновлении релиза нужно проверять, что форма не изменилась в новом релизе, если это происходит, нужно копировать форму документа в форму обработки заново и переносить доработки.
Правильнее, конечно, было бы переписать типовые методы, чтобы они в качестве параметров могли принимать не только форму, а, например, структуру, в которую бы помещалась некая имитация формы. Но это сложно, а сложных путей мы не ищем:) Плюс все это нужно поддерживать при обновлении.
Будем надеяться, что в будущем появится типовой функционал для решения этой задачи.
Тестировалось на 1С:Предприятие 8.3 (8.3.25.1520), Зарплата и управление персоналом КОРП, редакция 3.1 (3.1.34.3).