В стандартной конфигурации 1С:Зарплата и Управление Персоналом (ЗУП) 3.1 отсутствует штатная возможность автоматически подменить получателя в ведомости на выплату зарплаты. Это сделано намеренно: программа жестко связывает доход, налоги и взаиморасчеты с конкретным сотрудником (физическим лицом), чтобы избежать ошибок в учете НДФЛ и страховых взносов. Однако на практике часто возникает необходимость перечислять зарплату сотрудника по его заявлению, например, на счет супруги или для погашения кредита. Рассмотрим, как легально и технически реализовать эту задачу без синхронизации с 1С:Бухгалтерия.
Прежде чем приступать к технической настройке, необходимо подготовить юридическую базу. Согласно части 5 статьи 136 Трудового кодекса РФ, зарплата выплачивается непосредственно работнику, но в трудовом договоре может быть предусмотрен иной способ. Таким образом, перечисление зарплаты третьему лицу является полностью законным при наличии следующих документов:
Важно понимать: с точки зрения учета, зарплата все равно начисляется и «выплачивается» сотруднику. Долг организации перед работником закрывается. Просто по его поручению конечным получателем денежных средств в банковском реестре выступает другое лицо. Это не удержание, поэтому на него не распространяются ограничения в 20% или 50% от суммы заработка.
Поскольку штатного механизма нет, задачу можно решить несколькими способами — от ручных операций до полноценной автоматизации через доработку системы.
Это наиболее правильный и надежный метод, который позволяет автоматизировать процесс и избежать ручных ошибок. Он состоит из двух этапов: организация хранения данных о реальном получателе и изменение алгоритма формирования файла для банка.
Шаг 1. Создание дополнительных реквизитов для хранения ФИО получателя.
Нам нужно где-то хранить ФИО третьего лица. Создавать для каждого такого получателя полноценный элемент в справочнике Физические лица — избыточно. Оптимальный вариант — использовать механизм дополнительных реквизитов.
Поскольку банковские форматы обмена, как правило, требуют передавать фамилию, имя и отчество в разных полях (тегах), целесообразно создать три отдельных реквизита, а не один общий.
Сотрудники или Физические лица. Выбор зависит от вашей учетной политики, но логичнее привязать к Сотрудникам.После этого в карточке сотрудника на вкладке «Дополнительно» появятся новые поля. Теперь для тех сотрудников, чью зарплату нужно перечислять другому лицу, вы можете заполнить ФИО реального получателя.
Шаг 2. Программная подмена данных при формировании файла выгрузки.
Этот шаг требует привлечения программиста. Необходимо создать расширение конфигурации, чтобы без изменения основного кода программы внести правки в процедуру формирования данных для банка.
Ключевая процедура, которую нужно доработать, находится в модуле менеджера документа ВедомостьНаВыплатуЗарплатыВБанк и называется ДанныеВедомостиНаВыплатуЗарплатыВБанк.
Логика доработки следующая: при формировании данных для каждой строки ведомости нужно проверить, заполнены ли у сотрудника наши новые дополнительные реквизиты. Если они заполнены, то в структуру данных для выгрузки подставляем ФИО из доп. реквизитов. Если нет — оставляем ФИО самого сотрудника.
Пример кода для вставки в расширении:
// Внутри цикла по строкам ведомости, после получения стандартных данных сотрудника
// Получаем значения наших дополнительных реквизитов
// Предполагается, что в запросе уже получена ссылка на сотрудника (ВыборкаСтрокДокументов.Сотрудник)
ЗначенияДопРеквизитов = ОбщегоНазначения.ЗначенияСвойствОбъекта(ВыборкаСтрокДокументов.Сотрудник,
Новый Массив({"Фамилия_получателя_для_банка", "Имя_получателя_для_банка", "Отчество_получателя_для_банка"})
);
ФамилияПолучателя = ЗначенияДопРеквизитов[0];
ИмяПолучателя = ЗначенияДопРеквизитов[1];
ОтчествоПолучателя = ЗначенияДопРеквизитов[2];
// Проверяем, заполнена ли фамилия получателя. Это наш флаг, что нужно делать подмену.
Если ЗначениеЗаполнено(ФамилияПолучателя) Тогда
// Подменяем ФИО в структуре, которая пойдет в файл
ДанныеСтрокиДокумента.Фамилия = ФамилияПолучателя;
ДанныеСтрокиДокумента.Имя = ИмяПолучателя;
ДанныеСтрокиДокумента.Отчество = ОтчествоПолучателя;
КонецЕсли;
// Также не забываем, что в этом случае нужно использовать лицевой счет, указанный для третьего лица,
// который можно хранить либо в еще одном доп.реквизите, либо в стандартном поле лицевого счета сотрудника,
// предварительно договорившись с бухгалтером, что туда вносится счет получателя.
Этот подход полностью автоматизирует процесс. Бухгалтеру достаточно один раз заполнить данные получателя в карточке сотрудника, и все последующие ведомости будут формироваться корректно.
Если нет возможности или желания вносить изменения в конфигурацию через расширение, можно заказать или разработать внешнюю печатную форму для документа Ведомость в банк.
Принцип работы похож на предыдущий, но код будет находиться не в расширении, а в модуле обработки внешней формы. Обработка будет делать то же самое: получать данные ведомости, проверять наличие доп. реквизитов у сотрудников и на их основе формировать итоговый файл для выгрузки в банк в нужном формате (XML или TXT).
Плюс: не затрагивается конфигурация. Минус: бухгалтеру нужно будет использовать не стандартную кнопку выгрузки, а вызывать внешнюю обработку.
Самый простой, но и самый рискованный способ, подходящий для разовых случаев.
Ключевые недостатки:
При выборе любого из способов решения необходимо учитывать следующие моменты: