Некоторые программы умеют принимать сканер штрихкодов через COM-порт — последовательный порт. Мы считаем такое подключение сканера самым правильным, поскольку ваша программа получит штрих код от сканера в правильном формате со всеми правильными символами и разделителями.
Так устроено подключение оборудования в 1С и в других программах, в том числе программе «Помощник Маркировки».
Сложность в том, что COM-порт может открыть только одна программа. Если подключить сканер напрямую к учётной программе, он будет недоступен для остальных программ — из кассы, из кабинета маркетплейса, из 1С, из браузера в системе электронного документооборота. Кроме того, читая порт байтами, программа ждёт служебный разделитель GS (байт 0x1D) настоящим символом, а не нажатием клавиши, и без него не может разобрать код маркировки.
Обе задачи решает связка ScanerComProxy и бесплатного драйвера виртуальных портов com0com. Сканер подключается к ScanerComProxy через COM-порт (для гарантированного получения правильного формата отсканированного штрих-кода маркировки), а учётная программа получает отдельный виртуальный COM-порт, связанный с прокси. Программа видит обычный сканер и получает код с настоящим разделителем GS, а сам сканер при этом остаётся доступен и другим программам. Такое подключение позволяет использовать один правильно настроенный сканер для работы в различных программах и корректно передавать отсканированные коды маркировки.
В этой инструкции в роли учётной программы — «Помощник Маркировки», но подойдёт любая программа, умеющая читать сканер через COM-порт. Отличается только место, где указывается номер порта.
Как это работает
Сканер (например, COM5) остаётся подключённым к ScanerComProxy. Прокси открывает одну сторону виртуальной пары, а учётная программа — вторую. Между собой стороны пары связаны драйвером com0com, поэтому всё, что прокси отдаёт в одну сторону, программа читает из второй.
Сканер (COM5) → ScanerComProxy → COM6
⇅ виртуальная пара
Учётная программа ← COM7
Программа сама рисует эту схему на вкладке «COM-выход» и подсказывает, какой порт указать в учётной программе. Скорость и формат на виртуальной паре драйвер игнорирует, подбирать их не нужно.
Что понадобится
- Компьютер с Windows 7 SP1, 8, 8.1, 10 или 11.
- Сканер 2D-кодов, умеющий работать в режиме эмуляции COM-порта.
- Программа ScanerComProxy последней версии: диагностика com0com, о которой речь ниже, появилась в версии 1.1.2.
- Драйвер виртуальных портов com0com.
- Учётная программа, которая читает сканер через COM-порт (в примере — «Помощник Маркировки»).
Если инструкция покажется очень сложной и Вы самостоятельно не сможете справиться с настройкой сканера - можете обратиться в нашу платную техническую поддержку.
Шаг 1. Установите ScanerComProxy и подключите сканер
Скачайте установщик: ScanerComProxy_setup.zip. Распакуйте архив и запустите установщик, при установке включите автозапуск с Windows.
Переведите сканер в режим COM-порта: в инструкции к сканеру этот режим может называться «USB COM», «USB Virtual COM», «USB CDC» или «USB Serial», переключение обычно выполняется служебным штрихкодом производителя. Проверьте в «Диспетчере устройств» Windows, что в разделе «Порты (COM и LPT)» появился сканер с номером порта, например COM5.

