При работе с торговым оборудованием в конфигурациях на обычных формах (таких как 1С:Комплексная автоматизация 1.1, 1С:Управление производственным предприятием 1.3 или 1С:Управление торговлей 10.3) часто возникает парадоксальная ситуация: тест устройства проходит успешно, снятие X-отчета через меню управления выполняется без ошибок, но при попытке пробить чек из документа «Приходный кассовый ордер» (ПКО) программа выдает сообщение: «Фискальный регистратор не подключен».
Проанализируем причины этой проблемы и разберем по шагам, как настроить систему и модуль документа для корректной печати чеков.
С переходом на требования 54-ФЗ в структуре конфигураций 1С появилось разделение оборудования на классические фискальные регистраторы и онлайн-кассы нового типа — ККТ с передачей данных. Если физическое устройство (например, АТОЛ 22Ф) подключено в справочнике как ККТ с передачей данных, а алгоритм кнопки «Чек» в документе ПКО обращается к устаревшему механизму и ищет устройство с типом Перечисление.ВидыТорговогоОборудования.ФискальныйРегистратор, возникает логический конфликт.
В результате процедура инициализации не находит объект с требуемым типом и возвращает статус отсутствия подключения.
В архитектуре обычных форм подключение кассового аппарата происходит в момент открытия формы документа в событии ПриОткрытии. Если в этот момент COM-порт был временно заблокирован внешним приложением (например, утилитой драйвера «Тест ККТ») или тестом из настроек 1С, внутренняя переменная подключения устройства принимает значение Ложь. Нажатие кнопки «Чек» уже не пытается повторно подключить порт, а сразу прерывает выполнение с ошибкой.
Разберем последовательность действий, которая позволит локализовать и устранить неполадку:
Кассы ККМ, найдем используемую кассу и убедимся, что к ней привязан именно созданный экземпляр оборудования, а реквизит Организация совпадает с организацией в документе ПКО.Основная касса, Основная касса ККМ и Основная организация.Если параметры кассы и пользователя заданы верно, выясним точную причину через режим отладки конфигуратора. Поставим точку останова в модуле формы документа «Приходный кассовый ордер» в процедурах ПриОткрытии и обработчике кнопки печати чека.
Посмотрим на пример логики подключения, которую необходимо проверить в коде формы:
// В процедуре ПриОткрытии проверяется доступность устройства:
мВидТорговогоОборудования = Перечисление.ВидыТорговогоОборудования.ККТ;
// Либо для онлайн-касс в обновленных конфигурациях:
// Перечисление.ВидыТорговогоОборудования.ККТСПередачейДанных
мУстройствоПодключено = ПолучитьСерверТО().ПодключитьКлиента(ЭтаФорма, мВидТорговогоОборудования);
При нажатии на кнопку печати чека проанализируем значение переменной состояния подключения. Если в типовом коде вызов построен через старый интерфейс фискального регистратора:
Если Не мУстройствоПодключено Тогда
Предупреждение("Фискальный регистратор не подключен!");
Возврат;
КонецЕсли;
Убедимся, что переданный идентификатор устройства совпадает с реальным ID подключенной онлайн-кассы, а тип запрашиваемого оборудования в коде соответствует типу, указанному в карточке торгового оборудования.