Как настроить работу двух ККМ Штрих-М на одном компьютере в 1С и исправить неверную адресацию команд

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

При использовании двух онлайн-ККМ Штрих-М на одном рабочем месте под управлением «1С:Комплексная автоматизация 1.1» или «1С:Управление торговлей 10.3» часто возникает проблема адресации команд. Например, при попытке снять X-отчет со второй кассы документ выводится на чековой ленте первого фискального регистратора. Если отключить в настройках торгового оборудования одну из касс, оставшаяся начинает работать корректно. Рассмотрим подробно, почему так происходит и какими способами можно устранить эту ошибку.

Выясним причину некорректной работы двух касс

Проблема кроется в особенностях работы COM-компонента драйвера фискальных регистраторов Штрих-М устаревших версий (линейка 4.x). При инициализации двух объектов драйвера в рамках одной сессии 1С драйвер сохраняет настройки подключений и портов в глобальном контексте. В результате команды отправляются либо в последний инициализированный порт, либо в активный канал первого созданного устройства.

Также причиной может служить постоянно удерживаемый COM-порт, если обработка обслуживания 1С открывает порт при запуске сеанса и не освобождает его между операциями. В случае виртуальных портов (VCOM через USB) операционная система Windows при переподключении кабелей или перезагрузке может менять номера COM-портов местами.

Способ 1. Обновление драйвера фискального регистратора

Самым простым и правильным техническим решением является обновление драйвера фискального регистратора до актуальной версии. Начиная с версии драйвера ФР 4.13.1.605 (а также в версиях 4.14, 4.15 и 5.x), разработчики Штрих-М исправили ошибку изоляции контекста нескольких экземпляров драйвера.

  1. Закроем рабочий сеанс 1С на компьютере.
  2. Удалим старую версию драйвера DrvFR через панель управления Windows.
  3. Установим дистрибутив драйвера Штрих-М версии 4.13.1.605 или новее.
  4. Перерегистрируем внешнюю компоненту в системе при необходимости.
  5. Проверим снятие X-отчетов на обеих кассах из 1С.

Способ 2. Разделение каналов подключения (Сетевой ФР + COM-порт)

Если обновление драйвера по каким-то причинам невозможно, проанализируем схему разделения интерфейсов. Ошибка путаницы портов возникает при одинаковом типе подключения (например, оба ФР подключены по USB с эмуляцией COM-порта).

Разберем по шагам организацию раздельного подключения:

  1. Первый фискальный регистратор подключаем через локальную сеть по IP-адресу (TCP/IP / Ethernet или Wi-Fi). В настройках торгового оборудования 1С указываем тип подключения Сеть (TCP/IP) и задаем статический IP-адрес устройству.
  2. Второй фискальный регистратор подключаем классическим способом через физический или виртуальный COM-порт (RS-232 / VCOM).

При такой схеме драйвер четко разграничивает сетевые сокеты и локальные последовательные порты, что полностью исключает отправку команд на чужое устройство.

Способ 3. Программная установка логического устройства (SetActiveLD)

Если оба устройства должны работать через физические или виртуальные COM-порты, разберем доработку внешней обработки обслуживания (например, TradeWareEpf / ShtrihMkkt.epf).

В драйверах Штрих-М предусмотрена таблица логических устройств. Каждому физическому порту сопоставляется номер логического устройства (LD — Logical Device). Чтобы драйвер переключил фокус на нужный фискальный регистратор перед выполнением команды (пробитие чека, снятие X-отчета или Z-отчета), в коде необходимо явно задать свойство LDNumber и вызвать метод SetActiveLD().

Рассмотрим пример кода для вставки в процедуры обработки перед вызовом печати:


// Устанавливаем номер логического устройства, привязанный к текущей кассе
ОбъектДрайвера.LDNumber = НомерЛогическогоУстройства; 

// Активируем выбранное логическое устройство в контексте драйвера
ОбъектДрайвера.SetActiveLD();

// Выполняем требуемую операцию (например, снятие X-отчета)
Результат = ОбъектДрайвера.PrintReportWithOutCleaning();

Для корректного определения параметра LDNumber разберем следующую последовательность действий:

  1. Откроем утилиту «Тест драйвера ФР».
  2. В настройках свойства сформируем два логических устройства (например, ЛУ №1 с COM10 и ЛУ №2 с COM11).
  3. В 1С в параметрах подключения подключаемого оборудования зафиксируем соответствующий номер логического устройства для каждого экземпляра ККМ.
  4. В коде обработки обслуживания перед каждой операцией вызываем установку активного устройства SetActiveLD(), после чего выполняем команду.

Применение любого из описанных способов позволяет стабильно использовать несколько фискальных регистраторов Штрих-М в одном сеансе 1С без риска путаницы печатных форм и чеков.

← На главную