Как подключить фискальный регистратор ШТРИХ-МИНИ-ФР-К к нетиповой 1С:Торговля и Склад 7.7?

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

Подключение фискального регистратора к конфигурациям на платформе 1С:Предприятие 7.7, которые годами дорабатывались и не обновлялись, нередко вызывает сложности. При попытке настроить аппарат ШТРИХ-МИНИ-ФР-К специалисты сталкиваются с двумя главными проблемами: в измененной конфигурации полностью отсутствует или повреждена подсистема торгового оборудования, а при попытке зарегистрировать драйвер возникает сообщение: Ошибка при загрузке компоненты... не удалось создать объект внешней компоненты с программным идентификатором AddIn.DrvFR.

Разберем по шагам, как правильно установить и зарегистрировать драйвер в современных версиях Windows, как наладить взаимодействие базы с кассой и какие нюансы следует учитывать при печати чеков.

Шаг 1. Установка драйвера и регистрация DrvFR.dll в Windows x64

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

Выясним причину ошибки инициализации объекта. Если библиотека скопирована в каталог базы, но не зарегистрирована корректно через 32-битную утилиту, вызов метода СоздатьОбъект("AddIn.DrvFR") завершается аварийно. Для устранения неполадки выполним следующие действия:

  1. Установим официальный пакет драйверов от производителя (например, «ШТРИХ-М: Драйвер ФР» версии 4.x). Убедимся, что через тестовую утилиту («Тест драйвера ФР») фискальный регистратор успешно находит связь по COM-порту.
  2. Скопируем файл DrvFR.dll в рабочий каталог платформы — папку BIN (там, где расположен исполняемый файл 1cv7.exe), либо в системный каталог C:\Windows\SysWOW64. Размещение библиотеки в системном каталоге или папке BIN избавляет от необходимости прописывать жесткие пути к файлу в программном коде.
  3. Запустим командную строку от имени администратора.
  4. Выполним регистрацию библиотеки исключительно через 32-битную версию утилиты regsvr32, выполнив команду: %systemroot%\SysWoW64\regsvr32.exe "C:\Windows\SysWOW64\DrvFR.dll"
  5. Обязательно перезагрузим компьютер. После системной регистрации библиотеки COM-подсистема Windows или драйвер последовательного порта могут удерживать ресурсы до полной перезагрузки рабочей станции, из-за чего ошибка загрузки компоненты может сохраняться до рестарта ОС.

Шаг 2. Выбор способа интеграции в конфигурацию

Проанализируем структуру информационной базы 1С 7.7. В зависимости от степени переработки типовой конфигурации «Торговля и Склад» подключение кассы реализуется одним из двух способов:

  1. Через штатный механизм торгового оборудования (папка Equip). В типовых решениях подключение фискального регистратора выполняется без изменения метаданных конфигурации через справочник торгового оборудования. Для работы устройства требуются файлы внешней обработки (например, fr_comm.ert или fr_shtr.ert) и настроечный файл .prm. Все эти файлы должны находиться в каталоге ExtForms\Equip внутри папки информационной базы. Если каталог был удален, восстановим его из типового релиза 1С:Торговля и Склад 7.7 соответствующей редакции.
  2. Прямое управление через объектную модель драйвера. Если конфигурация переписана настолько, что справочники и модули торгового оборудования вырезаны, кассу подключают напрямую из модуля нужного документа (например, при проведении или нажатии кнопки печати чека в «ЧекККМ» или «Реализация»).

Шаг 3. Программный код прямого подключения и работы с ФР

Рассмотрим пример программной инициализации компоненты и отправки команд на регистратор при прямом взаимодействии с драйвером. Проанализируем базовый код для модуля формы или документа:


// 1. Загрузка внешней компоненты
Если ЗагрузитьВнешнююКомпоненту("DrvFR.dll") = 0 Тогда
    Предупреждение("Не удалось загрузить внешнюю компоненту DrvFR.dll!");
    Возврат;
КонецЕсли;

// 2. Создание COM-объекта
Попытка
    ФР = СоздатьОбъект("AddIn.DrvFR");
Исключение
    Предупреждение("Ошибка создания объекта внешней компоненты AddIn.DrvFR: " + ОписаниеОшибки());
    Возврат;
КонецПопытки;

// 3. Установка параметров связи
ФР.ComNumber = 1;          // Номер COM-порта (например, COM1)
ФР.BaudRate = 115200;       // Скорость обмена (должна совпадать со скоростью в ФР)
ФР.Timeout = 200;           // Межсимвольный таймаут (в миллисекундах)
ФР.Password = 30;           // Пароль оператора/системного администратора по умолчанию

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

// 5. Проверка состояния кассы и печать чека
ФР.GetDeviceMetrics();
Сообщить("Устройство подключено: " + ФР.UDescription);

Далее вызов фискальных операций (открытие чека, регистрация позиции, закрытие чека) выполняется штатными методами объекта ФР: OpenCheck(), Sale(), CloseCheck(), а снятие сменных отчетов — вызовами PrintReportWithoutCleaning() (X-отчет) и PrintReportWithCleaning() (Z-отчет).

Шаг 4. Аппаратная настройка интерфейса связи

При подключении ШТРИХ-МИНИ-ФР-К обратим внимание на параметры COM-порта:

  1. Стабильность скорости и таймауты. Стандартная скорость обмена для данной модели — 4800 бод или 115200 бод. В свойствах порта диспетчера устройств Windows и в настройках драйвера должна быть выставлена одинаковая скорость. Параметр Timeout в настройках драйвера рекомендуется выставлять не менее 150–300 мс. При заниженных таймаутах длинные операции (печать сложных отчетов, Z-отчетов) будут прерываться с ошибкой тайм-аута.
  2. Переходники USB-to-COM. Если устройство подключается через интерфейсный преобразователь USB–RS-232, убедимся, что в диспетчере устройств виртуальному порту присвоен статический номер в диапазоне от COM1 до COM4. Старые компоненты и обработки 1С 7.7 часто работают нестабильно с номерами портов выше COM9.

Шаг 5. Функциональные ограничения и тонкости расчетов

Посмотрим на практические нюансы эксплуатации модели ШТРИХ-МИНИ-ФР-К в текущих реалиях:

  1. Режим работы устройства (ЭКЛЗ, АСПД или онлайн-касса). Аппарат исходной модификации с блоком ЭКЛЗ не может регистрировать фискальные продажи, если срок действия блока истек. Если касса используется для внутреннего учета в режиме нефискального принтера чеков (АСПД), вызовы команд фискальной продажи в коде блокируются. В таком случае печать текста чека выполняется методом драйвера PrintString() без открытия фискального чека.
  2. Расхождения при расчете скидок и округлений. Внутренняя прошивка кассы выполняет собственное умножение цены на количество. Если в документе 1С 7.7 сумма строки рассчитывается с применением скидки и предварительно округляется до копеек, итог чека на кассе может разойтись с суммой документа на 1–2 копейки. В таком случае касса откажется закрывать чек. Чтобы избежать блокировки, при формировании чека передавайте точные цены и выделяйте суммовую скидку на весь чек через соответствующие свойства драйвера.
← На главную