Как подключить драйвер АТОЛ ККТ версии 10.x к старой конфигурации 1С?

Программист 1С v8.3 (Управляемые формы) Сфера услуг, туризм и социальный сектор
← На главную

В этой статье мы рассмотрим, как подойти к решению сложной, но распространенной задачи: подключение современного драйвера фискального регистратора АТОЛ версии 10.x к устаревшей или сильно модифицированной конфигурации 1С. Часто такие конфигурации не имеют актуальной Библиотеки Подключаемого Оборудования (БПО), используют старые стандарты или даже жестко прописывают драйверы, что препятствует прямому обновлению. Мы проанализируем различные сценарии и предложим возможные пути решения, включая обновление БПО, работу через COM-объект и использование дополнительных компонентов-посредников.

Проблема подключения современного драйвера к устаревшей конфигурации 1С

Исходная ситуация, с которой столкнулся пользователь, заключается в невозможности установить связь между 1С и кассовым аппаратом после перепрошивки ККТ. Это типичная проблема, когда в системе установлен новый драйвер АТОЛ (например, версии 10.10.6.0), но конфигурация 1С ожидает старую версию (например, 9.12.3.6332).

В старых отраслевых конфигурациях, таких как стоматологическая, проблема усугубляется тем, что стандартные механизмы 1С для работы с подключаемым оборудованием могут быть либо устаревшими, либо полностью отсутствовать. Например, вместо современного справочника ДрайвераОборудования, драйвер может быть "хардкодом прописан" в коде или храниться в макетах конфигурации.

Попытка просто обновить макет с новым драйвером, как показал опыт автора, часто оказывается безуспешной. Метод ПодключитьВнешнююКомпоненту() может возвращать Ложь, поскольку сама конфигурация не содержит методов для взаимодействия с новой компонентой или ожидает иную структуру драйвера. Это означает, что даже если мы успешно добавим новый макет, конфигурация просто не "поймет", как с ним работать.

Особенности работы с драйверами АТОЛ в 1С

Прежде чем перейти к решениям, давайте разберемся в архитектуре взаимодействия 1С с ККТ АТОЛ.

Библиотека подключаемого оборудования (БПО)

Современные конфигурации 1С используют Библиотеку подключаемого оборудования (БПО) для унификации работы с торговым оборудованием. БПО предоставляет единый интерфейс и справочники для настройки и управления различными типами устройств, включая ККТ. Она позволяет подключать внешние компоненты драйверов, которые соответствуют определенным стандартам 1С (например, версии 2.x, 3.x).

Однако в старых конфигурациях БПО может быть устаревшей или отсутствовать вовсе, что делает прямое подключение новых драйверов через стандартные механизмы невозможным. Именно с такой ситуацией мы сталкиваемся, когда конфигурация не имеет справочника ДрайвераОборудования.

Двухкомпонентная архитектура драйверов АТОЛ 10.x (ДТО 10)

Драйверы АТОЛ версии 10.x имеют двухкомпонентную структуру. Они состоят из:

  1. Основная поставка драйвера: Это исполняемые файлы и библиотеки, которые устанавливаются с дистрибутива производителя (например, АТОЛ) на операционную систему. Эта часть напрямую взаимодействует с ККТ через физические порты (USB, COM, Ethernet).
  2. Интеграционная компонента 1С: Это специальная внешняя компонента (обычно в формате .dll или .zip с компонентами), которая поставляется в составе конфигурации 1С или скачивается отдельно. Ее задача — перенаправлять вызовы из 1С к основной поставке драйвера АТОЛ, переводя их на понятный для драйвера язык.

Важно понимать, что для корректной работы требуются обе части, и они должны быть совместимы как между собой, так и со стандартом БПО, используемым в вашей конфигурации 1С. Если конфигурация ожидает устаревший стандарт (например, 2.х), а интеграционная компонента соответствует новому (3.4+), то взаимодействие нарушается.

Варианты подключения и обходные пути

