Почему 1С:Розница выдает ошибку при сканировании маркировки обуви и как это исправить

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

При работе с маркированной продукцией, особенно в релизах 1С:Розница 2.3.5.x, пользователи часто сталкиваются с ситуацией, когда программа успешно считывает обычный штрихкод (EAN-13), но при запросе кода маркировки (DataMatrix) выдает ошибку. Проанализируем причины этой проблемы и разберем по шагам методы ее решения.

Причина 1: Несоответствие марки и номенклатуры в справочнике

Одной из наиболее частых причин возникновения ошибки является нарушение связи между штрихкодом упаковки (DataMatrix) и конкретной карточкой товара. Рассмотрим, как программа сопоставляет эти данные. Когда мы сканируем обычный штрихкод, 1С находит товар. Затем, когда программа запрашивает код маркировки, она проверяет, привязана ли эта конкретная марка к данному товару в регистре ШтрихкодыУпаковокТоваров. Для быстрого сопоставления данных и получения информации напрямую из ГИС МП можно использовать обработку для получения сведений по кодам марок и GTIN из Честного Знака.

Если марка была получена на "остатки" через упрощенную схему в Честном Знаке, она содержит технический GTIN (обычно начинающийся на 029). Если этот GTIN не прописан в карточке товара или марка ошибочно привязалась к другой номенклатуре при первичной приемке, возникнет ошибка. Выясним, как это исправить:

  1. Перейдем в справочник Штрихкоды упаковок и товаров.
  2. Просканируем марку прямо в список или воспользуемся поиском по коду.
  3. Если мы видим, что марка уже привязана к другой номенклатуре, необходимо "отвязать" ее. Удалим запись об этой марке из регистра или перепривяжем ее к правильному товару.
  4. Проверим наличие GTIN марки в списке штрихкодов самой номенклатуры. Для этого откроем карточку товара, перейдем по ссылке Штрихкоды и убедимся, что там указаны все идентификаторы, которые могут содержаться в марках.

Причина 2: Неверная настройка "Особенности учета"

Проанализируем ситуацию, описанную пользователем: если выбирать товар вручную, программа не запрашивает код маркировки, а при сканировании штрихкода — требует его, но выдает ошибку. Это явный признак того, что в Виде номенклатуры неверно указана Особенность учета.

Для корректной работы с обувью в 1С:Розница необходимо, чтобы у товара был установлен вид номенклатуры с типом "Товар" и особенностью учета "Обувная продукция". Если вы просто изменили текстовое название вида номенклатуры, это не подействует на логику программы. Рассмотрим подробнее, как правильно изменить настройки для уже созданных товаров:

  1. Откроем справочник Виды номенклатуры.
  2. Выберем вид, к которому относится ваша обувь.
  3. Убедимся, что в поле Тип номенклатуры выбрано значение "Товар", а в поле Особенность учета — "Обувная продукция".
  4. Если товаров много и у них установлены разные (неверные) виды, воспользуемся стандартной обработкой Групповое изменение реквизитов.

Разберем работу с обработкой по шагам:

Причина 3: Настройки сканера штрихкодов

Иногда ошибка "QR-кода" (DataMatrix) вызвана тем, что сканер неправильно передает считанные данные в 1С. Для маркировки критически важно, чтобы сканер передавал спецсимвол GS1 (FNC1). Если сканер работает в режиме эмуляции клавиатуры, он может "съедать" невидимые символы, превращая сложный код маркировки в обычную строку текста, которую 1С не может распознать как марку. Для автоматического исправления этой проблемы на стороне программы можно использовать расширение для добавления символов GS к считанным штрихкодам.

Проанализируем, как проверить работу оборудования:

  1. Откроем Подключаемое оборудование.
  2. Перейдем в настройки сканера штрихкодов и нажмем кнопку Тест устройства.
  3. Просканируем марку. В окне теста мы должны увидеть не только буквы и цифры, но и системные префиксы (например, 'h01' или символы в угловых скобках).
  4. Если префиксов нет, необходимо перенастроить сканер в режим NativeApi или COM-портов, используя инструкцию к вашей модели сканера.

Техническая реализация проверки марки

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


// Пример логики поиска владельца штрихкода упаковки
Функция НайтиВладельцаМарки(СчитанныйШтрихкод)
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |	ШтрихкодыУпаковок.Владелец КАК Товар,
        |	ШтрихкодыУпаковок.Номенклатура КАК НоменклатураСсылка
        |ИЗ
        |	Справочник.ШтрихкодыУпаковокТоваров КАК ШтрихкодыУпаковок
        |ГДЕ
        |	ШтрихкодыУпаковок.ЗначениеШтрихкода = &Штрихкод";
    
    Запрос.УстановитьПараметр("Штрихкод", СчитанныйШтрихкод);
    Выборка = Запрос.Выполнить().Выбрать();
    
    Если Выборка.Следующий() Тогда
        Возврат Выборка.НоменклатураСсылка;
    Иначе
        Возврат Неопределено;
    КонецЕсли;
КонецФункции

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

Важные моменты при работе с остатками

Поскольку в обсуждении речь шла об "остатках", важно помнить: такие коды маркировки должны быть введены в оборот. Выясним статус кода через личный кабинет Честного Знака. Если в системе ГИС МП код имеет статус "Нанесен" или "Выбыл", 1С при включенном контроле статусов не позволит совершить продажу.

Резюмируем: для исправления ошибки сканирования QR-кода маркировки в 1С:Розница 2.3 следует выполнить три основных действия:

После выполнения этих настроек в РМК при сканировании штрихкода поле марки должно подсвечиваться корректно, а запрос DataMatrix — завершаться успешным добавлением товара в чек.

← На главную