Внешняя обработка на управляемых формах, разрабатывалась на платформе 1С 8.3.16. Тестировалась на конфигурации УТ 11.4.13.
Драйвер ATOL 10.8.0.0
С некоторых пор появилась возможность установить Web-сервер ATOL в месте с драйвером. Это дало отличную возможность работать с ККТ через достаточно простое API.
После установки драйверов открыть веб сервис можно по адресу:
http://127.0.0.1:16732/#/devices
Веб-сервер необязательно должен быть установлен локально, может быть установлен на любой сервер в сети. Как и кассы могут быть подключены прост ок сети, т.е. к компьютеру их нужно подключать один раз для настройки IP адреса.
Чтобы тестировать ККТ, достаточно иметь кассу без фискального накопителя.
Первое подключение производится через USB шнур, затем в настройках драйвера настраивается IP адрес кассы.
Для разработки универсального механизма я подготовил обработку, на которой разрабатывал и тестировал API.
Все функции для работы с веб-сервером вынесены в модуль обработки.
Обращение к модулю происходит следующим образом:
_АТОЛСревер= РеквизитФормыВЗначение("Объект");
ПараметрыПодключения= _АТОЛСревер.ПолучитьПараметрыСоединения(Адрес, Порт, , , Ложь, ИДУстройства);
ПараметрыАТОЛ= _АТОЛСревер.ШаблонПараметровАТОЛ();
ПараметрыАТОЛ.ПараметрыПодключения= ПараметрыПодключения;
ПараметрыАТОЛ.НеПечататьЧек= НеПечататьЧек;
Ответ= _АТОЛСревер.ОткрытьСмену(ПараметрыАТОЛ);
ТекстОтвета= Ответ.ТекстСообщения;
Модуль подготовлен для внедрения в свою конфигурацию, его достаточно перенести в конфигурацию с названием "_АТОЛСревер" и изменить вызовы в форме.
По всем функциям передается структура "ПараметрыАТОЛ", внутри которой содержатся параметры подключения, так и другие необходимые для пробития чека параметры.
Параметр "НеПечататьЧек" позволяет отключить печать чека на ленту, будет отправляться в ОФД.
Обратите внимание, в обработке есть 2 кнопки:
"Пробить чек" - по этой кнопке будет пробит чеку по документу указанному в поле "Документ продажи" (например Чек ККТ или Реализация товаров).
"Пробить чек УТ 11" - по этой кнопке будет другой механизм, чек будет пробит по документу из поля "Документ оплаты" (ПКО или Экваринговая операция), а товар взят из "Документа продажи". При этом будет осуществлена запись в регистр "РегистрыСведений.ФискальныеОперации" и получен QR-код. Это реальный пример работы (работать будет только если ККТ зарегистрирована и имеет фискальный накопитель, т.е. в боевом режиме. Без ФН не доступны нужные фискальные параметры в ответе).
Документация по API доступна по ссылке:
https://app.swaggerhub.com/apis-docs/atol-dev/fptr-web-server/10.8.0.0#/
Когда я начинал разрабатывать, хороших примеров реализации не было. Надеюсь, эта обработка сэкономит кому-нибудь время.