К статье
Практический материал

Администрирование · 12 мин

Как установить компоненты в 1С: полное руководство

Как установить внешние компоненты в 1С: COM, Native API, компоненты из макета и веб-компоненты. Пошаговые инструкции, проверка результата и типичные ошибки.

Под компонентами в 1С обычно понимают внешние компоненты — библиотеки, которые расширяют возможности платформы: работу со сканерами штрих-кодов, кассовым оборудованием, криптографией, генерацией QR-кодов и другими задачами, не реализованными встроенным языком. Компоненты поставляются в виде файлов DLL (Windows), SO (Linux) или zip-архивов с несколькими версиями под разные платформы.

Способ установки зависит от типа компонента и сценария использования: одни подключаются прямо из макета конфигурации кодом на встроенном языке, другие требуют регистрации в операционной системе, третьи устанавливаются в браузере при работе через веб-клиент. Неправильный выбор способа — самая частая причина ошибок вида «Не удалось подключить внешнюю компоненту».

Ниже разобраны основные сценарии: установка компоненты из макета конфигурации, регистрация COM-компонентов в Windows, подключение Native API-компонентов, работа в веб-клиенте, а также диагностика ошибок и проверка результата.

Какие бывают компоненты и как определить нужный способ установки

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

COM-компоненты — классические библиотеки Windows, зарегистрированные в системном реестре. Они работают только под Windows и только на том компьютере, где зарегистрированы. Типичные примеры — старые компоненты сканеров штрих-кодов и интеграции с офисными приложениями.

Компоненты по технологии Native API — современный кроссплатформенный вариант от фирмы «1С». Одна и та же компонента может иметь сборки под Windows, Linux и мобильные платформы, упакованные в один zip-архив. Именно этот формат рекомендуется для новых разработок.

Компоненты, встроенные в конфигурацию — поставляются внутри типовых решений (например, компоненты печати штрих-кодов в торговых конфигурациях) и подключаются автоматически из макета. Пользователю обычно достаточно согласиться с установкой при первом обращении.

Сравнение типов компонентов

COM-компонента

Только Windows, требует регистрации regsvr32 с правами администратора. Подходит для старых решений и интеграций.

Native API

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

Компонента из конфигурации

Уже встроена в типовое решение, устанавливается автоматически при первом использовании. Ручная установка обычно не нужна.

Установка компоненты из макета конфигурации

Самый распространённый сценарий — компонента хранится в макете конфигурации (тип макета «Двоичные данные») и устанавливается программно. Этот способ не требует ручного копирования файлов и работает одинаково в файловом и клиент-серверном варианте.

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

bsl
&НаКлиенте
Процедура ПодключитьСканер(Команда)
    НачатьУстановкуВнешнейКомпоненты(, "ОбщийМакет.КомпонентаСканера");
    Результат = ПодключитьВнешнююКомпоненту("ОбщийМакет.КомпонентаСканера", "Scanner", ТипВнешнейКомпоненты.Native);
    Если Результат Тогда
        Сообщить("Компонента подключена");
    Иначе
        Сообщить("Ошибка подключения компоненты");
    КонецЕсли;
КонецПроцедуры

Обратите внимание на разницу между синхронными и асинхронными вызовами. В тонком и веб-клиенте с включённой модальной безопасностью рекомендуется использовать асинхронные методы НачатьУстановкуВнешнейКомпоненты() и НачатьПодключениеВнешнейКомпоненты() с описанием оповещения — синхронные вызовы могут быть заблокированы настройками режима использования модальных окон.

Регистрация COM-компоненты в Windows

Если компонента выполнена по COM-технологии, перед подключением из 1С её нужно зарегистрировать в операционной системе. Для этого используется штатная утилита regsvr32, запущенная от имени администратора.

Порядок действий: скопируйте DLL-файл компоненты в постоянную папку (например, в каталог установки или Program Files — не во временные папки, откуда файл может быть удалён), откройте командную строку от имени администратора и выполните регистрацию.

cmd
regsvr32 "C:\Components\MyComponent.dll"

Критически важный нюанс — разрядность. 32-разрядную компоненту на 64-разрядной Windows регистрируют через утилиту из папки SysWOW64, а 64-разрядную — из System32. Если разрядность компоненты не совпадает с разрядностью клиентского приложения 1С, подключение завершится ошибкой, даже если регистрация прошла успешно.

Подключение Native API-компоненты из файла

Native API-компоненты распространяются в виде zip-архива, внутри которого лежат сборки для разных платформ и файл манифеста. Платформа сама выбирает подходящую сборку под текущую операционную систему и разрядность клиента.

Для установки из файла укажите путь к архиву в методе установки. В файловом варианте базы путь должен быть доступен с клиентского компьютера, в клиент-серверном — учитывайте, на какой стороне выполняется код: если компонента подключается на сервере, файл должен лежать на сервере.

Порядок действий при установке из файла
  1. 1
    Получите zip-архив компоненты от разработчика и проверьте его происхождение
  2. 2
    Разместите файл в папке, доступной клиенту или серверу 1С
  3. 3
    Выполните НачатьУстановкуВнешнейКомпоненты() с указанием пути к архиву
  4. 4
    Вызовите ПодключитьВнешнююКомпоненту() с тем же путём и уникальным именем
  5. 5
    Создайте объект компоненты через Новый("AddIn.Имя.Объект") и проверьте вызов тестового метода

