В процессе автоматизации торговых точек часто возникает необходимость вынести управление кассой за пределы основного рабочего места. Использование штатного драйвера 1С не всегда удобно, если касса физически расположена на другом устройстве или используется в составе распределенной POS-системы. Разберем, как реализовать обмен с ККТ Атол через их веб-сервер, используя возможности 1С 7.7.
Веб-сервер Атол — это программный компонент, который «слушает» HTTP-запросы и транслирует их в команды драйвера ККТ. Вся коммуникация строится на обмене данными в формате JSON. Для 1С 7.7 это означает, что нам не нужно подключать внешнюю компоненту напрямую к 1С; достаточно отправить сформированный JSON-пакет по сетевому адресу, где установлен драйвер.
Прежде чем приступать к написанию кода, необходимо убедиться, что оборудование готово к работе в современном режиме:
ФФД 1.2 версия прошивки кассы должна быть не ниже 5.8.17.JSON, необходимая для формирования тегов маркировки.Поскольку в 1С 7.7 нет встроенных средств для работы с JSON, мы воспользуемся системными объектами Windows через OLE. Для отправки запросов лучше всего подходит WinHttp.WinHttpRequest.5.1.
Рассмотрим общий подход к формированию запроса. Процесс состоит из двух этапов: формирование JSON-строки и отправка её методом POST.
// Пример формирования базового объекта для запроса
HTTP = СоздатьОбъект("WinHttp.WinHttpRequest.5.1");
URL = "http://127.0.0.1:16000/api/v2/printDocument"; // Порт по умолчанию
ТелоЗапроса = "{ ""type"": ""sell"", ""items"": [...] }"; // Здесь должна быть структура JSON
HTTP.Open("POST", URL, 0);
HTTP.SetRequestHeader("Content-Type", "application/json");
HTTP.Send(ТелоЗапроса);
Ответ = HTTP.ResponseText;
Обратите внимание: при работе с маркированным товаром в JSON-структуре обязательно должны присутствовать теги:
1162 — Код товара (маркировка).1163 — Результат проверки кода маркировки.2106 — Отраслевой реквизит предмета расчета.Чтобы система работала стабильно, учитывайте следующие советы:
JSON, даже если произошла ошибка. Обязательно парсите этот ответ в 1С, чтобы выводить оператору понятные сообщения (например, «Нет связи с ККТ» или «Закончилась лента»).VPN-туннели.JSON через сложную конкатенацию строк. Если структура чека становится объемной, лучше использовать сторонние библиотеки или внешние компоненты для работы с JSON, чтобы избежать проблем с кодировкой и спецсимволами.Соблюдение этих простых правил и внимательное изучение технической документации Атол позволит вам реализовать надежное и современное решение для фискализации даже в такой классической среде, как 1С 7.7.