При интеграции торгового оборудования, в частности современных онлайн-касс под управлением 10-й версии драйвера АТОЛ (ДТО 10), разработчики часто сталкиваются с неочевидными техническими сбоями. Одна из самых распространенных проблем в конфигурациях на обычных формах (в режиме толстого клиента) — внезапное «исчезновение» методов ККТ при передаче объекта драйвера из модуля формы в общий модуль. Наиболее часто это проявляется ошибкой вызова метода ПолучитьПараметрыККТ.
Параллельно перед техническими специалистами встает вопрос соответствия кассового оборудования требованиям ФНС, в частности — перевод касс на формат фискальных данных (ФФД) 1.05 со старой версии 1.0 без лишних затрат на покупку нового фискального накопителя (ФН). В этой статье мы подробно разберем обе эти задачи, проанализируем причины возникновения ошибок и предоставим пошаговые инструкции по их устранению.
Рассмотрим классическую ситуацию: при открытии смены или пробитии чека на десятом драйвере АТОЛ система выдает ошибку о том, что метод ПолучитьПараметрыККТ из общего модуля универсальныйДрайверКлиент не обнаружен. При этом, если протестировать доступность этого метода локально внутри модуля формы, все отрабатывает корректно. Почему так происходит?
Дело в разграничении контекстов исполнения кода в платформе 1С:Предприятие. Когда мы работаем в режиме толстого клиента на обычных формах, критически важно контролировать свойства компиляции общих модулей. Разберем по шагам, как решить эту проблему:
универсальныйДрайверКлиент или его аналог в вашей конфигурации). Нажмем по нему правой кнопкой мыши и откроем «Свойства». Нам необходимо убедиться, что установлена галочка «Клиент (обычное приложение)». Если эта галочка отсутствует, модуль компилируется только в контексте тонкого клиента или сервера. Соответственно, при передаче COM-объекта или Native-компоненты драйвера ККТ из формы обычного приложения в этот модуль, объект теряет свой контекст, а его методы становятся недоступными.ПолучитьПараметрыККТ вернет пустое значение или вызовет ошибку обращения к свойству. Рекомендуется использовать актуальные версии интеграционных библиотек (например, ATOLkkt.epf), поставляемые фирмой 1С.
// Пример вызова метода в модуле формы обычного приложения
Процедура ПриОткрытииСменыНаКассе()
// Инициализируем объект драйвера ККТ
ОбъектДрайвера = ПодключитьОборудование();
Если ОбъектДрайвера = Неопределено Тогда
Предупреждение("Не удалось подключить драйвер ККТ!");
Возврат;
КонецЕсли;
// Передаем объект ККТ в общий модуль для получения параметров
ПараметрыККТ = Новый Структура;
Отказ = Ложь;
// Важно: модуль универсальныйДрайверКлиент должен иметь флаг "Клиент (обычное приложение)"
универсальныйДрайверКлиент.ПолучитьПараметрыККТ(ОбъектДрайвера, ПараметрыККТ, Отказ);
Если Отказ Тогда
Сообщить("Не удалось прочитать параметры фискального накопителя и ККТ!");
Иначе
Сообщить("Версия ФФД ККТ: " + ПараметрыККТ.FFDVersionKKT);
Сообщить("Версия ФФД ФН: " + ПараметрыККТ.FFDVersionFN);
КонецЕсли;
КонецПроцедуры
Если свойства модуля настроены верно, данный код отработает без ошибок, и структура ПараметрыККТ заполнится актуальными данными напрямую из кассового аппарата.
С 1 января 2019 года формат фискальных документов версии 1.0 полностью утратил юридическую силу. Все налогоплательщики обязаны были перейти на использование формата версии не ниже 1.05. При этом у многих пользователей возник резонный вопрос: обязательно ли менять дорогостоящий фискальный накопитель, если его срок действия еще не истек?
Проанализируем техническую и законодательную сторону этого вопроса. ФНС России в своих разъяснениях подтвердила, что переход с ФФД 1.0 на ФФД 1.05 возможен без физической замены фискального накопителя. Физические накопители версий ФН 1.0 и ФН 1.1 технически поддерживают работу по обоим стандартам.
Для успешного перехода выполним следующую последовательность действий:
Отдельного внимания заслуживает ситуация, когда используемая конфигурация (например, старые версии «Альфа-Авто» или сильно измененные самописные системы) официально поддерживает только устаревшие драйверы АТОЛ версии 8.х или 9.х. Фирма 1С прекратила поддержку ДТО 8.х и 9.х, поскольку эти драйверы не могут полноценно работать по новым требованиям ФЗ-54. В качестве готового решения для таких учетных систем можно использовать конфигурацию на базе БПО для работы с онлайн-кассами в Альфа-Авто.
Тем не менее, разработчики компании АТОЛ в свое время выпустили промежуточные сервисные обновления для драйверов 8.16.х и 9.12.х, которые позволяли корректно передавать ставку НДС 20%. Это было сделано для плавного перехода, однако для полноценной работы и соответствия всем требованиям ФНС (включая маркировку товаров) крайне рекомендуется переходить на 10-й драйвер. Для прямой передачи команд в ККТ можно использовать внешнюю компоненту для работы с драйвером АТОЛ 10.
Если ваша конфигурация 1С не поддерживает АТОЛ 10 «из коробки», выполните следующие действия:
Таким образом, своевременная проверка контекста исполнения кода в общих модулях 1С и правильное использование сервисных утилит производителя ККТ позволяют решить проблемы интеграции оборудования без прерывания торговых процессов организации.