При подготовке отчетности в Социальный фонд России (ранее ПФР) бухгалтеры и технические специалисты часто сталкиваются с проблемой проведения документа Сведения о страховом стаже застрахованных лиц (СЗВ-СТАЖ). Ситуация осложняется, когда в штате организации числятся иностранные граждане, у которых в документах, удостоверяющих личность, отсутствует отчество. При попытке провести документ программа выдает фатальную ошибку: Поле объекта не обнаружено (УТ2__Отчество). Давайте разберем причины этой проблемы и рассмотрим несколько эффективных способов её решения.
Проанализируем техническую сторону вопроса. Данная ошибка является следствием недоработки в программном коде типовых конфигураций на обычных формах (таких как Комплексная автоматизация 1.1 или Управление производственным предприятием 1.3). В определенный период развития формата обмена данными с контролирующими органами (формат УТ2) разработчики добавили обращение к свойству УТ2__Отчество в структуре данных.
Когда мы заполняем сведения по сотруднику, у которого поле «Отчество» пустое, программа при формировании внутренней структуры данных просто не создает ключ УТ2__Отчество. Однако в модуле объекта документа прописано прямое обращение к этому полю без предварительной проверки его наличия. В результате 1С «спотыкается», не находя нужного свойства, и прерывает проведение документа.
Это самый правильный и надежный метод. Фирма «1С» оперативно выпустила исправления для этой ошибки в последующих релизах. Если ваша база данных позволяет выполнить обновление, рекомендуем выполнить следующие действия:
КА 1.1.109.1 и УПП 1.3.114.1.1.1.110.1 (для КА) или выше.СЗВ-СТАЖ.Если же ваша конфигурация сильно доработана и быстрое обновление невозможно, рассмотрим альтернативные варианты.
Разберем алгоритм действий, который позволяет сдать отчетность без привлечения программиста и изменения кода программы. Суть метода заключается в том, чтобы «обмануть» проверку 1С на момент проведения документа.
Иванович или просто набор цифр 012345).СЗВ-СТАЖ, обновим данные по этому сотруднику и нажмем кнопку Провести. Теперь программа найдет заполненное поле и не выдаст ошибку.<УТ2:Отчество>Иванович</УТ2:Отчество>, должно стать: <УТ2:Отчество/> или тег должен быть полностью удален согласно схеме XSD.Рассмотрим, как системный администратор или программист может внести точечное исправление в код, чтобы навсегда забыть об этой ошибке без полного обновления конфигурации. Нам необходимо добавить проверку на существование свойства в структуре.
Выясним причину в коде. Нам нужно найти МодульОбъекта документа СведенияОСтраховомСтажеЗастрахованныхЛицСЗВ_СТАЖ. Примерно в районе строки 758 (номер зависит от релиза) мы увидим обращение к полю УТ2__Отчество. Исправим этот участок кода следующим образом:
// Вместо прямого обращения:
// ЗначениеОтчества = Данные.УТ2__Отчество;
// Используем безопасное извлечение свойства:
Если Данные.Свойство("УТ2__Отчество") Тогда
ЗначениеОтчества = Данные.УТ2__Отчество;
Иначе
ЗначениеОтчества = "";
КонецЕсли;
После внесения этого изменения 1С будет корректно обрабатывать сотрудников без отчества, просто пропуская заполнение этого поля в структуре XML.
Многие пользователи пытаются поставить в поле отчества точку, прочерк или неразрывный пробел (через Alt+0160). Рассмотрим, почему это плохая идея:
СЗВ-СТАЖ (ныне раздел 1.2 формы ЕФС-1) может повлечь за собой штраф в размере 500 рублей за каждого застрахованного лица.Проанализируем еще один интересный «костыль», который иногда помогает без вмешательства в код. Попробуйте переместить сотрудников без отчества в самый конец списка в табличной части документа. В некоторых случаях алгоритм обхода коллекции в 1С построен так, что ошибка на последнем элементе при определенных условиях не блокирует запись самого набора данных, хотя это менее надежный способ, чем описанные выше.
Подводя итог, отметим: если вы столкнулись с ошибкой Поле объекта не обнаружено (УТ2__Отчество), самым эффективным решением будет либо установка обновленного релиза, либо (если это невозможно) временная подстановка данных с последующей правкой XML-файла вручную. Это гарантирует, что отчетность будет принята фондом без лишних вопросов к персональным данным сотрудников.