Описание возможных ошибок
Для идентификации ошибки требуется ориентироваться на поле name, т.к. оно является гарантированно уникальным в рамках протокола.
Стоит так же отметить, что список данных ошибок может дополняться и требуется предусмотреть обработку неизвестных ошибок, а так же часть ошибок могут быть никогда не переданы на клиентскую часть и обработаны в рамках логики работы сервиса.
Так же, текстовое описание ошибок description может меняться/дополняться в рамках работы сервиса и, как следствие, полагаться на него как на уникальное значение запрещается.
Ошибки разделяются на подтипы, на основании используемых префиксов, например:
$.avtpcr.*- ошибки, которые отдаются от СКО или связаны с внутренней работой с СКО, например:$.avtpcr.not_authorized- Не пройдена авторизация в СКО$.avtpcr.space.insufficient- Недостаточно памяти в СКО для записи данных
$.io.*- ошибки, связанные с передачей данных из/в СКО$.transport.*- ошибки, связанные с обработкой данных от СКО$.internal.*- ошибки, связанные с внутренними особенностями реализации протоколов взаимодействия с ПК. В случае возникновения ошибок такого рода стоит сообщать операторуavtpcr.*- ошибки связанные с несоблюдением требований при взаимодействии с ПК. Например:avtpcr.status.blocked- Касса заблокированаavtpcr.bundle.unique_id.length- Превышена макс. длина уникального идентификатора для чека
rendering.*- ошибки, связанные с отрисовкой или печатью данныхsko.core.receipt.*- ошибки, связанные непосредственно с функционалом ПК, который отвечает за обработку и формирование кассовых документовorders.*- ошибки работы с функционалом обслуживания за столиками