Затем откройте настройки ScanerComProxy, на вкладке «Сканер» выберите порт сканера и нажмите «Сохранить».
Важно: если сканер уже подключён через COM-порт в учётной программе, отключите это в её настройках. На этом этапе порт сканера должен быть свободен для ScanerComProxy — к программе мы подключим не сам сканер, а виртуальный порт.
Шаг 2. Установите драйвер com0com
Скачайте com0com только с официальной страницы проекта:
sourceforge.net/projects/com0com, файл com0com-3.0.0.0-i386-and-x64-signed.zip. Это драйвер режима ядра, который получает полный доступ к системе, поэтому не используйте сборки со сторонних сайтов.
Распакуйте архив и запустите 64-битный установщик от имени администратора. На шаге выбора компонентов оставьте COM# ↔ COM#, а CNCA0 ↔ CNCB0 снимите: так com0com сам назначит паре обычные номера портов, и переименовывать их вручную не придётся. Завершите установку.
Шаг 3. Проверьте пару портов и при необходимости исправьте номера
Если при установке вы оставили компонент COM# ↔ COM#, номера уже назначены автоматически, например COM6 и COM7. Проверьте в «Диспетчере устройств», что в разделе «Порты (COM и LPT)» появились два порта с подписью «com0com - serial port emulator».
Если номера получились нестандартными (вместо COMx видны имена вида CNCA0/CNCB0), откройте настройки ScanerComProxy, вкладку «COM-выход» и нажмите «Диагностика com0com…»:
- Выберите нужную пару в списке — окно покажет обе стороны и их состояние.
- Если имена нестандартные, станет доступна кнопка «Исправить назначение». Нажмите её.
- Подтвердите запрос прав администратора Windows. Программа поручит com0com назначить паре свободные COM-номера; уже назначенные номера сохраняются.
Изменения применяются сразу, независимо от кнопки «Сохранить» в ScanerComProxy. Перед исправлением закройте программы, которые уже используют эту пару. Если оба COM-номера назначены и видны Windows, окно сообщит, что исправление не требуется.
Есть и ручной способ — например, если com0com установлен в нестандартную папку и программа не находит setupc.exe. Откройте командную строку от имени администратора, перейдите в папку драйвера и выполните:
cd "C:\Program Files (x86)\com0com"
setupc.exe list
setupc.exe change CNCA0 PortName=COM6
setupc.exe change CNCB0 PortName=COM7
Команда setupc.exe list показывает текущие пары и их имена (CNCA0/CNCB0, а если пара уже была — CNCA1/CNCB1). Лишнюю пару можно удалить командой setupc.exe remove 0.
Важно: «Диагностика com0com» проверяет только имена портов и их видимость в Windows. Она не проверяет передачу данных и не показывает, занят ли порт другой программой — это проверяется обычным сканированием на шаге 7.
Шаг 4. Включите COM-выход в ScanerComProxy
Откройте настройки ScanerComProxy и перейдите на вкладку «COM-выход». Кнопка «Обновить» перечитывает список портов, а «Диагностика com0com…» открывает проверку пар драйвера, о которой шла речь в шаге 3.
- Поставьте галочку «Отдавать код в виртуальный COM-порт».
- В поле «Наша сторона пары» выберите одну сторону пары, например COM6.
- В поле «Суффикс кода» оставьте «Как у сканера» — прокси повторит то окончание, которым закрылась посылка от сканера. При необходимости выберите CR, LF или CRLF.
- Оставьте включёнными «Передавать команды программы сканеру (обратный канал)» и «Транслировать сигнальные линии DTR/RTS»: без них часть программ не «увидит» сканер.
После выбора стороны пары программа подскажет: «В настройках вашей программы укажите порт COM7», нарисует схему подключения и позволит скопировать номер кнопкой «Копировать». Нажмите «Сохранить».
Если выбрать в этом поле порт самого сканера, программа предупредит: «Это порт сканера. Выберите одну из сторон виртуальной пары». Порт сканера занимает сам ScanerComProxy, отдавать в него код не нужно.
Шаг 5. Выберите приёмник «Виртуальный COM» для учётной программы
Включить COM-выход недостаточно: нужно ещё, чтобы ScanerComProxy отправлял в него коды. За это отвечает настройка «Приёмник» в профиле вывода.
Если ScanerComProxy нужен только для этой программы, откройте вкладку «По умолчанию» и выберите приёмник «Виртуальный COM». Тогда коды всегда будут уходить в виртуальный порт.
Если же сканер должен продолжать работать и в других окнах (например, в браузере или в кассе), заведите на вкладке «Правила» отдельное правило на окно учётной программы и в его профиле укажите приёмник «Виртуальный COM». Тогда код уйдёт в COM-порт, когда активно окно этой программы, а в остальных окнах вставится как обычно — с клавиатуры.
Нажмите «ОК» и «Сохранить». Для приёмников «Виртуальный COM» и TCP разделитель GS всегда передаётся настоящим байтом 0x1D, а клавиатурные настройки (политика GS, пауза между символами, завершающая клавиша) к ним не применяются.
Шаг 6. Укажите порт в учётной программе
Откройте в учётной программе настройки подключения сканера и укажите вторую сторону пары — тот порт, который подсказал ScanerComProxy (в нашем примере COM7). Скорость и остальные параметры порта оставьте по умолчанию: на виртуальной паре драйвер их игнорирует.
В «Помощнике Маркировки» это раздел «Профиль и настройки» → «Подключение сканера»: выберите работу через COM-порт и укажите номер COM7.
Важно: в учётной программе указывайте именно сторону пары (COM7), а не порт самого сканера (COM5). Порт сканера занят ScanerComProxy, и программа не сможет его открыть.
Шаг 7. Проверьте
Убедитесь, что значок ScanerComProxy в трее показывает «COM-выход: COM6 открыт». Откройте в учётной программе раздел, где сканируют коды (в «Помощнике Маркировки», например, «Проверка кодов»), и отсканируйте код. Код должен появиться в программе целиком, с настоящими разделителями GS.
Щёлкните правой кнопкой по значку ScanerComProxy: в меню видны состояние COM-выхода, последний код и строка «Маршрут» с названием сработавшего правила.
Если что-то не работает
В трее «COM-выход: COMx не найден». Пара не создана или номера заданы неверно. Откройте «COM-выход» → «Диагностика com0com…»: она покажет найденные пары и подскажет, что делать. Проверьте по «Диспетчеру устройств», что оба порта com0com существуют.
Порты com0com названы нестандартно (CNCA0/CNCB0). Откройте «COM-выход» → «Диагностика com0com…», выберите пару и нажмите «Исправить назначение» (шаг 3).
«COM-выход: COMx занят другой программой». Эту сторону пары уже открыла другая программа. Убедитесь, что в учётной программе указана вторая сторона пары и что на нашу сторону не заявляется кто-то ещё.
«Это порт сканера. Выберите одну из сторон виртуальной пары». На вкладке «COM-выход» выбран порт физического сканера. Выберите COM6 или COM7.
«Вторую сторону пары определить не удалось». У портов нестандартные имена, или драйвер нестандартный. Нажмите «COM-выход» → «Диагностика com0com…» → «Исправить назначение» (шаг 3). Если com0com установлен в нестандартную папку, посмотрите имя второй стороны командой setupc.exe list и укажите его вручную.
«Диагностика не находит setupc.exe». Драйвер установлен в нестандартную папку. Задайте номера вручную из командной строки (шаг 3) или переустановите com0com в стандартный каталог с компонентом COM# ↔ COM#.
Порт открывается, но коды не приходят. Проверьте, что приёмник «Виртуальный COM» выбран в профиле (шаг 5) и что «Маршрут» в трее указывает на нужное правило. Также убедитесь, что включены «Передавать команды программы сканеру» и «Транслировать сигнальные линии DTR/RTS».
Учётная программа не видит порт. Запустите её заново после создания пары: некоторые программы читают список портов только при старте.
Остальные возможности программы описаны в общей инструкции по настройке ScanerComProxy.
Другие инструкции
Для других программ и площадок у нас есть отдельные пошаговые инструкции:
- Как настроить сканер для работы с кодами маркировки в Ozon Seller;
- Как настроить сканер для Кассы МойСклад с помощью ScanerComProxy;
- Как настроить сканер для работы с кодами маркировки в Wildberries.
Нужна помощь?
Мы можем настроить ScanerComProxy, драйвер com0com и сканер для работы с вашей учётной программой удалённо: подключимся к компьютеру, установим драйвер, назначим пару портов и проверим передачу кодов. Оплата по факту результата. Подробнее об услуге: техническая поддержка.
Вопросы и предложения по программе пишите на ca@ucparma.ru или звоните: +7 (342) 2-700-750.
