Как массово отключить доступ пользователям в 1С, сохранив права администратора

Системный администратор 1С v8.3 (Управляемые формы) Сфера услуг, туризм и социальный сектор
← На главную

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

Способ 1. Использование программного кода для массовой блокировки

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

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


Выборка = Справочники.Пользователи.Выбрать();
Пока выборка.Следующий() Цикл
    // Проверяем, что это не наш текущий администратор и не группа пользователей
    Если Выборка.Имя = "Администратор" Или Выборка.ЭтоГруппа Тогда
        Продолжить;
    Иначе
        ОбъектПользователь = Выборка.ПолучитьОбъект();
        // Устанавливаем признак недействительности
        ОбъектПользователь.Недействителен = Истина;
        
        // Используем ОбменДанными.Загрузка, чтобы обойти лишние проверки конфигурации
        ОбъектПользователь.ОбменДанными.Загрузка = Истина;
        
        Попытка
            ОбъектПользователь.Записать();
        Исключение
            Сообщить("Не удалось изменить пользователя: " + Выборка.Наименование);
        КонецПопытки;
    КонецЕсли;
КонецЦикла;

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

Способ 2. Типовая обработка «Групповое изменение реквизитов»

Если вы не хотите писать код, в типовых конфигурациях (БП 3.0, БГУ 2.0, ЗГУ 3.0) есть мощный инструмент — Групповое изменение реквизитов. Разберем по шагам, как правильно им воспользоваться:

  1. Перейдем в раздел Администрирование — Обслуживание — Корректировка данных (название может меняться в зависимости от версии БСП) и выберем пункт Групповое изменение реквизитов.
  2. В поле "Изменять" выберем справочник Пользователи.
  3. Критически важный шаг: Настроим отбор. Нажмем "Добавить условие" и выберем поле Ссылка (или Наименование). Установим вид сравнения "Не равно" и выберем вашу учетную запись администратора. Это гарантирует, что вы не заблокируете сами себя.
  4. В списке реквизитов найдем поле Недействителен. Если оно не отображается, нажмем кнопку "Дополнительно" (или "Настройки") и установим флажок Показывать служебные реквизиты.
  5. Установим значение "Да" (флажок включен) напротив реквизита Недействителен.
  6. Нажмем кнопку "Изменить реквизиты".

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

Способ 3. Блокировка работы пользователей (самый безопасный метод)

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

Разберем алгоритм работы с этим инструментом:

  1. Зайдем в раздел Администрирование — Обслуживание — Блокировка работы пользователей.
  2. Установим период блокировки (можно указать дату далеко в будущем).
  3. В поле "Сообщение для пользователей" напишем причину, например: "Доступ временно ограничен. Для получения доступа обратитесь в ИТ-отдел".
  4. Обязательно заполним поле Код разрешения. Это секретный пароль (например, Secret123).
  5. Нажмем "Установить блокировку".

Теперь никто не сможет войти в систему. Чтобы зайти самому администратору, необходимо запустить 1С с параметром командной строки. Посмотрим на пример настройки ярлыка:

"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F "ПутьКБазе" /UC Secret123

Параметр /UC позволяет игнорировать установленную блокировку. Это самый профессиональный способ управления доступом при массовых работах в базе.

Способ 4. Управление через группы доступа

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

Проанализируем этот подход:

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

Важные рекомендации и меры предосторожности

Выясним, какие риски существуют при проведении подобных массовых операций и как их минимизировать:

1. Обязательное создание резервной копии.

Перед любым массовым изменением реквизитов (через код или обработку) необходимо создать архивную копию базы данных (dt-файл или копию файла 1Cv8.1CD). Если вы случайно ошибетесь в фильтре и заблокируете всех администраторов, восстановление может занять много времени. Для подготовки к массовым работам на нескольких системах можно заранее настроить автоматическое архивирование баз.

2. Проверка на тестовой базе.

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

3. Наличие "Аварийного входа".

Рекомендуем заранее создать в конфигураторе пользователя с полными правами, который не связан с сотрудниками (например, с логином SuperAdmin), и надежно сохранить пароль от него. Это ваш "запасной выход" на случай программных сбоев при массовой записи справочника.

4. Серверные особенности.

Если ваша база работает в клиент-серверном варианте, вы также можете использовать Консоль администрирования кластера серверов 1С. В свойствах информационной базы можно установить флаг "Блокировка начала сеансов включена". Это работает аналогично способу №3, но на уровне сервера приложений, что еще более надежно.

Таким образом, мы рассмотрели различные варианты решения задачи. Для очистки базы от "мертвых душ" лучше всего подходит Способ 2 (Групповое изменение реквизитов) с флагом Недействителен. Для оперативного управления доступом и временных ограничений оптимальным будет Способ 3 (Код разрешения /UC).

← На главную