Как настроить печать на две онлайн-кассы с одного компьютера в 1С:Торговля и Склад 7.7?

Программист 1С v7.7 Торговля и дистрибуция
← На главную

В типовой конфигурации «1С:Торговля и Склад 7.7» изначально не предусмотрена штатная одновременная работа с несколькими фискальными регистраторами для разных юридических лиц из одного сеанса. Однако при совмещении деятельности нескольких организаций на одном рабочем месте возникает необходимость фискализации чеков на разные аппараты (например, Атол 30Ф). Разберем по шагам, как настроить системное окружение и доработать программный код 1С 7.7 для раздельной печати чеков на две ККТ.

Шаг 1. Настройка службы передачи данных в ОФД (EoU) и COM-портов

При подключении фискальных регистраторов «Атол» по USB операционная система создает по два виртуальных COM-порта на каждое устройство: один порт выделяется для команд управления (драйвера ККТ), второй — для службы передачи фискальных данных в ОФД по протоколу Ethernet-over-USB (EoU). Таким образом, для двух касс в системе появится 4 виртуальных COM-порта.

Рассмотрим порядок настройки оборудования:

  1. Фиксация номеров портов: В «Диспетчере устройств» Windows назначьте статические номера COM-портов для обоих аппаратов и зафиксируйте физические USB-разъемы, чтобы при перезагрузке ОС номера портов не менялись динамически.
  2. Конфигурация службы EoU: По умолчанию служба EthOverUsb настроена на работу только с одним устройством. Для передачи данных со второй кассы откройте конфигурационный файл службы (settings.xml) и добавьте секцию для второго ККТ, указав соответствующий ему порт передачи данных.
  3. Разрядность компонентов: Поскольку платформа 1С 7.7 работает исключительно в 32-битном режиме (x86), внешние компоненты драйвера ККТ (например, AddIn.Fptr10 для ДТО 10) должны быть установлены и зарегистрированы в системе строго в 32-разрядной версии.

Шаг 2. Доработка механизма обслуживания ККТ в 1С 7.7

Проанализируем архитектуру работы торгового оборудования в «1С:Торговля и Склад 7.7». Обработка фискализации чеков сосредоточена в обработке обслуживания фискального регистратора (обычно fr_comm.ert). Для разделения потоков печати нам потребуется определять организацию документа и перед открытием чека подключаться к соответствующей кассе.

Разберем основные варианты реализации программной логики:

  1. Разделение по номерам логических устройств: В справочнике касс или константах задаются идентификаторы (логические номера) устройств для каждого юрлица. При формировании чека обработка переключает активный аппарат через установку свойства драйвера.
  2. Динамическое переключение параметров связи: Если используется прямое обращение к портам, перед началом печати чека в объекте драйвера устанавливаются параметры PortNumber (номер порта) и BaudRate (скорость), соответствующие нужной ККТ.
  3. Освобождение порта после печати: Так как Windows монопольно блокирует COM-порт при открытии сессии, важно реализовывать цикл работы по принципу «подключились к порту — открыли чек — записали позиции — закрыли чек — отключились от порта». Это предотвратит ошибки блокировки портов между операциями.

Посмотрим на пример логики переключения настроек ККТ в коде обработки fr_comm.ert перед печатью чека:


// Определение параметров ККТ по организации документа
Если Док.Фирма.ЮрЛицо.ИНН = "7701234567" Тогда
    ПортККТ = 3; // COM-порт первой кассы (Организация 1)
    СкоростьККТ = 115200;
ИначеЕсли Док.Фирма.ЮрЛицо.ИНН = "7709876543" Тогда
    ПортККТ = 5; // COM-порт второй кассы (Организация 2)
    СкоростьККТ = 115200;
Иначе
    Предупреждение("Для организации " + Док.Фирма + " не настроена онлайн-касса!");
    Возврат;
КонецЕсли;

// Установка параметров связи в драйвере перед открытием чека
ОбъектККТ.PortNumber = ПортККТ;
ОбъектККТ.BaudRate = СкоростьККТ;

Если ОбъектККТ.Open() <> 0 Тогда
    Сообщить("Ошибка открытия порта ККТ: " + ОбъектККТ.Description, "!");
    Возврат;
КонецЕсли;

Альтернативные способы организации работы

Если на рабочем месте наблюдаются частые конфликты захвата COM-портов или сложности с маршрутизацией через службу EoU, рассмотрим альтернативные архитектурные решения:

  1. Использование локального Web-сервера ККТ (REST API): Драйверы современных ККТ позволяют поднять локальный веб-сервер. В таком сценарии 1С 7.7 формирует и отправляет JSON-запросы через OLE-объект WinHttp.WinHttpRequest.5.1 по HTTP. Обращение к разным кассам происходит по их локальным портам веб-сервера или серийным номерам, что полностью исключает проблемы с блокировками COM-портов.
  2. Подключение касс по интерфейсу Ethernet / Wi-Fi: Перевод фискальных регистраторов на сетевой обмен по протоколу TCP/IP исключает зависимость от виртуальных COM-портов и службы EoU, обеспечивая стабильную независимую печать.

Таким образом, организовать печать на две онлайн-кассы из «1С:Торговля и Склад 7.7» возможно как через доработку типовой обработки fr_comm.ert с переключением портов/логических номеров, так и через переход на сетевое взаимодействие с драйвером ККТ.

← На главную