Подключение торгового оборудования к устаревшим системам на базе 1С 7.7 в современных операционных системах (Windows 10/11) часто превращается в настоящий квест. Основная сложность заключается в том, что современные USB-сканеры по умолчанию работают в режиме эмуляции клавиатуры, в то время как 1С 7.7 ожидает «Внешнее событие», которое штатно генерируется только при работе через COM-порт. В данной статье мы подробно разберем, как подружить ваш сканер с «семеркой», используя проверенные методы и драйверы. При планировании перехода на современную платформу можно изучить раздел с решениями для переноса данных из 1С 7.7 в новые конфигурации.
Прежде всего, нам необходимо определиться с методом передачи данных. Проанализируем два основных пути:
ВнешнееСобытие. Это наиболее правильный и надежный способ автоматизации.Рассмотрим пошагово настройку через драйверы АТОЛ, так как они наиболее гибко позволяют работать с обоими режимами.
Для работы нам потребуется классический «бесплатный» пакет драйверов АТОЛ (версии 6.x, например 6.5.3 или 2008 года). Современные версии требуют лицензирования, поэтому для 1С 7.7 старые версии остаются стандартом де-факто.
Выясним причину, почему драйвер может не работать сразу. В современных Windows обязательна ручная регистрация библиотеки Scanner1C.dll. Разберем процесс:
Scanner1C.dll в папку с установленной платформой 1С (обычно C:\Program Files (x86)\1Cv77\BIN) или в системную папку System32 / SysWOW64.regsvr32 "C:\Путь_к_файлу\Scanner1C.dll".Важный момент: Если вы работаете в терминальном режиме (RDP), драйвер должен быть установлен и зарегистрирован именно на сервере.
Проанализируем ситуацию со сканером Argox AS-8000. Чтобы он начал работать как виртуальный COM-порт, его нужно перевести в этот режим с помощью специальных служебных штрих-кодов из мануала (Programming Guide). Обычно последовательность такая:
Если после этого Windows определила устройство как «Неизвестное», нам необходимо установить драйвер виртуального моста. Для большинства сканеров Argox подходят драйверы Silicon Labs CP210x USB to UART Bridge. После установки в Диспетчере устройств в разделе «Порты (COM и LPT)» должен появиться новый порт, например, COM3.
Теперь перейдем в саму программу. Откроем меню Сервис — Параметры. Если драйвер зарегистрирован верно, там появится вкладка «Драйвер устройств ввода». Рассмотрим настройки подробнее:
COM3). Если сканер остался «клавиатурным», выбираем значение Клавиатура — драйвер АТОЛ умеет перехватывать нажатия клавиш и превращать их во внешнее событие.#13 (символ возврата каретки CR). Если в настройках сканера включен перевод строки, суффикс может быть #13#10.Для проверки нажмем кнопку «Поиск оборудования». Считаем любой штрих-код. В окне поиска мы должны увидеть не только сам код, но и символы в конце — это и есть наши суффиксы. Укажите их в соответствующих полях настройки.
Чтобы программа реагировала на сканирование, в модуле формы (например, в форме подбора товара или документа «Реализация») должна быть предопределенная процедура. Проанализируем пример кода:
Процедура ВнешнееСобытие(Источник, Событие, Данные)
Если (Источник = "Scanner") И (Событие = "DataEvent") Тогда
// Очищаем полученные данные от возможных лишних пробелов
ШтрихКод = СокрЛП(Данные);
// Поиск товара в справочнике
СпрНоменклатура = СоздатьОбъект("Справочник.Номенклатура");
Если СпрНоменклатура.НайтиПоРеквизиту("ШтрихКод", ШтрихКод, 1) = 1 Тогда
// Товар найден, добавляем в табличную часть
ДобавитьТоварВДокумент(СпрНоменклатура.ТекущийЭлемент());
Иначе
Предупреждение("Товар с кодом " + ШтрихКод + " не найден!");
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Обратите внимание: если вы используете режим «Клавиатура» в драйвере АТОЛ, убедитесь, что в форме документа нет текстовых полей, которые находятся в фокусе и могут принять ввод до того, как его перехватит драйвер.
Если ваша 1С работает на сервере, а сканер подключен к локальному компьютеру, выполним следующие шаги:
change port /query. Мы должны увидеть проброшенный порт (например, COM3, который мапится на клиентский порт).Важно: Если порт виден, но 1С пишет «Нет монопольного доступа», скорее всего, какая-то другая программа или сессия уже заняла этот порт. Выясним это, закрыв все лишние приложения и проверив настройки в других запущенных экземплярах 1С.
Разберем, почему 1С может «не видеть» сканер, даже если драйвер установлен:
Enter после кода. Нужно найти в мануале штрих-код Add CR Suffix или Add Enter Suffix и считать его.Подводя итог, можно сказать, что связка Argox/Honeywell и 1С 7.7 вполне работоспособна. Главное — добиться от сканера передачи суффикса #13 и правильно зарегистрировать библиотеку Scanner1C.dll в операционной системе. Использование режима эмуляции COM-порта всегда предпочтительнее, так как оно исключает ошибки при «проглатывании» символов в перегруженных терминальных сессиях.