Как подключить онлайн-кассу АТОЛ 22Ф к 1С 7.7 и настроить работу по ФФД 1.05

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

Проблема подключения современных фискальных регистраторов (ФР) к устаревшим конфигурациям на платформе 1С:Предприятие 7.7 остается актуальной для многих предприятий. Основная трудность заключается в том, что стандартные библиотеки, поставляемые фирмой 1С (например, FprnM1C82_54FZ.dll), имеют ограниченный функционал и зачастую не поддерживают критически важные атрибуты, такие как PaymentMode (признак способа расчета), необходимые для соответствия формату фискальных данных (ФФД) 1.05 и выше. В данной статье мы подробно разберем, как обойти эти ограничения, используя нативные драйверы производителя.

Выбор драйвера и библиотеки для работы

Первое, с чем нам необходимо определиться — это выбор программного интерфейса. Опыт эксплуатации показывает, что использование 1С-совместимых драйверов (оберток) в среде 7.7 часто приводит к ошибкам при печати налоговых ставок или при передаче электронных чеков. Рассмотрим основные рекомендации по выбору ПО:

  1. Забудьте про использование FprnM1C82_54FZ.dll, если вам требуется полная поддержка ФФД 1.05. Эта компонента некорректно обрабатывает XML-структуры в части специфических тегов.
  2. Рекомендуется использовать драйверы АТОЛ версии 8.3.16 (или выше в рамках 8-й серии) и брать из их состава библиотеку FprnM1C.dll. Она обладает гораздо лучшей документацией и позволяет обращаться к методам ККТ напрямую.
  3. Для современных систем (с учетом требований маркировки и ФФД 1.2) стоит рассмотреть переход на 10-ю версию драйвера (DTO 10). Несмотря на то, что это требует более серьезной переработки кода, драйвер 10-й версии работает стабильнее и поддерживает передачу данных через JSON, что снимает все проблемы с форматами XML.

Программная реализация печати чека через нативный драйвер

Переход на FprnM1C.dll потребует от нас изменения логики печати чека в обработке обслуживания. Рассмотрим последовательность действий и методы, которые мы будем использовать. Вместо формирования громоздкого XML-пакета, мы будем вызывать методы объекта драйвера последовательно.

Инициализация объекта: Для начала работы нам необходимо создать объект драйвера. В 1С 7.7 это делается стандартным способом:


// Создание объекта драйвера АТОЛ
Попытка
    ЗагрузитьВнешнююКомпоненту("FprnM1C.dll");
    ФР = СоздатьОбъект("AddIn.FPrint");
Исключение
    Сообщить("Не удалось загрузить драйвер ККТ!");
КонецПопытки;

Открытие и формирование чека: Разберем алгоритм открытия чека и добавления позиций. Важно помнить, что теперь мы контролируем каждый тег. Для установки адреса покупателя (электронного чека) используется метод WriteAttribute.


// Пример открытия чека продажи
ФР.Password = 30; // Пароль системного администратора по умолчанию
ФР.OpenCheck(1); // 1 - продажа, 2 - возврат

// Добавление товара
ФР.Name = "Наименование товара";
ФР.Price = 100.00;
ФР.Quantity = 1;
ФР.Department = 1;
ФР.TaxTypeNumber = 4; // Индекс налога (например, НДС 20%)
ФР.PaymentMode = 4; // Полный расчет (согласно ФФД 1.05)
ФР.Registration(); // Метод регистрации позиции

// Если нужно отправить электронный чек
ФР.AttrNumber = 1008; // Тег адреса покупателя
ФР.AttrValue = "customer@email.com";
ФР.WriteAttribute();

// Закрытие чека с типом оплаты
ФР.Summ1 = 100.00; // Оплата наличными
ФР.Summ2 = 0;      // Оплата безналичными
ФР.CloseCheck();

Проанализируем ситуацию со ставками НДС. В 1С 7.7 часто возникает путаница с индексами налогов. Рекомендуется сверить таблицу налогов в самой кассе через «Тест драйвера ККТ» и программно передавать именно тот номер (TaxTypeNumber), который соответствует нужной ставке в фискальном накопителе.

Настройка связи и передачи данных в ОФД

Мало просто напечатать чек, нужно обеспечить его уход к оператору фискальных данных (ОФД). Для модели АТОЛ 22Ф (FPrint-22ПТК) существует несколько способов организации связи, и выбор неправильного может привести к «зависанию» кассы или накоплению непереданных документов.

  1. EthernetOverUSB (EoU): Самый распространенный метод. Требует запуска специальной службы EthOverUsb в Windows. В настройках службы необходимо указать номер виртуального COM-порта, который касса выделяет специально под данные (обычно это второй порт из пары, создаваемой драйвером).
  2. EthernetOverTransport (EoT): Доступен в более новых прошивках и 10-й версии драйвера. Позволяет передавать данные через тот же канал, по которому идет печать. Это избавляет от необходимости запускать сторонние службы, которые часто «вылетают».
  3. Прямое LAN-подключение: Если есть возможность, подключите АТОЛ 22Ф патч-кордом в сетевой роутер. В настройках драйвера в 1С укажите IP-адрес кассы и порт 5555. Это самый стабильный вариант для работы в сетевом окружении.

Выясним причину частых ошибок связи. Одной из скрытых проблем является слишком низкий таймаут ответа ККТ. В параметрах связи драйвера рекомендуется устанавливать таймаут не менее 1000 мс. По умолчанию часто стоит 100 мс, чего недостаточно для формирования фискального признака на сложных чеках, в результате чего 1С 7.7 выдает ошибку «Нет связи», хотя чек фактически напечатан.

Обработка скидок и признаков способа расчета

Рассмотрим подробнее работу с признаками способа расчета (PaymentMode). В ФФД 1.05 их семь (Предоплата 100%, Частичная предоплата, Аванс, Полный расчет и т.д.). При использовании стандартных обработок frATOL54_comm_105.ert из последних релизов ТиС, многие сталкиваются с тем, что скидки просто игнорируются или вызывают ошибку суммы.

Для корректной работы мы рекомендуем реализовать выбор PaymentMode непосредственно в документе 1С (например, в ПКО или Чеке ККМ). Это позволит бухгалтеру самому определять характер сделки. При передаче данных в кассу, если выбрана «Полная оплата», мы выводим детализацию по товарам. Если же это «Аванс», то в наименование предмета расчета можно передавать обобщенную строку из поля «Основание» документа 1С.

Важный нюанс: при частичной оплате или кредите обязательно нужно следить за тем, чтобы сумма всех типов оплат (Summ1...Summ4) в методе CloseCheck в точности соответствовала итогу чека, иначе касса выдаст ошибку «Сумма типов оплат меньше суммы чека».

Заключение

Подключение АТОЛ 22Ф к 1С 7.7 — задача выполнимая, если отказаться от «универсальных» механизмов 1С в пользу прямого управления драйвером. Это дает программисту полный контроль над процессом формирования фискального документа, позволяет корректно передавать e-mail покупателя и работать с любыми типами оплат, обеспечивая полную юридическую чистоту чеков.

← На главную