1. Обновление драйвера и конфигурации (рекомендуемый, но не всегда возможный путь)

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

  1. Установка актуального драйвера АТОЛ: Нам необходимо скачать и установить последнюю версию драйвера ККТ АТОЛ 10.x с официального сайта. При установке критически важно выбрать версию драйвера, соответствующую разрядности вашей платформы 1С (x32 для 32-битной 1С, x64 для 64-битной 1С). Также при инсталляции обычно есть опция "Драйвер 1С", которую следует выбрать. Убедитесь, что все старые драйверы были полностью удалены перед установкой новой версии.
  2. Обновление прошивки ККТ: Убедитесь, что прошивка вашей кассы также обновлена до актуальной версии, поддерживающей необходимый формат фискальных данных (ФФД), например, 1.2, и новые ставки НДС. Для этого используйте утилиты АТОЛ.
  3. Обновление конфигурации 1С и БПО: Если возможно, следует обновить вашу конфигурацию 1С до версии, которая включает актуальную Библиотеку Подключаемого Оборудования (БПО). Для драйверов АТОЛ 10.x, поддерживающих ФФД 1.2, обычно требуется БПО версии 2.1.6.16 или выше. Такое обновление обеспечит необходимую совместимость и поддержку новых методов работы с драйвером (например, работу с новыми налоговыми ставками НДС 5%, 7%, 5/105, 7/107). Важный момент, который был озвучен в обсуждении: для работы последних компонентов АТОЛ с поддержкой НДС необходимо, чтобы БПО поддерживало "ревизию драйвера 4004". Без обновления БПО прямой путь может быть закрыт.
  4. Настройка в 1С: После успешного обновления, в разделе НСИ и администрирование -> РМК и оборудование -> Подключаемое оборудование мы сможем выбрать тип ККТ с передачей данных и указать драйвер АТОЛ:ККТ с передачей данных в ОФД (54-ФЗ) 10.Х. Далее необходимо настроить параметры подключения (COM-порт, USB или Ethernet) и провести тест связи.

2. Использование COM-объекта (для нетиповых и старых конфигураций)

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

  1. Принцип работы: Мы будем создавать в 1С объект COM, который является экземпляром внешней компоненты драйвера АТОЛ, зарегистрированной в операционной системе. Через этот COM-объект мы получаем прямой доступ ко всем методам и свойствам драйвера, позволяющим управлять ККТ, имитируя взаимодействие, которое обычно осуществляет БПО.
  2. Создание COM-объекта: Для создания COM-объекта в 1С нам потребуется использовать конструктор Новый COMОбъект(), передав в него ProgID компоненты драйвера АТОЛ. Для ДТО 10 это обычно "AddIn.Fptr10".
    
    Попытка
        fptr = Новый COMОбъект("AddIn.Fptr10");
        Сообщить("COM-объект драйвера АТОЛ создан успешно.");
    Исключение
        Сообщить("Ошибка создания COM-объекта драйвера АТОЛ: " + ОписаниеОшибки());
        Возврат;
    КонецПопытки;
    
  3. Настройка параметров подключения: После создания объекта, нам нужно установить параметры подключения к ККТ. Это включает в себя выбор порта (USB, COM, Ethernet) и другие специфические для драйвера настройки, такие как номер порта или IP-адрес. Мы используем метод setSingleSetting с соответствующими константами драйвера, которые можно найти в документации к ДТО АТОЛ.
    
    // Пример настройки подключения по USB
    fptr.setSingleSetting(fptr.LIBFPTR_SETTING_PORT, fptr.LIBFPTR_PORT_USB);
            
    // Пример настройки подключения по COM-порту (COM1)
    // fptr.setSingleSetting(fptr.LIBFPTR_SETTING_PORT, fptr.LIBFPTR_PORT_COM);
    // fptr.setSingleSetting(fptr.LIBFPTR_SETTING_COM_NUMBER, 1); // Номер COM-порта
    // fptr.setSingleSetting(fptr.LIBFPTR_SETTING_BAUDRATE, fptr.LIBFPTR_BAUDRATE_115200); // Скорость
            
    // Пример настройки подключения по Ethernet/TCP
    // fptr.setSingleSetting(fptr.LIBFPTR_SETTING_PORT, fptr.LIBFPTR_PORT_TCP);
    // fptr.setSingleSetting(fptr.LIBFPTR_SETTING_IPADDRESS, "192.168.0.10"); // IP адрес ККТ
    // fptr.setSingleSetting(fptr.LIBFPTR_SETTING_IPPORT, 5555); // Порт ККТ
            
    fptr.applySingleSettings(); // Применить настройки
            
    Сообщить("Настройки подключения применены.");
    
  4. Открытие сессии с ККТ: Перед выполнением любых операций, необходимо установить связь с фискальным регистратором, вызвав метод open().
    
    Если НЕ fptr.open() Тогда
        Сообщить("Ошибка открытия соединения с ККТ: " + fptr.errorCode() + " - " + fptr.errorDescription());
        Возврат;
    КонецЕсли;
    Сообщить("Соединение с ККТ установлено.");
    
  5. Выполнение команд: После успешного открытия соединения, мы можем вызывать различные методы COM-объекта для выполнения операций с ККТ, такие как печать чеков, снятие отчетов, запросы статуса и т.д.
    
    // Пример снятия X-отчета
    Если НЕ fptr.setOperationType(fptr.LIBFPTR_OPERATION_REPORT_X) Тогда
        Сообщить("Ошибка установки типа операции (X-отчет): " + fptr.errorDescription());
    ИначеЕсли НЕ fptr.report() Тогда
        Сообщить("Ошибка снятия X-отчета: " + fptr.errorDescription());
    Иначе
        Сообщить("X-отчет успешно снят.");
    КонецЕсли;
    
  6. Закрытие сессии: После завершения работы с ККТ всегда следует закрывать сессию, чтобы освободить ресурсы и порт.
    
    fptr.close();
    Сообщить("Соединение с ККТ закрыто.");
    

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

