Как подключить онлайн-кассу (ККТ) к самописной конфигурации на базе 1С 7.7: подробное руководство

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

Несмотря на солидный возраст платформы 1С:Предприятие 7.7, множество торговых предприятий продолжают успешно использовать ее для автоматизации розничных продаж благодаря высокой скорости работы и надежности. Однако изменения в законодательстве (ФЗ-54, внедрение маркировки «Честный Знак», новые форматы фискальных документов ФФД 1.2) ставят перед разработчиками сложные задачи по интеграции современных онлайн-касс (ККТ) со старыми и самописными конфигурациями.

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

Выбор ККТ: автономная касса или фискальный регистратор?

При переходе на торговлю с расшифровкой номенклатуры в чеке перед владельцами бизнеса часто встает вопрос: можно ли использовать уже имеющиеся автономные кассы (например, популярный «Меркурий-185Ф») или необходимо сразу приобретать полноценный фискальный регистратор (ФР)?

Проанализируем оба варианта:

  1. Использование автономной кассы (Меркурий-185Ф) в режиме ФР. Вопреки распространенному мнению, подключить «Меркурий-185Ф» к компьютеру в качестве фискального регистратора технически возможно. ГК «Инкотекс» выпускает для этого специальную службу INECRMAN и драйвер виртуального COM-порта. Однако на практике такой вариант имеет серьезные ограничения: скорость печати чеков через этот мост крайне низкая, а при работе с большим объемом номенклатуры или маркированным товаром система будет регулярно зависать.
  2. Полноценный фискальный регистратор (АТОЛ или ШТРИХ-М). Это наиболее правильный и отказоустойчивый путь. Модели линеек АТОЛ (например, АТОЛ 11Ф, 30Ф, 25Ф) и ШТРИХ-М (например, Штрих-ON-LINE, Штрих-М-01Ф) являются самыми распространенными на рынке. Под них разработано огромное количество готовых решений, библиотек и обработок для платформы 1С 7.7, а бесплатные драйверы стабильно работают в Windows.

Подключение ККТ ШТРИХ-М через бесплатный драйвер 4.14/4.15

Рассмотрим по шагам процесс подключения фискального регистратора Штрих-М к самописной конфигурации с использованием бесплатного драйвера версии 4.14 (или более поздней линейки 4.15):

  1. Скачайте актуальный дистрибутив драйвера ККТ с официального сайта ШТРИХ-М. Рекомендуется использовать проверенную версию драйвера (например, 4.14.792 или актуальную версию линейки 4.15).
  2. Установите драйвер на рабочую станцию. По умолчанию файлы устанавливаются в папку C:\Program Files (x86)\SHTRIH-M\DrvFR 4.14\Bin (или аналогичный путь для версии 4.15).
  3. Для того чтобы 1С 7.7 видела компоненту напрямую, скопируйте все содержимое папки Bin драйвера в корневой каталог вашей базы данных 1С 7.7 (туда, где находится файл 1Cv7.77 или непосредственно в каталог базы).
  4. В коде 1С инициализация объекта драйвера Штрих-М выполняется через OLE-соединение стандартным образом.

Рассмотрим пример кода для инициализации фискального регистратора Штрих-М в 1С 7.7:


Попытка
    // Загружаем внешнюю компоненту драйвера
    ЗагрузитьВнешнююКомпоненту("DrvFR.dll");
    ФР = СоздатьОбъект("AddIn.DRVFR");
Исключение
    Предупреждение("Не удалось загрузить драйвер ККТ ШТРИХ-М! Проверьте наличие DrvFR.dll.");
    Возврат;
КонецПопытки;

// Настройка параметров связи
ФР.ComNumber = 3; // Номер COM-порта подключения кассы
ФР.BaudRate = 6;  // Скорость обмена (115200 бод)
ФР.Timeout = 100; // Таймаут ожидания

Если ФР.Connect() <> 0 Тогда
    Предупреждение("Ошибка связи с ККТ: " + ФР.ResultCodeDescription);
    Возврат;
КонецЕсли;

