В процессе эксплуатации контрольно-кассовой техники (ККТ) АТОЛ 30Ф совместно с конфигурацией 1С:Управление торговлей 10.3 пользователи часто сталкиваются с ситуацией, когда чеки успешно печатаются, но не уходят оператору фискальных данных (ОФД). При этом диагностика соединения в «Тесте драйвера» показывает, что всё в порядке, и данные начинают передаваться только тогда, когда само окно драйвера открыто. Рассмотрим причины этого поведения и разберем пошагово, как настроить стабильную работу системы.
Основная причина кроется в механизме работы протокола EoT (Ethernet-over-Transport). В этом режиме данные в ОФД передаются по тому же каналу, по которому 1С управляет кассой. Проанализируем логику работы 1С:Управление торговлей 10.3 (на обычных формах):
Close() (закрыть соединение), чтобы освободить порт для других задач.Как только порт закрывается, физический канал передачи данных прерывается. Касса просто не успевает «протолкнуть» пакет данных на сервер ОФД за те доли секунды, пока порт был открыт. Когда вы открываете «Тест драйвера», вы вручную удерживаете порт открытым, и касса получает возможность завершить передачу накопленной очереди чеков.
Наиболее надежным способом решения проблемы для старых конфигураций 1С является переход на службу EoU. В этом режиме за передачу данных отвечает отдельная системная служба Windows, которая работает независимо от того, открыто ли соединение в 1С. Рассмотрим, как это настроить:
Перейдите в папку с установленным драйвером АТОЛ (обычно это C:\Program Files (x86)\ATOL\Drivers10\KKT\bin). Найдите и отредактируйте файл settings.xml. В нем нужно указать номер COM-порта, который в диспетчере устройств значится вторым (предназначенным для данных).
<settings>
<connection>
<port>5</port> <!-- Здесь указываем номер вашего COM-порта для ОФД -->
</connection>
</settings>
Иногда при попытке смены версии драйвера (например, откат с 10.7 на 10.6.3) в 1С возникает ошибка чтения прошивки. Проанализируем ситуацию: это происходит из-за конфликта библиотек в кэше 1С.
Выясним причину: 1С сохраняет используемые компоненты драйверов в пользовательских папках. Даже если вы установили новый драйвер в систему, 1С может продолжать использовать старую версию fptr10.dll из своего кэша. Чтобы исправить это, выполните следующие действия:
%AppData%\Local\1C\1cv8\ExtCompT.C:\Program Files\1cv8\8.3.x.x\bin) нет старых копий файлов fptr10.dll или AtolDrivers10.dll.В конфигурации 1С:Управление торговлей 10.3 работа с торговым оборудованием ведется через внешние обработки (файлы с расширением .epf). Посмотрим на параметры настройки оборудования в самой 1С:
Это заставит 1С удерживать порт открытым всё время работы пользователя в программе, что позволит протоколу EoT работать корректно и своевременно отправлять данные в ОФД.
Если диагностика проходит успешно, но чеки всё равно не уходят даже при открытом драйвере, стоит проверить настройки DNS в самой кассе. Рассмотрим подробнее:
Иногда DNS-серверы провайдера медленно разрешают доменные имена серверов ОФД (например, gate.platformaofd.ru). Чтобы исключить эту задержку, попробуйте прописать в параметрах ККТ вместо доменного имени прямой IP-адрес сервера ОФД (его можно узнать на сайте вашего оператора или через команду ping в командной строке).
Также проверьте версию прошивки вашей кассы АТОЛ 30Ф. Для стабильной работы с 10-й версией драйверов рекомендуется использовать прошивку на Платформе 5.0. Если касса работает на Платформе 2.5, протокол EoT может работать нестабильно, и переход на EoU будет единственным верным решением.
Таким образом, мы выяснили, что проблема «зависших» чеков чаще всего носит не аппаратный, а программно-конфигурационный характер. Переход на службу EoU является наиболее универсальным решением, исключающим влияние 1С на процесс передачи данных в контролирующие органы.