Коротко — проблема не в 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→клавиатура).