Как исправить ошибку метода ПолучитьПараметрыККТ в 1С и перейти на ФФД 1.05 без замены фискального накопителя

Программист 1С v8.3 (Обычные формы) Торговля и дистрибуция
← На главную

При интеграции торгового оборудования, в частности современных онлайн-касс под управлением 10-й версии драйвера АТОЛ (ДТО 10), разработчики часто сталкиваются с неочевидными техническими сбоями. Одна из самых распространенных проблем в конфигурациях на обычных формах (в режиме толстого клиента) — внезапное «исчезновение» методов ККТ при передаче объекта драйвера из модуля формы в общий модуль. Наиболее часто это проявляется ошибкой вызова метода ПолучитьПараметрыККТ.

Параллельно перед техническими специалистами встает вопрос соответствия кассового оборудования требованиям ФНС, в частности — перевод касс на формат фискальных данных (ФФД) 1.05 со старой версии 1.0 без лишних затрат на покупку нового фискального накопителя (ФН). В этой статье мы подробно разберем обе эти задачи, проанализируем причины возникновения ошибок и предоставим пошаговые инструкции по их устранению.

Часть 1. Решение проблемы с ошибкой метода ПолучитьПараметрыККТ в 1С

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

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

  1. Проверка свойств общего модуля. Откроем конфигуратор 1С, найдем общий модуль, в котором происходит сбой (в нашем случае это универсальныйДрайверКлиент или его аналог в вашей конфигурации). Нажмем по нему правой кнопкой мыши и откроем «Свойства». Нам необходимо убедиться, что установлена галочка «Клиент (обычное приложение)». Если эта галочка отсутствует, модуль компилируется только в контексте тонкого клиента или сервера. Соответственно, при передаче COM-объекта или Native-компоненты драйвера ККТ из формы обычного приложения в этот модуль, объект теряет свой контекст, а его методы становятся недоступными.
  2. Анализ способа подключения драйвера. Драйверы АТОЛ 10-й версии могут подключаться как через традиционную COM-технологию, так и через современный стандарт Native API, используемый в Библиотеке подключаемого оборудования (БПО). Если в системе зарегистрирована только COM-библиотека, а программный код БПО ожидает Native-компоненту, вызов метода ПолучитьПараметрыККТ вернет пустое значение или вызовет ошибку обращения к свойству. Рекомендуется использовать актуальные версии интеграционных библиотек (например, ATOLkkt.epf), поставляемые фирмой 1С.
  3. Контроль передачи параметров. Убедимся, что передача объекта кассы в процедуру общего модуля выполняется по ссылке, без промежуточной сериализации. Ниже рассмотрим правильный пример вызова метода получения параметров ККТ в общем модуле:

// Пример вызова метода в модуле формы обычного приложения
Процедура ПриОткрытииСменыНаКассе()
    
    // Инициализируем объект драйвера ККТ
    ОбъектДрайвера = ПодключитьОборудование();
    
    Если ОбъектДрайвера = Неопределено Тогда
        Предупреждение("Не удалось подключить драйвер ККТ!");
        Возврат;
    КонецЕсли;
    
    // Передаем объект ККТ в общий модуль для получения параметров
    ПараметрыККТ = Новый Структура;
    Отказ = Ложь;
    
    // Важно: модуль универсальныйДрайверКлиент должен иметь флаг "Клиент (обычное приложение)"
    универсальныйДрайверКлиент.ПолучитьПараметрыККТ(ОбъектДрайвера, ПараметрыККТ, Отказ);
    
    Если Отказ Тогда
        Сообщить("Не удалось прочитать параметры фискального накопителя и ККТ!");
    Иначе
        Сообщить("Версия ФФД ККТ: " + ПараметрыККТ.FFDVersionKKT);
        Сообщить("Версия ФФД ФН: " + ПараметрыККТ.FFDVersionFN);
    КонецЕсли;
    
КонецПроцедуры

Если свойства модуля настроены верно, данный код отработает без ошибок, и структура ПараметрыККТ заполнится актуальными данными напрямую из кассового аппарата.

Часть 2. Переход с ФФД 1.0 на ФФД 1.05 без замены фискального накопителя

С 1 января 2019 года формат фискальных документов версии 1.0 полностью утратил юридическую силу. Все налогоплательщики обязаны были перейти на использование формата версии не ниже 1.05. При этом у многих пользователей возник резонный вопрос: обязательно ли менять дорогостоящий фискальный накопитель, если его срок действия еще не истек?

Проанализируем техническую и законодательную сторону этого вопроса. ФНС России в своих разъяснениях подтвердила, что переход с ФФД 1.0 на ФФД 1.05 возможен без физической замены фискального накопителя. Физические накопители версий ФН 1.0 и ФН 1.1 технически поддерживают работу по обоим стандартам.

Для успешного перехода выполним следующую последовательность действий:

  1. Закрытие кассовой смены. Перед началом любых манипуляций обязательно закройте смену в 1С и убедитесь, что все пробитые чеки полностью отправлены оператору фискальных данных (ОФД). В буфере ККТ не должно оставаться неотправленных документов, иначе утилита регистрации заблокирует операцию обновления.
  2. Обновление внутреннего ПО (прошивки) кассы. Кассовые аппараты АТОЛ должны иметь прошивку, поддерживающую работу с ФФД 1.05. Обновление прошивки ККТ производится силами специалистов авторизованных сервисных центров (АСЦ) или с помощью официального загрузчика АТОЛ.
  3. Использование утилиты регистрации ККТ АТОЛ. Для изменения настроек регистрации не нужно проводить процедуру закрытия архива ФН. Запустим «Утилиту регистрации ККТ АТОЛ» (она поставляется вместе с драйвером ДККТ 10) и выберем пункт «Изменение параметров регистрации без замены ФН». В открывшемся окне в качестве применяемого формата фискальных документов выберем ФФД 1.05. После подтверждения операции касса сформирует и распечатает отчет об изменении параметров регистрации. С этого момента касса начнет формировать теги по стандарту 1.05, а в ОФД уйдут обновленные данные. Роботизация подобных действий в интерфейсах сторонних программ без открытого API выполняется через платформу для создания программных роботов с визуальным конструктором сценариев.

Часть 3. Особенности работы со старыми конфигурациями 1С (Альфа-Авто и др.)

Отдельного внимания заслуживает ситуация, когда используемая конфигурация (например, старые версии «Альфа-Авто» или сильно измененные самописные системы) официально поддерживает только устаревшие драйверы АТОЛ версии 8.х или 9.х. Фирма 1С прекратила поддержку ДТО 8.х и 9.х, поскольку эти драйверы не могут полноценно работать по новым требованиям ФЗ-54. В качестве готового решения для таких учетных систем можно использовать конфигурацию на базе БПО для работы с онлайн-кассами в Альфа-Авто.

Тем не менее, разработчики компании АТОЛ в свое время выпустили промежуточные сервисные обновления для драйверов 8.16.х и 9.12.х, которые позволяли корректно передавать ставку НДС 20%. Это было сделано для плавного перехода, однако для полноценной работы и соответствия всем требованиям ФНС (включая маркировку товаров) крайне рекомендуется переходить на 10-й драйвер. Для прямой передачи команд в ККТ можно использовать внешнюю компоненту для работы с драйвером АТОЛ 10.

Если ваша конфигурация 1С не поддерживает АТОЛ 10 «из коробки», выполните следующие действия:

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

← На главную