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

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

При отладке кассового оборудования или автоматизации торговых точек с разным парком кассовой техники часто возникает необходимость подключить к одному компьютеру оборудование разных производителей — например, ККТ Атол и Штрих-М. Разберем подробнее, могут ли возникнуть аппаратные и программные конфликты при установке двух системных драйверов на одну операционную систему и как правильно доработать 1С 7.7 («Торговля и Склад») для корректной работы с новым форматом фискальных данных (ФФД 1.05).

Совместимость драйверов кассового оборудования на одном компьютере

На уровне операционной системы драйверы ККТ от компаний Атол и Штрих-М представляют собой изолированные динамические библиотеки (DLL) и службы Windows. Они используют разное пространство имен в реестре и не перехватывают системные функции друг друга. Драйверы Атол и Штрих-М не конфликтуют между собой и могут быть одновременно установлены на одну рабочую станцию.

Однако на практике при использовании виртуальных и физических COM-портов возникают ошибки захвата ресурсов. Рассмотрим основные причины таких проблем:

  1. Монопольное удержание COM-портов: Физические и виртуальные COM-порты являются монопольными ресурсами. Если утилита настройки (например, «Тест драйвера ККТ») или фоновая служба занимается опросом устройства, 1С не сможет открыть порт и выдаст ошибку недоступности оборудования.
  2. Особенности работы внешних компонент в 1С 7.7: При создании объекта через ЗагрузитьВнешнююКомпоненту() и подключении к устройству драйвер открывает порт и удерживает его до явного метода отключения или закрытия сеанса программы.

Правильная фиксация портов и настройка службы EoU

Проанализируем шаги, которые необходимо выполнить для разграничения ресурсов между кассами разных вендоров:

  1. Закрепление статичных COM-портов: В Диспетчере устройств Windows необходимо жестко прописать фиксированные номера виртуальных портов. Например, выделим COM1/COM2 для оборудования Штрих-М, а COM3/COM4 — для фискальных регистраторов Атол.
  2. Разделение портов управления и передача данных (EoU): При подключении ККТ Атол через USB-кабель создаются два эмулируемых COM-порта. Первый необходим для связи 1С с драйвером, второй — для работы службы Ethernet over USB (EoU), отправляющей чеки в ОФД. В конфигурационном файле службы settings.xml обязательно укажите именно второй служебный порт, чтобы служба не блокировала основной порт управления.

Выбор версии ДТО Атол для устаревших ОС (Windows XP)

Выясним важные технические ограничения при выборе драйвера ДТО (Драйверы Торгового Оборудования) для работы под Windows XP:

Платформа 1С 7.7 работает как 32-битное приложение, поэтому внешние компоненты всех касс должны быть зарегистрированы через 32-разрядный регистратор. При этом 10-я ветка драйверов Атол (DTO 10, объект AddIn.Fptr10) требует современные библиотеки Visual C++ Redistributable 2015–2019 и свежий .NET Framework, которые не поддерживаются в Windows XP.

Решение: Для операционной системы Windows XP предельной рабочей веткой остаются драйверы Атол ДТО 8.x (например, 8.16.x). Если требуется использование более новых библиотек, рекомендуется организовать вызовы к удаленному веб-серверу ККТ через HTTP-запросы из 1С 7.7.

Изменения в логике печати чека при переходе на ФФД 1.05

При обновлении прошивки кассы (например, Атол 30Ф) и замене фискального накопителя устройство переводится на формат фискальных данных 1.05. В отличие от версии 1.0, формат ФФД 1.05 требует обязательно передавать дополнительные реквизиты в чеке.

Проанализируем обязательные параметры, которые необходимо добавить в программный код печати чека 1С 7.7:

  1. ИНН Кассира (тег 1203): Должен перед закрытием чека передаваться драйверу вместе с ФИО оператора.
  2. Признак способа расчета (тег 1214): Определяет тип оплаты позиций (полная оплата, предоплата, аванс, передача в кредит и т.д.).
  3. Признак предмета расчета (тег 1212): Определяет категорию номенклатуры (товар, подакцизный товар, работа, услуга и т.д.).

Посмотрим на пример формирования структуры позиции товарной строки в коде 1С 7.7 для драйвера Атол ДТО 8:


// Создание объекта драйвера Атол ДТО 8
Драйвер = СоздатьОбъект("AddIn.FPrint");

// Регистрация кассира с ИНН
Драйвер.AttrNumber = 1021; // ФИО кассира
Драйвер.AttrValue = "Иванов И.И.";
Драйвер.WriteAttribute();

Драйвер.AttrNumber = 1203; // ИНН кассира
Драйвер.AttrValue = "770123456789";
Драйвер.WriteAttribute();

Драйвер.RegisterFiskalSign();

// Передача позиций чека с реквизитами ФФД 1.05
Драйвер.Name = "Товарная позиция (Образец)";
Драйвер.Price = 100.00;
Драйвер.Quantity = 1;
Драйвер.Department = 1;

// Установка признака способа расчета (1 - Полный расчет)
Драйвер.AttrNumber = 1214;
Драйвер.AttrValue = 1;
Драйвер.WriteAttribute();

// Установка признака предмета расчета (1 - Товар)
Драйвер.AttrNumber = 1212;
Драйвер.AttrValue = 1;
Драйвер.WriteAttribute();

Драйвер.Registration();

Динамическое управление соединением с COM-портом

Чтобы избежать аппаратных сбоев, когда в рамках одной сессии 1С необходимо попеременно обращаться к оборудованию Штрих-М и Атол, в коде модулей обслуживания следует строго придерживаться алгоритма «Подключил $\rightarrow$ Выполнил операцию $\rightarrow$ Отключил»:


// Алгоритм безопасной печати
Функция НапечататьЧекНаАтол()
    
    ECR = СоздатьОбъект("AddIn.FPrint");
    
    // Установка параметров связи
    ECR.DeviceEnabled = 1; // Занимаем COM-порт
    
    Если ECR.ResultCode <> 0 Тогда
        Сообщить("Ошибка открытия порта Атол: " + ECR.ResultDescription);
        Возврат 0;
    КонецЕсли;

    // Выполнение фискальных операций
    // ... логика печати чека ...

    // Обязательное освобождение COM-порта для других программ
    ECR.DeviceEnabled = 0;
    
    Возврат 1;
КонецФункции

Соблюдение правил корректной разводки COM-портов, своевременное освобождение ресурсов в коде 1С 7.7 и передача всех обязательных тегов ФФД 1.05 позволят обеспечить стабильную и бесперебойную работу ККТ обоих производителей на одной рабочей станции.

← На главную