Как исправить ошибку «Код маркировки не соответствует номенклатуре» и появление символов «АААААААА» в 1С:УТ 11.4?

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

Процесс работы с маркировкой, особенно с альтернативной табачной продукцией (АТП), часто сопровождается техническими сложностями, которые могут поставить в тупик даже опытного пользователя. Ошибки вида «Код маркировки не соответствует номенклатуре» или внезапное появление странных символов «АААААААА» в конце кода — это не случайные сбои, а признаки конкретных несоответствий в настройках программы, оборудования или актуальности релиза. В данной статье мы подробно разберем, почему возникают эти проблемы в «1С:Управление торговлей» (редакция 11.4) и как их устранить по шагам.

Разберем причину появления символов «АААААААА» в конце кода

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

Это сигнализирует о том, что:

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

Выясним причину ошибки «Поле объекта не обнаружено Строка»

Если при попытке сканирования напрямую в документ «Реализация товаров и услуг» вы получаете системную ошибку Поле объекта не обнаружено Строка, это прямое свидетельство программного бага в конкретных релизах (например, 11.4.13.281). В процедуре обработки оповещения от торгового оборудования программа ожидает получить структуру данных определенного вида, но из-за изменений в требованиях «Честного ЗНАКа» получает данные, которые не может сопоставить с внутренними переменными.

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

Проанализируем настройки сканера и символ GS1

Рассмотрим подробнее работу сканирующего оборудования. Для корректной передачи кода маркировки крайне важно наличие символа GS (Group Separator, ASCII 29). Этот символ не имеет видимого отображения, но он разделяет группы данных внутри DataMatrix (например, отделяет GTIN от серийного номера и кода проверки).

Если ваш сканер работает в режиме эмуляции клавиатуры (HID), он может заменять этот символ на пробел или вовсе его игнорировать, что приводит к ошибке нормализации кода. Мы рекомендуем перевести сканер в режим Native USB (COM-порт). Это позволит 1С получать данные напрямую через драйвер торгового оборудования. После перевода сканера в режим COM-порта выполните следующие действия в 1С:

  1. Перейдите в НСИ и администрирование — РМК и оборудование — Подключаемое оборудование.
  2. Откройте настройки вашего сканера.
  3. Нажмите «Тест устройства» и отсканируйте код. Убедитесь, что в строке результата присутствуют невидимые символы разделителей (обычно отображаются как символы с кодом 29 в логе теста).

Проверим соответствие GTIN и типа номенклатуры

Часто ошибка «Код маркировки не соответствует номенклатуре» возникает из-за несовпадения идентификатора GTIN, зашитого в марке, и штрихкода, привязанного к карточке товара. Проанализируем логику 1С: при сканировании программа извлекает из кода GTIN (обычно это первые 14 цифр, начинающиеся с нуля) и ищет его среди загруженных штрихкодов в регистре сведений «Штрихкоды номенклатуры».

Обратите внимание на следующие моменты:

Настроим интеграцию с ИС МП (Честный ЗНАК)

Проанализируем настройки системы маркировки. Перейдите в раздел НСИ и администрирование — Настройка интеграции — Настройка ИС МП. Убедитесь, что для товарной группы «Альтернативная табачная продукция» установлена корректная дата начала обязательной маркировки и проставлены галочки ведения учета или выполните загрузку КИЗ из XML (УПД) — есть автоматизация интеграции с ЦРПТ и учета маркировки.

Иногда помогает временное отключение контроля статусов кодов маркировки, чтобы понять, является ли проблема локальной (в базе 1С) или внешней (ответ от серверов ЦРПТ). Однако помните, что это лишь диагностическая мера.

Исправим ошибку нормализации через кэш и патчи

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

Если вы программист, вы можете проанализировать, как формируется структура данных при сканировании, обратив внимание на объект ОбработкаПроверкиКодовМаркировкиИСМТ. Примерный формат данных, который должна получать система, выглядит следующим образом:


// Пример упрощенной структуры для анализа
ДанныеКода = Новый Структура;
ДанныеКода.Вставить("Текст", СчитанныйШтрихкод);
ДанныеКода.Вставить("Тип", ТипКодаМаркировки);
// Если здесь передается просто строка вместо структуры, 
// возникнет ошибка "Поле объекта не обнаружено"

Для исправления ситуации в релизе 11.4.13.281 без обновления всей конфигурации, необходимо проверить, установлены ли специфические исправления для общего модуля ИнтеграцияИСМП. Именно в нем прописаны логические проверки для АТП.

Итоговый чек-лист для решения проблемы:

  1. Обновите классификаторы: Зайдите в НСИ и администрирование — Поддержка и обслуживание — Классификаторы и обновите все доступные данные.
  2. Проверьте карточку товара: GTIN должен совпадать с маркой (14 символов), вид продукции — «Альтернативная табачная продукция».
  3. Настройте сканер: Режим COM-порта или используйте мобильный терминал сбора данных, поддержка GS1 DataMatrix — есть обработка для проверки и фиксации кодов маркировки.
  4. Установите патчи: Исправьте баг Поле объекта не обнаружено через официальный сервис обновлений 1С.
  5. Проверьте валидность: Отсканируйте код мобильным приложением «Честный ЗНАК», чтобы исключить брак самой типографской марки.

Соблюдение этих шагов позволит вам восстановить корректную отгрузку АТП через ЭДО и избавиться от технических ошибок парсинга кодов в «1С:Управление торговлей».

← На главную