Администрирование · 11 мин
Как отключить расширение для пользователя 1С
Как отключить расширение конфигурации для отдельного пользователя 1С: настройка по ролям, отключение через меню, проверка результата и типичные ошибки.
Расширения в 1С:Предприятие 8.3 позволяют добавлять функциональность без изменения основной конфигурации, но иногда требуется, чтобы расширение работало не для всех. Типичная ситуация: доработанная форма документа нужна менеджерам, а бухгалтеру она мешает, или новое расширение тестируется на одном сотруднике перед общим внедрением.
Важно понимать ключевое ограничение платформы: механизм расширений изначально задуман как применяемый ко всей информационной базе. Однако на практике есть несколько рабочих способов добиться эффекта «расширение отключено для конкретного пользователя» — от штатных настроек безопасного режима до программной проверки текущего пользователя внутри расширения.
Ниже разобраны все основные подходы: отключение расширения целиком, ограничение его действия через код, работа в файловом и клиент-серверном вариантах, а также проверка результата и типичные ошибки администраторов.
Как устроено применение расширений и почему нет прямой настройки по пользователям
Расширение подключается к информационной базе целиком и хранится в ней (или в базе данных расширений в клиент-серверном режиме). Когда пользователь запускает сеанс, платформа применяет все активные и безопасные расширения независимо от того, кто вошел в систему. Платформа не анализирует учетную запись на этапе подключения расширения.
Из этого следует главный вывод: управлять применением расширения «по пользователям» можно только двумя путями. Первый — отключить расширение полностью, тогда оно перестанет действовать для всех. Второй — оставить расширение активным, но встроить в его код проверку текущего пользователя и не выполнять доработанную логику для лишних учетных записей.
Третий, частный вариант — если расширение добавляет роли, доступ к его объектам можно ограничить правами. Пользователь без нужной роли просто не увидит добавленные расширением элементы, хотя само расширение останется подключенным.
Как полностью отключить расширение через интерфейс
Если расширение мешает работе и его нужно отключить срочно, используется стандартный список расширений. В типовых конфигурациях на БСП путь выглядит так: Администрирование → Печатные формы, отчеты и обработки → Расширения. В конфигураторе тот же список доступен через Конфигурация → Расширения конфигурации.
- 1Откройте раздел «Администрирование» и перейдите в «Печатные формы, отчеты и обработки»
- 2Откройте пункт «Расширения» и найдите нужное расширение в списке
- 3Снимите флажок в колонке «Используется» напротив расширения
- 4Попросите пользователей перезапустить сеанс или перезапустите сеанс самостоятельно
- 5Проверьте, что доработанная функциональность больше не проявляется
Обратите внимание: снятие флажка «Используется» отключает расширение, но не удаляет его — данные остаются в базе, и при необходимости расширение включается обратно одним действием. Для полного удаления используется команда удаления в том же списке, но делать это стоит только после подтверждения, что расширение больше не потребуется.
В файловом варианте базы применение изменений обычно требует перезапуска сеансов пользователей. В клиент-серверном варианте изменения также вступают в силу для новых сеансов; уже работающие сеансы могут продолжать использовать старое состояние до переподключения.
Как ограничить действие расширения для конкретного пользователя программно
Когда расширение должно работать для всех, кроме одного-двух сотрудников (или наоборот — только для тестировщика), самый надежный способ — встроить проверку пользователя в код расширения. Для этого в обработчиках расширения в начале выполнения проверяется текущий пользователь, и при совпадении с «исключенным» выполнение прерывается.
&Вместо("ПриСозданииНаСервере")
Процедура Расш1_ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
ИмяПользователя = ПользователиИнформационнойБазы.ТекущийПользователь().Имя;
Если ИмяПользователя = "ИвановИИ" Тогда
Возврат; // для этого пользователя логика расширения не выполняется
КонецЕсли;
// далее основной код расширения
КонецПроцедурыТакой подход требует права на изменение расширения и аккуратности: проверку нужно добавить во все обработчики, где расширение меняет поведение системы. Если расширение изменяет только форму, достаточно проверки в обработчиках формы. Если затронуты модули документов или подписки на события — проверять нужно и там.
Для гибкости список «исключенных» пользователей часто выносят не в код, а в константу или регистр сведений основной конфигурации — тогда администратор может менять состав списка без доработки расширения. Это особенно удобно, когда расширение внедряется поэтапно на разные подразделения.
Ограничение через роли, добавленные расширением
Если расширение добавляет новые объекты (отчеты, обработки, команды) и собственные роли, доступ к этим объектам регулируется стандартным механизмом прав. Пользователю, которому не назначена роль расширения, новые элементы будут недоступны — фактически расширение для него «отключено» в части интерфейса.
Назначение ролей выполняется в конфигураторе через Администрирование → Пользователи (закладка «Прочие» для ролей расширений) либо в режиме предприятия через настройку прав в типовых конфигурациях с БСП, если роли включены в профили групп доступа.
Сравнение вариантов
Подходит, когда расширение мешает всем или сломало работу базы. Ограничение: перестает работать для всех пользователей сразу.
Подходит для точечного исключения или тестирования на одном сотруднике. Ограничение: требует доработки расширения и проверки во всех обработчиках.
Подходит, когда расширение добавляет отдельные объекты и роли. Ограничение: не отключает изменения существующих форм и модулей.
Особенности файлового и клиент-серверного режимов
В файловой базе список расширений хранится в самой базе, и отключение выполняется любым пользователем с правами администратора. После снятия флажка остальным пользователям нужно перезайти в базу. Если пользователь работает в момент отключения, его сеанс может продолжать использовать расширение до перезапуска.
В клиент-серверном варианте расширения хранятся в базе данных расширений на сервере СУБД, а управление ими выполняется через кластер серверов 1С. Здесь важен параметр безопасного режима: если у расширения установлен признак «Безопасный режим», а для пользователя действует профиль безопасности, поведение может отличаться. Также в клиент-серверном режиме есть команда принудительного завершения сеансов через консоль кластера — она помогает применить отключение немедленно.
Проверка результата и контрольные точки
После отключения расширения или добавления проверки пользователя нужно убедиться, что цель достигнута и ничего лишнего не сломано. Проверка выполняется от имени «исключенного» пользователя и от имени обычного пользователя, для которого расширение должно продолжать работать.
Как проверить результат
Форма открывается в штатном виде, без изменений расширения
Изменения расширения по-прежнему видны — проверка пользователя не сработала или сеанс не перезапущен
Расширение работает как прежде
Расширение отключилось для всех — возможно, снят флажок «Используется» вместо точечной настройки
Документы проводятся, обмены выполняются без ошибок
Появились ошибки в журнале регистрации — отключение затронуло бизнес-логику
Нет новых ошибок после изменения
Ошибки вида «Метод не обнаружен» — конфликт расширения с обновленной конфигурацией
Дополнительный признак корректной работы — в списке расширений у нужной строки стоит ожидаемое состояние флажка «Используется», а в колонке безопасного режима нет неожиданных изменений. Если после обновления конфигурации расширение помечено как несовместимое, его нужно сначала адаптировать, а уже потом решать вопрос отключения для пользователей.
Типичные ошибки при отключении расширений
Отдельная распространенная ситуация — попытка найти настройку «расширение по пользователям» в типовом интерфейсе. Такой настройки нет ни в «Управлении торговлей», ни в «Бухгалтерии предприятия», ни в других типовых решениях: любые подобные возможности реализуются только доработкой самого расширения.
Что важно запомнить
Расширение в 1С применяется ко всей базе, штатной привязки к пользователям нет. Для полного отключения снимите флажок «Используется» в списке расширений и перезапустите сеансы. Для точечного исключения добавьте в код расширения проверку текущего пользователя по имени учетной записи. Любые изменения сначала проверяйте на копии базы и контролируйте журнал регистрации.
Частые вопросы
Можно ли отключить расширение только для одного пользователя штатными средствами?
Нет, платформа 1С:Предприятие применяет расширения ко всей информационной базе без привязки к учетным записям. Эффект отключения для отдельного пользователя достигается либо проверкой текущего пользователя в коде расширения, либо ограничением прав на объекты, которые расширение добавляет.
Чем отключение расширения отличается от удаления?
Отключение (снятие флажка «Используется») сохраняет расширение в базе — его можно включить обратно в один клик. Удаление стирает расширение из базы полностью, и для возврата понадобится исходный файл расширения с расширением .cfe.
Почему после отключения расширения пользователь все еще видит его изменения?
Чаще всего причина в том, что сеанс пользователя не был перезапущен — активные сеансы продолжают работать с состоянием расширений на момент входа. Попросите пользователя выйти и зайти заново, а в клиент-серверном режиме при необходимости завершите сеанс принудительно через консоль кластера.
Что делать, если расширение мешает работе, но его нельзя отключать для всех?
Оптимальный путь — доработать расширение, добавив в начало его обработчиков проверку текущего пользователя или подразделения и прерывая выполнение для тех, кому доработка не нужна. Список исключений удобно хранить в константе или регистре сведений, чтобы менять его без изменения кода.
Влияет ли безопасный режим расширения на его отключение?
Безопасный режим ограничивает возможности расширения (доступ к файловой системе, внешним компонентам и т.п.), но не связан с привязкой к пользователям. Снимать признак безопасного режима ради отключения не нужно — это снижает защищенность базы и не решает задачу.
Нужно ли монопольный режим для отключения расширения?
Нет, снятие флажка «Используется» выполняется без монопольного доступа. Однако изменения применяются к новым сеансам, поэтому для немедленного эффекта у всех пользователей потребуется перезапуск их сеансов.