Переход с устаревших конфигураций (например, 1С:УПП) на современную 1С:Зарплата и управление персоналом 3.1 часто вызывает вопросы в части взаимодействия с банками. Одной из наиболее острых проблем является выплата зарплаты на личные счета сотрудников в разных банках, когда организация не использует централизованный Зарплатный проект — в подготовке данных поможет обработка исправления ошибок в начислениях и задолженностях. Рассмотрим подробно, как организовать этот процесс, какие инструменты предлагает типовой функционал и почему логика программы может казаться непривычной.
Для начала проанализируем ситуацию: в ЗУП 3.1 существует документ ВедомостьНаВыплатуЗарплатыПеречислением (Ведомость на счета). Пользователи часто ожидают увидеть в нем кнопку «Выгрузить», аналогичную той, что есть в ведомостях по зарплатным проектам. Однако в типовой конфигурации ее нет. Чтобы исправить этот недостаток, может быть добавлена специальная кнопка Выгрузить в XML в документе Ведомость на счета, которая значительно упрощает работу. Это связано с тем, что разработчики 1С разделяют задачи: ЗУП — это программа для расчета налогов и взносов, а 1С:Бухгалтерия (БП) — программа для осуществления фактических платежей.
Разберем стандартный бизнес-процесс:
Ведомость на счета.Платежные поручения.Обмен с банком в БП формируется текстовый файл 1c_to_kl.txt для загрузки в Клиент-Банк.Если же мы хотим автоматизировать процесс непосредственно в ЗУП, рассмотрим альтернативные методы.
Мало кто знает, что в ЗУП 3.1 есть скрытый раздел с платежными поручениями, который позволяет подготовить данные для банка. Рассмотрим, как им воспользоваться:
Платежное поручение.Важный нюанс: Стандартный документ Платежное поручение в ЗУП ориентирован на заполнение по Ведомости в банк (которая требует наличия зарплатного проекта). Чтобы работать с личными счетами сотрудников (без проекта), нам потребуется либо небольшая доработка системы, либо использование синхронизации с БП, где этот механизм работает безупречно.
Чтобы программа понимала, что деньги должны уходить на конкретные реквизиты, проанализируем настройки в карточке сотрудника. Это критически важный этап, без которого автоматизация невозможна.
Рассмотрим порядок действий:
Изменение анкетных данных сотрудников для массового заполнения реквизитов.После этой настройки при создании документа Ведомость на счета программа будет автоматически подтягивать нужные банковские реквизиты каждого работника.
Если нам необходимо получить файл выгрузки именно в формате XML (современный стандарт обмена с банками), мы можем прибегнуть к хитрости, которую часто называют «фиктивным» зарплатным проектом. Выясним причину популярности этого метода.
Многие банки (Сбербанк, ВТБ, Тинькофф) сегодня поддерживают реестры на выплату в сторонние банки в рамках одного файла. Рассмотрим алгоритм настройки:
Зарплатный проект (Название: «Выплаты на личные счета»).Ведомость в банк (вместо ведомости на счета) мы выбираем этот проект. Теперь кнопка Выгрузить станет доступна.Внимание: Перед использованием этого метода уточните в своем банке, готов ли их шлюз принимать XML-реестр. Например, для некоторых учреждений актуальна выгрузка в Газпромбанк по формату Сбербанка с исправлением шаблона имени файла, чтобы система банка корректно приняла данные. Если банк настроен строго, файл будет отклонен.
Проанализируем крайне важный законодательный аспект. Согласно указам ЦБ РФ, в каждом платежном поручении на зарплату должен стоять Код вида дохода (обычно «1»). Также в поле «Назначение платежа» должна присутствовать информация о сумме взыскания по исполнительным листам, если таковые имеются.
При использовании документа Ведомость на счета в ЗУП 3.1 эти данные формируются автоматически внутри программы. Если мы решим «вручную» набивать платежки в Клиент-Банке, мы рискуем нарушить эти требования, что приведет к штрафам. Поэтому использование автоматизированной выгрузки (даже через промежуточный этап в БП) является приоритетным.
Если вы решите прибегнуть к помощи программиста для создания внешней обработки, которая будет формировать текстовый файл напрямую из ведомости, рассмотрим логику, которую должен реализовать код. Программа должна собрать данные из табличной части ведомости и преобразовать их в формат 1c_to_kl.txt.
// Пример логики сбора данных из Ведомости на счета
Для Каждого СтрокаТЧ Из ВедомостьНаСчета.Состав Цикл
ФайлВыгрузки.ДобавитьСтроку("СекцияДокумент=Платежное поручение");
ФайлВыгрузки.ДобавитьСтроку("Номер=" + НомерПП);
ФайлВыгрузки.ДобавитьСтроку("Дата=" + Формат(ТекущаяДата(), "ДЛФ=Д"));
ФайлВыгрузки.ДобавитьСтроку("Сумма=" + СтрокаТЧ.КВыплате);
ФайлВыгрузки.ДобавитьСтроку("Получатель=" + СтрокаТЧ.ФизическоеЛицо.Наименование);
ФайлВыгрузки.ДобавитьСтроку("ПолучательСчет=" + СтрокаТЧ.НомерСчета);
ФайлВыгрузки.ДобавитьСтроку("ПолучательБИК=" + СтрокаТЧ.Банк.Код);
ФайлВыгрузки.ДобавитьСтроку("КонецДокумента");
КонецЦикла;
Такой подход позволит избежать рутины и исключить ошибки «ручного» ввода. Помните притчу про сосиски из темы форума: не делайте лишних действий только потому, что так «делали всегда». Если программа позволяет автоматизировать процесс через синхронизацию или универсальные реестры — используйте эти возможности.
Мы рассмотрели несколько путей решения задачи. Подведем итоги:
1c_to_kl.txt напрямую из ЗУП.Выбирайте метод, исходя из технической готовности вашего банка принимать реестры и наличия настроенной синхронизации между вашими базами 1С.