Как подключить онлайн-кассу АТОЛ 11Ф к старой нетиповой 1С:Управление торговлей 11?

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

Подключение современных контрольно-кассовых аппаратов с поддержкой требований 54-ФЗ (онлайн-касс) к ранним релизам конфигурации 1С:Управление торговлей 11 (например, 11.0.6.9) — классическая задача, с которой сталкиваются при сопровождении сильно кастомизированных баз. В таких конфигурациях типовые механизмы работы с торговым оборудованием (ТО) рассчитаны на устаревшие версии протоколов (DTO 6/8) и не поддерживают современные фискальные реквизиты.

Разберем основные проблемы, возникающие в процессе подключения ККТ АТОЛ 11Ф, выясним технические причины сбоев и рассмотрим пошаговые варианты их исправления.

Причина 1. Ошибка «System error. Code: 2 (Не удается найти указанный файл)»

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

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

Для исправления проблемы выполним ручную регистрацию необходимой библиотеки драйвера. Найдем файл Fprn.dll (или соответствующую библиотеку из комплекта актуального интеграционного компонента АТОЛ), скопируем его в каталог исполняемых файлов платформы bin и зарегистрируем через командную строку от имени администратора:

regsvr32 "C:\Program Files (x86)\1cv8\8.3.XX.XXXX\bin\Fprn.dll"

Причина 2. Ошибка «Устройство не включено» и сброс соединения

Частая ситуация: в тесте устройства из 1С появляется сообщение о том, что фискальный регистратор не включен, а при попытке включить его связь сразу же разрывается. Выясним причину такого поведения.

Физический или виртуальный COM-порт, через который подключена касса (включая подключение по USB в режиме эмуляции COM-порта), может монопольно удерживаться только одним приложением. Если на компьютере параллельно запущена сервисная утилита («Тест драйвера ККТ») и в ней установлена отметка Устройство включено, порт блокируется этой утилитой. При попытке 1С обратиться к аппарату драйвер получает отказ операционной системы в доступе к занятому порту и сбрасывает статус готовности устройства.

Чтобы решить эту проблему, обязательно закрываем утилиту тестирования драйвера либо снимаем в ней флаг Устройство включено перед выполнением проверки связи или пробитием чека из 1С.

Причина 3. Несовместимость формата фискальных данных (ФФД)

Релиз УТ 11.0.6.9 создавался задолго до появления онлайн-касс, передачи электронных чеков операторам фискальных данных (ОФД) и требований форматов фискальных документов 1.05/1.2. В связи с этим при попытке работы возникают ошибки формирования реквизитов чека:

  1. Передача ФИО и ИНН кассира (теги 1021 и 1203). В старых кассовых аппаратах кассир выбирался из внутренней энергонезависимой таблицы ККТ по паролю. В современных онлайн-кассах редактирование внутренней таблицы кассиров не имеет смысла: данные кассира должны передаваться динамически в теле фискального документа из учетной системы при каждом открытии чека.
  2. Ставка «Без НДС» вместо «НДС 0%». В актуальных версиях драйверов АТОЛ налоговые ставки кодируются конкретными числовыми индексами. В коде ранних конфигураций схема сопоставления налогов не совпадает с протоколом современного драйвера, в результате чего признак «Без НДС» транслируется в ККТ как ставка «0%». Для устранения ошибки требуется корректировка маппинга налоговых ставок в модуле формирования фискального пакета.
  3. Длина наименования и перенос строк. Касса АТОЛ 11Ф использует чековую ленту шириной 57 мм, что позволяет разместить от 32 до 36 символов в одной строке в зависимости от выбранного шрифта. Если наименование товара или реквизиты покупателя превышают допустимую длину, драйвер или прошивка кассы могут их обрезать. Для длинных строк в коде обработки печати чека необходимо реализовать программное разбиение строки на части с выводом через команды нефискальной печати текстовых строк.

Варианты интеграции ККТ в нетиповую УТ 11

Для стабильной работы онлайн-кассы на сильно измененной старой конфигурации применяются три основных подхода:

  1. Выборочное обновление подсистемы торгового оборудования (БПО).

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

  2. Использование внешней обработки обслуживания с прямым обращением к драйверу.

    Если внедрение новой БПО требует слишком масштабных изменений метаданных, создается специализированная внешняя обработка. Она инициализирует COM-объект современного драйвера АТОЛ (DTO 10) напрямую и передает фискальные данные через нативные методы драйвера ККТ в обход устаревшей структуры подсистемы оборудования конфигурации.

  3. Интеграция через локальный веб-сервис печати чеков.

    На рабочий компьютер кассира устанавливается промежуточный веб-сервис фискализации, принимающий команды по протоколу HTTP/JSON. В конфигурации 1С формируется простой JSON-пакет с позициями чека и отправляется POST-запросом на локальный порт (localhost). Сторонний сервис самостоятельно берет на себя все взаимодействие с драйвером АТОЛ, исключая проблемы с разрядностью платформы 1С, регистрацией COM-компонент и блокировками портов.

← На главную