Массовая очистка списка пользователей базы 1С 8.3 без потери доступа
Содержание
Удалить всех пользователей в 1С 8.3 можно тремя путями. Немного учётных записей — по одной в Конфигураторе: Администрирование → Пользователи, выделить строку, клавиша Del. Десятки и сотни — внешней обработкой, которая обходит ПользователиИнформационнойБазы и удаляет всех, кроме вас. Прямая правка таблицы v8users в SQL — крайний случай, когда в базу не войти совсем.
Главное правило одно: оставьте себе хотя бы одного пользователя с полными правами. Иначе вы либо откроете базу всем без пароля, либо закроете её для себя. Ниже — каждый способ по шагам, что ломается после массового удаления и как вернуть вход, если что-то пошло не так.
Подготовка к массовому удалению пользователей
Сначала ответьте себе, зачем чистить список. От этого зависит способ.
- 📦 Передаёте копию базы разработчику, аудитору, на тестовый стенд — смело удаляйте всех, кроме одного администратора. Рабочая база не пострадает.
- 🧹 Наводите порядок в рабочей базе после увольнений — удалять нельзя, нужно отключать вход. Почему — в разделе о последствиях.
- 🔑 Потеряли пароль администратора — это задача восстановления доступа, а не удаления. Её решает способ через SQL или резервная копия.
Перед любым способом:
- Выгрузите базу в файл: в Конфигураторе
Администрирование → Выгрузить информационную базу. Получится файл.dtсо всеми данными и списком пользователей. - Запишите, под кем работают регламентные задания, обмены и сервисы (ЭДО, обмен с сайтом, HTTP-сервисы). У них часто свой служебный пользователь.
- Проверьте, что у вашей учётной записи есть роль с правом администрирования. В типовых это
Полные праваилиАдминистратор системы. - Предупредите сотрудников: удалённый пользователь, который сейчас в базе, доработает сеанс, но войти заново уже не сможет.
Платформа хранит пользователей двумя слоями. Первый — список пользователей информационной базы (логин, пароль, роли). Второй — справочник Пользователи в конфигурациях на БСП: БП 3.0, ЗУП 3.1, УТ 11, КА, ERP. Удаление в Конфигураторе затрагивает только первый слой.
Способ 1. Удаляем пользователей через Конфигуратор
Самый предсказуемый вариант: всё видно, каждое удаление подтверждается.
- Запустите базу в режиме
Конфигураторпод администратором. - Откройте
Администрирование → Пользователи. - Выделите пользователя и нажмите
Delили кнопку удаления на панели. - Подтвердите удаление.
- Повторите для остальных. Свою учётную запись и служебных пользователей пропустите.
Изменения применяются сразу, сохранять конфигурацию не нужно. Монопольный режим для этого тоже не требуется.
Если удалить всех до одного
Когда список пустеет полностью, платформа перестаёт спрашивать логин. Базу открывает любой, кто до неё дотянется: и Конфигуратор, и пользовательский режим.
Для копии на ноутбуке разработчика это удобно. Для сетевой рабочей базы — дыра в безопасности.
Перед передачей копии оставьте одного пользователя, например Админ, с ролью полных прав и простым паролем. Пароль передайте получателю отдельно от файла.
Пользователи с входом через Windows
У пользователей с авторизацией операционной системы в карточке указан домен и имя, например \\OFFICE\ivanov. Они удаляются так же. Но если вы удалили себя и вошли по доменной учётке — платформа уже не узнает вас при следующем запуске.
Способ 2. Массовое удаление обработкой
Когда пользователей больше 20–30, щёлкать по одному долго. Выручает внешняя обработка с кодом на встроенном языке.
Как собрать обработку
- В Конфигураторе:
Файл → Новый → Внешняя обработка. - Добавьте форму, на неё — команду и кнопку «Удалить пользователей».
- В модуль формы вставьте код ниже.
- Сохраните файл
.epf. - Откройте его в режиме 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';
Дальше порядок такой:
- Запустите Конфигуратор — он откроется без запроса пароля.
- Не создавая пользователей, верните имена обратно в SQL:
v8users_old→v8users,users.usr_old→users.usr. - В открытом Конфигураторе откройте
Администрирование → Пользователи. Список снова виден, и его можно править: удалить лишних, сбросить пароль администратору.
Для 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 | НСИ и администрирование → Настройки пользователей и прав → Пользователи |
В карточке пользователя:
- Снимите флажок
Вход в программу разрешен— учётная запись перестанет пускать в базу. - Установите флажок
Недействителен— пользователь пропадёт из списков выбора и из окна входа. - Нажмите
Записать и закрыть.
Если всё же хочется физически убрать элементы справочника, сначала пометьте их на удаление. Затем запустите удаление помеченных: в БП 3.0 это Администрирование → Обслуживание → Корректировка данных → Удаление помеченных объектов. Программа удалит только тех, на кого нет ссылок, и покажет, что мешает удалить остальных.
После пометки на удаление загляните в Конфигуратор, в Администрирование → Пользователи. Убедитесь, что учётная запись для входа действительно отключена или удалена, а не осталась висеть с паролем.
Как вернуть доступ после ошибки при удалении пользователей 1С
Самые частые ситуации и что делать в каждой.
Удалили всех, включая себя
Если список пуст, проблемы нет: база открывается без пароля. Войдите в Конфигуратор, создайте администратора, назначьте ему роль полных прав и пароль. Затем заведите остальных.
Удалили себя, но кто-то остался
Войдите под оставшимся пользователем с правами администратора. Если таких нет или пароль неизвестен — для клиент-серверной базы подходит способ с v8users из раздела выше.
Удалили служебного пользователя обмена
Создайте его заново с тем же именем, ролями и паролем. Затем пропишите пароль в настройках обмена, регламентного задания или публикации веб-сервиса. Сам по себе он не подхватится.
Нужно вернуть всё как было
Загрузите файл .dt, сохранённый перед удалением: Администрирование → Загрузить информационную базу. Учтите: загрузка заменяет все данные базы. Документы, введённые после выгрузки, пропадут.
Если с момента выгрузки в базе уже работали, загрузите .dt в отдельную пустую базу. Подсмотрите там состав пользователей и ролей и восстановите учётные записи в рабочей базе вручную.