Почему не печатает чеки через веб-сервер Атол и как настроить лицензию 12

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

Работа с ККТ Атол через веб-сервер (в составе ДТО 10) — это современный и удобный способ организации печати, особенно когда требуется доступ к одной кассе с нескольких рабочих мест или из облачных систем. Однако при настройке часто возникают ситуации, когда запрос уходит успешно, возвращается код 201 Created, но физической печати не происходит. Разберем подробно причины возникновения таких проблем, особенности версий драйверов и алгоритм исправления ошибок лицензирования.

Асинхронная модель работы веб-сервера

Прежде всего, проанализируем ситуацию, описанную в начале обсуждения: запрос отправлен, получен статус 201, но чека нет. Важно понимать, что веб-сервер Атол работает по принципу очереди. Когда вы отправляете POST запрос на формирование чека или отчета, сервер лишь подтверждает, что задание принято и помещено в очередь. Код 201 не означает завершение печати. Рассмотрим правильный алгоритм взаимодействия:

  1. Отправка задания (POST-запрос) — получаем uuid задания.
  2. Опрос статуса задания (GET-запрос по адресу /api/v2/requests/{uuid}).
  3. Анализ ответа: пока статус задания in_progress, печать еще идет. Если статус ready — задание выполнено. Если error — изучаем описание ошибки в ответе.

В случае автора задания попадали в категорию "завершенных", но результат был отрицательным из-за ошибок в структуре запроса или несовместимости версий драйвера. Рекомендуем всегда использовать корректный формат uuid в виде GUID (например, 0cbe9ff6-5f85-11ea-bc06-bbffd2fd5315), чтобы избежать коллизий в базе данных заданий SQLite.

Проблема совместимости версий драйвера 10.9.0.x

Одной из ключевых причин неработоспособности веб-сервера в 2021-2022 годах стала техническая коллизия. В дистрибутивах Windows-драйвера версии 10.9.0.0 содержался веб-сервер версии 10.8.1.0, который был несовместим с основным драйвером ККТ. В этом случае устройство в веб-интерфейсе могло отображаться как "подключенное", но команды фактически не передавались на исполнение. Для стабильной работы, особенно если требуется поддержка ФФД 1.2 и маркировки, необходимо использовать драйверы версии не ниже 10.9.1.0. Именно в этой версии была реализована полноценная поддержка актуальных форматов фискальных данных для веб-сервера.

Ошибка 96 и Лицензия №12 (Web-ДККТ)

При переходе на Платформу 5.0 и современные версии драйверов (начиная с 10.9.1.0) пользователи столкнулись с ошибкой: "Отсутствует лицензия на работу с Web-сервером" (код ошибки 96). Это связано с введением обязательного лицензирования функционала веб-сервера. Рассмотрим по шагам процесс бесплатного получения и активации этой лицензии (для подключения до 5 касс к одному серверу):

  1. Перейдем в личный кабинет Атол (сервис "Атол Сервис" или кабинет лицензий).
  2. Используем стандартные учетные данные для восстановления (многие пользователи используют client@atol.ru с паролем client для базовых операций).
  3. Выберем пункт меню "Восстановить лицензии".
  4. Введем серийный номер вашей ККТ.
  5. В качестве типа лицензии выберем "Web-ДККТ".
  6. Скачаем сгенерированный файл license_web_dkkt.json.

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

  1. Запустим "Тест драйвера ККТ" (версии 10.x).
  2. Установим связь с кассой и перейдем в раздел "Лицензии".
  3. Нажмем кнопку "Лицензии из файла", выберем наш скачанный JSON-файл и нажмем "Ввести лицензии".
  4. После этого обязательно перезапустим службу веб-сервера или переключим тумблер работы с ККТ в веб-интерфейсе управления устройствами. Статус должен измениться на "Доступен".

Пример формирования JSON-запроса для веб-сервера

Посмотрим на пример структуры запроса для формирования X-отчета через API v2. Обратите внимание на использование корректного UUID и структуры массива заданий.


{
    "uuid": "550e8400-e29b-41d4-a716-446655440000",
    "request": [
        {
            "type": "reportX",
            "operator": {
                "name": "Иванов Иван Иванович",
                "vatin": "123456789012"
            }
        }
    ]
}

Если мы работаем с ФФД 1.2 и маркированным товаром, структура items в чеке значительно усложняется. Проанализируем пример передачи позиции с кодом маркировки:


{
    "type": "position",
    "name": "Товар маркированный",
    "price": 100.0,
    "quantity": 1,
    "amount": 100.0,
    "measurementUnit": "pc",
    "paymentMethod": "fullPrepayment",
    "paymentObject": "commodity",
    "tax": {
        "type": "vat20"
    },
    "markCodeInfo": {
        "markCode": "0104600439931256215n%Y693123456",
        "plannedStatus": "itemPending"
    }
}

Особенности работы на разных операционных системах

Выясним причину, по которой веб-сервер на Linux иногда работает стабильнее в переходные периоды. В пакетах для Linux (deb/rpm) Атол часто выпускает обновления веб-сервера быстрее или в более чистом виде, без лишних зависимостей Windows-установщика. Если вы используете fptr10-web-server на Linux, конфигурация обычно хранится в /etc/atol/. Проверьте параметр keepRequestsFor, который определяет, сколько времени хранить историю заданий в базе tasks.db. При большом потоке чеков база SQLite может замедляться, поэтому рекомендуется устанавливать срок хранения не более 24-48 часов.

Резюме и рекомендации

Для успешной печати через веб-сервер Атол придерживайтесь следующих правил:

Следуя этой инструкции, вы сможете настроить стабильную очередь печати и избежать типичных ошибок, связанных с обновлением законодательства в сфере применения ККТ.

← На главную