Имя подключения (второй параметр) должно быть уникальным идентификатором без пробелов и спецсимволов — по нему платформа различает компоненты. Имя объекта в конструкторе Новый("AddIn...") определяется манифестом компоненты и указывается в её документации.

Установка компонент в веб-клиенте

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

Для ряда типовых задач (работа с криптографией, оборудованием) требуется установить расширение для работы с 1С в браузере — платформа сама предложит это при первом обращении к соответствующей функциональности. Пользователю достаточно подтвердить установку и перезапустить браузер.

Если компонента подключается на стороне сервера (например, генерация штрих-кода в серверной процедуре), в веб-клиенте она работает без дополнительной установки на компьютере пользователя — достаточно установить её на сервер 1С. Это удобный способ централизовать обслуживание компонент в больших сетях.

Маршрут решения

Как выбрать сценарий установки

Компонента нужна только в серверном коде (печать, обмен, фоновые задания)Установите её на сервер 1С и подключайте в серверных процедурах — на клиентах ничего настраивать не нужно
Компонента работает с локальным оборудованием (сканер, ККТ)Устанавливайте на каждое рабочее место, где подключено оборудование
Пользователи работают через веб-клиентПроверьте наличие расширения для браузера и по возможности перенесите вызовы компоненты на сервер
Компонента COM, а клиенты на LinuxCOM не сработает — ищите Native API-версию компоненты или альтернативу

Проверка результата и диагностика ошибок

После установки обязательно проверьте, что компонента действительно подключилась и выполняет свои функции. Минимальный тест — успешное создание объекта и вызов простейшего метода, описанного в документации компоненты.

Контрольные точки

Как проверить результат

Результат ПодключитьВнешнююКомпоненту()
Норма

Метод вернул Истина

Тревожный признак

Вернул Ложь — компонента не найдена, не подходит по платформе или заблокирована

Создание объекта AddIn
Норма

Объект создан, методы вызываются без исключений

Тревожный признак

Ошибка «Не удалось создать объект» — неверное имя объекта или не установлена компонента

Журнал регистрации и технологический журнал
Норма

Нет ошибок загрузки внешних компонент

Тревожный признак

Записи об ошибках загрузки DLL — смотрите код и описание ошибки

Работа в целевом сценарии
Норма

Оборудование отвечает, документ формируется

Тревожный признак

Компонента подключена, но функция не работает — проблема в параметрах вызова или окружении

Типичные причины неудач: несовпадение разрядности компоненты и клиента 1С, отсутствие прав на запись в профиль пользователя, блокировка файла антивирусом, попытка подключить COM-компоненту в тонком клиенте под Linux, а также устаревшая версия компоненты после обновления платформы.

Типичные ошибки
01
Регистрация 32-разрядной DLL через системный regsvr32 на 64-разрядной Windows — подключение падает без явного указания причины
02
Установка компоненты только под одной учётной записью — у остальных пользователей того же компьютера она не работает
03
Хранение DLL во временной папке — после очистки временных файлов компонента пропадает
04
Подключение на клиенте того, что должно работать на сервере, — в клиент-серверном варианте файл не найден
05
Игнорирование асинхронных методов в веб-клиенте — код молча не выполняется

Обновление и удаление компонент

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

Для удаления COM-компоненты используйте команду regsvr32 /u "путь\файл.dll" от имени администратора, после чего файл можно удалить. Native API-компоненты, установленные платформой, хранятся в профиле пользователя и при необходимости удаляются вместе с кэшем — перед очисткой кэша убедитесь, что компонента сможет установиться заново из макета или файла.

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

Часто задаваемые вопросы

Нужны ли права администратора для установки компоненты в 1С?

Для Native API-компонент, устанавливаемых из макета средствами платформы, обычно достаточно прав на запись в профиль пользователя. Регистрация COM-компоненты через regsvr32 требует запуска командной строки от имени администратора.

Почему компонента работает на сервере, но не работает у пользователя?

Компонента устанавливается в контексте конкретного компьютера и учётной записи. Если код выполняется на клиенте, компонента должна быть установлена именно на рабочем месте пользователя. Проверьте, на какой стороне выполняется проблемный вызов.

Можно ли использовать COM-компоненту под Linux?

Нет, COM — технология только для Windows. Для Linux ищите версию компоненты по технологии Native API либо альтернативное решение, например вызов внешнего приложения или веб-сервиса.

Что делать, если после обновления платформы компонента перестала подключаться?

Сначала проверьте, не изменилась ли разрядность клиентского приложения — переход с 32- на 64-разрядный клиент требует соответствующей сборки компоненты. Затем обновите саму компоненту до актуальной версии от разработчика и переустановите её.

Безопасно ли устанавливать компоненты из интернета?

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

Как узнать, какие компоненты уже подключены в сеансе?

Штатного списка подключённых компонент в интерфейсе нет. Практический способ — попытаться подключить компоненту повторно: если она уже подключена в сеансе, метод вернёт успешный результат без повторной установки. Для учёта используют собственные журналы в коде конфигурации.

Итог

Что важно запомнить

Способ установки зависит от типа компоненты: Native API устанавливается из макета или файла методом УстановитьВнешнююКомпоненту(), COM требует регистрации через regsvr32 с учётом разрядности. Установка выполняется на том компьютере и под той учётной записью, где выполняется код. После установки всегда проверяйте подключение тестовым вызовом и используйте компоненты только из доверенных источников.