При формировании печатных форм с печатью штрихкодов или QR-кодов пользователи и разработчики часто сталкиваются со сбоем инициализации внешней компоненты. В системном журнале и на экране появляется сообщение об ошибке: -2147221005 (0x800401F3): Недопустимая строка с указанием класса. Компонента 1С:Печать штрихкодов не установлена на данном компьютере!
Рассмотрим подробно причины возникновения этой проблемы и разберем практические варианты её решения в различных сценариях работы с платформой 1С:Предприятие 8.3.
Ошибка с кодом 0x800401F3 в ОС Windows означает, что вызываемый класс COM/ActiveX не зарегистрирован в системном реестре или приложение не может его найти. Выясним главные причины, по которым платформа 1С не может проинициализировать компоненту:
1CBarCode поставляется в виде 32-битной ActiveX-библиотеки (DLL). Если на рабочем месте или на сервере используется 64-разрядный клиент 1С:Предприятия (x64), он физически не может напрямую загрузить 32-битный COM-объект в свой адресный процесс.Проанализируем базовый вариант решения, если печать штрихкодов выполняется на клиентском рабочем месте под управлением Windows. Классический модуль 1CBarCode работает исключительно с 32-разрядными процессами.
Разберем по шагам порядок действий:
regsvr32 "C:\Program Files (x86)\1C\1CBarCode\1CBarCode.dll"
При использовании 32-битного клиента 1С прекрасно подключается к 64-битному серверу 1С:Предприятия, не создавая конфликтов разрядности процессов при формировании печатных форм.
Более надежным и технологичным решением является отказ от устаревшей технологии ActiveX в пользу технологии Native API, применяемой в Библиотеке подключаемого оборудования (БПО).
Рассмотрим ключевые преимущества Native-компонент:
regsvr32 — платформа 1С загружает компоненту напрямую из макета или файла с помощью функции УстановитьВнешнююКомпоненту() и ПодключитьВнешнююКомпоненту().Часто при отладке процедур печати штрихкодов разработчики переключаются между клиентом и сервером. Если после смены разрядности клиента или перенастройки сервера в предметах отладки исчезает контекст Сервер, проанализируем параметры службы 1С:Предприятия.
Для того чтобы включить режим отладки на сервере 1С под управлением Windows, выполним следующие шаги:
services.msc.regedit и перейдем к ветке реестра службы 1С (для 64-битной платформы):
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\1C:Enterprise 8.3 Server Agent (x86-64)
ImagePath и добавим ключ -debug в конец строки запуска приложения ragent.exe.После этой настройки серверный контекст снова станет доступен в конфигураторе 1С в меню отладки независимо от разрядности используемого клиента.