Массовая очистка списка пользователей базы 1С 8.3 без потери доступа

· 9 мин

Содержание

Удалить всех пользователей в 1С 8.3 можно тремя путями. Немного учётных записей — по одной в Конфигураторе: Администрирование → Пользователи, выделить строку, клавиша Del. Десятки и сотни — внешней обработкой, которая обходит ПользователиИнформационнойБазы и удаляет всех, кроме вас. Прямая правка таблицы v8users в SQL — крайний случай, когда в базу не войти совсем.

Главное правило одно: оставьте себе хотя бы одного пользователя с полными правами. Иначе вы либо откроете базу всем без пароля, либо закроете её для себя. Ниже — каждый способ по шагам, что ломается после массового удаления и как вернуть вход, если что-то пошло не так.

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

Сначала ответьте себе, зачем чистить список. От этого зависит способ.

  • 📦 Передаёте копию базы разработчику, аудитору, на тестовый стенд — смело удаляйте всех, кроме одного администратора. Рабочая база не пострадает.
  • 🧹 Наводите порядок в рабочей базе после увольнений — удалять нельзя, нужно отключать вход. Почему — в разделе о последствиях.
  • 🔑 Потеряли пароль администратора — это задача восстановления доступа, а не удаления. Её решает способ через SQL или резервная копия.

Перед любым способом:

  1. Выгрузите базу в файл: в Конфигураторе Администрирование → Выгрузить информационную базу. Получится файл .dt со всеми данными и списком пользователей.
  2. Запишите, под кем работают регламентные задания, обмены и сервисы (ЭДО, обмен с сайтом, HTTP-сервисы). У них часто свой служебный пользователь.
  3. Проверьте, что у вашей учётной записи есть роль с правом администрирования. В типовых это Полные права или Администратор системы.
  4. Предупредите сотрудников: удалённый пользователь, который сейчас в базе, доработает сеанс, но войти заново уже не сможет.

Платформа хранит пользователей двумя слоями. Первый — список пользователей информационной базы (логин, пароль, роли). Второй — справочник Пользователи в конфигурациях на БСП: БП 3.0, ЗУП 3.1, УТ 11, КА, ERP. Удаление в Конфигураторе затрагивает только первый слой.

Какая у вас задача?

Способ 1. Удаляем пользователей через Конфигуратор

Самый предсказуемый вариант: всё видно, каждое удаление подтверждается.

  1. Запустите базу в режиме Конфигуратор под администратором.
  2. Откройте Администрирование → Пользователи.
  3. Выделите пользователя и нажмите Del или кнопку удаления на панели.
  4. Подтвердите удаление.
  5. Повторите для остальных. Свою учётную запись и служебных пользователей пропустите.

Изменения применяются сразу, сохранять конфигурацию не нужно. Монопольный режим для этого тоже не требуется.

Если удалить всех до одного

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

Для копии на ноутбуке разработчика это удобно. Для сетевой рабочей базы — дыра в безопасности.

Перед передачей копии оставьте одного пользователя, например Админ, с ролью полных прав и простым паролем. Пароль передайте получателю отдельно от файла.

Пользователи с входом через Windows

У пользователей с авторизацией операционной системы в карточке указан домен и имя, например \\OFFICE\ivanov. Они удаляются так же. Но если вы удалили себя и вошли по доменной учётке — платформа уже не узнает вас при следующем запуске.

Способ 2. Массовое удаление обработкой

Когда пользователей больше 20–30, щёлкать по одному долго. Выручает внешняя обработка с кодом на встроенном языке.

Как собрать обработку

  1. В Конфигураторе: Файл → Новый → Внешняя обработка.
  2. Добавьте форму, на неё — команду и кнопку «Удалить пользователей».
  3. В модуль формы вставьте код ниже.
  4. Сохраните файл .epf.
  5. Откройте его в режиме 1С:Предприятие через Файл → Открыть под администратором.
&НаКлиенте
Процедура УдалитьПользователей(Команда)
    Удалено = УдалитьНаСервере();
    Сообщить(СтрШаблон("Удалено пользователей: %1", Формат(Удалено, "ЧН=0; ЧГ=0")));
КонецПроцедуры

