Как подключить онлайн-кассу АТОЛ на платформе 5.0 (ДТО 10) к 1С 7.7?

Программист 1С v7.7 Торговля и дистрибуция
← На главную

Многие компании до сих пор успешно используют надежную платформу 1С 7.7 для ведения торгового учета, например, в конфигурации "Торговля и Склад". Однако законодательство не стоит на месте: вводятся новые форматы фискальных данных (ФФД 1.2), обязательная маркировка через "Честный знак" и новые ставки НДС. Производители кассового оборудования, такие как АТОЛ, переводят свои новые устройства на Платформу 5.0, которая работает исключительно с Драйвером ККТ версии 10 (ДТО 10). Старые драйверы (ДТО 8) больше не поддерживают новые требования и оборудование.

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

Установка и правильная регистрация драйвера ДТО 10

Проанализируем ситуацию с разрядностью операционных систем и платформы 1С. Важно помнить, что 1С 7.7 является исключительно 32-битным (x86) приложением. Это означает, что даже если на вашем компьютере установлена современная 64-битная версия Windows, драйвер кассы для связи с 1С должен быть строго 32-битным.

Рассмотрим порядок действий при установке:

  1. Скачайте и установите 32-битную версию ДТО 10 (Драйвер ККТ v.10) от АТОЛ.
  2. Не пытайтесь загрузить драйвер из 1С стандартными средствами как внешнюю компоненту через ЗагрузитьВнешнююКомпоненту. Зачастую это приводит к ошибкам.
  3. Вместо этого зарегистрируем библиотеку драйвера в самой Windows. Откройте командную строку от имени Администратора.
  4. Выполните команду регистрации файла addin_fptr10_x86.dll с помощью утилиты RegSvr32. Путь к файлу обычно выглядит так: C:\Program Files (x86)\ATOL\Drivers10\KKT\bin\addin_fptr10_x86.dll.

После успешной регистрации библиотеки в системе, компонента станет доступна для прямого вызова из кода 1С через COM-объект.

Написание кода для подключения: нативные обращения

Посмотрим на пример кода, который позволит нам инициализировать драйвер и подключиться к кассе. Использовать будем так называемые "нативные" обращения напрямую к методам объекта AddIn.Fptr10. Этот способ работает значительно стабильнее, чем использование различных XML-оберток.

Создадим процедуру инициализации:


Процедура ПодключениеККМ()
    // Создаем COM-объект драйвера
    FR = СоздатьОбъект("AddIn.Fptr10"); 
    
    // Устанавливаем модель ККТ (АВТО)
    FR.setSingleSetting(FR.LIBFPTR_SETTING_MODEL, Строка(FR.LIBFPTR_MODEL_ATOL_AUTO));
    
    // Указываем тип порта (COM-порт или USB, эмулирующий COM)
    FR.setSingleSetting(FR.LIBFPTR_SETTING_PORT, Строка(FR.LIBFPTR_PORT_COM));
    
    // Указываем номер COM-порта (например, берем из настроек пользователя)
    FR.setSingleSetting(FR.LIBFPTR_SETTING_COM_FILE, глПользователь.ККТ.ПортПодключения); 
    
    // Применяем настройки
    FR.applySingleSettings();
    
    // Пытаемся открыть соединение
    Если FR.open() <> 0 Тогда 
        Сообщить("Ошибка подключения ККМ: " + FR.errorDescription());
        Возврат;
    КонецЕсли;
    
    Сообщить("ККТ успешно подключена!");
КонецПроцедуры

Важно: Обратите внимание на метод applySingleSettings(). Без его вызова драйвер не применит переданные параметры порта и модели, и соединение не будет установлено.

Работа с маркировкой (ФФД 1.2) и новыми ставками НДС

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

Огромный плюс работы с объектом AddIn.Fptr10 заключается в том, что драйвер берет всю сложную работу на себя. Вам не нужно писать в 1С 7.7 громоздкие алгоритмы перекодировки штрихкода в массив байтов для передачи в тег 1162. Вы просто передаете строку с кодом маркировки в соответствующий метод драйвера, а он сам разбирает структуру кода и отправляет нужные запросы в "Честный знак" через ОФД.

Аналогичная ситуация и с новыми ставками НДС (например, 5% или 7%). В драйверах старых поколений они отсутствуют, в то время как 10-я версия драйвера позволяет передавать их встроенными константами.

Отправка электронных чеков клиентам (СМС и Email)

Разберем, как реализовать отправку электронного чека (на телефон или почту), что также является обязательным требованием по просьбе покупателя. В ДТО 10 это делается предельно просто перед моментом пробития чека.

Нам необходимо передать контактные данные в Тег 1008. В коде 1С это выглядит как передача параметра:


// Передаем телефон или email покупателя
FR.setParam(1008, "+79991234567"); 
// Или FR.setParam(1008, "client@email.com");

Сложные расчеты: авансы, предоплаты и смешанные оплаты

Проанализируем ситуацию с закрытием авансов и предоплат. 10-й драйвер очень строго следит за логическим контролем сумм. Если вы пробиваете чек на отгрузку в счет ранее внесенного аванса, вам необходимо перебрать все строки (товары) документа.

Для каждой позиции нужно корректно передать "Признак способа расчета" (например, полный расчет, частичная предоплата и т.д.) и "Признак предмета расчета" (товар, услуга, платеж).

Строгий контроль: Сумма всех товарных строк в чеке должна математически до копейки сходиться с суммами, переданными в блоке оплаты. Если клиент платит часть наличными, часть банковской картой, а часть закрывается зачетом аванса — вы должны передать все эти три суммы в соответствующие типы оплат драйвера. Если будет расхождение хотя бы на 1 копейку, чек будет аннулирован с ошибкой ФН.

Эмулятор ККТ: тестирование без физического аппарата

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

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

← На главную