Как подключить и настроить Атол ДТО 10 в среде 1С 7.7

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

Снятие с поддержки старых драйверов Атол (версий 8 и 9) поставило перед пользователями и разработчиками 1С 7.7 серьезную задачу: переход на новую версию ДТО 10. Несмотря на почтенный возраст платформы 7.7, она сохраняет гибкость интеграции, позволяя работать с современным торговым оборудованием. В этой статье мы подробно разберем, как подружить «семерку» с десятым драйвером, рассмотрим программные методы и архитектурные особенности этого процесса.

Основные отличия программной модели ДТО 10 от ДТО 8

Прежде чем переходить к коду, проанализируем принципиальное отличие новой модели драйвера. Если в ДТО 8 мы использовали огромное количество методов для каждого действия (отдельно для установки цены, отдельно для количества, отдельно для налога), то в ДТО 10 подход изменился. Программная модель стала более лаконичной по количеству функций, но более сложной по количеству параметров.

Теперь для выполнения операции нам необходимо сначала установить множество свойств (параметров) объекта драйвера, а затем вызвать один метод, который эти параметры обработает. Рассмотрим подробнее, как это выглядит на практике.

Вариант 1: Прямое подключение через COM-объект

Это классический способ, наиболее привычный разработчикам 1С 7.7. Для начала работы нам необходимо зарегистрировать в системе библиотеку fptr10.dll (обязательно 32-битную версию, так как 1С 7.7 — это 32-разрядное приложение).

Разберем по шагам процесс инициализации драйвера в коде 1С 7.7:


Попытка
    ОбъектДрайвер = СоздатьОбъект("AddIn.Fptr10");
    Сообщить("Драйвер Атол 10 успешно загружен.");
Исключение
    Сообщить("Ошибка загрузки драйвера: " + ОписаниеОшибки(), "!");
    Возврат;
КонецПопытки;

После успешного создания объекта необходимо установить параметры связи с кассой. В десятой версии это делается через установку свойств и вызов метода setSettings() или через передачу параметров в методы открытия соединения.

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

Вариант 2: Использование механизма JSON-заданий

Одним из самых мощных нововведений ДТО 10 является возможность работы через JSON. Вместо того чтобы вызывать последовательность из 50 методов для пробития сложного чека, мы можем сформировать один текстовый блок в формате JSON и передать его драйверу. Это значительно повышает стабильность работы, особенно в условиях нестабильной связи или при работе через терминальные сессии.

Рассмотрим пример формирования структуры задания (условно):


ЗаданиеJSON = "{
|  ""type"": ""sell"",
|  ""taxationType"": ""osn"",
|  ""items"": [
|    {
|      ""type"": ""position"",
|      ""name"": ""Товар тестовый"",
|      ""price"": 100.00,
|      ""quantity"": 1,
|      ""amount"": 100.00,
|      ""tax"": { ""type"": ""vat18"" }
|    }
|  ],
|  ""payments"": [
|    { ""type"": ""cash"", ""sum"": 100.00 }
|  ]
|}";

ОбъектДрайвер.setParam(ОбъектДрайвер.LIBFPTR_PARAM_JSON_DATA, ЗаданиеJSON);
ОбъектДрайвер.processJson();

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

Решение проблемы удаленной печати (RDP и сетевой режим)

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

  1. На локальном компьютере, где физически подключена ККТ, устанавливается ДТО 10 и запускается служба Atol Web Server.
  2. В настройках службы указывается порт (по умолчанию 16732).
  3. В конфигурации 1С 7.7 взаимодействие идет не напрямую с COM-объектом на сервере, а через HTTP-запросы к IP-адресу локального ПК.

Для реализации HTTP-запросов в 1С 7.7 мы рекомендуем использовать стандартную библиотеку v7plus.dll или объект MSXML2.XMLHTTP. Это избавляет от проблем с пробросом COM-портов через RDP, которые часто работают нестабильно и приводят к задержкам печати.

Работа с маркировкой (Честный ЗНАК) и ФФД 1.2

Современные требования законодательства обязуют передавать коды маркировки (DataMatrix). В ДТО 10 это реализовано через специальные параметры. Выясним причину, по которой многие старые обработки не работают с маркировкой: они просто не передают тег 1162 (или 1262 для нового ФФД).

В ДТО 10 для передачи кода маркировки используется установка параметра LIBFPTR_PARAM_MARKING_CODE. Проанализируем пример передачи кода:


КодМаркировки = "01046...[ваш код]";
ОбъектДрайвер.setParam(ОбъектДрайвер.LIBFPTR_PARAM_MARKING_CODE, КодМаркировки);
// Далее добавление позиции...

Обратите внимание: для корректной работы с ФФД 1.2 касса должна иметь актуальную прошивку, а драйвер должен быть версии не ниже 10.9. При этом использование 1С 7.7 никак не ограничивает вас в работе с маркировкой, если вы правильно используете методы ДТО 10.

Использование «Оберток» (Wrappers) для упрощения миграции

Если ваша конфигурация 1С 7.7 сильно переписана и содержит тысячи строк кода взаимодействия с ДТО 8, быстрый переход на ДТО 10 может быть болезненным. В таких случаях программисты часто используют «обертки» — специальные внешние компоненты, написанные на Delphi или C#.

Принцип работы обертки:

Этот путь позволяет перевести предприятие на новые рельсы буквально за один вечер, однако он требует наличия надежной сторонней компоненты или времени на написание собственной.

Подведение итогов

Подводя итог нашему анализу, можно уверенно сказать: 1С 7.7 и Атол ДТО 10 полностью совместимы. Основные сложности заключаются в изменении парадигмы программирования (переход на свойства-параметры или JSON) и необходимости учета разрядности системы.

Рекомендации по внедрению:

  1. Всегда используйте последнюю актуальную версию драйвера с сайта Атол.
  2. Для сетевых решений и терминалов отдавайте предпочтение Web-серверу.
  3. При написании нового функционала используйте метод processJson — это задел на будущее, который позволит легче мигрировать на другие платформы.
  4. Не забывайте про установку Visual C++ Redistributable на клиентских машинах, без них ДТО 10 не запустится.

Рассмотренные нами методы позволяют сохранить работоспособность проверенных временем систем на базе 1С 7.7, обеспечивая их полное соответствие текущему законодательству и требованиям по маркировке товаров.

← На главную