В типовой конфигурации «1С:Торговля и Склад 7.7» изначально не предусмотрена штатная одновременная работа с несколькими фискальными регистраторами для разных юридических лиц из одного сеанса. Однако при совмещении деятельности нескольких организаций на одном рабочем месте возникает необходимость фискализации чеков на разные аппараты (например, Атол 30Ф). Разберем по шагам, как настроить системное окружение и доработать программный код 1С 7.7 для раздельной печати чеков на две ККТ.
При подключении фискальных регистраторов «Атол» по USB операционная система создает по два виртуальных COM-порта на каждое устройство: один порт выделяется для команд управления (драйвера ККТ), второй — для службы передачи фискальных данных в ОФД по протоколу Ethernet-over-USB (EoU). Таким образом, для двух касс в системе появится 4 виртуальных COM-порта.
Рассмотрим порядок настройки оборудования:
EthOverUsb настроена на работу только с одним устройством. Для передачи данных со второй кассы откройте конфигурационный файл службы (settings.xml) и добавьте секцию для второго ККТ, указав соответствующий ему порт передачи данных.AddIn.Fptr10 для ДТО 10) должны быть установлены и зарегистрированы в системе строго в 32-разрядной версии.Проанализируем архитектуру работы торгового оборудования в «1С:Торговля и Склад 7.7». Обработка фискализации чеков сосредоточена в обработке обслуживания фискального регистратора (обычно fr_comm.ert). Для разделения потоков печати нам потребуется определять организацию документа и перед открытием чека подключаться к соответствующей кассе.
Разберем основные варианты реализации программной логики:
PortNumber (номер порта) и BaudRate (скорость), соответствующие нужной ККТ.Посмотрим на пример логики переключения настроек ККТ в коде обработки fr_comm.ert перед печатью чека:
// Определение параметров ККТ по организации документа
Если Док.Фирма.ЮрЛицо.ИНН = "7701234567" Тогда
ПортККТ = 3; // COM-порт первой кассы (Организация 1)
СкоростьККТ = 115200;
ИначеЕсли Док.Фирма.ЮрЛицо.ИНН = "7709876543" Тогда
ПортККТ = 5; // COM-порт второй кассы (Организация 2)
СкоростьККТ = 115200;
Иначе
Предупреждение("Для организации " + Док.Фирма + " не настроена онлайн-касса!");
Возврат;
КонецЕсли;
// Установка параметров связи в драйвере перед открытием чека
ОбъектККТ.PortNumber = ПортККТ;
ОбъектККТ.BaudRate = СкоростьККТ;
Если ОбъектККТ.Open() <> 0 Тогда
Сообщить("Ошибка открытия порта ККТ: " + ОбъектККТ.Description, "!");
Возврат;
КонецЕсли;
Если на рабочем месте наблюдаются частые конфликты захвата COM-портов или сложности с маршрутизацией через службу EoU, рассмотрим альтернативные архитектурные решения:
WinHttp.WinHttpRequest.5.1 по HTTP. Обращение к разным кассам происходит по их локальным портам веб-сервера или серийным номерам, что полностью исключает проблемы с блокировками COM-портов.Таким образом, организовать печать на две онлайн-кассы из «1С:Торговля и Склад 7.7» возможно как через доработку типовой обработки fr_comm.ert с переключением портов/логических номеров, так и через переход на сетевое взаимодействие с драйвером ККТ.