При активном внедрении системы маркировки товаров «Честный ЗНАК» пользователи программных продуктов 1С:Управление торговлей 11, ERP 2.4 и Комплексная автоматизация 2.4 часто сталкиваются с критическими ошибками при попытке ввода кодов маркировки. Одной из самых распространенных и неприятных проблем является системная ошибка: «поле объекта не обнаружено (типупаковки)». Рассмотрим подробнее причины возникновения этой ситуации и разберем по шагам все доступные способы её решения.
Проанализируем ситуацию: данная ошибка носит чисто программный характер и признана официальным багом вендора (компании 1С). Она массово проявлялась в релизах 2020–2021 годов, особенно в ветке конфигурации 11.4.11. Суть проблемы заключается в несоответствии между структурой данных, которую ожидает программный код в общих модулях интеграции с ИС МП, и фактическим составом колонок в объекте «Дерево упаковок», который формируется в экранных формах при сканировании или вводе КМ.
Когда система выполняет процедуру обработки штрихкодов, она пытается программно обратиться к свойству ТипУпаковки для каждого элемента коллекции. Если в текущей версии формы или при определенных настройках дерева это поле не было инициализировано, 1С выдает исключение, так как объект метаданных или строка дерева просто не содержат такого реквизита.
Прежде чем переходить к изменению программного кода, разберем наиболее корректный метод решения для баз, находящихся на официальной поддержке. Компания 1С оперативно выпускала исправления для подобных массовых ошибок в виде расширений-патчей.
Выясним, как проверить наличие нужного исправления:
EF_..., в описании которых упоминается работа с ИС МП или ошибка «ТипУпаковки».Посмотрим на ситуацию со стороны системных требований. Часто ошибка возникает из-за того, что новый функционал маркировки требует современных механизмов платформы, которые отсутствуют в старых версиях. Например, даже если у вас установлена платформа 8.3.16, для стабильной работы современных протоколов криптографии и обмена данными с ГИС МТ (Честный ЗНАК) рекомендуется использовать версии не ниже 8.3.18 или 8.3.21.
Разберем этапы обновления:
v8upd.htm (идет в комплекте с дистрибутивом релиза).Если обновление в данный момент невозможно, а работать нужно немедленно, применим «ручное» исправление кода. Этот метод требует прав доступа к конфигуратору и перевода базы в режим возможности редактирования.
Рассмотрим по шагам, как внести изменения в код:
ШтрихкодированиеИСМПСлужебный.СформироватьОбработанныеШтрихкодыПоДаннымДереваУпаковок(ДеревоУпаковок).Для исправления ошибки можно закомментировать строку или добавить проверку на наличие свойства. Рассмотрим пример кода:
// В функции СформироватьОбработанныеШтрихкодыПоДаннымДереваУпаковок
Для Каждого СтрокаДерева Из ДеревоУпаковок.Строки Цикл
// ... какой-то код ...
// Было:
// ДанныеКодаМаркировки.ТипУпаковки = СтрокаДерева.ТипУпаковки;
// Вариант исправления через исключение:
Попытка
ДанныеКодаМаркировки.ТипУпаковки = СтрокаДерева.ТипУпаковки;
Исключение
// Если поля нет, просто пропускаем заполнение
КонецПопытки;
// Либо просто закомментировать, если агрегация не используется:
// ДанныеКодаМаркировки.ТипУпаковки = СтрокаДерева.ТипУпаковки;
КонецЦикла;
Важное предупреждение: Комментирование этой строки является временным «костылем». Поле ТипУпаковки отвечает за идентификацию того, является ли код индивидуальной единицей или транспортной упаковкой (коробом, паллетой). При отключении этой строки система может некорректно обрабатывать вложенность при выполнении агрегации товаров непосредственно в 1С.
Иногда ошибка может быть вызвана «залипанием» старых настроек формы в кэше пользователя. Выясним, как произвести очистку, если программные исправления не помогают:
Мы проанализировали основные пути решения проблемы. Стоит помнить, что правила работы с маркировкой («Честный ЗНАК») постоянно меняются на законодательном уровне. Использование старых релизов конфигураций (таких как 11.4.11) несет в себе риски не только технических ошибок, но и несоответствия форматам передачи данных в ГИС МТ.
Поэтому, даже если вы применили программное исправление кода, планируйте переход на актуальные версии программных продуктов. Это позволит использовать штатные механизмы проверки кодов маркировки, корректную работу с оборудованием и обеспечит отсутствие подобных ошибок Поле объекта не обнаружено в будущем.