При работе с проактивными выплатами в программе 1С:Зарплата и управление персоналом бухгалтеры часто сталкиваются с ситуацией, когда реестр или ответ на запрос СФР (ранее ФСС) не принимается фондом. Наиболее критичными являются две ошибки: форматный логический контроль (SAXParseException) и содержательная ошибка ERR_552, сообщающая о пересечении периодов оплаты. Рассмотрим подробно, как проанализировать эти ситуации и какие шаги предпринять для их успешного решения.
Проанализируем сначала техническую сторону вопроса. Ошибка cvc-pattern-valid: Value 'P_..._142877935_0' is not facet-valid означает, что сформированный программой идентификатор сообщения (номер пакета) не соответствует жестко заданному шаблону XSD-схемы приемного шлюза СФР.
Выясним причину несоответствия. Шаблон ожидает в блоке номера сообщения от 4 до 7 цифр (\d{4,7}). В приведенном примере идентификатор содержит 9 цифр (142877935). Это происходит из-за внутреннего сбоя нумерации или если база данных была обновлена некорректно, сохранив старые механизмы генерации ID.
Для исправления этой технической ошибки выполним следующие действия:
3.1.23.165 или актуальный патч для текущего релиза.Рассмотрим ситуацию с ошибкой ERR_552. Она возникает, когда в системе СФР за данным застрахованным лицом уже числится активное пособие на те же даты. Чаще всего это происходит при переходе сотрудницы из «декрета в декрет» — когда отпуск по уходу за ребенком до 1,5 лет еще не закрыт, а право на пособие по беременности и родам (БиР) уже наступило — для отслеживания таких периодов пригодится отчет контроля отпусков по уходу за ребенком в 1С:ЗУП.
Согласно Федеральному закону № 255-ФЗ, одновременное получение двух этих пособий невозможно. Сотрудница должна выбрать одно. Если она выбирает пособие по БиР, выплата по уходу до 1,5 лет должна быть прекращена.
Разберем пошагово правильную последовательность действий в 1С, чтобы избежать отказа фонда:
01 (выход на работу) или 99 (иные причины).Иногда даже при верных данных в интерфейсе 1С, в сам файл XML попадает ошибочная дата. Рассмотрим ошибку 30176656, которая была зафиксирована в багтрекере разработчиков. В уведомлении о прекращении отпуска по уходу в поле HOLID_DT_EX могла подставляться дата выхода на работу вместо последнего дня отпуска. Это сбивает автоматику фонда, и она видит «нахлест» в один день.
Посмотрим, как обойти эту проблему, если обновление конфигурации не представляется возможным немедленно:
Выгрузим реестр в файл на диск. Откроем его любым текстовым редактором (например, Блокнотом) и найдем тег <HOLID_DT_EX>. Если дата там не совпадает с последним днем фактического отпуска, ее следует поправить вручную, сохранить файл и загрузить его обратно в программу для отправки либо отправить через стороннего оператора (Контур, СБИС).
Проанализируем работу в рамках системы электронного документооборота (СЭДО). Когда приходит входящий запрос от СФР на выплату пособия по БиР, мы формируем «Ответ на запрос». В этом документе есть раздел «Наличие других пособий». Если мы уже отправили уведомление о прекращении, в ответе на запрос стоит дополнительно убедиться, что даты выплаты нового пособия не конфликтуют со старыми данными.
Если ошибка 552 продолжает приходить после всех манипуляций, выясним состояние дел через технические регистры 1С:
// В режиме 'Функции для технического специалиста'
// проанализируем состояние записей в регистре:
РегистрСведений.ИсходящиеСообщенияСЭДО
Если там зависло сообщение со статусом «Ошибка» или «В очереди», оно может блокировать корректную обработку новых данных. В некоторых случаях требуется принудительная отмена старых транзакций.
Если технически все данные верны, а фонд отклоняет реестр, необходимо выполнить следующие действия:
Таким образом, залогом успеха является строгое соблюдение последовательности (сначала прекращение, затем выплата) и обязательная техническая пауза между этими событиями для синхронизации баз данных.