Как загрузить лицевые счета сотрудников в 1С:УПП из банковского файла XML?

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

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

Почему в 1С:УПП нет стандартной загрузки?

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

Пошаговый план разработки механизма загрузки

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

  1. Анализ структуры файла. Сначала откройте ваш XML-файл в любом редакторе (например, XML Editor или Notepad++). Ваша задача — понять иерархию тегов. Вам нужно найти, где хранятся ФИО сотрудника, его ИНН, СНИЛС и сам номер лицевого счета.
  2. Использование объектов платформы. Для чтения данных лучше всего использовать встроенные объекты 1С. Мы рекомендуем применять ЧтениеXML для последовательного перебора элементов файла или ФабрикуXDTO, если банк предоставил XSD-схему данных.
  3. Алгоритм поиска сотрудника. Самый критичный этап — это сопоставление данных из файла с карточками сотрудников в справочнике СотрудникиОрганизаций. Используйте уникальные идентификаторы: ИНН и СНИЛС.
  4. Запись в регистр. Лицевые счета хранятся в периодическом РегистреСведений под названием ЛицевыеСчетаСотрудниковОрганизаций. При записи важно корректно указать период, чтобы не нарушить историю выплат.

Пример программной реализации разбора XML

Рассмотрим упрощенный пример того, как можно организовать чтение файла в 1С с использованием объекта ЧтениеXML:


Чтение = Новый ЧтениеXML;
Чтение.ОткрытьФайл(ИмяФайла);
Пока Чтение.Прочитать() Цикл
    Если Чтение.ТипУзла = ТипУзлаXML.НачалоЭлемента И Чтение.Имя = "Сотрудник" Тогда
        // Считываем данные из атрибутов или вложенных тегов
        ФИО = Чтение.ПолучитьАтрибут("ФИО");
        НомерСчета = Чтение.ПолучитьАтрибут("Счет");
        // Здесь выполняется поиск сотрудника в базе и запись в регистр
    КонецЕсли;
КонецЦикла;
Чтение.Закрыть();

Важные нюансы при разработке

При написании кода учитывайте следующие аспекты:

Если формат файла, предоставленный банком, кажется вам слишком сложным для разбора через XML-объекты, можно воспользоваться промежуточным решением: преобразовать XML в текстовый формат (например, TXT или CSV) и загрузить данные через простую обработку чтения текстового документа. Однако для профессиональной разработки мы рекомендуем использовать именно встроенный в платформу XML-парсер — это обеспечит устойчивость решения к изменениям структуры файла в будущем.

Таким образом, написание собственной внешней обработки — это стандартная практика при работе с УПП. Анализ тегов, правильное сопоставление сотрудников по ИНН/СНИЛС и грамотная запись в регистр ЛицевыеСчетаСотрудниковОрганизаций позволят вам полностью автоматизировать процесс выплаты зарплаты на карты.

← На главную