Внешние компоненты, БСП и COM: что и куда подключать в 1С 8.3

· 9 мин

Содержание

Чтобы установить библиотеку в 1С, сначала определите, что у вас за файл. Архив .zip с .dll/.so внутри — это внешняя компонента: её загружают в базу и подключают методом ПодключитьВнешнююКомпоненту. Файл .cf библиотеки (например, БСП) встраивают через Конфигурация → Сравнить, объединить с конфигурацией из файла в Конфигураторе. Отдельная .dll с COM-интерфейсом регистрируется в Windows командой regsvr32 от имени администратора.

Путаница начинается с того, что словом «библиотека» в 1С называют три разные вещи. Ниже — порядок установки каждой из них на платформе 8.3, проверка совместимости и разбор ошибок, которые чаще всего всплывают после подключения.

Какие библиотеки бывают в 1С и зачем их ставят

Библиотека — это готовый код, который вы не пишете сами, а берёте у разработчика. В 1С:Предприятии 8.3 встречаются три вида:

  • 🧩 Внешняя компонента (AddIn) — скомпилированный модуль на C++ или другом языке. Даёт 1С то, чего нет в платформе: работу со сканером штрихкодов, весами, ККТ, криптографией, нестандартными протоколами. Поставляется архивом .zip с файлом MANIFEST.XML или отдельной .dll.
  • 📚 Библиотека конфигурации — набор общих модулей, подсистем и объектов метаданных в формате .cf. Самые известные: Библиотека стандартных подсистем (БСП), Библиотека интернет-поддержки (БИП), Библиотека электронных документов. На них построены БП 3.0, ЗУП 3.1, УТ 11.
  • ⚙️ COM-библиотека — .dll, зарегистрированная в реестре Windows. Типичный пример — comcntr.dll из каталога платформы: без неё не работает внешнее соединение V83.COMConnector.
ВидФорматГде живёт после установкиКто ставит
Внешняя компонента.zip, .dll, .soВ макете конфигурации или в справочнике базыРазработчик или администратор базы
Библиотека конфигурации.cf, дистрибутив setup.exeВнутри конфигурацииРазработчик в Конфигураторе
COM-библиотека.dllВ реестре Windows на конкретном компьютереСистемный администратор

Отдельно стоят внешние обработки .epf и расширения .cfe. Их иногда тоже зовут «библиотеками», но это обычные объекты 1С, и подключаются они через пользовательский режим, а не через код.

Три способа установить библиотеку в 1С 8.3

Способ 1. Внешняя компонента из zip-архива

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

  1. Откройте базу в Конфигураторе и включите возможность изменения: Конфигурация → Поддержка → Настройка поддержки. Если конфигурация на поддержке, удобнее делать это в расширении.
  2. В дереве метаданных раскройте Общие → Общие макеты, добавьте новый макет.
  3. В конструкторе выберите тип макета Внешняя компонента и загрузите zip-архив.
  4. Сохраните и обновите конфигурацию базы данных (F7).
  5. В модуле подключите компоненту и создайте объект.
&НаКлиенте
Процедура ПодключитьСканер(Команда)
	Оповещение = Новый ОписаниеОповещения("ПослеПодключенияКомпоненты", ЭтотОбъект);
	НачатьПодключениеВнешнейКомпоненты(Оповещение,
		"ОбщийМакет.КомпонентаСканер", "Scanner", ТипВнешнейКомпоненты.Native);
КонецПроцедуры

&НаКлиенте
Процедура ПослеПодключенияКомпоненты(Подключено, ДополнительныеПараметры) Экспорт
	Если Не Подключено Тогда
		Сообщить("Компонента не подключена. Проверьте разрядность клиента и манифест.");
		Возврат;
	КонецЕсли;
	// Имя класса берите из документации к компоненте
	Сканер = Новый("AddIn.Scanner.Main");
КонецПроцедуры

Второй параметр — произвольное имя, под которым компонента зарегистрируется в сеансе. Оно же стоит в строке AddIn.<Имя>.<Класс>. Имя класса задаёт автор компоненты, угадать его нельзя.

