В практике ведения кадрового учета и расчета заработной платы часто возникает задача, когда руководство компании принимает решение разделить потоки выплат сотрудникам. Например, выплачивать аванс на карты одного банка, основную часть зарплаты — на карты другого банка, а регулярные или разовые премии — на карты третьего. Причины могут быть разными: от требований кредитующих банков до оптимизации комиссий за банковское обслуживание.
В рамках данной статьи мы подробно разберем, как решить эту задачу в программе 1С:Зарплата и управление персоналом 3.1 (1С:ЗУП). Мы проанализируем как современные стандартные инструменты конфигурации, появившиеся в последних релизах, так и обходные технологические приемы для более ранних версий программы, а также рассмотрим варианты кастомизации системы для специфических нужд.
---
Начиная с версии 1С:ЗУП 3.1.25, разработчики добавили мощный штатный функционал, который полностью снимает необходимость в доработках кода для решения нашей задачи. Механизм «Детализация мест выплат» позволяет гибко связать конкретный вид выплаты с определенным зарплатным проектом.
Проанализируем пошагово, как настроить эту схему в вашей базе данных:
ЗарплатныеПроекты (раздел «Выплаты» — «Зарплатные проекты») зарегистрированы все необходимые банки и проекты, на которые планируется перечислять денежные средства.ВводЛицевыхСчетов (раздел «Выплаты» — «Ввод лицевых счетов»). У сотрудника в системе будет числиться одновременно несколько активных лицевых счетов в разных банках.Зарплата за первую половину месяца (аванс) укажем Место выплаты — Зарплатный проект банка А.Зарплата за месяц укажем Место выплаты — Зарплатный проект банка Б.Премия укажем Место выплаты — Зарплатный проект банка В.Посмотрим, как эта схема отрабатывает на практике при формировании платежных документов. При создании документа ВедомостьВБанк расчетчику достаточно выбрать нужный зарплатный проект в шапке документа и нажать кнопку «Заполнить». Программа автоматически проанализирует настройки детализации мест выплат, выберет только те суммы, которые относятся к текущему проекту, и подставит корректные лицевые счета работников.
---
Иногда руководство формулирует задачу иначе: перечислять определенную фиксированную сумму (или процент от начислений) на одну карту, а все остальное — на другую. Данный сценарий также автоматизирован в современных релизах 1С:ЗУП 3.1.
Выясним, как настроить такое распределение:
При заполнении ведомостей расчетчику не нужно высчитывать пропорции вручную. При автоматическом заполнении ведомости по первому банку программа рассчитает причитающуюся ему долю (или фиксированный лимит), а при заполнении ведомости по второму банку — остаток.
---
Бывают ситуации, когда сотрудникам неудобно заводить карты конкретного зарплатного проекта организации, и они хотят получать выплаты на свои личные карты в сторонних банках. Чтобы бухгалтерии не приходилось вручную плодить десятки разных ведомостей и платежных поручений, можно воспользоваться технологией Mass Payment (мультиресурсные реестры).
Рассмотрим порядок действий для настройки этого механизма:
Ведомости в банк система соберет всех сотрудников в один общий файл-реестр. Банк-эквайер при получении этого реестра сам распределит денежные переводы по другим кредитным организациям.---
Если вы работаете в более ранней версии 1С:ЗУП 3.1, где отсутствует развитый механизм детализации мест выплат, можно воспользоваться стандартным поведением документов начисления и выплаты. Программа умеет отслеживать уже выплаченные суммы по документам-основаниям.
Разберем алгоритм работы расчетчика в данном сценарии:
НачислениеЗаПервуюПоловинуМесяца или разовое начисление премии).Этот способ требует от расчетчика внимательности, но он полностью работоспособен без привлечения программистов и написания дополнительного кода.
---
Если стандартные методы по какой-то причине не подходят (например, логика выбора карт слишком сложна и зависит от множества меняющихся факторов, должностей, территорий или источников финансирования), задачу можно решить программным путем.
Проанализируем варианты доработки системы:
Это самый безопасный путь доработки, так как он не затрагивает структуру конфигурации. Мы можем написать внешнюю обработку заполнения табличной части для документа ВедомостьВБанк.
Алгоритм работы обработки выглядит следующим образом:
Состав и очищает или модифицирует ее.ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам, откуда извлекаются счета сотрудников по альтернативному зарплатному проекту в зависимости от вида операции (аванс, премия и т.д.).Для более бесшовной интеграции логики в интерфейс программы целесообразно использовать механизм расширений. Мы можем перехватить процедуру заполнения ведомости на сервере.
Рассмотрим примерный фрагмент кода, который можно внедрить в процедуру-обработчик заполнения в расширении для подмены зарплатного проекта:
&ВОбходе
Процедура Расш1_ПередЗаполнениемВедомости(ДокументОбъект, ПараметрыЗаполнения)
// Проверяем вид выплаты в документе
Если ДокументОбъект.СпособВыплаты = Перечисления.СпособыВыплатыЗарплаты.ОкругляемыйАванс Тогда
// Устанавливаем целевой зарплатный проект для авансов
ЦелевойПроект = Справочники.ЗарплатныеПроекты.НайтиПоРеквизиту("КодПроектаДляАванса");
Если ЗначениеЗаполнено(ЦелевойПроект) Тогда
ДокументОбъект.ЗарплатныйПроект = ЦелевойПроект;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Использование расширений позволяет полностью автоматизировать процесс подмены данных «на лету» без необходимости ручного запуска внешних обработок пользователем.
---
При использовании схем с несколькими зарплатными проектами неизбежно возникнет ситуация, когда у кого-то из сотрудников не окажется лицевого счета в целевом банке. Разберем, как ведет себя система в этом случае:
Таким образом, мы рассмотрели все возможные варианты организации выплат на разные карты в 1С:ЗУП 3.1. Для современных релизов настоятельно рекомендуем использовать штатную «Детализацию мест выплат», так как это наиболее надежный, поддерживаемый и простой в настройке инструмент.