Подключаем ККТ АТОЛ к 1С:Предприятие 8.3 в Debian / Ubuntu

  • Автор:

KKT-ATOL-1C-Linux-000.png

Продолжая серию статей по настройке онлайн-ККТ, мы не могли обойти стороной альтернативные ОС, тем более что АТОЛ поддерживает работу своих ККТ в среде Linux. Про установку 1С:Предприятие 8.3 в Debian / Ubuntu мы уже рассказывали ранее, теперь пришло время подключить к нашей 1С кассу. Скажем сразу - никаких сложностей при этом у нас не возникло, разработчики АТОЛ хорошо сделали свою работу, а следуя нашей инструкцией с данной задачей справится даже начинающий (тем не менее мы предполагаем, что читатель обладает базовыми навыками работы в среде Linux).

Данная статья является логическим продолжением нашего материала Подключаем ККТ АТОЛ к 1С:Предприятие 8.3, поэтому мы не будем повторяться и остановимся только на вопросах подключения и настройки ККТ в среде Linux. Если вы только начинаете работать с ККТ, то настоятельно советуем прочитать вам первую часть статьи, так как там затрагиваются общие вопросы по настройке кассы и работе с утилитой Тест драйвера ККТ.

Данная инструкция была проверена нами на Debian 9.7 и Xubuntu 18.04, но будет справедлива для любого дистрибутива на базе Debian или Ubuntu. Сама ККТ при этом подключается к ПК посредством интерфейса USB, как выбрать интерфейс подключения кассы мы рассказывали в первой части статьи.

Прежде всего скачаем из Центра загрузок АТОЛ свежие драйвера версии 10.х, они располагаются в разделе Контрольно-кассовая техника, архив универсальный и содержит драйвера для всех поддерживаемых платформ. Из всего архива нас интересует папка installer, в которой содержится папка deb, в ней находятся пакеты для архитектур i386, amd64 и arm. Следует иметь ввиду, что разрядность драйвера ККТ должна соответствовать разрядности платформы 1С. В Linux разрядность платформы как правило соответствует разрядности системы, однако если это не так, например, на 64-разрядную ОС установлена 32-разрядная платформа, то драйвер тоже следует установить 32-разрядный.

Из всего набора пакетов нас интересуют только три:

  • libfptr10 - драйвер ККТ
  • libfptr10-gui - графическая библиотека драйвера ККТ
  • fptr10-test-util - утилита Тест драйвера ККТ

Устанавливать их тоже нужно в указанном порядке, так как они имеют в зависимостях друг друга. Для этого перейдите в папку с пакетами и выполните с правами суперпользователя следующие команды (обратите внимание, мы устанавливаем 64-разрядные пакеты версии 10.4.5, в вашем случае имена пакетов могут отличаться):

dpkg -i libfptr10_10.4.5.0_amd64.deb
dpkg -i libfptr10-gui_10.4.5.0_amd64.deb

Графическая часть драйверов АТОЛ выполнена на базе Qt4 поэтому вы скорее всего при установке последнего пакета получите следующую ошибку:

KKT-ATOL-1C-Linux-001.pngНичего страшного, с такими проблемами успешно справляется пакетный менеджер, для этого выполним:

apt install -f

Данная команда установит все недостающие зависимости и настроит пакет. После чего нам останется установить последний пакет с Тестом драйвера:

dpkg -i fptr10-test-util_10.4.5.0_amd64.deb

На этом установка драйверов ККТ закончена, можем запустить Тест драйвера и проверить работу кассы, данная утилита ничем не отличается от своей Windows-версии и работу с ней мы уже рассматривали ранее.

KKT-ATOL-1C-Linux-002.png

В последних релизах 1С драйвера для АТОЛ 10.х уже включены в состав конфигурации, если это не так, то драйвера следует загрузить отдельно, используя архив в папке 1С поставки драйверов.

KKT-ATOL-1C-Linux-003.png

