Как работать с библиотекой АТОЛ fptr10_1c_win32 и где найти описание ее методов

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

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

Различие между нативной библиотекой и оберткой для 1С

Первым делом проанализируем ситуацию: почему стандартные методы, описанные в документации АТОЛ, могут не работать. Существует два принципиально разных подхода к интеграции:

  1. Нативная библиотека (fptr10.dll): Это основной драйвер. Он содержит сотни низкоуровневых методов для прямого управления кассой. Работа с ним строится по принципу: «Установить параметр — Выполнить действие». Документация по нему находится на официальном портале интеграций АТОЛ.
  2. Библиотека-обертка (fptr10_1c_...dll): Это специализированный модуль, созданный специально под стандарты фирмы 1С (Библиотека стандартных подсистем — БСП). Она имеет крайне ограниченный набор методов, которые ожидают на вход готовые XML-пакеты с данными чека.

Если вы пытаетесь вызвать метод version() или setParam() у библиотеки с префиксом _1c_, система выдаст ошибку, так как эта библиотека реализует интерфейс «1С:ККТ», а не прямой интерфейс драйвера.

Вариант 1: Работа через стандарт 1С (XML-пакеты)

Если ваша задача — подключить кассу к типовой конфигурации 1С (например, 1С:Розница или 1С:Управление торговлей), скорее всего, вам нужна именно библиотека fptr10_1c_.... В этом случае документацию нужно искать не на сайте АТОЛ, а на портале 1С:ИТС.

Разберем, как работает этот механизм. Основное взаимодействие происходит через метод СформироватьЧек (или ProcessCheck). Программист 1С формирует текстовую строку в формате XML, которая содержит все данные: позиции номенклатуры, цены, налоги и признаки маркировки. Библиотека принимает этот XML, самостоятельно «разбирает» его на низкоуровневые команды и отправляет в ККТ.

Рассмотрим пример подключения такой компоненты в коде 1С:


Если ПодключитьВнешнююКомпоненту("ОбщийМакет.ДрайверАтолККТ54ФЗ10X", "ATOL_KKT_1C83_V10", ТипВнешнейКомпоненты.COM) Тогда
    ECR = Новый ("AddIn.ATOL_KKT_1C83_V10.ATOL_KKT_1C83_V10");
    // Здесь будут доступны только методы стандарта 1С:
    // ПоддержатьСвязь(), Занять(), СформироватьЧек() и т.д.
Иначе
    Сообщить("Не удалось загрузить внешнюю компоненту");
КонецЕсли;

Важный момент: Чтобы понять, какие теги должны быть в XML, изучите статью на ИТС «Требования к разработке драйверов для ККТ с передачей данных». Там описаны структуры CheckPackage и ReportParameters.

Вариант 2: Работа через Native API (Прямое управление)

Если типового функционала 1С недостаточно (например, нужна сложная верстка чека, работа с нетипичными регистрами ККТ или специфическая работа с маркировкой), рекомендуется использовать основной драйвер fptr10.dll. Это даст полный контроль над устройством.

Для этого в системе должен быть установлен основной пакет ДТО 10 от АТОЛ. Подключение выполняется через COM-объект AddIn.Fptr10. Проанализируем пример кода для работы с нативным драйвером:


// Создание объекта драйвера
Драйвер = Новый COMОбъект("AddIn.Fptr10");

// Установка параметров связи
Драйвер.setParam(Драйвер.LIBFPTR_PARAM_COMM_PROTOCOL, Драйвер.LIBFPTR_PROTOCOL_ATOL3);
Драйвер.setParam(Драйвер.LIBFPTR_PARAM_MODEL, Драйвер.LIBFPTR_MODEL_ATOL_AUTO);
Драйвер.setParam(Драйвер.LIBFPTR_PARAM_PORT, Драйвер.LIBFPTR_PORT_COM);
Драйвер.setParam(Драйвер.LIBFPTR_PARAM_COM_PORT_NAME, "COM3");
Драйвер.setParam(Драйвер.LIBFPTR_PARAM_BAUDRATE, Драйвер.LIBFPTR_PORT_BR_115200);

// Открытие соединения
Драйвер.open();

Если Не Драйвер.isOpened() Тогда
    Сообщить("Ошибка связи: " + Драйвер.getErrorDescription());
    Возврат;
КонецЕсли;

// Пример получения версии драйвера
Версия = Драйвер.version();
Сообщить("Версия драйвера: " + Версия);

// Закрытие соединения
Драйвер.close();

В этом режиме вам доступны все возможности ККТ. Документация по всем свойствам (LIBFPTR_PARAM_...) и методам находится в онлайн-справочнике интегратора АТОЛ.

Сравнение подходов: что выбрать?

Выясним причины, по которым стоит выбирать тот или иной метод:

Плюсы работы через "Обертку 1С":

  1. Легкая замена оборудования. Если вы решите перейти с АТОЛ на Штрих-М, вам не придется переписывать код формирования чека, так как XML-пакет для всех драйверов по стандарту 1С одинаковый.
  2. Соответствие законодательству. Фирма 1С оперативно обновляет требования к XML при изменении ФФД (форматов фискальных данных).

Плюсы работы через Native драйвер:

  1. Полный функционал. Стандарт 1С часто «обрезает» возможности драйвера. Через нативный интерфейс можно печатать произвольный текст, управлять денежным ящиком, работать с дисплеем покупателя без ограничений.
  2. Стабильность. Нативные драйверы обновляются чаще, в них быстрее исправляются ошибки, связанные с новыми требованиями (например, ФФД 1.2 и маркировка «Честный ЗНАК»).
  3. JSON-интерфейс. В современных версиях 10-го драйвера можно передавать задания в формате JSON, что гораздо удобнее и гибче, чем XML.

Где искать логи для отладки

Если библиотека подключена успешно, но при печати чека возникают ошибки, проанализируем логи драйвера. Это самый надежный способ понять, что пошло не так. По умолчанию в ОС Windows драйвер АТОЛ 10 пишет подробные логи по следующему пути:

%AppData%\Roaming\Atol\drivers10\logs

Откройте файл fptr10.log. В нем фиксируются все команды, поступающие от 1С, и ответы от кассового аппарата. Если вы видите ошибку -3800 или -3900, это означает некорректные параметры в чеке (например, неверная ставка НДС или отсутствие кода маркировки).

Рекомендации по версиям

Обратим внимание на версию 10.4.3.0, упомянутую в вопросе. Это довольно старая версия драйвера. Если вы планируете работать с маркированными товарами (обувь, одежда, молочная продукция и т.д.) по протоколу ФФД 1.2, вам необходимо обновить драйвер до версии не ниже 10.9.x. В старых версиях механизмы проверки кодов маркировки на ККТ отсутствуют или работают некорректно.

Таким образом, если вы используете файл с суффиксом _1c_, забудьте про документацию АТОЛ и ищите описание структуры XML на ИТС. Если же вам нужна гибкость и прямой доступ к методам — подключайте fptr10.dll как COMОбъект или через Native API и используйте официальное руководство интегратора АТОЛ.

← На главную