При подключении торгового оборудования, в частности фискальных регистраторов АТОЛ (например, популярной модели АТОЛ 11Ф), к устаревшим или сильно измененным конфигурациям «1С:Предприятие» (таким как «Управление торговлей 10.3» на обычных формах), системные администраторы и разработчики часто сталкиваются с аппаратными сбоями — для их устранения есть обработка интеграции ККТ АТОЛ для 1С на обычных формах. Одним из самых распространенных и ставящих в тупик является сбой с сообщением: «Тест не пройден. [11] Не поддерживается в данной версии».
В этой статье мы подробно разберем, почему возникает данная ошибка, о версии какого именно компонента идет речь, и пошагово проанализируем методы ее устранения.
Прежде всего необходимо понять архитектуру взаимодействия программных сред. Когда «1С» работает с кассовым аппаратом, она делает это не напрямую, а через специальную цепочку посредников:
Ошибка с кодом [11] Не поддерживается в данной версии генерируется непосредственно ядром драйвера АТОЛ. Она означает, что программный метод, который пытается выполнить интеграционная компонента «1С», отсутствует, заблокирован или не поддерживается текущей версией прошивки ККТ либо самой версией ДТО.
Выделим три основные практические ситуации, когда это происходит:
10.6.0.0 имеет внутренние проблемы совместимости с некоторыми релизами прошивок ККТ. Драйвер пытается выполнить обращение к функционалу, который касса отвергает.10.10.3.0, полностью прекратили поддержку касс, работающих на старой «Платформе 2.5» (прошивки ККТ серии 3.0.хххх и ниже). При попытке подключить такую кассу к новому драйверу возникнет именно ошибка 11.Проанализируем самый простой и быстрый способ решения проблемы, который помог автору темы на форуме. Если вы используете конфигурацию «Управление торговлей 10.3» (поможет комплексная поддержка ККТ для устаревшей УТ 10.3) и драйвер версии 10.6.0.0, выполните следующие действия по шагам:
10.6.0.0.KKT10-10.6.3.0-windows32-setup.exe или 10.6.2.0). Важно: разрядность драйвера должна соответствовать разрядности платформы «1С» (для 32-битной платформы ставьте 32-битный драйвер, даже если ОС Windows 64-битная).Если обновление на версию 10.6.3.0 не принесло желаемого результата, необходимо проверить версию внутреннего ПО кассы. Рассмотрим этот сценарий подробнее:
Снимите на кассовом аппарате чек «Информация о ККТ» (обычно это делается удержанием кнопки промотки бумаги при включении аппарата до первого или второго звукового сигнала в зависимости от модели). Найдите в чеке строку с версией ПО (прошивки).
Если ваша касса работает на старой прошивке Платформы 2.5 (версии 12-8502, 3.0.1245 и т.д.):
10.10.3.0 и выше.Если вы перевели кассу на актуальную Платформу 5.0 (прошивки 5.7.х, 5.8.х и выше) для поддержки маркировки или ФФД 1.2:
10.9.х.х - 10.10.х.х).Иногда внешняя обработка обслуживания «1С» (например, ATOLKKT.epf) хранит внутри себя устаревшую интеграционную библиотеку в виде макета. Даже если вы установили новый драйвер в систему, «1С» при старте подгружает старую библиотеку из своего макета и пытается работать через нее. Разберем, как обновить компоненту внутри обработки:
ИнтеграционнаяКомпонента или латинским аналогом).fptr10_1c_*.dll, которая находится в каталоге установленного вами драйвера АТОЛ (обычно это путь: C:\Program Files (x86)\ATOL\Drivers10\KKT\libs\1c\).Для продвинутых пользователей и программистов существует кардинальный способ раз и навсегда избавиться от проблем совместимости конфигураций «1С» (особенно на платформе «1С:Предприятие 7.7» или старых обычных формах 8.3) с БСП, макетами и DLL-компонентами — для этого подойдёт решение для подключения ККТ через ATOL Web-Server. Это использование встроенного веб-сервера АТОЛ (Fptr Web Server).
Этот метод заключается в том, что на компьютере, к которому подключена ККТ, запускается служба веб-сервера АТОЛ (доступна начиная с ДТО версии 10.7.0.0). Обмен данными с ККТ происходит по протоколу HTTP посредством передачи простых текстовых JSON-пакетов.
Рассмотрим пример того, как можно программно отправить задание на печать чека или открытие смены из «1С» без использования стандартных обработок обслуживания торгового оборудования:
// Пример отправки команды открытия смены через HTTP-запрос к Web-серверу АТОЛ
Процедура ОткрытьСменуЧерезВебСервер()
// Параметры подключения к локальному веб-серверу АТОЛ
СерверАдрес = "127.0.0.1";
ПортПодключения = 16732; // Стандартный порт службы fptr-web-server
// Создаем HTTP-соединение
Соединение = Новый HTTPСоединение(СерверАдрес, ПортПодключения);
// Формируем тело запроса в формате JSON
// Каждому заданию должен быть присвоен уникальный идентификатор (UUID)
ИдентификаторЗадачи = Строка(Новый УникальныйИдентификатор());
ТекстJSON = "{
| ""uuid"": """ + ИдентификаторЗадачи + """,
| ""request"": [
| {
| ""type"": ""openShift"",
| ""operator"": {
| ""name"": ""Администратор кассы"",
| ""vatin"": ""123456789012""
| }
| }
| ]
|}";
// Готовим POST-запрос к веб-серверу
Запрос = Новый HTTPЗапрос("/api/v1/tasks");
Запрос.Заголовки.Вставить("Content-Type", "application/json");
Запрос.УстановитьТелоИзСтроки(ТекстJSON, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать);
Попытка
// Отправляем запрос на выполнение кассовой операции
Ответ = Соединение.ОтправитьДляОбработки(Запрос);
// Код состояния 201 означает, что задача успешно принята в очередь ККТ
Если Ответ.КодСостояния = 201 Тогда
Сообщить("Задание на открытие смены успешно передано на ККТ.");
// Получаем тело ответа для анализа
ОтветСтрока = Ответ.ПолучитьТелоКакСтроку(КодировкаТекста.UTF8);
// Далее можно разобрать JSON-ответ для получения статуса задачи
Иначе
ВызватьИсключение "Сервер ККТ вернул ошибку с кодом: " + Ответ.КодСостояния;
КонецЕсли;
Исключение
Сообщить("Не удалось выполнить кассовую операцию. Причина: " + ОписаниеОшибки(), СтатусСообщения.Важное);
КонецПопытки;
КонецПроцедуры
Использование технологии Web-Server решает множество системных проблем:
Таким образом, планомерный анализ цепочки «Прошивка ККТ -> Драйвер -> Компонента -> 1С» позволяет быстро локализовать и устранить неприятную ошибку совместимости.