Как исправить ошибку «неполный код» при сканировании маркировки в 1С:Розница 2.3

База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как исправить ошибку «неполный код» при сканировании маркировки в 1С:Розница 2.3

Просмотр 1 ветки ответов
  • Автор
    Записи
    • #38804
      Фото аватараOdineski
      Участник

        Розница, редакция 2.3 (2.3.25.23) ПРИ СКАНИРОВАНИИ КОДА МАРКИРОВКИ ОШИБКА НЕ ПОЛНЫЙ КОД СКАНЕР В БЛОКНОТ СКАНИРУЕТ ВЕРНО

      • #38805
        bot_avaOdin — Одинэсник
        Участник

          В вашем случае наиболее вероятна проблема не в самом сканере, а в передаче данных в новое РМК 1С:Розницы 2.3.25.23.

          Если в Блокнот код попадает полностью, а в РМК 1С определяется как «неполный код», обычно причина одна из следующих:

          1. сканер работает в режиме эмуляции клавиатуры;
          2. РМК не успевает принять весь поток символов;
          3. управляющий разделитель GS внутри кода маркировки передается некорректно;
          4. неверно настроен суффикс сканера;
          5. в РМК используется проблемный режим ввода текста.

          Для кодов маркировки обычный режим USB-клавиатуры часто работает нестабильно. Блокнот принимает символы проще, а РМК дополнительно обрабатывает код, ищет разделители GS1 и запускает проверку марки.

          ## Основное решение

          Переведите 2D-сканер из режима эмуляции клавиатуры в режим COM-порта или подключите его через Native API.

          Для Розницы 2.3.25.23 предпочтительный порядок такой:

          1. Native API, если модель сканера поддерживает этот режим.
          2. COM-порт, если Native API не поддерживается.
          3. Эмуляция клавиатуры только как временный вариант.

          В материалах по новым версиям РМК уже отмечалась проблема: сканер в режиме эмуляции клавиатуры корректно считывает код в Блокнот, но в РМК маркированная продукция определяется как неполный код. Перевод сканера в COM-режим обычно устраняет проблему.

          ## Настройка через COM-порт

          ### 1. Переведите сканер в режим COM

          Для этого используются специальные служебные штрихкоды из инструкции к сканеру:

          — включение режима Serial/COM;
          — выбор скорости, обычно 9600 или 115200;
          — включение передачи символа-разделителя GS;
          — добавление суффикса Enter, если это требуется драйвером.

          Точные штрихкоды зависят от производителя и модели сканера. Нельзя использовать инструкцию от другой модели, даже если внешний вид сканеров одинаковый.

          После перевода сканера в COM-режим в Windows должен появиться новый COM-порт в диспетчере устройств.

          Проверяется так:

          ### 2. Включите подключаемое оборудование в 1С

          Обычно путь такой:

          Создайте или откройте сканер и установите:

          — вид оборудования: Сканер штрихкода;
          — драйвер: 1С: Сканеры штрихкода или актуальный драйвер из библиотеки подключаемого оборудования;
          — тип подключения: COM;
          — номер COM-порта, который появился в Windows;
          — скорость согласно настройке сканера;
          — окончание строки: CR или Enter, если это предусмотрено драйвером.

          После записи выполните проверку оборудования.

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

          ## Если используете Native API

          В настройках оборудования выберите драйвер сканера, работающий через Native API, установите компоненту и перезапустите клиент 1С.

          После этого проверьте:

          1. сканер виден в списке подключенного оборудования;
          2. оборудование назначено текущему рабочему месту;
          3. в настройках рабочего места выбран именно этот сканер;
          4. РМК было закрыто и открыто заново после изменения настроек.

          Иногда после установки драйвера недостаточно просто обновить форму РМК. Нужно полностью закрыть сеанс 1С и запустить его заново.

          ## Временное решение для режима клавиатуры

          Если перевести сканер в COM пока нельзя, попробуйте замедлить передачу символов.

          В настройках сканера найдите параметры типа:

          — Intercharacter Delay;
          — Character Delay;
          — Keyboard Delay;
          — Delay Between Characters.

          Установите задержку:

          Если не поможет, попробуйте:

          После этого настройте суффикс:

          Важно: не добавляйте одновременно несколько суффиксов, например Enter + Tab + CR. Для РМК это может восприниматься как несколько команд подряд.

          Также проверьте, чтобы в настройках сканера не были включены:

          — префикс перед кодом;
          — дополнительные символы до начала DataMatrix;
          — дополнительные символы после кода;
          — автоматическое добавление пробела;
          — преобразование GS в пробел;
          — удаление управляющих символов;
          — передача кода только до первого разделителя.

          ## Важная проверка кода в Блокноте

          То, что визуально код в Блокноте выглядит полным, еще не гарантирует, что он передается правильно.

          Внутри кода маркировки могут находиться невидимые управляющие разделители GS. В Блокноте они могут отображаться как пробел, квадратик или вообще не отображаться.

          Нужно проверить:

          1. не добавляется ли лишний символ в начале;
          2. не обрезается ли хвост кода;
          3. передается ли разделитель GS;
          4. нет ли переноса строки внутри кода;
          5. не меняется ли раскладка клавиатуры;
          6. не преобразуется ли часть символов клавиатурным драйвером.

          Для проверки можно временно использовать текстовый редактор, который показывает непечатаемые символы, либо диагностическую программу производителя сканера. Обычный Блокнот для такой проверки недостаточен.

          ## Проверьте настройки самого DataMatrix

          Для маркировки сканер должен работать именно как 2D-сканер и поддерживать:

          — DataMatrix ECC200;
          — GS1 DataMatrix;
          — передачу символа-разделителя GS;
          — полную передачу Code 128/DataMatrix, если используется несколько типов кодов;
          — передачу полного кода без обрезки криптохвоста.

          В настройках часто встречаются параметры ограничения длины:

          — максимальная длина данных;
          — минимальная длина данных;
          — обрезка хвоста;
          — передача только идентификатора товара;
          — отключение GS1-разделителей.

          Для маркированного товара такие ограничения нужно отключить.

          ## Проверьте, где возникает ошибка

          Важно определить, на каком этапе код теряется.

          ### Вариант 1. Код уже неполный в поле РМК

          Тогда проблема в передаче:

          — эмуляция клавиатуры;
          — скорость передачи;
          — разделитель GS;
          — настройки префикса/суффикса;
          — неправильный драйвер.

          ### Вариант 2. В поле РМК код полный, но 1С пишет «Неполный код»

          Тогда проблема может быть в обработке маркировки:

          — 1С не распознала GS1-разделители;
          — код передан без обязательной части криптохвоста;
          — номенклатура не сопоставлена с кодом маркировки;
          — для товара неправильно настроен вид номенклатуры;
          — включен неподходящий тип маркировки;
          — используется устаревшая или некорректно установленная компонента оборудования.

          ### Вариант 3. В РМК товар подбирается, но не проходит проверку

          Тогда сканер, скорее всего, передает код правильно, а проблема уже в учете маркировки:

          — отсутствует запись в справочнике Штрихкоды упаковок и товаров;
          — код не связан с нужной номенклатурой;
          — неверно настроен вид номенклатуры;
          — не выполнена настройка ИС МП;
          — код уже выбыл или имеет неподходящий статус;
          — не настроена проверка через Честный знак или локальный модуль.

          Отключать контроль маркировки для устранения ошибки не следует. Это не исправляет потерю символов и может привести к некорректному чеку.

          ## Что проверить в 1С

          Для маркируемого товара проверьте:

          У вида номенклатуры должен быть установлен соответствующий признак маркируемой продукции.

          Также проверьте:

          В записи кода должны быть указаны:

          — полный код маркировки;
          — нужная номенклатура;
          — тип упаковки или тип кода, соответствующий маркированному товару;
          — корректный тип штрихкода, обычно DataMatrix.

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

          ## Рекомендуемая последовательность действий

          Сделайте именно так:

          1. Закройте РМК.
          2. Переведите сканер из режима клавиатуры в COM-режим.
          3. Проверьте, что в Windows появился COM-порт.
          4. В 1С установите актуальный драйвер сканера.
          5. Укажите правильный COM-порт.
          6. Включите передачу GS1-разделителей.
          7. Установите суффикс CR/Enter, если он требуется драйвером.
          8. Перезапустите клиент 1С.
          9. Откройте обычное управляемое РМК.
          10. Проверьте сканирование марки.
          11. Если ошибка останется, проверьте конкретный код в Штрихкодах упаковок и товаров и настройки вида номенклатуры.

          В вашем случае первым делом я бы не менял настройки номенклатуры, а перевел сканер с клавиатурной эмуляции на COM или Native API. Признак «в Блокнот полный код, а в РМК неполный» очень характерен именно для потери символов или управляющего разделителя при передаче в новое РМК.

          Рекомендую посмотреть здесь:

          — [Проблема сканирования маркированного товара в новом РМК 1С:Розницы](https://infostart.ru/1c/articles/2629605/)
          — [Настройка 2D-сканеров для работы с маркировкой](https://infostart.ru/1c/articles/1671209/)
          — [Работа со сканером штрихкодов в 1С](https://infostart.ru/1c/articles/619475/)

      Просмотр 1 ветки ответов
      • Для ответа в этой теме необходимо авторизоваться.
      База знаний 1С