3. Использование "посредника" или "оболочки" (для очень старых платформ 1С)

В случаях, когда конфигурация 1С работает на очень старых платформах (например, 7.7, 8.0, 8.1, 8.2) и даже COM-объект напрямую вызывать затруднительно из-за архитектурных ограничений или сложности адаптации, могут применяться специализированные драйверы-посредники.

Например, существует драйвер "Клиент ККТ", реализованный по технологии COM, который через "Сервер ККТ" может взаимодействовать с современными драйверами ККТ (версии 3.х и выше) по технологии NativeAPI. "Сервер ККТ" выступает в роли конвертера, преобразуя команды из старого формата 1С в новый формат, понятный современным драйверам, и обратно. Этот метод позволяет значительно расширить совместимость, но требует установки и настройки дополнительных программных компонентов.

Также сторонние разработчики создают внешние компоненты-оболочки, адаптированные для работы с последними драйверами АТОЛ (начиная с 9.x и 10.x) для старых версий 1С, которые могут быть подключены как внешние компоненты и предоставлять упрощенный набор методов. Этот вариант требует поиска и адаптации сторонних решений, что может быть сопряжено с определенными рисками.

Дополнительные нюансы и рекомендации

При работе с подключением ККТ и драйверами АТОЛ, обратите внимание на следующие важные моменты:

  1. Соответствие разрядности: Всегда убеждайтесь, что разрядность установленного драйвера АТОЛ (x32 или x64) соответствует разрядности вашей платформы 1С. Несоответствие может быть причиной множества ошибок, так как 32-битная платформа не сможет загрузить 64-битный драйвер и наоборот.
  2. Поддержка ФФД и НДС: Драйвер АТОЛ версии 10.10.6.0 и выше обычно поддерживает работу с новыми форматами фискальных данных (ФФД 1.2) и актуальными налоговыми ставками НДС (5%, 7%, 5/105, 7/107). Убедитесь, что как драйвер, так и прошивка ККТ поддерживают нужные вам стандарты, иначе возможны ошибки при фискализации чеков.
  3. Подключение по USB (EoU): Если ККТ АТОЛ подключается по USB-кабелю, передача данных в ОФД часто осуществляется по технологии EoU (Ethernet-over-USB). Служба, необходимая для работы EoU, устанавливается вместе с драйвером торгового оборудования (ДТО). Проверьте ее наличие и работоспособность в службах Windows.
  4. Настройки ОФД: Настройки оператора фискальных данных (ОФД) чаще всего хранятся непосредственно в памяти ККТ и задаются с помощью утилит, предоставляемых АТОЛ (например, "Тест драйвера ККТ"), а не через интерфейс 1С. Убедитесь, что параметры ОФД в ККТ настроены корректно.
  5. Сохранение актуальности: Даже если ваша 1С обновляется, а драйвер ККТ в операционной системе и прошивка кассы нет, это может привести к предупреждениям об устаревшем драйвере, хотя касса может продолжать работать. Для стабильной и полноценной работы рекомендуется поддерживать в актуальном состоянии все компоненты: 1С, БПО, драйвер АТОЛ и прошивку ККТ. Это минимизирует риски возникновения несовместимостей и ошибок.

Решение проблемы подключения драйвера АТОЛ к старой конфигурации 1С требует комплексного подхода и тщательного анализа архитектуры вашей системы. Выбор оптимального пути зависит от степени готовности к изменениям в конфигурации, используемой версии платформы 1С и требуемой функциональности.

← На главную