В процессе автоматизации выплаты заработной платы бухгалтеры и технические специалисты часто сталкиваются с ситуацией, когда стандартные механизмы 1С не соответствуют специфическим требованиям банка. Одной из таких задач является выгрузка ведомости в Газпромбанк (ГПБ), где помимо ФИО, номера счета и суммы зачисления требуются актуальные паспортные данные сотрудников. Проанализируем, почему этого нет в типовом функционале, и разберем способы решения данной задачи.
Для начала проанализируем архитектуру обмена данными между банками и продуктами 1С (такими как 1С:Зарплата и управление персоналом или 1С:Бухгалтерия). Взаимодействие строится на базе Стандарта электронного обмена информацией (ЭОИ). Актуальные версии этого стандарта (3.5, 3.6, 3.7) четко разделяют типы сообщений:
Однако Газпромбанк при определенных условиях (например, при перечислении через межбанк или при первичной настройке проекта) может запрашивать реестр именно в формате Excel (XLS) с включением серии и номера паспорта. Рассмотрим, как мы можем реализовать это требование.
Прежде чем приступать к разработке, проверим настройки в самой программе. Выясним причину, по которой банк требует расширенные данные. Зачастую это связано с тем, как была заполнена Заявка-анкета на подключение модуля в самом банке.
Разберем действия в 1С:
Если штатные настройки не помогают, и банк настаивает на формате .xls или .csv с паспортами, переходим к технической реализации.
Проанализируем программный способ решения. Нам необходимо создать внешнюю обработку, которая будет считывать данные из документа ВедомостьНаВыплатуЗарплатыВБанк и сопоставлять их с данными из регистра сведений ПаспортныеДанныеФизЛиц.
Рассмотрим пример алгоритма получения данных в коде 1С:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ВедомостьВБанкСоставЗарплаты.ФизическоеЛицо КАК ФизЛицо,
| ВедомостьВБанкСоставЗарплаты.НомерЛицевогоСчета КАК Счет,
| ВедомостьВБанкСоставЗарплаты.КВыплате КАК Сумма,
| ПаспортныеДанные.ДокументСерия КАК Серия,
| ПаспортныеДанные.ДокументНомер КАК Номер,
| ПаспортныеДанные.ДокументДатаВыдачи КАК ДатаВыдачи
|ИЗ
| Документ.ВедомостьНаВыплатуЗарплатыВБанк.СоставЗарплаты КАК ВедомостьВБанкСоставЗарплаты
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПаспортныеДанныеФизЛиц.СрезПоследних(&ДатаСреза, ) КАК ПаспортныеДанные
| ПО ВедомостьВБанкСоставЗарплаты.ФизическоеЛицо = ПаспортныеДанные.ФизическоеЛицо
|ГДЕ
| ВедомостьВБанкСоставЗарплаты.Ссылка = &СсылкаНаВедомость";
Запрос.УстановитьПараметр("СсылкаНаВедомость", Объект.ВедомостьСсылка);
Запрос.УстановитьПараметр("ДатаСреза", Объект.ВедомостьСсылка.Дата);
РезультатЗапроса = Запрос.Выполнить();
После получения данных необходимо сформировать ТабличныйДокумент и сохранить его в формате Excel. Обратите внимание на важный нюанс: Газпромбанк часто требует, чтобы серия и номер паспорта шли в одной ячейке без пробелов или, наоборот, строго разделялись. Выясним требования банка заранее.
При формировании файла обратим внимание на следующие технические моменты:
ДД.ММ.ГГГГ.Windows-1251.Если у вас нет времени на написание обработки, разберем, как получить нужные данные с помощью Универсального отчета. Это позволит быстро сформировать таблицу, которую можно скопировать в шаблон банка.
Ведомость на выплату зарплаты в банк, выберем таблицу Состав зарплаты.Физическое лицо -> (развернуть плюсик) -> Паспортные данные.Серия и Номер.Важный момент: Данный способ подходит для разовых выгрузок. Для регулярной работы лучше использовать механизм внешних печатных форм или обработок, чтобы исключить человеческий фактор при ручном копировании данных в банковский шаблон.
Мы выяснили, что требование Газпромбанка о наличии паспортных данных в ведомости является специфическим и выходит за рамки стандартного протокола ЭОИ. Проанализировав ситуацию, мы пришли к выводу, что оптимальным решением является создание внешней обработки выгрузки. Это позволит автоматизировать процесс, соблюсти требования безопасности персональных данных и обеспечить корректное зачисление зарплаты сотрудникам через межбанковские каналы.