При работе с программными продуктами «1С», особенно в части подготовки отчетности для государственных органов, пользователи часто сталкиваются с техническими ошибками, которые на первый взгляд кажутся непонятными. Одной из таких проблем является ошибка проверки данных XDTO при попытке выгрузки или отправки «Реестра прямых выплат ФСС» (в настоящее время функционал передан в СФР). Давайте разберем природу этой ошибки, выясним, почему она возникает, и пошагово пройдем путь ее исправления.
Для начала разберемся в терминологии. XDTO (XML Data Transfer Objects) — это механизм в платформе «1С:Предприятие», который используется для обмена данными в формате XML. Когда вы нажимаете кнопку «Выгрузить» или «Отправить», программа формирует файл по строго определенной схеме, предоставленной контролирующим органом (ФСС/СФР). Если данные в вашей информационной базе не соответствуют правилам этой схемы (например, вместо цифр указаны буквы или нарушена длина строки), механизм XDTO выдает ошибку валидации.
Проанализируем ситуацию: чаще всего ошибка содержит упоминание конкретного узла или тега, например, ogrn. Это прямой указатель на то, в каком именно поле системы допущена неточность. Давайте рассмотрим основные причины и способы их локализации.
Как показывает практика и обсуждения экспертов, наиболее частой причиной ошибки при выгрузке реестров больничных листов является некорректное заполнение ОГРН медицинской организации. Схема XDTO накладывает жесткие ограничения на это поле.
Выясним, на что именно стоит обратить внимание при проверке ОГРН:
Разберем, как исправить ситуацию. Перейдем в документ «Больничный лист» или непосредственно в справочник контрагентов (если мед. организация заведена там). Откроем поле ОГРН, выделим весь текст и убедимся, что курсор стоит вплотную к последней цифре. Если есть пустое место — удалим его.
Если проверка ОГРН не помогла, нам необходимо проанализировать другие реквизиты, которые также проходят строгую проверку по маске. Рассмотрим их подробнее:
СНИЛС сотрудника. Формат СНИЛС в XML-файле должен соответствовать шаблону «111-222-333 44». Однако в некоторых версиях схем требуется передача только цифр. Если в базе СНИЛС заполнен с ошибкой (например, не хватает контрольного разряда), XDTO-валидатор выдаст ошибку на узле snils.
Номер телефона. Современные требования фонда предполагают наличие номера телефона в формате +7 (999) 999-99-99. Если номер указан в свободном формате, начинается с «8» или содержит дополнительные комментарии («доб. 123»), проверка будет провалена.
Паспортные данные. Проанализируем заполнение серии и номера паспорта. Серия должна состоять из 4 цифр без пробелов (в некоторых старых формах допускался пробел, но современные схемы XDTO этого не любят), а номер — из 6 цифр.
Адрес регистрации (ФИАС). Сведения об адресе должны быть загружены из классификатора ФИАС. Если адрес введен вручную («в свободной форме»), в XML-файл не передадутся уникальные идентификаторы (GUID), что приведет к ошибке структуры документа.
Когда в реестре сотни сотрудников, проверять каждого вручную невозможно. Рассмотрим, как ускорить процесс локализации ошибки программными и административными методами.
Во-первых, воспользуемся штатной кнопкой «Проверить» непосредственно в документе «Реестр прямых выплат». В последних релизах конфигурации «1С:Зарплата и управление персоналом» (ЗУП) разработчики улучшили механизм диагностики. Программа выводит протокол, в котором можно кликнуть по описанию ошибки и сразу перейти к проблемному полю.
Во-вторых, если штатная проверка не дает детальной информации, применим метод «деления пополам». Попробуем выполнить следующие действия:
В-третьих, проанализируем техническую сторону вопроса через отладку, если вы обладаете навыками программирования. Проверка XDTO в коде часто выглядит следующим образом:
// Пример логики проверки XDTO в 1С
Попытка
ОбъектXDTO = СериализаторXDTO.ПрочитатьXML(ЧтениеXML);
ОбъектXDTO.Проверить();
Исключение
Сообщить("Ошибка валидации данных: " + ОписаниеОшибки());
КонецПопытки;
Проанализируем ситуацию, когда ошибка возникает в самом объекте СериализаторXDTO. Это может означать, что в базе есть «битые» ссылки или нетипичные символы (например, кавычки-елочки там, где ожидаются кавычки-лапки).
Важно помнить, что контролирующие органы регулярно обновляют форматы электронных документов. Если ваш релиз «1С:Зарплата и управление персоналом» устарел, программа может пытаться выгрузить данные по старой схеме, которая уже не принимается сервером фонда или не соответствует актуальным правилам валидации XDTO.
Посмотрим на алгоритм действий при обнаружении системных ошибок:
Не забудем проверить и данные вашей собственной организации. Иногда ошибка в теге ogrn относится не к больничному листу, а к карточке предприятия. Перейдем в меню «Настройка» — «Организации» — вкладка «Главное». Тщательно проверим поле ОГРН на предмет лишних знаков. Даже если кажется, что все верно, рекомендуется очистить поле и вписать 13 цифр заново вручную.
Подводя итог, можно сказать, что ошибка проверки данных XDTO — это не приговор, а лишь сигнал о том, что данные требуют «причесывания». Внимательный анализ тегов ошибки, проверка на скрытые пробелы и своевременное обновление программы позволяют решить эту проблему в кратчайшие сроки.