Как настроить и изменить код вида зачисления (01, 19) в ведомостях в банк в 1С:ЗУП 3.1?

Бухгалтер 1С v8.3 (Управляемые формы) 1С:Зарплата и Управление Персоналом Бухгалтерский учет Финансы и профессиональные услуги
← На главную

При выгрузке ведомостей на выплату зарплаты или других начислений в банк пользователи программы 1С:Зарплата и управление персоналом 3.1 часто сталкиваются с тем, что в сформированном файле всем транзакциям автоматически присваивается один и тот же код вида зачисления — 01 (заработная плата). При этом бухгалтеру может потребоваться указать другие коды, например, 19 для отпускных или 10 для больничных листов. Рассмотрим подробно, откуда берутся эти коды, чем они отличаются от законодательно утвержденных кодов доходов и какими способами можно решить эту задачу в программе.

Понятие кодов вида зачисления и их отличие от кодов взысканий

Прежде чем переходить к настройке программы, разберем ключевое отличие, которое часто вызывает путаницу у бухгалтеров. В банковских реестрах фигурируют два совершенно разных типа кодов:

  1. Коды вида дохода для судебных приставов (1, 2, 3) — это обязательные государственные реквизиты, установленные Федеральным законом № 229-ФЗ «Об исполнительном производстве». Они необходимы для того, чтобы банк понимал, какую сумму можно удержать с сотрудника по исполнительным листам. Для этих кодов в документах 1С:ЗУП 3.1 предусмотрен отдельный стандартный реквизит «Вид дохода» прямо в шапке ведомости.
  2. Коды вида зачисления (01, 02, 19 и др.) — это внутренние классификаторы коммерческих банков (наиболее активно используемые Сбербанком). Они предназначены для автоматической сортировки платежей внутри банка, применения различных тарифов комиссий по зарплатному проекту и для корректного отображения выписок в личных кабинетах сотрудников. Эти коды не регламентированы законодательством РФ.

Наиболее популярные коды зачисления в формате Сбербанка включают следующие значения:

Почему 1С:ЗУП 3.1 всегда выгружает код «01»?

Проанализируем логику работы типовой конфигурации. В стандартной поставке программы 1С:ЗУП на уровне интерфейса документа «Ведомость в банк» нет специального поля, где бухгалтер мог бы вручную выбрать код зачисления (например, указать 19 вместо 01). Программа формирует XML-файл обмена по правилам, заложенным в модулях интеграции с конкретным банком.

Обычно в настройках зарплатного проекта указывается формат выгрузки (например, «Стандартный формат Сбербанка (версия 3.6)»). По умолчанию алгоритм выгрузки ориентируется на общие настройки зарплатного проекта и в большинстве случаев подставляет универсальный код 01. В некоторых современных релизах разработчики реализовали частичное автоматическое сопоставление кода на основе реквизита «Способ выплаты» (или характера выплаты ведомости), но жесткого ручного контроля в пользовательском режиме без доработок нет.

Варианты решения проблемы

Рассмотрим по шагам четыре основных подхода к решению этой проблемы, от организационных до программных.

Вариант 1. Оценить реальную необходимость разделения кодов

Выясним у обслуживающего банка особенности вашего зарплатного тарифа. Зачастую требования использовать конкретно код 19 для отпускных вместо 01 являются личной инициативой куратора от банка или привычкой бухгалтера. На практике для большинства коммерческих банков разница между кодами 01 и 19 не имеет значения, если все эти выплаты производятся в рамках одного договора зарплатного проекта и не влекут за собой повышенную комиссию.

Если банк подтверждает, что зачисление всех выплат под кодом 01 допустимо и тариф при этом не меняется, вы можете продолжать выгружать файлы из 1С без изменений. Это стандартная практика, не вызывающая претензий со стороны контролирующих органов.

Вариант 2. Ручная корректировка в личном кабинете банка

Если объем выплат невелик, а банк строго требует разделения кодов (например, для правильного расчета тарифа), можно использовать промежуточный ручной метод. Бухгалтер выгружает ведомость из 1С:ЗУП 3.1 со стандартным кодом 01, импортирует полученный XML-файл в Клиент-Банк, а затем открывает реестр внутри банковской программы и вручную меняет значение кода на 19 или другой необходимый для конкретных сотрудников.

Вариант 3. Разделение ведомостей по характеру выплаты

В последних версиях платформы алгоритмы автоматического заполнения кодов были улучшены. Чтобы программа корректно определила вид зачисления при формировании файла, не следует смешивать разные начисления в одной ведомости. Разберем этот процесс:

  1. При создании ведомости в банк строго контролируйте реквизит «Выплачивать» (Характер выплаты).
  2. Для выплаты отпускных создавайте отдельный документ «Ведомость в банк» с характером выплаты «Отпуска».
  3. Для выплаты больничных листов формируйте ведомость с характером «Больничные листы».
  4. При выгрузке таких раздельных ведомостей встроенный модуль обмена Сбербанка автоматически подставит в XML-файл соответствующий код (19 для отпуска, 10 для больничного).

Вариант 4. Программная доработка через механизм расширений

Если вам требуется регулярная массовая отправка реестров с жестким разделением кодов и вы не хотите тратить время на ручную корректировку в банке, лучшим решением станет использование расширения конфигурации. Это безопасный способ изменения логики программы без снятия ее с поддержки.

Программист 1С может добавить в документ «Ведомость в банк» дополнительный реквизит (например, СсылкаНаСправочникКодыЗачисления) и переопределить процедуру выгрузки XML-файла. Посмотрим на упрощенный пример кода, который может использоваться в расширении для подмены кода зачисления перед формированием файла выгрузки:


&Вместо("ЗаполнитьПараметрыВыгрузкиРеестра")
Процедура Мой_ЗаполнитьПараметрыВыгрузкиРеестра(ПараметрыВыгрузки, ВедомостьСсылка)
    // Вызываем стандартный обработчик конфигурации
    ПродолжитьВызов(ПараметрыВыгрузки, ВедомостьСсылка);
    
    // Проверяем заполнение нашего дополнительного реквизита в ведомости
    Если ЗначениеЗаполнено(ВедомостьСсылка.ДополнительныеРеквизиты) Тогда
        Для Каждого СтрокаРеквизита Из ВедомостьСсылка.ДополнительныеРеквизиты Цикл
            Если СтрокаРеквизита.Свойство.Имя = "КодВидаЗачисления" Тогда
                // Заменяем стандартное значение "01" на выбранный пользователем код
                ПараметрыВыгрузки.Вставить("КодВидаЗачисленияБанка", СтрокаРеквизита.Значение);
            КонецЕсли;
        КонецЦикла;
    КонецЕсли;
КонецПроцедуры

Применение такого расширения позволит один раз настроить правила выгрузки и полностью автоматизировать процесс взаимодействия с банком, исключив человеческий фактор и необходимость ручной рутинной работы в сторонних программах.

← На главную