Удаление всех пользователей из базы 1С:Предприятие 8.3 — задача, с которой администраторы сталкиваются при миграции систем, тестировании новых конфигураций или очистке демонстрационных баз. Однако эта операция чревата серьезными последствиями: от потери критичных прав до полной блокировки доступа к системе. В отличие от выборочного удаления через интерфейс, массовая чистка требует глубокого понимания структуры базы данных и механизмов аутентификации.
В этой статье мы разберем три официальных способа удаления пользователей: через Конфигуратор, прямые SQL-запросы и специализированные обработки. Особое внимание уделим сохранению администраторских прав, резервному копированию и восстановлению доступа в случае ошибок. Также рассмотрим скрытые риски, о которых не предупреждают даже опытные 1С-ники — например, как удаление пользователей влияет на журнал регистрации и историю изменений в документах.
Предупреждаем сразу: если вы работаете с боевой базой, где ведется реальный учет, массовое удаление пользователей может привести к необратимой потере привязки документов к авторам и нарушению цепочек согласований. В таких случаях рекомендуем использовать альтернативные методы — например, блокировку учетных записей вместо полного удаления.
1. Подготовка к массовому удалению пользователей
Перед любой манипуляцией с пользователями в 1С:Предприятие необходимо выполнить три критичных шага. Пропуск хотя бы одного из них может привести к потере доступа к базе или повреждению данных:
- 🔹 Создайте полную резервную копию базы через
Конфигуратор → Администрирование → Выгрузить информационную базу. Обратите внимание: экспорт данных черезXMLне сохраняет права доступа, поэтому подходит только для восстановления бизнес-данных, но не пользователей. - 🔹 Проверьте наличие администраторской учетки с полными правами. Если единственный администратор будет удален, восстановить доступ можно только через прямые SQL-запросы или обращение в поддержку 1С.
- 🔹 Зафиксируйте текущих активных пользователей. Зайдите в
Администрирование → Пользователии сделайте скриншот или экспорт списка. Это поможет восстановить права в случае ошибки. - 🔹 Остановите все сеансы работы с базой. Активные соединения могут заблокировать таблицы пользователей и прервать процесс удаления.
Особое внимание уделите режиму аутентификации. В 1С 8.3 есть два варианта:
- 🔐 Встроенная аутентификация (логин/пароль хранятся в базе) — пользователи удаляются полностью.
- 🔐 Аутентификация средствами ОС/Active Directory — в базе остаются только ссылки на учетные записи, которые нужно чистить отдельно.
⚠️ Внимание: Если ваша база использует распределенную инфраструктуру (например, кластер серверов 1С:Предприятия), удаление пользователей на одном узле не синхронизируется автоматически. Требуется ручная очистка на всех серверах.
2. Способ 1: Удаление через Конфигуратор (самый безопасный метод)
Этот метод подходит для баз с небольшим количеством пользователей (до 50-100 записей) и не требует знания SQL. Все действия выполняются через стандартный интерфейс Конфигуратора:
Откройте базу в режиме
Конфигуратор(не путать с1С:Предприятие!). Для этого запустите ярлык с удержанием клавишиShiftили выберите базу в списке и нажмитеКонфигуратор.Перейдите в меню
Администрирование → Пользователи. Откроется список всех учетных записей.Выделите первого пользователя, зажмите
Shiftи кликните на последнего, чтобы выбрать всех. Альтернативно можно использовать сочетаниеCtrl+A.Нажмите кнопку
Удалить(или клавишуDelete). Система запросит подтверждение — соглашайтесь.После удаления обязательно выполните
Тестирование и исправлениебазы (Администрирование → Тестирование и исправление) с отметками:- 🔧
Реиндексация таблиц - 🔧
Проверка логической целостности - 🔧
Проверка ссылочной целостности
- 🔧
- ✅ Не требует знания
SQLили программирования. - ✅ Сохраняет целостность ссылок в метаданных.
- ✅ Автоматически обновляет кэш прав доступа.
- ❌ Медленная работа при большом количестве пользователей (более 100).
- ❌ Не удаляет "системных" пользователей (например,
Администраторпо умолчанию). - ❌ Может зависнуть при удалении пользователей с активными сеансами.
- 🛑 Протестируйте запрос на копии базы.
- 🛑 Убедитесь, что у вас есть права на
ALTERиDELETEв таблицах 1С. - 🛑 Проверьте, что база не используется другими пользователями.
Преимущества метода:
Недостатки:
Закрыты все сеансы пользователей|Сделана резервная копия базы|Проверены права текущего пользователя (администратор)|Отключены фоновые задачи (регламентные операции)|Готов список пользователей для восстановления (на случай ошибки)-->
3. Способ 2: SQL-запросы для массового удаления
Для баз с сотнями пользователей или при автоматизации процесса удобнее использовать прямые SQL-запросы. Этот метод работает только для файловых баз (с расширением .1CD) или клиент-серверных баз на MS SQL/PostgreSQL. Для SQLite-баз (например, в облачных решениях) этот способ не подходит.
Внимание: неправильный SQL-запрос может повредить базу без возможности восстановления. Перед выполнением обязательно:
Для MS SQL Server используйте следующий запрос (замените YourDatabaseName на имя вашей базы):
USE YourDatabaseName;
GO
-- Удаление пользователей из основной таблицы
DELETE FROM Users WHERE Name <> 'Администратор';
-- Очистка прав доступа (опционально)
DELETE FROM UserRoles;
DELETE FROM UserRights;
-- Пересборка индексов
DBCC CHECKTABLE('Users');
DBCC CHECKTABLE('UserRoles');
GO
Для PostgreSQL синтаксис будет другим:
-- Подключитесь к базе
\c YourDatabaseName
-- Удаление пользователей (кроме Администратора)
DELETE FROM "Users" WHERE "Name" <> 'Администратор';
-- Очистка связанных таблиц
DELETE FROM "UserRoles";
DELETE FROM "UserRights";
-- Вакуумирование для освобождения места
VACUUM FULL;
⚠️ Внимание: В некоторых конфигурациях (например, 1С:ЗУП или 1С:ERP) пользователи привязаны к физическим лицам в справочникеСотрудники. При массовом удалении через SQL эти связи обрываются, что может привести к ошибкам в кадровых документах. Перед чисткой проверьте таблицу_Reference162(или аналогичную для вашей конфигурации).
| Тип базы | Таблица пользователей | Таблица ролей | Особенности |
|---|---|---|---|
| Файловая (1CD) | v8users |
v8roles |
Требует утилиты chdbfl.exe для прямого доступа |
| MS SQL | Users |
UserRoles |
Поддерживает транзакции (можно откатить изменения) |
| PostgreSQL | "Users" |
"UserRoles" |
Чувствителен к регистру в названиях таблиц |
| 1С:Облако | — | — | SQL-запросы запрещены, используйте API |
Что делать если после SQL-запроса база не открывается?
Если после выполнения SQL-запроса база перестала открываться с ошибкой "Не найдена таблица Users" или "Нарушена структура базы данных", выполните следующие действия:
1. Восстановите базу из резервной копии.
2. Если копии нет, попробуйте запустить chdbfl.exe с ключом --repair для файловой базы.
3. Для SQL-баз проверьте целостность через DBCC CHECKDB (MS SQL) или pg_dump (PostgreSQL).
4. Обратитесь в поддержку 1С с логами ошибок (файл 1Cv8.log в каталоге временных файлов).
4. Способ 3: Использование обработок для удаления
Для тех, кто не хочет работать с SQL или Конфигуратором, существуют готовые обработки от 1С и сторонних разработчиков. Они позволяют гибко настраивать критерии удаления (например, только неактивных пользователей или тех, кто не заходил более года).
Официальная обработка от 1С называется "УдалениеПользователей.epf" и входит в комплект поставки платформы (папка Templates\РуководителюИТ). Чтобы ей воспользоваться:
Откройте базу в режиме
1С:Предприятиепод администратором.Перейдите в
Файл → Открыть…и выберите обработку.В форме обработки укажите критерии отбора (например, дату последнего входа или статус активности).
Нажмите
Выполнитьи подтвердите удаление.
Популярные сторонние обработки:
- 📌 "Массовое удаление пользователей" от Infostart — поддерживает фильтрацию по ролям и группам.
- 📌 "CleanUsers" — удаляет "мусорные" учетки с пустыми именами или дублями.
- 📌 "1С:Аудит пользователей" — не только удаляет, но и анализирует активность учетных записей.
⚠️ Внимание: Сторонние обработки могут содержать вредоносный код. Скачивайте их только с официальных источников (Infostart, 1С:ИТС, Клуб программистов 1С) и предварительно проверяйте антивирусом. Перед первым запуском выполните тест на копии базы.
Преимущества использования обработок:
- ✅ Визуальный интерфейс с предварительным просмотром списка на удаление.
- ✅ Возможность отмены операции (в некоторых обработках).
- ✅ Дополнительные функции (например, архивирование перед удалением).
Если обработка не видит некоторых пользователей, проверьте настройки видимости в ролях. Иногда учетные записи скрыты за правами доступа к справочнику Пользователи.
5. Скрытые последствия массового удаления
Удаление пользователей в 1С — это не просто очистка списка логинов. Система хранит ссылки на авторов документов, изменений в регистрах и журналах. После массовой чистки вы можете столкнуться со следующими проблемами:
- 📄 Обрыв ссылок в документах: поля "Кто создал", "Кто изменил" будут пустыми или содержать ошибки.
- 🔍 Нарушение журналов регистрации: невозможно будет отследить, кто вносил изменения.
- 🔄 Ошибки в бизнес-процессах: задачи на согласование "зависнут" без ответственного.
- 📊 Проблемы с отчетами: некоторые отчеты (например, по активности пользователей) перестанут работать.
Чтобы минимизировать риски, выполните следующие действия после удаления:
Запустите
Тестирование и исправлениес галочкойПроверка логической целостности.Обновите кэш метаданных:
Конфигуратор → Опции → Очистить кэш.Перезапустите сервер 1С:Предприятия (если используется клиент-серверный вариант).
Проверьте работоспособность критичных отчетов и обработок.
Для восстановления ссылок на авторов документов можно использовать запрос (пример для MS SQL):
UPDATE DocLog SET UserRef = NULL WHERE UserRef NOT IN (SELECT Ref FROM Users);
Если в вашей конфигурации используются бизнес-процессы или задачи, после удаления пользователей требуется дополнительная очистка таблиц:
BPTasks— задачи бизнес-процессов.BPTaskParticipants— участники задач.BPTaskHistory— история выполнения.
Массовое удаление пользователей в рабочей базе может привести к потере аудита изменений. Всегда оценивайте риски и рассматривайте альтернативы — например, блокировку учетных записей вместо полного удаления.
6. Альтернативы полному удалению
В большинстве случаев полное удаление пользователей неоправданно рискованно. Рассмотрите альтернативные методы, которые сохранят целостность данных:
- 🔒 Блокировка учетных записей: снимите галочку
Активенв свойствах пользователя. Это запретит вход, но сохранит все ссылки. - 🔄 Перенос в архивную группу: создайте роль
Архивные пользователис минимальными правами и переместите туда ненужные учетки. - 📝 Анонимизация: замените имена пользователей на обобщенные (например,
Пользователь_1,Пользователь_2) через обработку. - 🗑️ Очистка только неиспользуемых учеток: удаляйте только тех, кто не входил в систему более года (проверяйте по журналу регистрации).
Для блокировки всех пользователей кроме администратора можно использовать этот код на встроенном языке 1С:
Пользователи = Справочники.Пользователи.НайтиПоРеквизиту("Активен", Истина);
Для Каждого Пользователь Из Пользователи Цикл
Если Пользователь.Наименование <> "Администратор" Тогда
Пользователь.Активен = Ложь;
Пользователь.Записать();
КонецЕсли;
КонецЦикла;
Если вам нужно скрыть пользователей из интерфейса, но оставить их в базе, добавьте в конфигуратор следующий код (в модуль формы списка пользователей):
Процедура ПриОткрытии(Отказ)
ЭлементыФормы.Список.Ограничение = Новый ОписаниеТипов("СправочникСсылка.Пользователи");
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ РазрешенныеРоли.Ссылка КАК Ссылка
ИЗ Справочник.Пользователи КАК Пользователи
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДопустимыеРолиПользователей КАК РазрешенныеРоли
ПО Пользователи.Ссылка = РазрешенныеРоли.Пользователь
ГДЕ Пользователи.Активен = ИСТИНА";
Результат = Запрос.Выполнить();
СписокЗначений = Новый СписокЗначений;
Пока Результат.Следующий() Цикл
СписокЗначений.Добавить(Результат.Ссылка);
КонецЦикла;
ЭлементыФормы.Список.Значение = СписокЗначений;
КонецПроцедуры
7. Восстановление доступа после ошибок
Если после массового удаления вы потеряли доступ к базе (например, удалили всех администраторов), воспользуйтесь одним из следующих методов восстановления:
Метод 1: Восстановление через SQL (для клиент-серверных баз)
Подключитесь к базе через MS SQL Management Studio или pgAdmin и выполните запрос на создание нового администратора:
-- Для MS SQL
INSERT INTO Users (Ref, Name, PasswordHash, Active)
VALUES (NEWID(), 'AdminRecovery', '', 1);
-- Для PostgreSQL
INSERT INTO "Users" ("Ref", "Name", "PasswordHash", "Active")
VALUES (gen_random_uuid(), 'AdminRecovery', '', true);
Метод 2: Использование утилиты chdbfl.exe (для файловых баз)
Эта утилита входит в комплект поставки 1С:Предприятия и позволяет редактировать базу на низком уровне. Пример команды для добавления администратора:
chdbfl.exe /F "C:\Bases\YourBase.1CD" /AddAdmin /AdminName:RecoveryAdmin /AdminPwd:123456
Метод 3: Обращение в поддержку 1С
Если самостоятельное восстановление не удалось, обратитесь в службу поддержки 1С с следующими данными:
- 📄 Лог-файл
1Cv8.log(находится в%APPDATA%\1C\1Cv8\). - 📄 Дамп структуры базы (можно сделать через
SQLилиchdbfl /DumpStructure). - 📄 Описание действий, предшествовавших потере доступа.
⚠️ Внимание: В облачных сервисах (1С:Фреш, 1С:Линк) самостоятельное восстановление доступа невозможно. Вам потребуется обратиться в техническую поддержку провайдера с подтверждением прав на базу (договор, данные арендатора).
FAQ: Частые вопросы по удалению пользователей в 1С
Можно ли удалить пользователя, который создал документы в базе?
Технически да, но это приведет к потере информации о том, кто вносил изменения. В документах и регистрах останутся "битые" ссылки на несуществующего пользователя. Лучше заблокировать такого пользователя (снять галочку Активен), чем удалять.
Как удалить пользователя, если он не отображается в списке в Конфигураторе?
Это может происходить по двум причинам:
- Пользователь скрыт настройками видимости ролей. Проверьте права текущего пользователя на просмотр справочника
Пользователи. - Учетная запись повреждена. В этом случае поможет только прямое удаление через
SQLили утилитуchdbfl.exe.
Что будет, если удалить пользователя, у которого есть незавершенные задачи в бизнес-процессах?
Задачи останутся в базе, но станут "бесхозными". Их нельзя будет завершить или делегировать через стандартный интерфейс. Для очистки потребуется ручное удаление из таблиц BPTasks и BPTaskParticipants или использование специализированной обработки (например, "Очистка бизнес-процессов" от Infostart).
Как удалить всех пользователей, кроме администратора, в 1С:ЗУП?
В 1С:Зарплата и Управление Персоналом пользователи привязаны к физическим лицам в справочнике Сотрудники. Чтобы избежать ошибок:
- Сначала удалите привязки в регистре
СоответствиеПользователейСотрудникам. - Затем удаляйте пользователей стандартным способом через
Конфигуратор. - Проверьте, что в справочнике
ФизическиеЛицане осталось ссылок на удаленных пользователей.
Для автоматизации можно использовать обработку "Удаление пользователей с проверкой ссылок".
Почему после удаления пользователей база стала работать медленнее?
Это связано с фрагментацией индексов в таблицах Users и UserRoles. После массового удаления выполните:
- 🔧
Тестирование и исправлениес переиндексацией. - 🔧 Для
SQL-баз: запуститеDBCC REINDEX(MS SQL) илиREINDEX TABLE(PostgreSQL). - 🔧 Очистите кэш метаданных и перезапустите сервер 1С.
Если проблема сохраняется, проверьте планы выполнения запросов — возможно, оптимизатор SQL стал использовать неэффективные индексы.