Несмотря на солидный возраст платформы 1С:Предприятие 7.7, множество торговых предприятий продолжают успешно использовать ее для автоматизации розничных продаж благодаря высокой скорости работы и надежности. Однако изменения в законодательстве (ФЗ-54, внедрение маркировки «Честный Знак», новые форматы фискальных документов ФФД 1.2) ставят перед разработчиками сложные задачи по интеграции современных онлайн-касс (ККТ) со старыми и самописными конфигурациями.
В этой статье мы подробно рассмотрим, как решить проблему подключения фискального регистратора к самописной конфигурации на базе 1С 7.7, какое оборудование выбрать, как настроить драйверы и реализовать необходимую бизнес-логику в коде.
При переходе на торговлю с расшифровкой номенклатуры в чеке перед владельцами бизнеса часто встает вопрос: можно ли использовать уже имеющиеся автономные кассы (например, популярный «Меркурий-185Ф») или необходимо сразу приобретать полноценный фискальный регистратор (ФР)?
Проанализируем оба варианта:
INECRMAN и драйвер виртуального COM-порта. Однако на практике такой вариант имеет серьезные ограничения: скорость печати чеков через этот мост крайне низкая, а при работе с большим объемом номенклатуры или маркированным товаром система будет регулярно зависать.Рассмотрим по шагам процесс подключения фискального регистратора Штрих-М к самописной конфигурации с использованием бесплатного драйвера версии 4.14 (или более поздней линейки 4.15):
C:\Program Files (x86)\SHTRIH-M\DrvFR 4.14\Bin (или аналогичный путь для версии 4.15).Bin драйвера в корневой каталог вашей базы данных 1С 7.7 (туда, где находится файл 1Cv7.77 или непосредственно в каталог базы).Рассмотрим пример кода для инициализации фискального регистратора Штрих-М в 1С 7.7:
Попытка
// Загружаем внешнюю компоненту драйвера
ЗагрузитьВнешнююКомпоненту("DrvFR.dll");
ФР = СоздатьОбъект("AddIn.DRVFR");
Исключение
Предупреждение("Не удалось загрузить драйвер ККТ ШТРИХ-М! Проверьте наличие DrvFR.dll.");
Возврат;
КонецПопытки;
// Настройка параметров связи
ФР.ComNumber = 3; // Номер COM-порта подключения кассы
ФР.BaudRate = 6; // Скорость обмена (115200 бод)
ФР.Timeout = 100; // Таймаут ожидания
Если ФР.Connect() <> 0 Тогда
Предупреждение("Ошибка связи с ККТ: " + ФР.ResultCodeDescription);
Возврат;
КонецЕсли;
Если вы выбрали фискальный регистратор АТОЛ, то старая линейка драйверов (ДТО 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 Тогда
Предупреждение("Не удалось открыть соединение с ККТ АТОЛ!");
КонецЕсли;
При формировании фискального документа важно помнить о строгих требованиях законодательства к реквизитам чека. Проанализируем ключевые вопросы, возникающие у разработчиков:
1. Оплата банковской картой (безналичный расчет)
При оплате картой нет необходимости передавать в кассу полные реквизиты платежа или номер карты. Достаточно передать в ФР признак типа оплаты (электронными/безналичными). Обычно безналичный тип оплаты в драйверах соответствует типу оплаты №2 (или «Тип оплаты 1» в зависимости от настроек таблиц ККТ, этот параметр нужно уточнить в таблицах вашей кассы).
2. ФИО и ИНН кассира (Тег 1203)
Указывать в чеке просто обезличенное слово "Продавец" запрещено законом. Отсутствие реальных данных кассира (ФИО и его ИНН) влечет за собой штрафные санкции со стороны налоговых органов по КоАП РФ. Для решения этой проблемы в 1С 7.7 реализуют следующую логику: при авторизации пользователя в программе его ФИО и ИНН подтягиваются из справочника сотрудников и передаются в ККТ перед открытием чека.
Пример передачи данных кассира в драйвер Штрих-М:
ФР.Password = 30; // Пароль системного администратора или кассира
ФР.TableNumber = 2; // Таблица операторов ККТ
// Или передаем напрямую в свойства чека перед его открытием:
ФР.OperatorName = "Иванов Иван Иванович";
ФР.OperatorINN = "771234567890";
ФР.WriteTable();
Оформление возврата товара — стандартная процедура, которая технически представляет собой формирование чека с признаком расчета «Возврат прихода»:
Поскольку платформа 1С 7.7 является 32-битным устаревшим ПО, при работе на 64-битных операционных системах Windows 10 и Windows 11 часто возникают сложности с регистрацией OLE/COM-объектов. Для стабильного взаимодействия ККТ и программы придерживайтесь следующих правил:
DrvFR.dll или addin_fptr10_x86.dll в реестре операционной системы.