Подключение фискального регистратора к конфигурациям на платформе 1С:Предприятие 7.7, которые годами дорабатывались и не обновлялись, нередко вызывает сложности. При попытке настроить аппарат ШТРИХ-МИНИ-ФР-К специалисты сталкиваются с двумя главными проблемами: в измененной конфигурации полностью отсутствует или повреждена подсистема торгового оборудования, а при попытке зарегистрировать драйвер возникает сообщение: Ошибка при загрузке компоненты... не удалось создать объект внешней компоненты с программным идентификатором AddIn.DrvFR.
Разберем по шагам, как правильно установить и зарегистрировать драйвер в современных версиях Windows, как наладить взаимодействие базы с кассой и какие нюансы следует учитывать при печати чеков.
Платформа 1С 7.7 является 32-разрядным приложением. При работе в 64-битных версиях операционной системы стандартная утилита регистрации библиотек запускает 64-битную ветку реестра, из-за чего 32-битная платформа не может получить доступ к COM-серверу драйвера.
Выясним причину ошибки инициализации объекта. Если библиотека скопирована в каталог базы, но не зарегистрирована корректно через 32-битную утилиту, вызов метода СоздатьОбъект("AddIn.DrvFR") завершается аварийно. Для устранения неполадки выполним следующие действия:
DrvFR.dll в рабочий каталог платформы — папку BIN (там, где расположен исполняемый файл 1cv7.exe), либо в системный каталог C:\Windows\SysWOW64. Размещение библиотеки в системном каталоге или папке BIN избавляет от необходимости прописывать жесткие пути к файлу в программном коде.regsvr32, выполнив команду:
%systemroot%\SysWoW64\regsvr32.exe "C:\Windows\SysWOW64\DrvFR.dll"
Проанализируем структуру информационной базы 1С 7.7. В зависимости от степени переработки типовой конфигурации «Торговля и Склад» подключение кассы реализуется одним из двух способов:
fr_comm.ert или fr_shtr.ert) и настроечный файл .prm. Все эти файлы должны находиться в каталоге ExtForms\Equip внутри папки информационной базы. Если каталог был удален, восстановим его из типового релиза 1С:Торговля и Склад 7.7 соответствующей редакции.Рассмотрим пример программной инициализации компоненты и отправки команд на регистратор при прямом взаимодействии с драйвером. Проанализируем базовый код для модуля формы или документа:
// 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-отчет).
При подключении ШТРИХ-МИНИ-ФР-К обратим внимание на параметры COM-порта:
Timeout в настройках драйвера рекомендуется выставлять не менее 150–300 мс. При заниженных таймаутах длинные операции (печать сложных отчетов, Z-отчетов) будут прерываться с ошибкой тайм-аута.Посмотрим на практические нюансы эксплуатации модели ШТРИХ-МИНИ-ФР-К в текущих реалиях:
PrintString() без открытия фискального чека.