💡 Если компонента не лежит в макете, а пользователь загружает её сам, сначала нужен вызов НачатьУстановкуВнешнейКомпоненты — он копирует файлы на клиентский компьютер. Надёжный порядок для клиента такой: попытаться подключить, при неудаче вызвать установку и подключить снова.

Без Конфигуратора: справочник в типовой конфигурации

В типовых конфигурациях на новых версиях БСП есть механизм загрузки внешних компонент прямо в базу, без правки метаданных. Его ищите в разделе Администрирование: через поиск по слову «компоненты» в панели разделов или в группе настроек печатных форм и обработок (название группы отличается от релиза к релизу). Загруженный архив хранится в базе, и обработки поставщика подключают его автоматически.

Способ 2. Библиотека конфигурации (БСП, БИП) через объединение

Этот способ нужен тем, кто делает свою конфигурацию или дорабатывает нетиповую. В типовые БП, ЗУП и УТ библиотеки уже встроены. Ставить их туда второй раз нельзя — обновятся они вместе с конфигурацией.

  1. Запустите setup.exe из дистрибутива библиотеки. Он распакует файлы в каталог шаблонов, по умолчанию %APPDATA%\1C\1cv8\tmplts\1c\<имя библиотеки>.
  2. Сделайте выгрузку базы: Администрирование → Выгрузить информационную базу в Конфигураторе.
  3. Откройте Конфигурация → Сравнить, объединить с конфигурацией из файла и укажите .cf библиотеки.
  4. На вопрос о постановке на поддержку ответьте «Да» — тогда следующие версии библиотеки будут приходить как обновление.
  5. Отметьте только нужные подсистемы. При первичном внедрении БСП воспользуйтесь помощником из комплекта поставки: он подсказывает зависимости между подсистемами.
  6. Нажмите «Выполнить», затем обновите конфигурацию базы данных.

Объединение меняет конфигурацию необратимо. Без выгрузки .dt, сделанной перед шагом 3, откатить изменения можно только ручной правкой.

После объединения в общих модулях появятся процедуры с комментарием «Переопределяемый». В них вписывают свой код: что включено, какие роли видят функции, какие объекты участвуют. Без этой настройки подсистема часто есть в дереве, но не работает.

Способ 3. COM-библиотека в Windows

  1. Скопируйте .dll в постоянный каталог, например C:\Program Files\<Поставщик>\.
  2. Откройте командную строку от имени администратора.
  3. Выполните регистрацию.
:: 64-битная библиотека для 64-битного клиента
C:\Windows\System32\regsvr32.exe "C:\Program Files\1cv8\8.3.24.1467\bin\comcntr.dll"

:: 32-битная библиотека для 32-битного клиента
C:\Windows\SysWOW64\regsvr32.exe "C:\Program Files (x86)\1cv8\8.3.24.1467\bin\comcntr.dll"

Номер версии в пути подставьте свой. Регистрация привязана к компьютеру: на сервере 1С её делают на сервере, на рабочих местах — на каждом рабочем месте, где вызывается COM-объект.

После обновления платформы comcntr.dll из нового каталога нужно зарегистрировать заново. Иначе в реестре останется путь к старой версии.

Что за файл библиотеки у вас на руках?

Где взять библиотеку для 1С

Источник определяет, насколько библиотеке можно доверять.

  • 🏢 Типовые библиотеки фирмы 1С (БСП, БИП, БЭД) — на портале обновлений 1С:ИТС. Нужна активная подписка ИТС или договор с партнёром. Дистрибутив приходит с setup.exe и документацией по внедрению.
  • 🔌 Компоненты оборудования — у производителя ККТ, весов, сканера. Обычно это драйвер с компонентой под стандарт «1С:Совместимо» или Native API.
  • 🛠️ Компоненты сервисов (банки, операторы ЭДО, службы доставки) — в личном кабинете сервиса или в разделе «для разработчиков» его сайта.
  • 🌐 Открытые библиотеки — на GitHub и в сообществах разработчиков. Перед загрузкой в рабочую базу проверяйте исходный код и историю репозитория.

Файлы «из чата» и с файлообменников в рабочую базу не ставьте. Компонента выполняется с правами процесса 1С и видит всё, что видит он.

