Как исправить ошибку «Поле объекта не обнаружено (ДополнительныеСвойства)» при обмене с ЕГАИС в 1С:Бухгалтерия 3.0?

Программист 1С v8.3 (Управляемые формы) 1C:Бухгалтерия Бухгалтерский учет Торговля и дистрибуция
← На главную

При работе с алкогольной продукцией в программе «1С:Бухгалтерия предприятия 3.0» пользователи часто сталкиваются со специфическими ошибками при обмене данными через УТМ (Универсальный транспортный модуль). Одной из наиболее неприятных является ошибка при загрузке входящего ответа (Ticket) от ЕГАИС, которая блокирует дальнейший документооборот. В этой статье мы подробно разберем, почему возникает ошибка Поле объекта не обнаружено (ДополнительныеСвойства) в общем модуле интеграции и как её устранить различными способами.

Анализ ситуации и причины возникновения ошибки

Рассмотрим типичный сценарий: бухгалтер или оператор оформляет документ «Возврат поставщику», на его основании создается «ТТН-исходящая ЕГАИС». При попытке выполнить обмен (получить квитанцию от сервера Росалкогольрегулирования) система выдает критический сбой. Текст ошибки обычно выглядит следующим образом:

{ОбщийМодуль.ИнтеграцияЕГАИСПереопределяемый.Модуль(2756)}: Поле объекта не обнаружено (ДополнительныеСвойства)

Проанализируем программный код в указанной точке. Проблема кроется в процедурах, обрабатывающих запись документов или выполнение подписок на события. Разработчики системы добавили проверку на так называемое «Групповое перепроведение», чтобы оптимизировать нагрузку. Код выглядит примерно так:


Если Источник.ДополнительныеСвойства.Свойство("ГрупповоеПерепроведение") Тогда
    Возврат;
КонецЕсли;

Выясним причину сбоя: переменная Источник в данном контексте является ссылкой на документ (ДокументСсылка), а не самим объектом документа. В языке 1С свойство ДополнительныеСвойства существует только у объектов (ДокументОбъект), которые находятся в оперативной памяти в момент редактирования или записи. У ссылок, которые просто указывают на запись в базе данных, этого свойства нет, что и приводит к падению программы.

Способ 1. Обновление конфигурации (рекомендуемый)

Поскольку данная проблема признана официальным багом релизов ветки 3.0.67 и 3.0.68, самым правильным решением будет обновление программы. Разберем по шагам, что необходимо сделать:

  1. Создадим резервную копию информационной базы. Это обязательный шаг перед любым вмешательством в систему.
  2. Перейдем в раздел «Администрирование» — «Обслуживание» — «Обновление программы».
  3. Проверим наличие доступных обновлений. Целевой релиз, в котором данная ошибка была исправлена разработчиками 1С — 3.0.69.32 и выше.
  4. В новых версиях код был изменен: добавлена проверка типа данных, которая предотвращает обращение к свойствам ссылки.

Способ 2. Установка исправления (патча) для Базовой версии

Если у вас установлена Базовая версия «1С:Бухгалтерии», вы не можете вносить изменения в программный код самостоятельно. Однако фирма «1С» выпускает оперативные исправления (патчи), которые можно установить без полного обновления конфигурации. Рассмотрим, как это сделать:

Проверим наличие патча с кодом EF_00_00192518. Именно это исправление отвечает за корректную обработку Ticket в ЕГАИС. Для установки выполним следующие действия:

  1. Зайдем в раздел «Администрирование».
  2. Выберем пункт «Обслуживание», далее — «Обновление программы».
  3. Перейдем по ссылке «Установленные исправления (патчи)».
  4. Если программа подключена к интернет-поддержке, она предложит автоматически загрузить и установить критические исправления. Убедимся, что патч, касающийся ЕГАИС, активен.

Способ 3. Программная правка кода (для версий ПРОФ и КОРП)

Если обновление по каким-то причинам невозможно осуществить оперативно, а работать нужно сейчас, проанализируем возможность ручной правки кода в конфигураторе (при условии, что конфигурация снята с замка). Нам необходимо изменить логику обращения к источнику в модуле ИнтеграцияЕГАИСПереопределяемый.

Вместо прямого обращения к свойству применим безопасную проверку. Рассмотрим пример исправленного кода:


// Было:
// Если Источник.ДополнительныеСвойства.Свойство("ГрупповоеПерепроведение") Тогда

// Стало (вариант с проверкой типа):
Если ОбщегоНазначения.ДанныеЯвляютсяСсылкой(Источник) Тогда
    // Если это ссылка, мы можем либо пропустить проверку,
    // либо получить объект, если свойства критически важны
    Возврат; 
ИначеЕсли Источник.ДополнительныеСвойства.Свойство("ГрупповоеПерепроведение") Тогда
    Возврат;
КонецЕсли;

Использование метода ПолучитьОбъект() у ссылки также решит проблему, но это может негативно сказаться на производительности, если обработка идет в цикле. Поэтому лучше всего просто убедиться, что мы работаем именно с объектом, прежде чем обращаться к его ДополнительнымСвойствам.

Способ 4. Очистка очереди в УТМ

Иногда ошибка может «зациклиться». Это происходит, когда в УТМ висит проблемный тикет, который 1С пытается прочитать снова и снова при каждом обмене. Если вы уже обновились, но ошибка сохраняется, попробуем очистить входящую очередь запросов:

  1. Откроем браузер и перейдем по адресу локального УТМ (обычно это http://localhost:8080).
  2. Перейдем на вкладку «Входящие».
  3. Найдем документ с типом Ticket, на котором спотыкается система (номер тикета обычно указан в логе ошибки 1С, например /opt/out/Ticket/659).
  4. Если документ явно вызывает сбой и не является критически важным (например, это просто подтверждение акта), его можно удалить напрямую из интерфейса УТМ, чтобы 1С пропустила его и перешла к следующим записям.

Важные рекомендации при общении с техподдержкой

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

Подведем итог: ошибка ДополнительныеСвойства — это типичный «промах» разработчиков при типизации переменных. Решение всегда заключается либо в обновлении на стабильный релиз (начиная с 3.0.69.32), либо в установке соответствующего патча через интернет-поддержку.

← На главную