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

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

Как отключить внешнюю компоненту в 1С

Как отключить внешнюю компоненту в 1С: способы отключения в конфигураторе и режиме Предприятия, удаление из макета, решение ошибок подключения и проверка результата.

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

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

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

Как определить, какая компонента подключена и откуда

Прежде чем отключать, нужно понять, откуда компонента загружается. В 1С существует три типовых источника: макет с двоичными данными внутри конфигурации или расширения, COM-объект, зарегистрированный в реестре Windows, и файл компоненты, подключаемый напрямую с диска по пути. От источника зависит порядок отключения.

Быстрее всего найти привязку через глобальный поиск в конфигураторе (Ctrl+Shift+F). Ищите по строкам «ПодключитьВнешнююКомпоненту», «НачатьПодключениеВнешнейКомпоненты» и по имени компоненты (ProgID вида «AddIn.ИмяКомпоненты»). Поиск покажет все модули, где выполняется подключение, — обычно это общие модули подсистемы оборудования или обмена.

Дополнительно проверьте ветку «Общие → Макеты» в дереве конфигурации: компоненты хранятся там как макеты с типом «Двоичные данные» или «Архив». Если компонента пришла с расширением, откройте список расширений (в режиме Предприятия: «Администрирование → Печатные формы, отчеты и обработки → Расширения») и посмотрите, какое из них её добавляет.

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

Ищите вызов в модуле сеанса или общих модулях с флагом «Вызов сервера»

Ошибка при конкретной операцииПодключение при выполнении функции

Ищите вызов в модуле обработки или команды, связанной с операцией

Компонента в макетеХранится внутри конфигурации

Ветка «Общие → Макеты», тип «Двоичные данные»

Компонента вне 1СЗарегистрирована в Windows

Проверьте реестр и команду regsvr32 для COM-объектов

Временное отключение через код

Самый безопасный способ — закомментировать вызов подключения, не удаляя саму компоненту. Это позволяет быстро вернуть всё обратно, если отключение что-то сломает. Найдите строку вида ПодключитьВнешнююКомпоненту("ОбщийМакет.ИмяМакета", "ИмяКомпоненты", ТипВнешнейКомпоненты.Native) и закомментируйте её вместе с обработкой результата.

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

После изменения кода обновите конфигурацию базы данных (F7 в конфигураторе) и перезапустите сеанс. Если подключение выполнялось на клиенте, а не на сервере, перезапуск нужен на каждом рабочем месте, где была загружена компонента.

Порядок временного отключения
  1. 1
    Найдите вызов ПодключитьВнешнююКомпоненту через глобальный поиск
  2. 2
    Закомментируйте вызов и связанную обработку результата
  3. 3
    Проверьте, что код, использующий объект компоненты, тоже не выполняется
  4. 4
    Обновите конфигурацию базы данных (F7)
  5. 5
    Перезапустите сеанс и проверьте отсутствие ошибок

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

Если компонента больше не нужна совсем, удалите её макет из конфигурации. Откройте конфигуратор, перейдите в «Общие → Макеты», найдите макет с двоичными данными компоненты и удалите его. Платформа при обновлении конфигурации базы данных предупредит об удалении объекта — подтвердите.

Перед удалением обязательно убедитесь, что нигде в коде не осталось ссылок на этот макет: глобальный поиск по имени макета покажет все обращения. Если ссылка останется, при выполнении кода возникнет ошибка «Макет не найден», которая остановит выполнение операции у пользователя.

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

Отключение компоненты из расширения

Если компонента пришла с расширением конфигурации, правильный путь — отключить или удалить само расширение, а не править основную конфигурацию. В режиме Предприятия откройте «Администрирование → Печатные формы, отчеты и обработки → Расширения», найдите нужное расширение в списке и снимите флаг активности или удалите его.

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

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

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

COM-компоненты регистрируются в операционной системе и подключаются из 1С через объект COMConnector или по ProgID. Чтобы отключить такую компоненту, недостаточно действий внутри 1С — нужно отменить регистрацию в Windows командой regsvr32 с ключом /u.

