Как подключить АТОЛ 55Ф без ФН (ЕНВД) к 1С:Управление торговлей 10.3 и устранить падение платформы

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

При использовании современных кассовых аппаратов серии «Ф» (например, АТОЛ 55Ф или АТОЛ 30Ф) в режиме чекопечатающей машины (для плательщиков ЕНВД или ПСН без фискального накопителя) специалисты часто сталкиваются со следующей проблемой: устройство корректно подключается к 1С в качестве «ККТ с передачей данных», проходит тесты связи и даже снимает X-отчеты, но при попытке пробить чек или проведение документа Приходный кассовый ордер (ПКО) / Чек ККМ платформа 1cv8.exe аварийно завершает работу без вывода информативного сообщения об ошибке.

Проанализируем причины возникновения этой проблемы и разберем варианты её технического решения в конфигурации 1С:Управление торговлей ред. 10.3.

Причина аварийного завершения работы 1С

Причина вылета платформы заключается в расходовании ожиданий подсистемы торгового оборудования и драйвера:

  1. Запрос фискальных реквизитов: При выполнении типовой функции пробития чека из подсистемы «ККТ с передачей данных» 1С отправляет команду закрытия чека и ожидает от драйвера фискальные атрибуты (номер фискального документа, фискальный признак, номер смены).
  2. Отсутствие ФН: Поскольку фискальный накопитель физически отсутствует или касса не фискализирована, драйвер возвращает ошибку либо пустой структурированный ответ.
  3. Сбой внешней компоненты: Старые внешние компоненты (библиотеки .dll) и подсистема торгового оборудования в 1С:УТ 10.3 не содержат обработчика исключительной ситуации для этой ошибки, что вызывает критический сбой памяти и закрытие приложения.

Разберем подробнее способы решения данной задачи.

Способ 1. Перевод устройства на протокол АТОЛ 2.4 и работа в режиме ФР

Если требуется подключить кассу как традиционный «Фискальный регистратор» (а не «ККТ с передачей данных»), необходимо перевести устройство на старый протокол обмена 2.4. Это позволит выбирать в настройках торгового оборудования модель FPrint-55 или аналогичную.

Рассмотрим порядок переключения протокола обмена на аппарате АТОЛ:

  1. Выключим питание кассового аппарата.
  2. Зажмем кнопку промотки ленты и включим кассу.
  3. Удерживаем кнопку до звуковых сигналов. Аппарат издаст один короткий сигнал при включении, затем через некоторое время последовательно прозвучат еще 4 сигнала (сервисный режим). После этого отпускаем кнопку.
  4. Находясь в сервисном меню, нажмем кнопку промотки ленты 4 раза для перехода в режим выбора протокола обмена.
  5. Нажмем кнопку промотки 2 раза, чтобы выбрать пункт «Атол 2.4».
  6. Выйдем из сервисного режима, нажав кнопку промотки еще один раз, и перезагрузим устройство.

После перевода устройства в режим протокола 2.4 в 1С:УТ 10.3 открываем справочник подключенного торгового оборудования, добавляем устройство в раздел «Фискальные регистраторы» и выбираем модель FPrint-55 (или совместимую). Это исключает вызовы методов работы с 54-ФЗ и решает проблему вылетов.

Способ 2. Вывод нефискальных строк через доработанную печатную форму

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

Проанализируем алгоритм реализации данного обхода:

  1. Откажемся от использования типового механизма пробития фискальных чеков из документов «Чек ККМ» или «Приходный кассовый ордер».
  2. Создадим внешнюю печатную форму для нужного документа (например, «Реализация товаров и услуг» или «ПКО»).
  3. В коде внешнего обработки получаем объект драйвера кассы и вызываем методы печати произвольного текста (нефискальных строк), завершая операцию промоткой и отрезкой чека, не вызывая фискальные функции типа ОткрытьЧек() и ЗакрытьЧек().

Посмотрим на пример кода 1С для работы с объектом драйвера ДТО 8.x при печати нефискального документа:


// Создаем объект драйвера ККМ
ОбъектДрайвера = Новый COMОбъект("AddIn.FPrintSrv");

// Занимаем порт устройства
ОбъектДрайвера.DeviceEnabled = Истина;

Если ОбъектДрайвера.ResultCode = 0 Тогда
    
    // Вход в режим печати нефискальных документов
    ОбъектДрайвера.Mode = 1;
    ОбъектДрайвера.SetMode();
    
    // Печать строк чека
    ОбъектДрайвера.Caption = "ТОВАРНЫЙ ЧЕК (НЕФИСКАЛЬНЫЙ)";
    ОбъектДрайвера.PrintString();
    
    ОбъектДрайвера.Caption = "Товар: Наименование товара";
    ОбъектДрайвера.PrintString();
    
    ОбъектДрайвера.Caption = "Итого: 1000.00 руб.";
    ОбъектДрайвера.PrintString();
    
    // Промотка и отрезка ленты
    ОбъектДрайвера.PartialCut();
    
    // Освобождаем порт
    ОбъектДрайвера.DeviceEnabled = Ложь;
    
Иначе
    Сообщить("Ошибка подключения к ККТ: " + ОбъектДрайвера.ResultDescription);
КонецЕсли;

Способ 3. Использование актуальных драйверов ДТО 10.x и обновленной обработки обслуживания

Если необходимо сохранить штатную схему работы с оборудованием через интерфейсы 1С, рекомендуется:

  1. Установить последнюю версию драйвера ККТ АТОЛ (ДТО 10.x).
  2. Обновить внешнюю обработку обслуживания торгового оборудования для УТ 10.3 (файл ATOLKKTSHTRIHM54_v2.epf или аналогичную актуальную обработку с поддержкой ДТО 10).
  3. В настройках обработки обслуживания включить режим игнорирования ошибок фискализации для нефискализированных касс.

Использование ДТО 10.x корректно обрабатывает отсутствие ФН и предотвращает критические сбои платформы 1С при завершении печати.

← На главную