&НаСервере
Функция УдалитьНаСервере()
    ТекущийИД = ПользователиИнформационнойБазы.ТекущийПользователь().УникальныйИдентификатор;
    Оставить = Новый Массив;
    Оставить.Добавить("Админ");      // кого не трогать: по одному имени на строку
    Оставить.Добавить("Обмен");

    Удалено = 0;
    Для Каждого ПользовательИБ Из ПользователиИнформационнойБазы.ПолучитьПользователей() Цикл
        Если ПользовательИБ.УникальныйИдентификатор = ТекущийИД Тогда
            Продолжить;
        КонецЕсли;
        Если Оставить.Найти(ПользовательИБ.Имя) <> Неопределено Тогда
            Продолжить;
        КонецЕсли;
        ПользовательИБ.Удалить();
        Удалено = Удалено + 1;
    КонецЦикла;
    Возврат Удалено;
КонецФункции

Метод ПолучитьПользователей() возвращает массив-снимок, поэтому удалять внутри цикла безопасно. Текущего пользователя код пропускает всегда, даже если вы забыли вписать себя в исключения.

Что учесть

  • 🔒 Открыть внешнюю обработку может только пользователь с правом на интерактивное открытие внешних обработок. В типовых это администратор.
  • 🛡️ В новых релизах БСП при открытии внешнего файла появляется предупреждение безопасности. Его нужно подтвердить.
  • 🧾 Обработка чистит только список пользователей ИБ. Элементы справочника Пользователи останутся. В их карточках программа покажет, что учётная запись для входа не найдена.

Для копии базы последний пункт — плюс: документы сохраняют автора, отчёты по ответственным не ломаются.

Способ 3. Таблица v8users в SQL — только для клиент-серверной базы

В клиент-серверном варианте список пользователей лежит в таблице v8users базы данных на MS SQL Server или PostgreSQL. Ещё одна копия — запись users.usr в таблице Params.

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

Прямое вмешательство в таблицы 1С не поддерживается фирмой-разработчиком. Делайте это только на копии или со свежим бэкапом SQL. Перед началом завершите все сеансы через консоль кластера: работа пользователей оборвётся, поэтому выбирайте нерабочее время.

Пример для MS SQL Server:

-- 1. Сохраняем пользователей
EXEC sp_rename 'v8users', 'v8users_old';

-- 2. Сохраняем копию записи в Params и убираем её
SELECT * INTO Params_users_backup FROM Params WHERE FileName = 'users.usr';
UPDATE Params SET FileName = 'users.usr_old' WHERE FileName = 'users.usr';

Дальше порядок такой:

  1. Запустите Конфигуратор — он откроется без запроса пароля.
  2. Не создавая пользователей, верните имена обратно в SQL: v8users_old → v8users, users.usr_old → users.usr.
  3. В открытом Конфигураторе откройте Администрирование → Пользователи. Список снова виден, и его можно править: удалить лишних, сбросить пароль администратору.

Для PostgreSQL логика та же, переименование — ALTER TABLE v8users RENAME TO v8users_old;.

Удалять строки командой DELETE FROM v8users тоже технически можно. Но такой путь необратим без бэкапа, а выигрыша по сравнению с Конфигуратором не даёт.

В файловой базе SQL-способ не работает: всё хранится внутри одного файла 1Cv8.1CD. Для неё — Конфигуратор, обработка или резервная копия.

Сравнение способов

СпособКогда подходитРиски
КонфигураторДо 20–30 пользователей, есть пароль админаМинимальные
Внешняя обработкаДесятки и сотни учётных записейУдалить служебного пользователя, если не внести его в исключения
SQL v8usersПароль утерян, база клиент-сервернаяПовредить базу при ошибке, нет поддержки

