Когда касса перестаёт проверять коды, догадки стоят дороже лога. В логе видно, на каком именно шаге всё останавливается: модуль не достучался до кассы, до локального модуля или до сервера оператора — это три разные проблемы с тремя разными решениями. Разобраться в нём проще, чем кажется: сообщений много, но осмысленных типов — около десятка.
Где лежат логи
Логи пишет каждая часть связки, и это важно: у модуля свой лог, у драйвера ККТ свой, у локального модуля тоже. Смотреть надо тот, который относится к сбойному шагу, иначе можно долго изучать идеально чистый файл.
- Логи самого модуля ЕСМ — в каталоге установки модуля, в подпапке с логами. Это основной файл, с него начинают.
- Логи интерфейса модуля идут отдельным потоком с пометкой
[GUI]— по ним видно, что делает окно программы, а не служба. - Логи драйвера ККТ — у производителя кассы, в его каталоге. Нужны, когда модуль жалуется, что не видит кассу.
- Логи локального модуля «Честный знак» — отдельно, в его собственном каталоге.
Как устроена строка
Строка лога состоит из четырёх частей: время, идентификатор процесса, уровень сообщения и текст. Уровень — самое полезное: он позволяет отбросить девять десятых файла.
| Уровень | Что означает | Смотреть? |
|---|---|---|
DEBUG | Подробности обмена: какой запрос ушёл, по какому адресу | Только когда ищете конкретный адрес или порт |
INF | Штатные события: список касс получен, шифрование выполнено | Для понимания, докуда дошло |
WRN | Что-то не получилось, но модуль продолжает работу | Да, это чаще всего и есть причина |
ERROR / ERR | Операция не выполнена | Да, в первую очередь |
Практический приём: сначала отфильтруйте файл по WRN и ERR, найдите время сбоя на кассе и прочитайте десять строк вокруг него. Строки DEBUG в этом окне покажут, по какому адресу модуль обращался в момент отказа, — это половина диагноза.
Сообщения, которые встречаются чаще всего
| Строка в логе | Что она означает на самом деле |
|---|---|
Client is not found (rpc NotFound) | Модуль не нашёл зарегистрированного клиента драйвера ККТ. Речь не о клиенте «Честного знака» — проблема внутри рабочего места. Разбор: Client is not found |
Не удалось получить challenge | Сорвалась установка контролируемого канала до кассы — обычно вместе с предыдущей строкой |
Не удалось получить информацию о ЛМ контроллере | Модуль не достучался до локального модуля. Частая причина — разные поколения: ошибка 2025 |
connection error: dial tcp 127.0.0.1:404x | Никто не слушает порт драйвера ККТ: драйвер не запущен или упал |
server replied: Internal Server Error | Внутренняя ошибка самого модуля, чаще после обновления одной части связки |
EncryptData: операция шифрования (CONTROLLED) | Штатная строка работы контролируемого канала. Ошибкой не является |
Список ДККТ получен и отправлен | Штатная строка: модуль увидел кассы. Если она есть, а касса в интерфейсе не отображается — дело не в связи с драйвером |
Три вопроса, на которые лог отвечает сразу
- Модуль вообще видит кассу? Ищите строки про список ДККТ. Есть — связь с драйвером в порядке, проблема дальше.
- По какому адресу он стучится? В строках
DEBUGвиден полный адрес запроса вместе с портом и путём. Несовпадение пути (api/v1вместоapi/v2) или порта видно сразу и экономит день переустановок. - На чьей стороне отказ? Обращение к
127.0.0.1— проблема локальная, до интернета дело не дошло. Обращение к внешнему адресу — смотрите сеть, антивирус и доступность оператора.
Что приложить, когда пишете в поддержку
Обращение с полным набором решается за один круг, без переписки «пришлите ещё раз». Прикладывайте фрагмент лога за период сбоя, а не файл целиком: в файле за месяц нужные строки никто искать не станет.
- Точное время сбоя — по часам кассового компьютера, а не «сегодня утром»
- Фрагмент лога: десять минут до события и пять после
- Версии модуля, драйвера ККТ и кассовой программы
- Модель и регистрационный номер кассы, ИНН организации
- Скриншот ошибки в кассовой программе