После обновления конфигурации 1С:Зарплата и Управление Персоналом до ветки 3.1.25 многие пользователи столкнулись с неожиданным изменением поведения программы. При попытке выплатить зарплату непосредственно из документа начисления (например, «Премия» или «Увольнение») по кнопке Выплатить, система вместо одной сводной ведомости на всех сотрудников формирует десятки или сотни отдельных документов — по одному на каждого человека. Рассмотрим подробно, почему это происходит и как вернуть привычный режим работы.
В релизе 3.1.25 разработчики «1С» существенно переработали механизм определения мест выплаты зарплаты. Если раньше для сотрудника можно было указать только один основной способ (касса, банк или зарплатный проект), то теперь реализована поддержка нескольких мест выплаты одновременно. Это позволяет, например, перечислять 70% зарплаты на одну карту, а 30% — на другую.
Проанализируем ситуацию: для реализации этой возможности была изменена структура хранения данных и алгоритмы заполнения документов. Теперь информация о том, куда именно должны уйти деньги, хранится в новых регистрах, а механизм формирования ведомостей стал более чувствителен к уникальности реквизитов платежа. Проблема массового создания ведомостей чаще всего проявляется при способе выплаты На счета (перечисления по индивидуальным банковским реквизитам вне рамок зарплатного проекта).
Выясним причину на уровне программного кода. Основная логика группировки сотрудников в ведомости сосредоточена в обработке СозданиеВедомостейНаВыплатуЗарплаты. Проанализируем модуль менеджера этой обработки, в частности процедуру ЗарплатаРасчетногоДокумента.
В новых версиях в коде появился жесткий набор полей, по которым система разделяет платежи на разные документы (так называемый «Ключ ведомости»). Посмотрим на фрагмент кода, который отвечает за формирование этого ключа:
ПоляКлючаВедомости = Новый Массив;
ПоляКлючаВедомости.Добавить("ВидМестаВыплаты");
ПоляКлючаВедомости.Добавить("МестоВыплаты");
Если ПараметрыСоздания.ВРазрезеПодразделений Тогда
ПоляКлючаВедомости.Добавить("ПодразделениеВыплаты");
КонецЕсли;
Если ПараметрыСоздания.ВРазрезеСтатейФинансирования Тогда
ПоляКлючаВедомости.Добавить("СтатьяФинансирования");
КонецЕсли;
Проблема заключается в том, что для способа Перечисление на счет (ВидМестаВыплаты) значением поля МестоВыплаты теперь часто выступает конкретный банковский счет сотрудника. Поскольку номера счетов у всех сотрудников уникальны, алгоритм группировки считает, что каждого человека нужно выделить в отдельный документ. При выплатах через Зарплатный проект такая проблема обычно не возникает, так как местом выплаты там выступает общий для всех объект ЗарплатныйПроект.
Если вам необходимо срочно выплатить зарплату, а программа создает «гору» документов, воспользуйтесь обходным путем. Разберем его по шагам:
При таком подходе механизм подбора работает по иному алгоритму, который позволяет объединить сотрудников в один документ, игнорируя чрезмерную детализацию мест выплаты, которая срабатывает при автоматическом создании из формы начисления.
Описанное поведение в первых сборках 3.1.25 официально признано программной ошибкой. В последующих патчах и подрелизах (начиная с 3.1.25.40 и выше) разработчики скорректировали логику объединения выплат на счета.
Рассмотрим, что нужно сделать:
СозданиеВедомостейНаВыплатуЗарплаты.Также стоит проанализировать, как перенеслись данные сотрудников при переходе на новую версию. В карточке сотрудника перейдем по ссылке Выплата зарплаты. В версии 3.1.25 там должен быть список актуальных счетов.
Если система создала для каждого сотрудника «индивидуальное» место выплаты без привязки к общему банковскому классификатору или если в справочнике БанковскиеСчетаКонтрагентов (который теперь используется и для физических лиц) возникли дубли, это может провоцировать разделение. Убедитесь, что у всех сотрудников, которые должны попасть в одну ведомость, выбран корректный и однотипный способ выплаты.
Резюме: Основная причина «размножения» ведомостей — новая архитектура полей группировки в модуле менеджера обработки формирования выплат. Самый эффективный способ борьбы с этим — обновление до актуального релиза или установка соответствующих патчей от «1С». В качестве временной меры используйте создание ведомости «с нуля» через список документов с последующим нажатием кнопки Заполнить.