Скрытые последствия, если удалить всех пользователей в рабочей базе

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

  • 📄 Ссылки в документах. В типовых на справочник Пользователи ссылаются реквизиты «Ответственный», «Автор», история изменений. Если удалить элементы справочника через удаление помеченных, программа либо не даст удалить связанные элементы, либо в документах появятся битые ссылки <Объект не найден>.
  • ⏰ Регламентные задания. У задания можно указать пользователя, под которым оно запускается. Удалили его — задание перестанет выполняться, часто без заметной ошибки на экране.
  • 🔄 Обмены и интеграции. Обмен с сайтом, мобильные приложения, веб-сервисы, ЭДО ходят в базу под служебной учётной записью. Удалили её — обмен встанет.
  • ⚙️ Личные настройки. Формы, отборы, варианты отчётов хранятся по имени пользователя. Создадите сотрудника заново под тем же именем — часть настроек может подтянуться. Под новым именем всё придётся настраивать с нуля.
  • 🧩 Группы доступа. В БСП права выдаются через профили и группы доступа. Удалённые пользователи выпадают из групп, и состав придётся собирать заново.

Отдельно о лицензиях. Клиентская лицензия 1С 8.3 расходуется на сеанс, а не на учётную запись в списке. Удаление пользователей ни одной лицензии не освобождает. Чтобы увидеть, кто занимает лицензии, смотрите активные сеансы в консоли кластера или командой rac session list --licenses.

Альтернатива удалению — отключить вход

Для рабочей базы правильный путь — не удалять, а блокировать. Так сохраняются ссылки и история, а войти человек не сможет.

Где открыть список пользователей:

КонфигурацияПуть
Бухгалтерия предприятия 3.0Администрирование → Настройки пользователей и прав → Пользователи
ЗУП 3.1Администрирование → Настройки пользователей и прав → Пользователи
Управление торговлей 11НСИ и администрирование → Настройки пользователей и прав → Пользователи

В карточке пользователя:

  1. Снимите флажок Вход в программу разрешен — учётная запись перестанет пускать в базу.
  2. Установите флажок Недействителен — пользователь пропадёт из списков выбора и из окна входа.
  3. Нажмите Записать и закрыть.

Если всё же хочется физически убрать элементы справочника, сначала пометьте их на удаление. Затем запустите удаление помеченных: в БП 3.0 это Администрирование → Обслуживание → Корректировка данных → Удаление помеченных объектов. Программа удалит только тех, на кого нет ссылок, и покажет, что мешает удалить остальных.

После пометки на удаление загляните в Конфигуратор, в Администрирование → Пользователи. Убедитесь, что учётная запись для входа действительно отключена или удалена, а не осталась висеть с паролем.

Как вернуть доступ после ошибки при удалении пользователей 1С

Самые частые ситуации и что делать в каждой.

Удалили всех, включая себя

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

Удалили себя, но кто-то остался

Войдите под оставшимся пользователем с правами администратора. Если таких нет или пароль неизвестен — для клиент-серверной базы подходит способ с v8users из раздела выше.

Удалили служебного пользователя обмена

Создайте его заново с тем же именем, ролями и паролем. Затем пропишите пароль в настройках обмена, регламентного задания или публикации веб-сервиса. Сам по себе он не подхватится.

Нужно вернуть всё как было

Загрузите файл .dt, сохранённый перед удалением: Администрирование → Загрузить информационную базу. Учтите: загрузка заменяет все данные базы. Документы, введённые после выгрузки, пропадут.

Если с момента выгрузки в базе уже работали, загрузите .dt в отдельную пустую базу. Подсмотрите там состав пользователей и ролей и восстановите учётные записи в рабочей базе вручную.

Частые вопросы

Можно ли удалить пользователя, который сейчас работает в базе?
Да. Его текущий сеанс продолжится до выхода, но войти повторно он не сможет. Чтобы отключить сразу, завершите его сеанс в консоли кластера или в списке активных пользователей.
Почему в Конфигураторе пользователь удалён, а в справочнике «Пользователи» остался?
Это два разных слоя. Конфигуратор удаляет учётную запись для входа, а элемент справочника хранит связи с документами. Его отключают флажком «Недействителен».
Освободятся ли лицензии после удаления пользователей?
Нет. Лицензия занимается сеансом. Учётные записи в списке на расход лицензий не влияют.
Сколько пользователей нужно оставить в базе?
Минимум одного с административными правами. Если в списке есть хоть один пользователь, среди них должен быть администратор, иначе платформа предупредит об ошибке, а вы рискуете потерять управление базой.
Удалятся ли документы, созданные удалёнными пользователями?
Нет. Документы остаются. Если удалить и элемент справочника «Пользователи», в поле автора или ответственного может появиться пустое значение или битая ссылка.