Как настроить выгрузку ведомости в банк в формате TXT в 1С:ЗУП 3.1

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

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

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

Почему 1С:ЗУП по умолчанию выгружает только XML?

Прежде чем перейти к решениям, выясним причину такого поведения системы. Фирма «1С» совместно со Сбербанком разработала единый стандарт обмена данными электронных документов. Этот стандарт базируется на XML-структуре. Изменение формата выгрузки «в один клик» в стандартных настройках программы не предусмотрено, так как структура каждого файла TXT строго индивидуальна для каждого конкретного банка. В приложении к вашему договору с банком всегда фиксируется точная структура: порядок следования полей (например, ФИО, расчетный счет, сумма), разделители (запятая, точка с запятой или знак табуляции) и кодировка текстового файла (обычно Windows-1251 или DOS).

Способ 1: Разработка собственной внешней обработки или печатной формы

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

Для создания собственной выгрузки мы можем использовать следующий шаблон кода на языке 1С:


// Создаем объект для формирования текстового файла
ТекстовыйФайл = Новый ТекстовыйДокумент;

// Получаем ссылку на текущий документ ведомости
СсылкаНаВедомость = Параметры.Источник; 

// Запрашиваем данные табличной части "Состав" ведомости
Запрос = Новый Запрос;
Запрос.Текст = 
    "ВЫБРАТЬ
    |	ВедомостьВБанкСостав.ФизическоеЛицо.Наименование КАК ФИО,
    |	ВедомостьВБанкСостав.НомерЛицевогоСчета КАК НомерСчета,
    |	ВедомостьВБанкСостав.КВыплате КАК Сумма
    |ИЗ
    |	Документ.ВедомостьВБанк.Состав КАК ВедомостьВБанкСостав
    |ГДЕ
    |	ВедомостьВБанкСостав.Ссылка = &Ссылка";

Запрос.УстановитьПараметр("Ссылка", СсылкаНаВедомость);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

// Обходим полученные строки и формируем структуру TXT
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    // Формируем строку: ФИО, номер счета и сумма, разделенные точкой с запятой
    СтрокаВыгрузки = ВыборкаДетальныеЗаписи.ФИО + ";" + 
                     ВыборкаДетальныеЗаписи.НомерСчета + ";" + 
                     Формат(ВыборкаДетальныеЗаписи.Сумма, "ЧГ=0");
    
    // Добавляем строку в текстовый документ
    ТекстовыйФайл.ДобавитьСтроку(СтрокаВыгрузки);
КонецЦикла;

// Записываем файл на диск в кодировке ANSI (Windows-1251)
ИмяФайла = "C:\ВыгрузкаБанк\Реестр_" + Формат(ТекущаяДата(), "ДФ=yyyyMMdd") + ".txt";
ТекстовыйФайл.Записать(ИмяФайла, КодировкаТекста.ANSI);

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

Способ 2: Использование официальных обработок от банков

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

Проанализируем процесс подключения такой обработки в программу:

  1. Получите от представителей банка файл обработки с расширением .epf.
  2. Перейдите в раздел Администрирование -> Печатные формы, отчеты и обработки.
  3. Установите флаг Дополнительные отчеты и обработки и перейдите по одноименной ссылке.
  4. Нажмите кнопку Добавить из файла, согласитесь с предупреждением безопасности и выберите полученный файл .epf.
  5. Настройте размещение обработки для документа «Ведомость в банк» или «Ведомость на счета» и укажите список пользователей, которым она будет доступна.
  6. После сохранения в документе ведомости появится новая кнопка выгрузки, которая сформирует файл по правилам вашего банка.

Способ 3: Механизм выгрузки платежных документов по ведомости

Если ваша организация перечисляет денежные средства сотрудникам не в рамках зарплатного проекта, а на их личные произвольные счета в различных банках (документ «Ведомость на счета»), в программе предусмотрен другой стандартный путь создания TXT-файла через механизм клиент-банка.

Разберем этот процесс по шагам:

  1. Создайте и проведите документ Ведомость на счета.
  2. Перейдите в раздел меню Выплаты -> группа Сервис -> пункт Выгрузка платежных документов по ведомости.
  3. В открывшейся обработке укажите вашу организацию, период и выберите созданную ведомость.
  4. Программа автоматически сгенерирует пакет платежных поручений для каждого сотрудника.
  5. Нажмите кнопку выгрузки: система сформирует стандартный файл обмена 1c_to_kl.txt, предназначенный для импорта в любой Клиент-Банк. Этот файл корректно распознается банковским ПО, и ручная набивка платежек не потребуется.

Способ 4: Сохранение печатной формы списка перечислений в формат TXT

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

Выполним следующие действия:

  1. Откройте проведенный документ ведомости.
  2. Нажмите кнопку Печать и выберите форму Список перечислений.
  3. Нажмите на иконку с изображением дискеты (Сохранить) на панели инструментов или воспользуйтесь сочетанием клавиш Ctrl + S.
  4. В появившемся диалоговом окне сохранения укажите путь к файлу.
  5. В поле Тип файла выберите значение Текстовый документ (*.txt).
  6. Нажмите кнопку Сохранить.

Важное примечание: При таком способе файл запишется в виде текстовой псевдотаблицы. Если банк предъявляет жесткие требования к автоматической загрузке реестра (например, отсутствие шапки документа и пустых строк), этот файл перед отправкой придется быстро отредактировать в текстовом редакторе (Блокнот или Notepad++), удалив лишние строки заголовка и подвала.

← На главную