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

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

При работе с алкогольной продукцией в конфигурации «1С:Бухгалтерия предприятия 3.0» пользователи могут столкнуться с критическим сбоем при попытке открыть документ Остатки ЕГАИС или воспользоваться «Помощником корректировки остатков ЕГАИС». Программа аварийно завершает работу формы и выдает следующее диагностическое сообщение:

{Документ.ОстаткиЕГАИС.Форма.ФормаДокумента.Форма(667)}: Поле объекта не обнаружено (ХарактеристикиИспользуются)

В этой статье мы подробно разберем, почему возникает данная неполадка, какие конфигурации оказались под ударом, а также рассмотрим все возможные способы решения проблемы — от официального обновления до временных технических обходов кода для базовых и проф-версий программы.

Выясняем причину возникновения ошибки (Технический контекст)

Давайте проанализируем внутреннюю архитектуру решений «1С:Предприятие», чтобы понять природу этого сбоя. Источником проблемы стал некорректный перенос программного кода из общей библиотеки интеграции (ГосИС / БЭД — Библиотека электронного документооборота) в типовую конфигурацию «1С:Бухгалтерия предприятия 3.0».

Эта библиотека пишется как универсальный модуль для различных программных продуктов 1С, включая такие сложные торговые решения, как «Управление торговлей 11», «1С:Розница» и «1С:УНФ». В этих торговых конфигурациях активно поддерживается ведение учета в разрезе дополнительных свойств номенклатуры — характеристик (например, цвет, размер, объем). Соответственно, в коде интеграции с ЕГАИС присутствует проверка, используются ли характеристики для конкретной позиции номенклатуры.

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


Если ЗначениеЗаполнено(СтрокаТЧ.Номенклатура) И СтрокаТЧ.Номенклатура.ХарактеристикиИспользуются Тогда
    // Некий алгоритм обработки характеристик для ЕГАИС
КонецЕсли;

Поскольку у справочника Номенклатура в «1С:Бухгалтерии» нет реквизита или свойства ХарактеристикиИспользуются, платформа 1С:Предприятие генерирует исключение «Поле объекта не обнаружено» и прекращает выполнение кода, блокируя открытие формы документа.

Какие конфигурации пострадали от этой ошибки

Данный сбой затронул пользователей целого ряда программных продуктов:


Способы решения и обхода проблемы

Рассмотрим несколько вариантов устранения этой ошибки в зависимости от вашей версии программы и возможности редактирования конфигурации.

Решение 1: Установка официального обновления (Рекомендуемый метод)

Если вы используете типовую конфигурацию (особенно базовую версию, где внесение изменений в код невозможно), самым простым и правильным решением будет обновление программы. Разработчики компании 1С оперативно исправили данное несоответствие.

Начиная с релиза 3.0.73.50 «1С:Бухгалтерии предприятия» ошибка полностью устранена.

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

Решение 2: Временный обход без обновления конфигурации (Использование отчетов)

Если по каким-то причинам вы не можете оперативно обновить базу данных (например, конфигурация сильно доработана и требует времени на аудит кода перед обновлением), используйте рекомендации технической поддержки:

  1. Избегайте прямого открытия формы документа Остатки ЕГАИС.
  2. Для контроля текущих остатков и сопоставления данных используйте специализированный отчет «Остатки по регистру №1» (или Регистру №2) встроенного модуля интеграции с ЕГАИС. Отчеты работают напрямую с регистрами сведений и не вызывают ошибочную форму документа.

Решение 3: Обход проблемы через механизм расширений (Для версий ПРОФ и КОРП)

Если ваша программа версии ПРОФ или КОРП находится на поддержке без возможности изменения основной конфигурации, вы можете исправить ошибку с помощью механизма расширений. Это позволит не снимать базу с поддержки и сохранить возможность автоматического обновления в будущем.

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


&Вместо("ПроверитьИспользованиеХарактеристикНоменклатуры") // Имя оригинальной процедуры интеграционного модуля
Процедура Расш_ПроверитьИспользованиеХарактеристикНоменклатуры(СтрокаТЧ)
    // Так как в БП характеристики не используются, принудительно возвращаем Ложь
    ИспользоватьХарактеристики = Ложь; 
КонецПроцедуры

Этот способ безопасен и решает проблему мгновенно до момента установки официального релиза обновления 1С.

Решение 4: Исправление кода вручную (Для баз, снятых с поддержки)

Если ваша база данных уже доработана сторонними специалистами и снята с поддержки, вы можете внести правку непосредственно в конфигураторе.

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


// Безопасный вариант проверки наличия реквизита в метаданных номенклатуры
ХарактеристикиПоддерживаются = ОбщегоНазначения.ЕстьРеквизитОбъекта("ХарактеристикиИспользуются", Метаданные.Справочники.Номенклатура);

Если ЗначениеЗаполнено(СтрокаТЧ.Номенклатура) Тогда
    Если ХарактеристикиПоддерживаются И СтрокаТЧ.Номенклатура.ХарактеристикиИспользуются Тогда
        // Код обработки характеристик
    КонецЕсли;
КонецЕсли;

После сохранения конфигурации базы данных (клавиша F7) документ Остатки ЕГАИС будет открываться без каких-либо ошибок.

← На главную