Почему возникает ошибка «Поле объекта не обнаружено (Тип маркировки)» при выгрузке в ККМ Offline?

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

При работе с маркируемой продукцией в 1С:Розница пользователи часто сталкиваются с тем, что стандартная выгрузка данных в кассу, работающую в режиме офлайн (например, «Штрих-М: ККМ Offline»), перестает функционировать. Ошибка Поле объекта не обнаружено (Тип маркировки) сигнализирует о том, что конфигурация 1С обновилась, включив в себя новые требования системы «Честный ЗНАК», а используемая внешняя обработка обслуживания осталась прежней и не понимает, как обработать новые виды номенклатуры.

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

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

Шаг 1: Проверка актуальности драйверов и обработок

Прежде чем приступать к глубокому анализу кода, проделаем базовые шаги для исключения простых причин:

  1. Перейдем на официальный сайт производителя оборудования (Штрих-М) и проверим наличие обновленных Драйверов ККТ. Часто производители выпускают обновления, исправляющие совместимость с новыми форматами маркировки.
  2. Посетим портал 1С:ИТС в раздел с внешними компонентами и обработками обслуживания. Разработчики 1С периодически обновляют стандартные файлы для подключения оборудования. Если в списке есть свежая версия обработки, скачаем и подключим ее в справочнике Подключаемое оборудование.

Шаг 2: Самостоятельная доработка обработки обслуживания

Если обновление драйверов не решило проблему, это означает, что логика обработки не содержит инструкций для работы с новыми типами маркировки. Разберем, как подойти к исправлению этой ситуации:

Анализ кода: Откроем внешнюю обработку в конфигураторе. Нам необходимо найти процедуру, отвечающую за формирование файла обмена, например, ВыгрузитьДанные или СформироватьФайлТоваров.

В этой процедуре происходит перебор номенклатуры и запись данных в поток. Посмотрим на фрагмент, где происходит определение типа маркировки:


// Примерный участок кода, требующий доработки
ТипМаркировки = Товар.ТипМаркировки;
Если ТипМаркировки = Перечисления.ТипыМаркировки.Обувь Тогда
    КодДляКассы = 1;
ИначеЕсли ТипМаркировки = Перечисления.ТипыМаркировки.Табак Тогда
    КодДляКассы = 2;
Иначе
    // Здесь обработка падает с ошибкой, если тип не описан
    Сообщить("Неизвестный тип маркировки: " + ТипМаркировки);
КонецЕсли;

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

Шаг 3: Переход на режим онлайн-обмена

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

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

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

← На главную