1С:Предприятие 8. Исправляем ошибку "Некорректный код защиты / лицензия или номер" для ККТ АТОЛ

Работа с торговым оборудованием обычно вызывает у начинающих определенные затруднения, во многом это связано с тем, что данная тема традиционно является достаточно закрытой. Но не от того, что кто-то намеренно зажимает информацию, а от довольно высокого порога входа. Многие ошибки и проблемные ситуации для специалистов таковыми не являются и на специализированных форумах не обсуждаются, а новички зачастую просто не знают где спросить совета. А сопряжение торгового оборудования с 1С:Предприятие вообще является отдельной темой, со своими особенностями и проблемами.

Сегодня мы рассмотрим одну их таких ситуаций, с которой может столкнуться большая часть пользователей программ 1С:Предприятие использующих ККТ фирмы АТОЛ. Как известно в нашей стране широко внедряется маркировка отдельных видов товаров, на сегодня это лекарства, обувь, табак. С 1 июля 2020 года маркировка для этих товаров становится обязательной, что требует приведения в соответствие торговых систем тех, кто до сих пор этого не сделал.

Для того, чтобы правильно работать с маркированным товаром нужно обновить прошивку ККТ, актуальная текущая версия для платформы 2.5 АТОЛ - 8541, а также установить драйвер ККТ не ниже 10.6.2.0, в нашем случае использовался драйвер 10.7.0.0.

При этом идеально бы было, конечно, обновить и саму конфигурацию прикладного решения 1С до актуальной, но это не всегда возможно и экономически оправдано, особенно если ваша конфигурация сильно доработана и на текущий момент удовлетворяет всем предъявляемым требованиям. В нашем случае это оказалась Розница 2.2.13.12.

На первый взгляд все было хорошо, все необходимые реквизиты в чеке печатаются и все необходимые данные передаются, но при проверке подключения оборудования в 1С возникла ошибка Некорректный код защиты / лицензия или номер.

1C-ATOL-KZ-error-001.png

В чем дело? А дело в том, что производитель ККТ АТОЛ начиная с прошивки 8502 изменил механизм защиты с кодов защиты на лицензии. Процитируем официальную документацию:

Лицензия 1 и Лицензия 2 работают совместно и описанный ниже функционал не доступен, если одна из лицензий удалена!

Лицензия 1 является основной, и, помимо основных фискальных функций (выполнение регистрации/перерегистрации ККТ, открытие/закрытие смены в ККТ и т.д.), позволяет работать ККТ в соответствии с Федеральным законом № 303-ФЗ «О внесении изменений в отдельные законодательные акты российской федерации о налогах и сборах» (в части введения ставки НДС 20%, использования термина «безналичными» (формами расчета) вместо «электронными»), допускает работу с маркированным товаром с проведением ФЛК кодов товара для записи в ФН, работу с некоторыми реквизитами фискальных документов (теги 1227-1231, значения 14..26 тега 1212), а также допускает программирование и печать картинок и штрихкодов (см. раздел «Команды печати» на странице 54), и использование пользовательских шаблонов.

Лицензия 2 позволяет печатать отчеты без гашения (кроме отчета о состоянии расчетов), программировать клише чека и шаблоны чеков, выполнять инициализацию ЭЖ.

Техподдержка АТОЛ также достаточно однозначно высказалась на форуме (сохранена орфография и пунктуация автора):

без лицензий/кодов защиты не будет работать функционал, которые эти самые лицензии/коды защиты лицензируют/защищают

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

А теперь давайте разбираться, как следует из документации АТОЛ нам требуется минимально версия драйверов 10.6.2.0 с версией к требованию разработки драйверов 3.1. Но позвольте, у нас же стоит 10.7.0.0, о чем написано прямо в окне свойств подключаемого оборудования.


Но не все так просто, давайте перейдем в Подключаемое оборудование - Драйверы оборудования и откроем свойства встроенного в конфигурацию драйвера АТОЛ:ККТ с передачей данных в ОФД (54-ФЗ) 10.Х, где мы увидим достаточно интересную картину:

Из чего следует, что хотя мы и обновили драйвер ККТ до 10.7.0.0, версия интеграционной компоненты в составе 1С осталась старой 10.5.1.3, которая не умеет работать с новыми лицензиями ККТ АТОЛ.

Для того, чтобы исправить ситуацию нам потребуется новая интеграционная компонента, которая поставляется вместе с драйверами ККТ, нужно просто выбрать соответствующий пункт при установке, если вы уже установили драйвер, то выполните установку еще раз, дополнительно выбрав нужные компоненты.

В большинстве случаев этого будет достаточно, но не всегда. Что не так на этот раз? Снова вернемся в Подключаемое оборудование - Драйверы оборудования и посмотрим в свойства загруженного драйвера.

Как видим, несмотря на то что мы загрузили новую интеграционную компоненту 1С продолжает использовать старую, входящую в состав конфигурации. Для исправления этой ситуации перейдем в расположение %USERPROFILE%AppDataRoamingCcv8ExtCompT и найдем там файл registry.xml, который содержит сведения обо всех подключенных к 1С интеграционных компонентах. За интеграцию с ККТ АТОЛ отвечают компоненты fptr10_1c_win32_10_х_х_х.dll, где 10_х_х_х - версия драйвера. Удаляем из этого файла все записи, кроме относящейся к последней версии драйверов.


Сохраняем его и перезапускаем 1С, сразу проверяем свойства драйвера. На этот раз все нормально, версия основной поставки и интеграционной компоненты совпадают.

Проверяем тест связи с кассой - тоже все работает:

После этого не забываем перейти в НСИ - Кассы ККМ и подключить нужной кассе новый экземпляр оборудования.

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