Команда выполняется в командной строке с правами администратора: укажите полный путь к DLL-файлу компоненты. Для 32-разрядных компонент на 64-разрядной системе используется regsvr32 из каталога SysWOW64. После отмены регистрации обращения к ProgID из 1С будут завершаться ошибкой, поэтому код, создающий COM-объект, тоже нужно отключить или удалить.

bash
regsvr32 /u "C:\Components\MyComponent.dll"

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

Очистка кэша и проверка результата

1С кэширует внешние компоненты на клиентских машинах: загруженные файлы складываются в каталоги кэша платформы (внутри профиля пользователя, например в %APPDATA%\1C\1cv8). После отключения компоненты кэш может продолжать поставлять старую версию, особенно если подключение ещё где-то вызывается. Поэтому после отключения рекомендуется очистить кэш на проблемных рабочих местах.

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

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

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

Запуск сеанса
Норма

Нет сообщений о подключении компоненты

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

Ошибка «Не удалось подключить внешнюю компоненту»

Выполнение операции
Норма

Операция завершается или выдаёт понятное сообщение

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

Аварийное завершение или исключение в коде

Журнал регистрации
Норма

Нет новых ошибок за период наблюдения

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

Повторяющиеся ошибки обращения к компоненте

Другие рабочие места
Норма

Поведение одинаково у всех пользователей

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

На части машин компонента всё ещё подключается

Частые ошибки и ограничения

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

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

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

Типичные ошибки
01
Удаление DLL без отключения вызовов в коде — ошибки у всех пользователей
02
Игнорирование расширений и внешних обработок — компонента продолжает подключаться
03
Отмена regsvr32 только на одном компьютере — разное поведение на разных рабочих местах
04
Отключение без резервной копии — невозможно быстро откатить изменения
05
Забытый кэш клиентов — старая версия компоненты загружается снова
Маршрут решения

Как выбрать действие

Компонента нужна временно не использоватьЗакомментируйте вызов подключения или отключите через функциональную опцию
Компонента хранится в макете конфигурацииУдалите макет и все обращения к нему, обновите конфигурацию БД
Компонента пришла с расширениемОтключите или доработайте расширение, не трогая основную конфигурацию
Компонента зарегистрирована как COM в WindowsВыполните regsvr32 /u на каждом компьютере и уберите создание COM-объекта из кода
После отключения ошибки остаютсяОчистите кэш платформы на клиентах и проверьте внешние обработки

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

Как узнать, какие внешние компоненты подключены в базе прямо сейчас?

Единого списка подключённых компонент платформа не показывает. Ориентируйтесь на глобальный поиск по строке «ПодключитьВнешнююКомпоненту» в конфигураторе, список макетов с двоичными данными и журнал регистрации — в нём фиксируются ошибки и события подключения. Для COM-объектов дополнительно проверьте реестр Windows.

Можно ли отключить компоненту без доступа к конфигуратору?

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

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

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

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

Если компонента подключается на сервере (вызов в серверном контексте), то в клиент-серверном варианте она загружается на сервере кластера. После удаления макета и обновления конфигурации сервер перестанет её использовать, но для COM-компонент отмена регистрации regsvr32 /u должна быть выполнена и на сервере 1С, если регистрация там выполнялась.

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

Чаще всего причина в локальном кэше платформы или в том, что COM-компонента зарегистрирована (или, наоборот, не зарегистрирована) только на его компьютере. Очистите кэш 1С на проблемном рабочем месте и сравните разрядность клиента и регистрацию компоненты с машиной, где всё работает.

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

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

Итог

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

Отключение внешней компоненты в 1С начинается с поиска места её подключения: код, макет, расширение или регистрация COM в Windows. Сначала отключайте вызовы и удаляйте макеты, затем отменяйте регистрацию и чистите кэш, а файлы удаляйте в последнюю очередь. Работайте на копии базы и проверяйте результат на всех рабочих местах.