Почему чеки АТОЛ перестали отправляться в ОФД автоматически после обновления драйвера 10.10.6 и как это исправить?

Системный администратор 1С v8.3 (Управляемые формы) Торговля и дистрибуция
← На главную

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

Разберем подробно причины такого поведения и выясним, какие настройки необходимо изменить в 1С и самом драйвере, чтобы восстановить автоматическую работу обмена.

Причина 1: Изменение логики работы канала связи EthernetOverTransport (EoT)

Проанализируем ситуацию с технической стороны. Начиная с версий драйвера 10.9.x, компания АТОЛ существенно переработала механизм работы службы AtolDeviceService и канала передачи данных EoT. В новых версиях драйвер ожидает монопольного захвата порта. Когда 1С открывает сессию с кассовым аппаратом, она должна не просто отправить команду на печать, но и корректно инициализировать параметры канала связи.

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

  1. Перейдем в раздел Администрирование — Подключаемое оборудование.
  2. Откроем карточку вашего фискального регистратора АТОЛ и нажмем кнопку Настроить.
  3. В появившемся окне найдем поле Канал связи (в зависимости от версии конфигурации оно может находиться на вкладке «Параметры связи» или «Дополнительно»).
  4. Вместо пустого значения или значения «USB» принудительно выберем EthernetOverTransport.
  5. Запишем настройки и перезапустим сеанс 1С.

Важно: Если оставить это поле пустым, 1С будет работать с ККТ только как с устройством печати, не давая команду службе драйвера на активацию фонового процесса передачи данных в ОФД.

Причина 2: Конфликты фоновых процессов и прав доступа

Выясним, почему ручное включение в «Тесте драйвера» помогает лишь временно. Версия драйвера 10.10.6 крайне чувствительна к блокировкам портов. Если в системе одновременно запущен «Тест драйвера» и открыта 1С, возникает конфликт за владение COM-портом (даже виртуальным).

Проанализируем работу службы AtolDeviceService. Рассмотрим основные рекомендации по ее настройке:

Причина 3: Проблема «засыпания» порта на прошивках 5.12.x

Посмотрим на особенности новых прошивок. В версиях 5.12.0 и выше реализованы алгоритмы оптимизации энергопотребления и обмена. Если чек пробит, и 1С мгновенно закрывает соединение с ККТ, касса иногда не успевает «пробросить» пакеты данных в сторону ОФД через драйвер.

Разберем, как это лечится через низкоуровневые настройки. Зайдем в «Тест драйвера», перейдем в раздел Свойства — Параметры ККТ:

  1. Найдем раздел, отвечающий за ОФД.
  2. Проверим параметр «Тип канала связи». Если там стоит «Автоматически», попробуем жестко установить «EoT».
  3. Проверим тайм-ауты ожидания ответа от сервера ОФД. Иногда помогает увеличение времени ожидания закрытия порта в настройках самого драйвера в 1С.

Причина 4: Корректность конфигурационных файлов драйвера

Ситуация, когда настройки «слетают» или не подхватываются, часто связана с тем, что при обновлении с версии 10.5 на 10.10 файл settings.xml (расположенный в папке C:\ProgramData\ATOL) перезаписывается некорректно. В нем могут остаться пути к старым логам или неверные идентификаторы портов.

Рассмотрим радикальный, но эффективный метод «чистой» установки:

  1. Полностью удалим драйвер АТОЛ через панель управления.
  2. Вручную удалим папку C:\ProgramData\ATOL (предварительно сохранив настройки, если там есть специфические скрипты).
  3. Установим версию 10.10.6 с правами администратора.
  4. Заново настроим оборудование в 1С, обязательно указав Канал связи.

Анализ проблемы через системный лог (fptr10.log)

Для окончательной диагностики проанализируем файл лога. По умолчанию он находится в папке профиля пользователя или в Application Data. Откроем его и поищем специфические ошибки в моменты пробития чека из 1С.

Если мы видим ошибки типа -16 (Device is busy) или -14 (Port busy), это прямое подтверждение того, что канал связи блокируется. В нормальной ситуации 1С должна передать управление службе EoT сразу после завершения печати документа. Если в логах после печати нет записей об инициализации соединения с ОФД, значит, 1С не передает нужный параметр КаналСвязи.

В коде интеграции это выглядит примерно так (на уровне драйвера):


// Пример установки параметров связи в объекте драйвера
Драйвер.УстановитьСвойство("ComPort", НомерПорта);
Драйвер.УстановитьСвойство("BaudRate", 115200);
// Критически важная настройка для 10.10.6
Драйвер.УстановитьСвойство("Channel", 3); // 3 соответствует EoT
Драйвер.Подключить();

Итог: Чтобы чеки уходили автоматически, необходимо синхронизировать настройки в трех местах: в самой ККТ (через Тест драйвера поставить тип канала EoT), в службе Windows (убедиться, что AtolDeviceService работает) и в справочнике «Подключаемое оборудование» 1С (явно выбрать EthernetOverTransport). Только при такой связке драйвер будет понимать, что после печати чека порт нужно использовать для передачи данных в ОФД, а не просто закрывать его.

← На главную