Переход на применение контрольно-кассовой техники по требованиям 54-ФЗ вызвал множество вопросов у пользователей и разработчиков конфигураций на платформе 1С:Предприятие 7.7. Рассмотрим подробно, как подключить фискальный регистратор Штрих-М-01Ф к 1С 7.7, какой драйвер использовать, как настроить сетевую печать и что необходимо доработать в обработках обслуживания.
Проанализируем доступные компоненты от производителя ККТ «Штрих-М»:
DrvFR 4.13 и выше). Это проверенное решение для 1С 7.7. Инициализация объекта в программном коде выполняется стандартным вызовом:
Попытка
ДрайверККМ = СоздатьОбъект("AddIn.DrvFR");
Исключение
Сообщить("Не удалось загрузить внешнюю компоненту DrvFR.dll!", "!");
КонецПопытки;
При настройке оборудования в каталоге DB\ExtForms\Equip\ используются текстовые файлы с расширением .efd. Выясним причину, по которой в списке отсутствует модель Штрих-М-01Ф: на момент выхода типовых конфигураций 1С 7.7 онлайн-касс нового образца не существовало.
Файлы .efd служат лишь текстовыми описателями для диалоговых форм торгового оборудования. Отсутствие явного пункта «Штрих-М-01Ф» не является блокирующей проблемой. Для подключения можно использовать два варианта:
fr_shtr.efd обычным текстовым редактором и вручную добавить строку с наименованием «Штрих-М-01Ф» в список моделей.Важно понимать разделение зон ответственности между учетной системой и кассовым аппаратом:
Следовательно, учетная система 1С 7.7 не занимается отправкой чеков в налоговую или ОФД. Однако для успешной отправки чеков кассой необходимо предварительно через утилиту «Тест драйвера ККТ» настроить сетевые параметры связи (IP-адрес, маску, шлюз, DNS) и параметры подключения к серверу вашего ОФД (адрес хоста и порт).
Штатные обработки из старых релизов конфигураций (например, «Торговля и Склад 7.7», релиз 9.2) «из коробки» работать с онлайн-кассой по 54-ФЗ не смогут. В старых алгоритмах отсутствуют обязательные теги форматов фискальных документов (ФФД). Попытка пробить чек по старым методам приведет к ошибкам фискализации.
Разберем по шагам, какие изменения необходимо внести в модуль обработки:
DrvFR для этого используются специализированные свойства и методы:
// Пример передачи тега через интерфейс DrvFR
ДрайверККМ.TagNumber = 1055; // Применяемая система налогообложения
ДрайверККМ.TagType = 1; // Тип реквизита (байт)
ДрайверККМ.TagValueInt = 1; // Код СНО (например, ОСН)
ДрайверККМ.FNSendTag();
FNOpenCheck, FNCheckSubTotal, FNCloseCheckEx).Аппарат «Штрих-М-01Ф» оснащен сетевым интерфейсом Ethernet, что позволяет подключать его без дополнительных аппаратных COM-переходников и без покупки устаревшего лицензионного «Сервера ФР». Драйвер ККТ поддерживает работу через прямое TCP-сокет соединение.
Рассмотрим правила организации сетевой печати чеков:
7778. В параметрах драйвера выбирается тип подключения «TCP сокет», указывается статический IP-адрес кассы и порт.
// Подключение перед пробитием
ДрайверККМ.ConnectionType = 6; // TCP-сокет
ДрайверККМ.IPAddress = "192.168.1.150";
ДрайверККМ.TCPPort = 7778;
ДрайверККМ.Timeout = 3000;
Если ДрайверККМ.Connect() = 0 Тогда
// Печать фискального чека
// ...
// Обязательное отключение для освобождения сокета другим клиентам
ДрайверККМ.Disconnect();
Иначе
Сообщить("Касса занята или недоступна по сети!", "!");
КонецЕсли;
Если доработка старых типовых обработок 1С 7.7 под сложные требования ФФД (включая работу с маркировкой «Честный ЗНАК») вызывает затруднения, разберем альтернативный архитектурный подход. Вместо прямого взаимодействия через COM-объект DrvFR.dll на компьютере разворачивается локальный кассовый микросервер.
В этом случае платформа 1С 7.7 формирует текстовую структуру с данными чека и отправляет ее локальной службе через системный HTTP-клиент:
Http = СоздатьОбъект("WinHttp.WinHttpRequest.5.1");
Http.Open("POST", "http://127.0.0.1:5000/print_check", 0);
Http.SetRequestHeader("Content-Type", "application/json; charset=utf-8");
Http.Send(ТекстЗапросаJSON);
Если Http.Status = 200 Тогда
Сообщить("Чек успешно отправлен на печать.");
Иначе
Сообщить("Ошибка печати чека: " + Http.ResponseText, "!");
КонецЕсли;
Такой подход полностью снимает проблемы блокировок сокетов и обновления драйверов внутри устаревшей среды 1С 7.7, перенося логику работы с актуальными требованиями закона на сторону промежуточного сервиса.