Как настроить в 1С одновременную работу 1D- и 2D-сканеров без конфликтов?

Есть два одинаковых компьютера с 1С. На обоих подключены одинаковые 1D-сканеры штрихкодов в режиме эмуляции клавиатуры (сканируют цифры и отправляют Enter). <br/> <br/> На первом компьютере дополнительно подключён настольный 2D-сканер NT4010 в режиме COM-порта (пришлось ставить драйверы для какого-то COM-конвертора, штатный Windows 10 его не определил). NT4010 корректно считывает маркировку «Честный знак», но не передаёт считанное как текст в поля 1С (например, в комментарий к заказу). Ручной 1D-сканер на этом же компьютере вводит штрихкод как текст и отправляет Enter в нужное поле. <br/> <br/> На втором компьютере подключён ручной проводной сканер Kefar (пробовали и в USB-, и в COM-режимах, драйверы не требовались). Он также корректно читает «Честный знак», но не выдаёт считанное как простой текст в поля 1С. При этом есть странное поведение: если ручным 1D-сканером считать штрихкод товара в справочнике Номенклатуры, сканер не только вводит штрихкод и нажимает Enter, но как будто нажимает Enter дважды — сразу открывается карточка товара. Когда нужно считать код в комментарии к заказу, 1D вообще ничего не вводит. <br/> <br/> Похоже, сканер Kefar как-то влияет на работу всей системы, других вариантов подключения нет. Как корректно настроить/сконфигурировать Kefar и 1D-сканер, чтобы оба работали как эмуляторы клавиатуры и правильно вводили штрихкоды в 1С без побочных действий (лишних Enter и т. п.)?
  • 22 апреля 2026 г. 16:02
Ответы на вопрос 2
Коротко — проблема не в 1С, а в том, как работают интерфейсы сканеров: одни работают как «клавиатура» (HID‑keyboard / keyboard wedge) и тогда всё попадает в текущее поле ввода, другие работают как COM‑порт (последовательный) и данные в поле 1С не появляются, пока кто‑то не прочитает COM‑порт и не вставит данные в окно. Ещё частая причина «двойного Enter» — у сканера задан суффикс CR+LF или два раза отправляется символ перехода строки, и 1С это интерпретирует как два подтверждения/открытия формы.

Что нужно сделать — план действий и варианты решения.

1) Быстрый тест (обязательно)
- Откройте Блокнот (Notepad). Просканируйте штрихкод каждым сканером.
- Посмотрите, что появляется: текст штрихкода, какие дополнительные символы (CR, LF, TAB) и сколько «Enter» фактически отправляется.
- В Диспетчере устройств посмотрите, как определяется сканер: как HID Keyboard (клавиатурный ввод) или как COM (порта/USB‑Serial).

2) Выяснить режимы и поставить предпочтительный
- Идеал: оба сканера в режиме USB HID Keyboard (эмуляция клавиатуры). Тогда оба будут вводить текст в активное поле 1С как обычная клавиатура.
- Если NT4010 сейчас в COM‑режиме и вы не хотите/не можете писать обработчик в 1С — переведите его в HID Keyboard (по инструкции производителя или утилите конфигурации). Если штатный Windows не определял — это потому что был выбран виртуальный COM, а не HID.
- Если один из устройств не умеет HID, тогда второй вариант — оставить оба в COM и реализовать «чтение COM → вставка текста в окно» программно (служба/скрипт/компонента для 1С). Это сложнее.

3) Настройка суффиксов/префиксов (исправление двойного Enter)
- Найдите в руководстве по сканеру/утилите настройку суффикса (suffix) и префикса (prefix).
- Оставьте prefix = none (нет), suffix = только CR (Carriage Return) или вообще none.
  - Не ставьте CR+LF (CR+LF часто даёт двойную реакцию в приложениях).
  - Если при suffix = CR всё равно двойной Enter — попробуйте suffix = none (и вручную Enter при необходимости) или suffix = TAB (если нужно перейти в другое поле).
- После смены настроек снова протестируйте в Notepad и в 1С.

4) Если NT4010 остаётся в COM — как сделать данные видимыми в 1С
- Вариант A (правильный для 1С): перевести NT4010 в HID Keyboard режим (если поддерживается).
- Вариант B: написать в 1С (или поставить внешнюю утилиту) чтение данных из COM-порта. 1С сама по себе может работать с COM через внешние компоненты или через специальный драйвер; это требует доработки конфигурации.
- Вариант C (простое решение без изменений 1С): поставить маленькую программу «serial → keyboard» (wedge), она читает из COM и генерирует ввод клавиатуры в активное окно. Примеры: сторонние утилиты/драйверы «Serial to Keyboard», AutoHotkey‑скрипт, специализированные «COM2KB» решения. (Ищите по словам «serial to keyboard wedge», «COM to HID keyboard».)

Пример простого AutoHotkey подхода (идея; потребуется адаптация):
- AutoHotkey может читать COM‑порт и посылать SendInput(штрихкод){Enter} в активное окно — это заменит поведение HID‑сканера. (Если нужно, приведу пример кода.)

5) Что делать с Kefar (странное поведение)
- Сбросьте Kefar к заводским настройкам (выполняется баркодами из инструкции).
- Убедитесь, что интерфейс выставлен в USB HID Keyboard (если есть выбор USB/COM).
- Отключите любую «последовательность нажатий» (macros), disable «multi enter», disable «postamble CR+LF». Оставьте либо no suffix, либо single CR.
- Проверьте inter-character delay — если слишком маленькая, иногда приложение получает символы некорректно. Увеличьте немного, если наблюдаете «пропуск» вводов.

6) Учёт особенностей 1С
- 1С реагирует на Enter как подтверждение/открытие карточки. Если вы сканируете штрихкод в списке номенклатуры, то Enter может открывать карточку — чтобы этого избежать, сканируйте в поле ввода специально предназначенном для штрихкода, или уберите суффикс Enter.
- Для комментариев лучше суффикс none (вставлять только текст), или suffix = TAB, если нужно переходить к следующему полю.

7) Диагностика, если после настроек проблема остаётся
- В Notepad фиксируете, сколько и какие символы приходят.
- Убедитесь в диспетчере устройств, что сканер определился как HID Keyboard (если вы настроили его на HID).
- Попробуйте подключать сканер к другому USB‑порту (иногда USB3 vs USB2 меняют поведение).
- Посмотрите утилиту производителя для просмотра конфигурации сканера (она часто умеет вывести текущие настройки).

Короткий итог и рекомендации
- Лучшее решение: перевести оба сканера в режим USB HID Keyboard и настроить suffix = none или single CR (не CR+LF).
- Если один сканер только в COM — используйте «wedge» (программа, которая превращает COM данные в ввод клавиатуры) либо реализуйте чтение COM в 1С.
- Для настройки суффиксов/режимов используйте инструкцию/софт производителя (Kefar/NT4010) — там есть специальные программируемые штрихкоды или конфиг‑утилита.
- Тестируйте всегда сначала в Блокноте — это быстро покажет, что именно отправляет сканер.

Если хотите, пришлите точные модели/версии прошивки Kefar и NT4010 (или фото наклейки) — я подскажу, какие именно баркоды конфигурации отсканировать (или дам пример AutoHotkey‑скрипта для превращения COM→клавиатура).
Нашел в запасах ещё один сканер с PID 0204, настроил на глючном рабочем месте 2д в режиме ком-порта и всё заработало. Причем именно такая синергия - до этого ни ком-режим ни правильный пид не помогали по-отдельности.
Похожие вопросы