Как настроить выгрузку зарплатной ведомости из 1С:УПП в банк (форматы DBF и XML)

Программист 1С v8.3 (Обычные формы) Бухгалтерский учет
← На главную

Автоматизация взаимодействия с банками в рамках зарплатных проектов — это критически важная задача для любого крупного предприятия, работающего на платформе 1С:Управление производственным предприятием (УПП) 1.3. Переход от ручного ввода платежек к пакетной выгрузке ведомостей позволяет исключить ошибки человеческого фактора и значительно ускорить процесс выплаты заработной платы. В этой статье мы подробно разберем, как настроить экспорт данных, проанализируем программные способы создания файлов и рассмотрим особенности работы с популярными банковскими системами, такими как iBank2.

Вариант 1: Использование штатного механизма «Зарплатных проектов»

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

Для начала работы нам необходимо выполнить следующие шаги:

  1. Откроем справочник «Зарплатные проекты». Здесь мы создаем новую запись для нашего банка (например, ОТП Банк).
  2. В настройках проекта укажем используемый формат обмена. По умолчанию 1С предлагает стандартный XML-формат, который де-факто является универсальным для большинства российских кредитных организаций.
  3. Проверим заполнение регистра сведений «Лицевые счета сотрудников организаций». Разберем этот момент подробнее: без привязки сотрудника к конкретному зарплатному проекту и банку система просто «не увидит» данные для выгрузки. У каждого сотрудника должен быть указан номер его карт-счета.

Если ваш банк (в данном случае ОТП) требует специфический формат, который не поддерживается стандартно, или вы используете старую систему дистанционного банковского обслуживания (ДБО), может потребоваться разработка собственной обработки выгрузки.

Вариант 2: Программная выгрузка в формат DBF

Рассмотрим ситуацию, когда банк принимает данные в формате DBF. Это достаточно старый, но все еще надежный формат обмена. Для его реализации в 1С используется объект XBase. Проанализируем пример кода, который позволяет сформировать структуру файла и наполнить его данными из документа «Зарплата к выплате организаций».

Ниже приведен пример реализации, где мы создаем файл, определяем его кодировку и поля:


// Инициализируем объект для работы с DBF
ДокЭкспорт = Новый XBase;
ДокЭкспорт.Кодировка = КодировкаXBase.OEM; // Используем кодировку DOS, часто требуемую банками

// Формируем структуру колонок файла
ДокЭкспорт.поля.Добавить("BRANCH", "S", 3);
ДокЭкспорт.поля.Добавить("ZPKOD", "S", 3);
ДокЭкспорт.поля.Добавить("CARD_NO", "S", 16);
ДокЭкспорт.поля.Добавить("LSTBL", "S", 10);
ДокЭкспорт.поля.Добавить("FAM", "S", 50);
ДокЭкспорт.поля.Добавить("NAME", "S", 50);
ДокЭкспорт.поля.Добавить("OT", "S", 50);
ДокЭкспорт.поля.Добавить("RLSUM", "N", 15, 2); // Числовое поле для суммы с 2 знаками после запятой
ДокЭкспорт.поля.Добавить("INN", "S", 20);

// Создаем физический файл на диске
ДокЭкспорт.СоздатьФайл(ИмяФайла + ".DBF");
ДокЭкспорт.АвтоСохранение = Истина;

// Обходим табличную часть документа с зарплатой
Для Каждого СтрокаТаблицы Из ЗарплатаКВыплате Цикл
    ДокЭкспорт.Добавить();
    
    // Заполняем реквизиты из данных информационной базы
    ДокЭкспорт.CARD_NO = СокрЛП(СтрокаТаблицы.НомерКарточки);
    ДокЭкспорт.LSTBL   = СокрЛП(СтрокаТаблицы.Сотрудник.Код);
    ДокЭкспорт.FAM     = ВРег(СтрокаТаблицы.Фамилия); // Переводим в верхний регистр
    ДокЭкспорт.NAME    = ВРег(СтрокаТаблицы.Имя);
    ДокЭкспорт.OT      = ВРег(СтрокаТаблицы.Отчество);
    ДокЭкспорт.RLSUM   = СтрокаТаблицы.СуммаКВыплате;
    ДокЭкспорт.INN     = СтрокаТаблицы.ИНН;
    
    ДокЭкспорт.Записать();
КонецЦикла;

ДокЭкспорт.ЗакрытьФайл();

В данном примере важно обратить внимание на использование функции ВРег. Многие банковские системы чувствительны к регистру символов в ФИО, и перевод строк в верхний регистр — стандартная практика. Также отметим использование КодировкаXBase.OEM: если в банковской программе вместо русских букв отображаются «кракозябры», попробуйте сменить кодировку на ANSI.

Вариант 3: Выгрузка в XML и работа с системой iBank2

Современные банки, включая ОТП Банк, чаще используют XML-интерфейсы. Выясним причину популярности этого формата: XML позволяет передавать гораздо более сложную структуру данных, включая информацию о налогах, видах дохода и периодах начисления.

Если стандартная выгрузка 1С по каким-то причинам не проходит валидацию в банке, следует обратить внимание на специализированные модули. Например, для системы iBank2 (которую часто использует ОТП) существует внешняя обработка iBank2-1с.epf. Рассмотрим преимущества работы через такой модуль:

Важные нюансы при подготовке данных

Независимо от выбранного способа выгрузки (будь то XBase или XML), существуют общие требования законодательства и банковских стандартов, которые необходимо соблюдать:

1. Коды вида дохода. С 2020 года в платежных документах на выплату зарплаты обязательно должен указываться код вида дохода (обычно "1" для заработной платы). В 1С:УПП этот реквизит должен быть заполнен в документе выплаты, иначе банк может отклонить платеж или неправильно удержать взыскания по исполнительным листам.

2. Заполнение ИНН. Для формата XML версии 3.x поле ИНН сотрудника является обязательным. Рекомендуем выполнить проверку заполнения ИНН в справочнике Сотрудники перед формированием выгрузки. Проанализируем ситуацию: если ИНН не заполнен, файл XML может быть сформирован, но банковский шлюз выдаст ошибку валидации схемы (Schema Validation Error).

3. Форматирование сумм. При записи суммы в DBF или текстовые форматы всегда используйте функцию Формат(Сумма, "ЧГ=0"), чтобы исключить появление разделителей групп разрядов (пробелов между тысячами), которые могут быть восприняты банковской программой как ошибка.

Заключение

Мы рассмотрели три основных пути решения задачи по выгрузке зарплаты в 1С:УПП. В большинстве случаев оптимальным решением будет использование стандартного зарплатного проекта с форматом XML. Если же требуется глубокая кастомизация или работа с устаревшими системами банка, использование объекта XBase для формирования DBF-файлов остается надежным инструментом в арсенале программиста. Не забывайте всегда уточнять актуальные требования к формату файла в технической поддержке вашего банка, так как форматы могут обновляться ежегодно.

← На главную