С выходом обновлений для конфигурации Зарплата и управление персоналом 2.5 (начиная с релиза 130.1) пользователи столкнулись с проблемой: при попытке выгрузить реестр сведений для начисления пособий (больничных листов) система выдает критическую ошибку о том, что не заполнен реквизит КодАдресФИАС. Это происходит из-за изменений требований ФСС (ныне СФР) к форматам обмена данными. Поскольку конфигурация ЗУП 2.5 находится на ограниченной поддержке, автоматический механизм конвертации старых кодов КЛАДР в новые GUID ФИАС в ней практически отсутствует.
В данной статье мы разберем несколько стратегий решения этой задачи: от ручного ввода данных до программной модификации алгоритмов выгрузки. Проанализируем ситуацию и выясним, как минимизировать трудозатраты при работе с большим штатом сотрудников.
Рассмотрим техническую сторону вопроса. Разработчики 1С добавили новые реквизиты в структуру метаданных (справочник ФизическиеЛица и документы по начислению пособий), чтобы соответствовать формату XSD-схемы реестра. Однако в интерфейсе обычных форм ЗУП 2.5 эти поля зачастую не выведены на форму «Начисления по больничному листу» или в карточку сотрудника. В результате при формировании реестра система видит пустые значения в базе данных и блокирует выгрузку.
Проанализируем ситуацию: если у вас 800 сотрудников, ручной ввод становится невозможным. Выясним причину, по которой 1С не автоматизировала этот процесс. Основная причина — ФИАС работает на основе глобальных уникальных идентификаторов (GUID), которые невозможно вычислить по алгоритму из старого КЛАДР-кода без обращения к актуальной базе ФНС.
Этот метод подходит, если количество проблемных сотрудников невелико. Рассмотрим пошагово, как получить нужный код:
a1b2c3d4-e5f6...).Поскольку поля КодАдресаФИАС часто скрыты, нам может потребоваться воспользоваться обработкой «Групповая обработка справочников и документов» или «Универсальный подбор и обработка объектов», чтобы записать значение в нужный реквизит объекта ФизическиеЛица.
Как показывает практика и обсуждения на технических форумах, шлюзы приема отчетности СФР на данный момент часто принимают реестры, в которых КодАдресФИАС не заполнен, при условии, что все остальные адресные данные (регион, город, улица, дом) указаны верно согласно КЛАДР. В самой 1С проверка часто является избыточной «заглушкой».
Разберем, как временно отключить эту проверку в конфигураторе. Проанализируем модуль, отвечающий за выгрузку. Обычно это общие модули, связанные с электронным обменом, или модуль объекта обработки ВыгрузкаРеестровПособий.
Найдем фрагмент кода, где выполняется проверка. Он может выглядеть примерно так:
Если НЕ ЗначениеЗаполнено(СтрокаДанных.КодАдресаФИАС) Тогда
Отказ = Истина;
Сообщить("У сотрудника " + СтрокаДанных.ФизЛицо + " не заполнен код ФИАС!");
КонецЕсли;
Для решения проблемы мы можем закомментировать условие Отказ = Истина. Рассмотрим пример модификации:
// Временно отключаем жесткую блокировку выгрузки
Если НЕ ЗначениеЗаполнено(СтрокаДанных.КодАдресаФИАС) Тогда
// Отказ = Истина;
// Вместо отказа просто выведем предупреждение, но дадим сформировать файл
Сообщить("Предупреждение: Код ФИАС не заполнен для " + СтрокаДанных.ФизЛицо + ". Файл будет сформирован без него.");
КонецЕсли;
Важно: Данный метод является «костылем». Перед массовой отправкой обязательно проверьте один сформированный XML-файл через программу CheckPFR или аналогичные средства проверки отчетности. Если файл проходит валидацию по схеме, его можно отправлять.
Если штат сотрудников большой, а переходить на ЗУП 3.1 «завтра» не планируется, рассмотрим вариант автоматизации. Существуют сервисы (например, Dadata), которые позволяют через программный интерфейс (API) получить GUID ФИАС по строке адреса.
Разберем алгоритм работы такой обработки:
КодАдресаФИАС в справочнике ФизическиеЛица.Для реализации нам потребуется создать внешнюю обработку. Посмотрим на пример кода для записи значения в скрытый реквизит справочника:
Процедура ЗаписатьФИАС(ФизЛицоОбъект, НайденныйGUID)
// Убедимся, что реквизит существует в метаданных
Попытка
ФизЛицоОбъект.КодАдресаФИАС = НайденныйGUID;
ФизЛицоОбъект.Записать();
Исключение
Сообщить("Ошибка записи ФИАС для: " + ФизЛицоОбъект.Наименование);
КонецПопытки;
КонецПроцедуры
Проанализируем возможности современной платформы 8.3, на которой обычно запускается ЗУП 2.5. Если у вас подключена интернет-поддержка, попробуйте открыть форму ввода адреса в карточке физического лица. В некоторых случаях, при перевыборе дома из выпадающего списка (если классификатор загружен или используется облачный адрес), система может автоматически подтянуть идентификатор в скрытые поля.
Однако помните, что в ЗУП 2.5 механизм работы с контактной информацией сильно отличается от БСП (Библиотеки стандартных подсистем), используемой в версии 3.1. Поэтому данный метод срабатывает не на всех релизах и требует обязательной проверки заполнения реквизита через консоль запросов.
Мы проанализировали ситуацию с отсутствием кодов ФИАС в ЗУП 2.5 и выяснили, что проблема носит технический характер из-за прекращения развития данной ветки программы.
Резюмируем наши действия:
В долгосрочной перспективе единственным верным решением остается переход на ЗУП 3.1, где работа с ФИАС является штатной функцией, а все обновления форматов отчетности выходят своевременно. Версия 2.5 будет требовать все больше ручных правок кода («костылей») с каждым новым изменением в законодательстве.