Следует обратить внимание, что в Linux ККТ АТОЛ определяются не как два VCOM, а как одно USB-устройство, поэтому следует учесть этот момент при настройке:

KKT-ATOL-1C-Linux-004.pngНа этом подключение ККТ можно считать законченным, дальнейшая работа с кассой ничем не отличается от Windows систем. Субъективные впечатления от работы ККТ АТОЛ в среде Linux у нас остались также положительными, разработчики поработали хорошо, никаких сбоев и нареканий по работе касс нами не выявлено.

Настройка EoU

После того, как касса настроена и работает, самое время перейти к настройке службы EoU, для этого скачаем одноименный пакет из Центра загрузок, он располагается в разделе Программное обеспечение - ДТО. Архив содержит набор различных версий утилиты, выбираем последнюю и переходим в директорию с утилитой для нужной нам архитектуры (i386 или amd64), разрядность следует выбирать согласно разрядности системы, вне зависимости от разрядности драйверов ККТ и платформы 1С.

KKT-ATOL-1C-Linux-005.pngЕсли мы перейдем в каталог с утилитой, то увидим там файл настроек settings.xml, бинарные файлы и библиотеки. В файле настроек должна присутствовать секция:

<hotplug>auto</hotplug>

Данная опция включает автоматическое обнаружение касс на Linux и мы не видим смысла отказываться от столь удобной функции, тем более что работает она без нареканий.

KKT-ATOL-1C-Linux-006.png

Теперь нам надо разместить файлы в нужных местах файловой системы и настроить работу утилиты в качестве сервиса. Откроем в текущей директории терминал и поднимем права до суперпользователя. Начнем с настроек, создадим директорию /etc/ATOL/EoU и скопируем туда файл настроек:

mkdir -p /etc/ATOL/EoU
cp settings.xml /etc/ATOL/EoU/

Никаких дополнительных действий по настройке производить не нужно.

Саму утилиту мы разместим в opt (хотя вы можете выбрать иное расположение):

mkdir /opt/EoU
cp * /opt/EoU/

Теперь добавим нужным файлам права на исполнение:

chmod +x /opt/EoU/EthOverUsb*

Зарегистрируем утилиту как сервис:

/opt/EoU/EthOverUsb.sh -i

KKT-ATOL-1C-Linux-007.pngВсе, что нам теперь остается, это обеспечить автозагрузку и управление службой средствами системы. Для этого нам придется самостоятельно написать юнит для systemd, но не стоит пугаться, ничего сложного в этом нет.

Прежде всего создадим сам файл юнита:

touch /etc/systemd/system/eou.service

Откроем его на редактирование и внесем следующий текст:

[Unit]
Description=ATOL EthernetOverUsb Service
After=display-manager.service
[Service]
Type=forking
User=root
ExecStart=/opt/EoU/EthOverUsb.sh
ExecStop=/opt/EoU/EthOverUsb.sh -t
[Install]
WantedBy=multi-user.target

Сохраним его и добавим в автозагрузку:

systemctl enable eou

Теперь мы можем управлять службой используя привычные команды:

service eou start|stop|restart|status

Можем перезагрузить систему и убедиться, что служба запускается автоматически. Лог работы службы располагается в /var/log/EoU, откроем его и убедимся, что утилита обнаружила кассу и обмен с ОФД проходит нормально:

KKT-ATOL-1C-Linux-008.pngПри использовании автоматического определения кассы получают идентификаторы по имени порта, в нашем случае USB-3-1, если к узлу подключено несколько касс, утилита автоматически будет работать со всеми.

Как видим, ничего сложного в подключении и настройке ККТ АТОЛ в среде Linuх нет, пришлось только немного повозиться с утилитой EoU, но общий уровень проработанности и стабильности ПО от АТОЛ делает это всего лишь незначительным затруднением, тем более что в данном случае вполне справедливо будет высказывание "настроил и забыл".