Как исправить ошибку «Поле объекта не обнаружено (ВидПродукции ИС)» в 1С:Розница при сканировании товара?

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

Многие пользователи и администраторы системы 1С:Розница версии 2.3 (особенно начиная с релиза 2.3.5.24 и выше) сталкиваются с неприятной ситуацией: после обновления конфигурации в режиме Рабочего места кассира (РМК) при попытке добавить товар в чек с помощью сканера штрихкодов программа выдает критическую ошибку. При этом поиск товара вручную через подбор или по артикулу работает корректно. Рассмотрим подробно, почему это происходит и как это исправить.

Разберем причину возникновения ошибки

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

Проблема заключается в том, что если в настройках программы отключен учет всех видов маркируемой продукции (табак, обувь, одежда и т.д.), структура данных, передаваемая в обработчик, не содержит поля ВидПродукцииИС. Программа пытается проверить условие:


Если ТекущаяСтрока.ВидПродукцииИС = Перечисления.ВидыПродукцииИС.Табак Тогда
    // Логика обработки
КонецЕсли;

Так как поле физически отсутствует в наборе данных ТекущаяСтрока, выполнение прерывается с ошибкой. Посмотрим на стек вызовов, который обычно сопровождает эту проблему:


{ОбщийМодуль.ОбработкаТабличнойЧастиТоварыСервер.Модуль(349)}: Поле объекта не обнаружено (ВидПродукцииИС)
{ОбщийМодуль.ОбработкаТабличнойЧастиТоварыСервер.Модуль(132)}: ЗаполнитьЦенуМРЦВСтрокеТЧСервер(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
{Обработка.РМКУправляемыйРежим.Форма.Форма.Форма(3054)}: ОбработатьКодМаркировки(ДанныеСоСканераСтруктура);

Способ 1: Включение настроек интеграции (Быстрое решение)

Самый простой и быстрый способ восстановить работоспособность РМК — это «обмануть» систему, активировав поддержку любой категории маркируемых товаров. Это заставит программу инициализировать необходимые поля в структурах данных.

Рассмотрим по шагам, как это сделать:

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

После выполнения этих действий перезагружать программу обычно не требуется. Попробуем снова отсканировать товар в РМК — ошибка должна исчезнуть. Это происходит потому, что при включенной настройке механизмы 1С начинают корректно формировать структуру строки товаров, добавляя в нее поле ВидПродукцииИС.

Способ 2: Установка официальных патчей (Исправлений)

Разработчики компании 1С знают об этой проблеме и регулярно выпускают автоматические исправления — патчи. Если вы не хотите включать лишние настройки маркировки, которыми фактически не пользуетесь, разберем, как установить официальное исправление.

Проанализируем последовательность действий для загрузки патча:

  1. Зайдем в раздел Администрирование — Обслуживание.
  2. Перейдем по гиперссылке Обновление программы — Установка исправлений (патчей).
  3. Если база подключена к интернету и у вас настроена поддержка ИТС, система сама предложит список доступных исправлений.
  4. Ищем патчи, в описании которых фигурируют ключевые слова: ВидПродукцииИС, ОбработкаТабличнойЧастиТоварыСервер или РМК сканирование.
  5. Установим их и перезапустим 1С.

Важно: Для версии 2.3.11.33 может возникать похожая ошибка с полем ЕстьВПулеКодовМаркировки. Решение для нее абсолютно идентично — установка патча или включение функциональной опции учета маркируемого товара.

Способ 3: Очистка кэша метаданных

Иногда после обновления конфигурации или установки настроек 1С продолжает «помнить» старую структуру объектов, из-за чего ошибка сохраняется. В таком случае нам поможет полная очистка кэша программы.

Выясним, как правильно очистить кэш:

  1. В списке баз 1С выберем нужную информационную базу и нажмем кнопку Изменить — для этого пригодится утилита автоматического обновления баз и установки патчей 1С.
  2. В окне редактирования нажмем Далее до последней страницы.
  3. В поле Дополнительные параметры запуска впишем команду: /ClearCache.
  4. Запустим базу один раз с этим параметром, после чего его можно удалить.

Этот метод заставит платформу заново перечитать все метаданные и структуру объектов, что часто исправляет необъяснимые ошибки «Поле объекта не обнаружено».

Особенности работы со сканером и драйверами

Проанализируем ситуацию, когда ошибка провоцируется некорректной работой торгового оборудования. Если сканер настроен в режиме эмуляции клавиатуры, он может передавать символы слишком быстро или добавлять лишние префиксы, которые 1С интерпретирует как начало кода маркировки DataMatrix. В случаях некорректной передачи данных маркировки устройством можно использовать расширение для восстановления символов GS в считанных кодах.

Рекомендуем выполнить следующие проверки:

  1. Убедимся, что используется актуальный драйвер «1С:Сканеры штрихкода (NativeApi)».
  2. Проверим в настройках РМК, не установлен ли префикс или суффикс, который может сбивать логику обработки штрихкода.
  3. Если сканер работает через разрыв клавиатуры, попробуем перевести его в режим COM-порта (USB-HID), если устройство это поддерживает.

Проверка прав доступа

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

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

Итог

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

← На главную