Совместимость библиотеки с версией платформы и ОС

Перед установкой сверьте четыре параметра.

Что проверитьГде посмотретьЧто будет при несовпадении
Минимальная версия платформыДокументация библиотекиНе загрузится .cf или упадёт вызов метода
Режим совместимости конфигурацииСвойства корня конфигурацииБСП новой редакции не встанет на старый режим
РазрядностьМанифест компоненты, свойства процесса 1СКомпонента не подключится
Операционная система и тип клиентаМанифест компонентыКомпонента работает в тонком клиенте, но не в веб-клиенте

Разрядность — самая частая причина. 32-битный тонкий клиент не загрузит 64-битную .dll, и наоборот. На сервере то же самое: 64-битный сервер 1С требует 64-битную компоненту.

В MANIFEST.XML каждая строка component описывает одну сборку под одну платформу:

<component os="Windows" path="AddInNative_x86.dll" type="native" arch="i386"/>
<component os="Windows" path="AddInNative_x64.dll" type="native" arch="x86_64"/>
<component os="Linux" path="libAddInNative_x64.so" type="native" arch="x86_64"/>

Если нужной строки нет — для этой ОС или разрядности компоненты просто не существует. Просите у поставщика сборку, а не переименовывайте файлы.

COM-компоненты работают только в Windows. На Linux-сервере 1С и в веб-клиенте они недоступны, там нужна Native-сборка.

Ошибки после подключения библиотеки и что с ними делать

Диагностика: выберите симптом

Ещё одна ловушка — подключение на сервере при работе с файловой базой. В файловом варианте «сервер» — это тот же процесс клиента, поэтому всё работает. После перевода базы на клиент-серверный вариант тот же код упадёт: компоненту теперь нужно ставить на компьютер с сервером 1С.

Безопасность сторонних библиотек

Внешняя компонента — это машинный код. Платформа его не проверяет и не ограничивает. Компонента может читать файлы, открывать сетевые соединения, запускать процессы.

Минимальный набор правил:

  1. 🔒 Ставьте библиотеки сначала в копию базы . Рабочую базу трогайте только после проверки.
  2. 🧾 Сверяйте контрольную сумму архива, если поставщик её публикует: certutil -hashfile file.zip SHA256 в Windows.
  3. 👤 Не давайте пользователям права на загрузку компонент и внешних обработок. Это отдельные права в ролях, их стоит оставить администраторам.
  4. 🛡️ В клиент-серверном варианте используйте профили безопасности кластера. Они ограничивают доступ к файловой системе, COM-объектам и внешним компонентам на уровне сервера.
  5. 📦 Для доработок типовых конфигураций держите компоненту в расширении, а не в основной конфигурации. Так обновление типовой не потребует ручного переноса.

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

Для COM-библиотек есть ещё риск при регистрации: regsvr32 вписывает путь к файлу в реестр. Если .dll лежит в каталоге, куда пишут обычные пользователи, её можно подменить. Храните такие файлы только в Program Files или в каталоге с правами на запись для администраторов.

Частые вопросы об установке библиотек

Можно ли установить библиотеку в базовую версию 1С?
Нет, базовая версия не позволяет менять конфигурацию. Встроить библиотеку через Конфигуратор или макет не получится. Остаются только механизмы, которые типовая конфигурация даёт в пользовательском режиме.
Нужно ли переустанавливать компоненту после обновления платформы?
Компоненту из макета — нет, она хранится в базе. COM-библиотеку из каталога платформы, например comcntr.dll, нужно заново зарегистрировать из каталога новой версии.
Слетит ли библиотека при обновлении типовой конфигурации?
Если она в расширении — нет. Если встроена в основную конфигурацию, при обновлении придётся сравнивать и переносить изменения вручную.
Чем Native API отличается от COM?
Native API работает в Windows, Linux и macOS, в тонком и веб-клиенте при наличии сборки. COM — только Windows и требует регистрации в реестре.
Как узнать версию встроенной БСП?
В Конфигураторе откройте общий модуль ОбновлениеИнформационнойБазыБСП и найдите в нём процедуру ПриДобавленииПодсистемы. Номер версии указан в строке Описание.Версия.