Почему при сканировании штрихкода в 1С:УТ 11.4 добавляется пустая строка и как это исправить?

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

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

Выясняем причину: механизм «двойного подтверждения»

Когда вы используете сканер в режиме эмуляции клавиатуры, 1С воспринимает каждое считывание как быстрый ввод символов с последующим нажатием управляющей клавиши. Чаще всего в качестве такой клавиши выступает Enter (код ASCII #13, он же CR — Carriage Return).

Разберем ситуацию подробнее: если в настройках самого сканера установлен суффикс «CR+LF» (код #13 и код #10), а в 1С указан только суффикс #13, происходит следующее:

  1. Сканер передает штрихкод и символ #13.
  2. 1С получает сигнал «Конец ввода», находит товар и добавляет его в строку.
  3. Сразу после этого сканер передает оставшийся символ #10 (перевод строки).
  4. 1С интерпретирует этот символ как нажатие клавиши Enter пользователем. Поскольку после добавления товара фокус ввода остается в табличной части, этот «лишний» ввод создает новую пустую строку или переводит курсор в режим редактирования следующей строки.

Шаг 1. Тестирование в текстовом редакторе

Проанализируем работу оборудования вне среды 1С. Для этого откроем обычный блокнот (Notepad) и считаем любой штрихкод. Нам нужно обратить внимание на поведение курсора:

Важно: Для корректной работы в 1С в режиме клавиатуры нам нужно добиться перехода ровно на одну строку вниз.

Шаг 2. Настройка суффикса в 1С и на сканере

Посмотрим на настройки в самой программе. Перейдем в раздел Администрирование — Подключаемое оборудование. Откроем настройки вашего сканера штрихкода.

Проанализируем параметр Суффикс. Обычно там должно стоять значение 13. Если ваш сканер в блокноте делает двойной отступ, попробуйте изменить значение в 1С на 13 10. Однако это лишь программная «заплатка». Правильнее будет настроить сам сканер.

Для моделей Honeywell (1450g, 1250g) и многих других процедура настройки выглядит так:

  1. Найдите инструкцию к вашему сканеру (User Manual или Quick Start Guide).
  2. Найдите раздел «Data Formatting» или «Suffixes».
  3. Считайте управляющий штрихкод Clear All Suffixes (очистить все суффиксы).
  4. Считайте код Add CR Suffix (добавить суффикс возврата каретки).
  5. Если сканер продолжает добавлять пустую строку, воспользуйтесь кодом Standard Product Default Settings для полного сброса устройства к заводским настройкам.

Шаг 3. Перевод сканера в режим эмуляции COM-порта (Virtual COM)

Это самый надежный способ, который рекомендуют опытные специалисты. Режим эмуляции клавиатуры очень зависим от текущей раскладки (RU/EN) и нажатых клавиш Caps Lock или Shift. Кроме того, драйвер клавиатуры в 1С часто работает через перехват событий, что и приводит к фантомным строкам.

Проанализируем процесс перехода на COM-порт по шагам:

  1. Сервисный штрихкод: Найдите в инструкции штрихкод USB Serial Emulation или Enable Uni-Directional USB Serial Emulation и считайте его сканером. Устройство «переподключится» в системе.
  2. Установка драйвера: Windows может не найти драйвер автоматически. Вам потребуется скачать с сайта производителя (например, Honeywell или Zebra) драйвер Virtual COM Port Driver.
  3. Проверка в диспетчере устройств: В разделе «Порты (COM и LPT)» должен появиться новый порт, например, Honeywell Virtual COM Port (COM5).
  4. Настройка в 1С:
    • Зайдите в карточку оборудования.
    • Смените тип порта с «Клавиатура» на номер вашего COM-порта.
    • Нажмите «Тест устройства». Теперь при сканировании 1С будет получать чистые данные напрямую из порта, игнорируя фокус ввода и раскладку клавиатуры.

Решение проблемы странных кодов (например, «2_0000000000000_»)

Иногда пользователи УТ 11.4 сталкиваются с тем, что вместо нормального кода считывается абракадабра. Это происходит из-за того, что драйвер 1С (NativeApi) в режиме клавиатуры пытается преобразовать нажатия клавиш в символы. Если у вас включена русская раскладка, драйвер может ошибочно инвертировать символы.

Рассмотрим, как это выглядит в логике обработки (условный пример):


// Упрощенная логика обработки события сканирования
Процедура ПриВнешнемСобытии(Источник, Событие, Данные)
    Если Событие = "Barcode" Тогда
        // Если данные пришли через буфер клавиатуры с неправильной раскладкой, 
        // 1С может получить искаженную строку
        Штрихкод = ОбработатьПрефиксыИСуффиксы(Данные); 
        ДобавитьТоварВТабличнуюЧасть(Штрихкод);
    КонецЕсли;
КонецПроцедуры

Чтобы избежать этого, обязательно переводите сканеры в режим COM-порта. Это полностью исключает влияние раскладки Windows на передаваемые данные.

Особенности документа «Пересчет товаров»

Документ Пересчет товаров в современных версиях УТ 11 использует логику динамического обновления строк. При каждом сканировании система инициирует серверный вызов для поиска товара и обновления остатков. Если в этот момент сканер посылает лишний управляющий символ (тот самый #10), система может воспринять его как команду «Создать новую строку» в уже обновленной форме.

Выясним еще одну причину: Таймаут. В настройках драйвера в 1С есть параметр «Чувствительность» или «Таймаут». Если он установлен слишком маленьким (например, менее 30 мс), 1С может разорвать один штрихкод на два события. Первое событие добавит товар, а второе (содержащее суффикс) — создаст пустую строку. Попробуйте экспериментально увеличить таймаут до 60–100 мс.

Итоги и рекомендации

Для стабильной работы сканирования в 1С:Управление торговлей 11.4 выполните следующие действия:

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

← На главную