Переход на современные драйверы АТОЛ ДТО 10

Если вы выбрали фискальный регистратор АТОЛ, то старая линейка драйверов (ДТО 8/9) уже не актуальна, так как она не поддерживает требования ФФД 1.2 и новые типы маркировки. Необходимо ориентироваться на современный драйвер АТОЛ ДТО 10.

Поскольку платформа 1С 7.7 является 32-битным приложением, для интеграции с ДТО 10 вам потребуется использовать 32-битную библиотеку addin_fptr10_x86.dll, которая идет в комплекте поставки драйвера.

Регистрация библиотеки в системе производится через командную строку от имени администратора:

regsvr32 "C:\PathToDriver\addin_fptr10_x86.dll"

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


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

// Настройка связи с кассой через JSON-задачу или напрямую через свойства
ДрайверККТ.setSingleSetting("Model", "67"); // Код модели кассы в ДТО 10
ДрайверККТ.setSingleSetting("Port", "1");  // COM-порт
ДрайверККТ.setSingleSetting("ComPortPath", "COM3");
ДрайверККТ.applySingleSettings();

ДрайверККТ.open();
Если ДрайверККТ.isOpened() = 0 Тогда
    Предупреждение("Не удалось открыть соединение с ККТ АТОЛ!");
КонецЕсли;

Обязательные реквизиты чека по ФЗ-54

При формировании фискального документа важно помнить о строгих требованиях законодательства к реквизитам чека. Проанализируем ключевые вопросы, возникающие у разработчиков:

1. Оплата банковской картой (безналичный расчет)
При оплате картой нет необходимости передавать в кассу полные реквизиты платежа или номер карты. Достаточно передать в ФР признак типа оплаты (электронными/безналичными). Обычно безналичный тип оплаты в драйверах соответствует типу оплаты №2 (или «Тип оплаты 1» в зависимости от настроек таблиц ККТ, этот параметр нужно уточнить в таблицах вашей кассы).

2. ФИО и ИНН кассира (Тег 1203)
Указывать в чеке просто обезличенное слово "Продавец" запрещено законом. Отсутствие реальных данных кассира (ФИО и его ИНН) влечет за собой штрафные санкции со стороны налоговых органов по КоАП РФ. Для решения этой проблемы в 1С 7.7 реализуют следующую логику: при авторизации пользователя в программе его ФИО и ИНН подтягиваются из справочника сотрудников и передаются в ККТ перед открытием чека.

Пример передачи данных кассира в драйвер Штрих-М:


ФР.Password = 30; // Пароль системного администратора или кассира
ФР.TableNumber = 2; // Таблица операторов ККТ
// Или передаем напрямую в свойства чека перед его открытием:
ФР.OperatorName = "Иванов Иван Иванович";
ФР.OperatorINN = "771234567890";
ФР.WriteTable();

Оформление возвратов и работа с маркировкой

Оформление возврата товара — стандартная процедура, которая технически представляет собой формирование чека с признаком расчета «Возврат прихода»:

Совместимость с современными ОС Windows 10/11

Поскольку платформа 1С 7.7 является 32-битным устаревшим ПО, при работе на 64-битных операционных системах Windows 10 и Windows 11 часто возникают сложности с регистрацией OLE/COM-объектов. Для стабильного взаимодействия ККТ и программы придерживайтесь следующих правил:

  1. Запуск конфигуратора и предприятия 1С 7.7 при первичной настройке оборудования обязательно выполняйте с правами администратора. Это необходимо для успешной регистрации библиотек DrvFR.dll или addin_fptr10_x86.dll в реестре операционной системы.
  2. Если прямая регистрация COM-объектов вызывает сбои из-за ограничений безопасности Windows, рассмотрите альтернативный вариант интеграции: развертывание локального веб-сервера (например, АТОЛ Web-сервер ККТ), который принимает команды печати чеков от 1С 7.7 посредством стандартных HTTP-запросов (POST/GET). Такое решение полностью отвязывает 1С 7.7 от разрядности операционной системы и версии драйверов.
← На главную