Как решить проблему с отображением свойств драйвера АТОЛ и отправкой чеков в ОФД на ОС Linux (Astra Linux)?

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

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

Разбор проблемы 1: Некорректное отображение окна свойств (GUI)

Проблема «мелькающего» окна свойств чаще всего связана с конфликтом библиотек Qt5, на которых построен драйвер АТОЛ, и графической оболочки Fly в Astra Linux. Когда вы нажимаете кнопку «Свойства», приложение пытается создать модальное окно. Если система некорректно обрабатывает координаты окна или масштабирование, оно может открыться за пределами видимой области экрана, при этом удерживая фокус ввода (блокируя основное окно).

Рассмотрим по шагам, как вернуть окно свойств в рабочее состояние:

  1. Сброс конфигурации интерфейса. В домашнем каталоге пользователя драйвер хранит настройки расположения окон. Если там прописаны неверные координаты, окно будет «невидимым». Попробуем удалить или переименовать папку с настройками. В терминале выполните команду:
    rm -rf ~/.config/Atol
    После этого перезапустите fptr10_test и попробуйте снова нажать «Свойства».
  2. Управление масштабированием Qt. Часто проблема кроется в автоматическом определении DPI. Мы можем принудительно запретить Qt масштабировать интерфейс. Для этого запустите тест драйвера из терминала с предварительной установкой переменной окружения:
    QT_AUTO_SCREEN_SCALE_FACTOR=0 ./fptr10_test
    Или, если это не помогло:
    QT_SCREEN_SCALE_FACTORS=1 ./fptr10_test
  3. Проверка прав доступа к портам. В Linux доступ к USB-устройствам (ttyACM или ttyUSB) ограничен. Если у программы нет прав на чтение/запись порта, графическая оболочка может вести себя непредсказуемо при попытке инициализации связи. Проанализируем, входит ли ваш пользователь в нужные группы:
    sudo usermod -aG dialout $USER
    sudo usermod -aG uucp $USER
    После выполнения этих команд необходимо выйти из системы и зайти снова, чтобы права применились.

Разбор проблемы 2: Чеки не уходят в ОФД (Настройка канала связи)

В ОС Windows для передачи данных в ОФД часто используется служба EoU (EthernetOverUSB). В среде Linux работа этой службы может быть нестабильной или требовать сложной настройки скриптов. Современным и рекомендуемым стандартом для Платформы 5.0 (например, для модели АТОЛ 55Ф) является использование канала EoT (EthernetOverTransport).

Проанализируем ситуацию: чеки печатаются, значит связь с ККТ есть. Но чеки не уходят в сеть, потому что канал передачи данных не настроен или разрывается слишком быстро. Выясним причину и устраним её.

  1. Переключение на EoT. Подключите кассу к компьютеру с Windows (где окно свойств открывается) и в параметрах ККТ в разделе «ОФД» установите канал обмена EoT. Сохраните настройки. Теперь драйвер будет пытаться передать данные через тот же канал связи, по которому идет печать чека.
  2. Критическая настройка в 1С. В программах 1С при использовании драйверов АТОЛ v10 в настройках торгового оборудования есть важный флаг. Нам необходимо убедиться, что система не разрывает соединение сразу после печати.
    Действие: Зайдите в «Администрирование» — «Подключаемое оборудование» — «Параметры подключения». Найдите пункт «Отключаться после кассовой операции» и снимите эту галочку.

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

Диагностика через логи (fptr10.log и ofd.log)

Если вышеописанные методы не помогли, нам необходимо заглянуть «под капот» работы драйвера. В Linux драйвер АТОЛ ведет подробные текстовые логи. Разберем, где их искать и на что смотреть.

Логи обычно располагаются по пути: ~/.atol/drivers10/logs/

Дополнительные рекомендации для Astra Linux

Поскольку Astra Linux является защищенной ОС, обратите внимание на следующие нюансы:

1. Версия драйвера. Если вы используете Astra Linux 1.7 и выше, старайтесь использовать дистрибутив драйвера из папки ubuntu20 или debian10 (в зависимости от того, что поставляет АТОЛ в архиве). Версия 10.10.6 является довольно старой, и если есть возможность, стоит обновить систему и драйвер до более актуальных сборок (например, 10.10.10+), где многие ошибки GUI уже исправлены.

2. Запуск от root. В качестве диагностической меры попробуйте запустить тест драйвера через sudo:
sudo ./fptr10_test
Если в этом режиме окно свойств открывается корректно, значит проблема на 100% заключается в правах доступа пользователя к портам или папкам конфигурации в ~/.config.

3. Тип устройства USB. Проверьте, как система видит кассу. Выполните в терминале dmesg | grep tty. Если касса определяется как ttyACM0, это стандартный режим работы. Если как ttyUSB0, возможно, включена эмуляция старого протокола, которая может конфликтовать с современным драйвером 10-й версии.

Подводя итог: для стабильной работы ККТ АТОЛ в Linux необходимо обеспечить права пользователя в группах dialout/uucp, настроить канал EoT в самой кассе и обязательно отключить разрыв соединения в настройках 1С. Эти шаги в 90% случаев решают проблемы как с «невидимыми» окнами, так и с задержкой чеков в ОФД.

← На главную