Как исправить ошибку «Не найден файл внешней компоненты» при печати штрихкодов в 1С?

Программист 1С v8.3 (Управляемые формы) 1С:Управление торговлей IT и автоматизация бизнеса
← На главную

При формировании печатных форм документов, ценников или этикеток со штрихкодами пользователи могут столкнуться с критической ошибкой выполнения кода. Ошибка возникает еще на этапе компоновки табличного документа до отправки на принтер:


{ОбщийМодуль.МенеджерОборудованияВызовСервера.Модуль(1660)}: Ошибка при вызове метода контекста (ПодключитьВнешнююКомпонентуПечатиШтрихкода)
ВнешняяКомпонента = МенеджерОборудованияСерверПовтИсп.ПодключитьВнешнююКомпонентуПечатиШтрихкода();
по причине:
Не найден файл внешней компоненты

Часто в файловой копии информационной базы печать продолжает работать без сбоев, тогда как в клиент-серверном варианте (SQL) вызов завершается аварийно. Разберем детально механизм возникновения этой неполадки и эффективные способы её устранения.

Почему возникает ошибка подключения компоненты на сервере

Проанализируем контекст выполнения программного кода. В конфигурациях, использующих Библиотеку подключаемого оборудования (БПО), таких как 1С:Управление торговлей 11, формирование штрихкода происходит на стороне сервера в модуле с повторным использованием возвращаемых значений МенеджерОборудованияСерверПовтИсп.

Процесс инициализации компоненты выглядит следующим образом:

  1. Рабочий процесс сервера rphost.exe считывает двоичные данные компоненты из общего макета конфигурации.
  2. Файлы библиотеки распаковываются во временную директорию учетной записи, под которой запущена системная служба сервера 1С (обычно это usr1cv8 или SYSTEM), а не в каталог пользователя клиентского ПК.
  3. Платформа выполняет вызов метода подключения внешней компоненты по технологии Native API или COM из временного каталога.

Если временный каталог службы очищен сторонним процессом, права на запись ограничены, сервер аварийно завершал работу или антивирус заблокировал извлеченный файл .dll / .so, платформа выдает сообщение о том, что файл компоненты не найден.

Шаг 1. Перезапуск службы сервера 1С и очистка временных файлов

Если сервер 1С работал нестабильно или аварийно перезагружался, в сеансах рабочих процессов могут зависнуть некорректные кэшированные данные. Выполним полную перезагрузку службы и очистку служебных каталогов:

  1. Откроем консоль управления службами services.msc и остановим службу Агент сервера 1С:Предприятия 8.3 (1C:Enterprise 8.3 Server Agent).
  2. Перейдем в каталог временных файлов пользователя, от имени которого работает служба (например, C:\Users\usr1cv8\AppData\Local\Temp) и очистим его содержимое. Также проверим и очистим системный каталог C:\Windows\Temp.
  3. Очистим кэш сеансовых данных кластера серверов, удалив папки с именами вида snccntx* внутри рабочего каталога кластера (по умолчанию C:\Program Files\1cv8\srvinfo).
  4. Запустим службу сервера 1С заново и проверим печать штрихкодов в информационной базе.

Шаг 2. Проверка прав доступа учетной записи службы 1С

Убедимся, что учетная запись, под которой стартует служба 1С, обладает всеми необходимыми правами в операционной системе. Разберем основные требования:

  1. Пользователь службы (например, usr1cv8) должен иметь права Полный доступ (Full Control) к каталогам srvinfo, а также к локальным папкам Temp.
  2. Проверим политики безопасности ОС: у пользователя службы должно присутствовать право Вход в качестве службы (Log on as a service).

Шаг 3. Проверка разрядности платформы и макета компоненты

Рассмотрим ситуацию, когда ошибка возникает после обновления платформы 1С с 32-разрядной версии на 64-разрядную:

  1. В 64-разрядном кластере серверов процесс rphost.exe требует наличия 64-битной версии внешней компоненты (библиотеки .dll для Windows или .so для Linux).
  2. Если конфигурация давно не обновлялась, во встроенном макете БПО может содержаться только 32-битная компонента печати штрихкодов. В этом случае необходимо обновить макет компоненты в конфигураторе, загрузив актуальную версию архива с манифестом из свежего дистрибутива БПО.

Шаг 4. Настройка исключений антивирусного ПО

Антивирусные сканеры и средства защиты от угроз могут расценивать динамическое создание исполняемых библиотек в папке Temp процессом rphost.exe как подозрительную активность. Для стабильной работы настроим исключения:

  1. Добавим в список исключений антивируса исполняемые файлы сервера 1С: ragent.exe, rmngr.exe, rphost.exe.
  2. Исключим из постоянного мониторинга рабочий каталог кластера серверов srvinfo и каталоги временных файлов учетной записи службы 1С.

Альтернативные способы формирования штрихкодов

Если использование серверной компоненты генерации изображений штрихкода вызывает регулярные проблемы с окружением, рассмотрим альтернативные архитектурные решения:

  1. Использование специализированных шрифтов: Формирование одномерных штрихкодов форматов EAN-13 или Code 128 через установку соответствующих TrueType-шрифтов на сервере и вывод текстовых строк со специальным контрольным символом.
  2. Программная генерация без внешних библиотек: Использование алгоритмов на встроенном языке 1С, которые формируют растровое изображение штрихкода напрямую в объекте Картинка.
← На главную