Как исправить ошибку «Поле объекта не обнаружено ДатаВводаВОборот» в 1С при работе с маркировкой

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

После обновления популярных конфигураций 1С, таких как ERP Управление предприятием 2.5.17, Комплексная автоматизация 2.5.17 или Управление торговлей 11.5.17, многие пользователи и разработчики столкнулись с неприятной ошибкой при попытке открыть форму проверки и подбора маркируемой продукции. Система выдает критическое оповещение: Поле объекта не обнаружено (ДатаВводаВОборот). Давайте разберем природу этого сбоя и найдем эффективные способы его устранения.

Выясним причину возникновения ошибки

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

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

Как обнаружить проблемное место через отладку

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

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

Обычно отладчик останавливается в модуле менеджера обработки ПроверкаИПодборПродукцииИСМП. Именно здесь сосредоточена логика формирования структуры данных для фронтенда формы.

Способ 1: Установка официального патча (рекомендуется)

Фирма «1С» оперативно выпустила исправление для этой ошибки. Если ваша система подключена к интернет-поддержке, это самый быстрый и безопасный путь. Проанализируем порядок действий:

  1. Перейдем в раздел Администрирование — Обслуживание — Обновление программы.
  2. Найдем пункт Установленные исправления (патчи).
  3. Убедимся, что загружен и установлен патч с номером EF_00_00723052 (номер может незначительно меняться в зависимости от версии конфигурации).
  4. Если патч отсутствует, его можно скачать вручную с портала техподдержки 1С и установить через расширения конфигурации.

Способ 2: Ручная правка кода (через расширение)

Если вы не можете ждать официального обновления или патч по каким-то причинам не подходит, разберем программный метод решения. Нам потребуется внести изменения в модуль менеджера обработки ПроверкаИПодборПродукцииИСМП. Основная задача — обеспечить наличие поля ДатаВводаВОборот в структуре, даже если оно пустое.

Посмотрим на пример реализации в функции ДеревоМаркированнойПродукции. Нам нужно найти место, где инициализируется строка дерева или структура данных, и добавить безопасную инициализацию:


// В месте формирования структуры данных для строки дерева
НоваяСтрока = СтруктураДанных.Добавить();
// ... заполнение других полей ...
НоваяСтрока.ДатаВводаВОборот = '00010101'; // Инициализируем пустой датой

Также рекомендуется заменить прямое обращение к свойству на безопасное чтение. Вместо конструкции Значение = Данные.ДатаВводаВОборот; используем метод Свойство():


ДатаВвода = '00010101';
Если Данные.Свойство("ДатаВводаВОборот", ДатаВвода) Тогда
    // Поле найдено, используем полученное значение
Иначе
    // Поле отсутствует в структуре, используем дефолтное значение
КонецЕсли;

Такой подход гарантирует, что даже при работе со старыми документами система не «упадет» с ошибкой отсутствия поля.

Способ 3: Обходные пути для пользователей (без программирования)

Если у вас нет доступа к конфигуратору (например, работа в 1С:Фреш) и патч еще не применен администраторами сервиса, попробуем решить проблему административными методами:

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

Резюме

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

← На главную