Внешние компоненты, БСП и COM: что и куда подключать в 1С 8.3
Содержание
Чтобы установить библиотеку в 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-архива
Для разработчика самый надёжный путь — положить архив в общий макет конфигурации.
- Откройте базу в Конфигураторе и включите возможность изменения:
Конфигурация → Поддержка → Настройка поддержки. Если конфигурация на поддержке, удобнее делать это в расширении. - В дереве метаданных раскройте
Общие → Общие макеты, добавьте новый макет. - В конструкторе выберите тип макета
Внешняя компонентаи загрузите zip-архив. - Сохраните и обновите конфигурацию базы данных (
F7). - В модуле подключите компоненту и создайте объект.
&НаКлиенте
Процедура ПодключитьСканер(Команда)
Оповещение = Новый ОписаниеОповещения("ПослеПодключенияКомпоненты", ЭтотОбъект);
НачатьПодключениеВнешнейКомпоненты(Оповещение,
"ОбщийМакет.КомпонентаСканер", "Scanner", ТипВнешнейКомпоненты.Native);
КонецПроцедуры
&НаКлиенте
Процедура ПослеПодключенияКомпоненты(Подключено, ДополнительныеПараметры) Экспорт
Если Не Подключено Тогда
Сообщить("Компонента не подключена. Проверьте разрядность клиента и манифест.");
Возврат;
КонецЕсли;
// Имя класса берите из документации к компоненте
Сканер = Новый("AddIn.Scanner.Main");
КонецПроцедуры
Второй параметр — произвольное имя, под которым компонента зарегистрируется в сеансе. Оно же стоит в строке AddIn.<Имя>.<Класс>. Имя класса задаёт автор компоненты, угадать его нельзя.
💡 Если компонента не лежит в макете, а пользователь загружает её сам, сначала нужен вызов НачатьУстановкуВнешнейКомпоненты — он копирует файлы на клиентский компьютер. Надёжный порядок для клиента такой: попытаться подключить, при неудаче вызвать установку и подключить снова.
Без Конфигуратора: справочник в типовой конфигурации
В типовых конфигурациях на новых версиях БСП есть механизм загрузки внешних компонент прямо в базу, без правки метаданных. Его ищите в разделе Администрирование: через поиск по слову «компоненты» в панели разделов или в группе настроек печатных форм и обработок (название группы отличается от релиза к релизу). Загруженный архив хранится в базе, и обработки поставщика подключают его автоматически.
Способ 2. Библиотека конфигурации (БСП, БИП) через объединение
Этот способ нужен тем, кто делает свою конфигурацию или дорабатывает нетиповую. В типовые БП, ЗУП и УТ библиотеки уже встроены. Ставить их туда второй раз нельзя — обновятся они вместе с конфигурацией.
- Запустите
setup.exeиз дистрибутива библиотеки. Он распакует файлы в каталог шаблонов, по умолчанию%APPDATA%\1C\1cv8\tmplts\1c\<имя библиотеки>. - Сделайте выгрузку базы:
Администрирование → Выгрузить информационную базув Конфигураторе. - Откройте
Конфигурация → Сравнить, объединить с конфигурацией из файлаи укажите.cfбиблиотеки. - На вопрос о постановке на поддержку ответьте «Да» — тогда следующие версии библиотеки будут приходить как обновление.
- Отметьте только нужные подсистемы. При первичном внедрении БСП воспользуйтесь помощником из комплекта поставки: он подсказывает зависимости между подсистемами.
- Нажмите «Выполнить», затем обновите конфигурацию базы данных.
Объединение меняет конфигурацию необратимо. Без выгрузки .dt, сделанной перед шагом 3, откатить изменения можно только ручной правкой.
После объединения в общих модулях появятся процедуры с комментарием «Переопределяемый». В них вписывают свой код: что включено, какие роли видят функции, какие объекты участвуют. Без этой настройки подсистема часто есть в дереве, но не работает.
Способ 3. COM-библиотека в Windows
- Скопируйте
.dllв постоянный каталог, напримерC:\Program Files\<Поставщик>\. - Откройте командную строку от имени администратора.
- Выполните регистрацию.
:: 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С.
Безопасность сторонних библиотек
Внешняя компонента — это машинный код. Платформа его не проверяет и не ограничивает. Компонента может читать файлы, открывать сетевые соединения, запускать процессы.
Минимальный набор правил:
- 🔒 Ставьте библиотеки сначала в копию базы . Рабочую базу трогайте только после проверки.
- 🧾 Сверяйте контрольную сумму архива, если поставщик её публикует:
certutil -hashfile file.zip SHA256в Windows. - 👤 Не давайте пользователям права на загрузку компонент и внешних обработок. Это отдельные права в ролях, их стоит оставить администраторам.
- 🛡️ В клиент-серверном варианте используйте профили безопасности кластера. Они ограничивают доступ к файловой системе, COM-объектам и внешним компонентам на уровне сервера.
- 📦 Для доработок типовых конфигураций держите компоненту в расширении, а не в основной конфигурации. Так обновление типовой не потребует ручного переноса.
При открытии внешних файлов платформа выводит предупреждение о небезопасных действиях. Не отключайте его в свойствах пользователя ради удобства: это последний барьер перед запуском чужого кода.
Для COM-библиотек есть ещё риск при регистрации: regsvr32 вписывает путь к файлу в реестр. Если .dll лежит в каталоге, куда пишут обычные пользователи, её можно подменить. Храните такие файлы только в Program Files или в каталоге с правами на запись для администраторов.