Удаление всех пользователей из базы 1С:Предприятие 8.3 — задача, с которой администраторы сталкиваются при миграции систем, тестировании новых конфигураций или очистке демонстрационных баз. Однако эта операция чревата серьезными последствиями: от потери критичных прав до полной блокировки доступа к системе. В отличие от выборочного удаления через интерфейс, массовая чистка требует глубокого понимания структуры базы данных и механизмов аутентификации.

В этой статье мы разберем три официальных способа удаления пользователей: через Конфигуратор, прямые SQL-запросы и специализированные обработки. Особое внимание уделим сохранению администраторских прав, резервному копированию и восстановлению доступа в случае ошибок. Также рассмотрим скрытые риски, о которых не предупреждают даже опытные 1С-ники — например, как удаление пользователей влияет на журнал регистрации и историю изменений в документах.

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

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

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

  • 🔹 Создайте полную резервную копию базы через Конфигуратор → Администрирование → Выгрузить информационную базу. Обратите внимание: экспорт данных через XML не сохраняет права доступа, поэтому подходит только для восстановления бизнес-данных, но не пользователей.
  • 🔹 Проверьте наличие администраторской учетки с полными правами. Если единственный администратор будет удален, восстановить доступ можно только через прямые SQL-запросы или обращение в поддержку .
  • 🔹 Зафиксируйте текущих активных пользователей. Зайдите в Администрирование → Пользователи и сделайте скриншот или экспорт списка. Это поможет восстановить права в случае ошибки.
  • 🔹 Остановите все сеансы работы с базой. Активные соединения могут заблокировать таблицы пользователей и прервать процесс удаления.

Особое внимание уделите режиму аутентификации. В 1С 8.3 есть два варианта:

  • 🔐 Встроенная аутентификация (логин/пароль хранятся в базе) — пользователи удаляются полностью.
  • 🔐 Аутентификация средствами ОС/Active Directory — в базе остаются только ссылки на учетные записи, которые нужно чистить отдельно.
⚠️ Внимание: Если ваша база использует распределенную инфраструктуру (например, кластер серверов 1С:Предприятия), удаление пользователей на одном узле не синхронизируется автоматически. Требуется ручная очистка на всех серверах.
📊 Как часто вы очищаете пользователей в 1С?
Никогда не делал
Раз в год при аудите
Только в тестовых базах
При смене сотрудников

2. Способ 1: Удаление через Конфигуратор (самый безопасный метод)

Этот метод подходит для баз с небольшим количеством пользователей (до 50-100 записей) и не требует знания SQL. Все действия выполняются через стандартный интерфейс Конфигуратора:

  1. Откройте базу в режиме Конфигуратор (не путать с 1С:Предприятие!). Для этого запустите ярлык с удержанием клавиши Shift или выберите базу в списке и нажмите Конфигуратор.

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

  3. Выделите первого пользователя, зажмите Shift и кликните на последнего, чтобы выбрать всех. Альтернативно можно использовать сочетание Ctrl+A.

  4. Нажмите кнопку Удалить (или клавишу Delete). Система запросит подтверждение — соглашайтесь.

  5. После удаления обязательно выполните Тестирование и исправление базы (Администрирование → Тестирование и исправление) с отметками:

    • 🔧 Реиндексация таблиц
    • 🔧 Проверка логической целостности
    • 🔧 Проверка ссылочной целостности

  6. Преимущества метода:

    • ✅ Не требует знания SQL или программирования.
    • ✅ Сохраняет целостность ссылок в метаданных.
    • ✅ Автоматически обновляет кэш прав доступа.

    Недостатки:

    • ❌ Медленная работа при большом количестве пользователей (более 100).
    • ❌ Не удаляет "системных" пользователей (например, Администратор по умолчанию).
    • ❌ Может зависнуть при удалении пользователей с активными сеансами.

    Закрыты все сеансы пользователей|Сделана резервная копия базы|Проверены права текущего пользователя (администратор)|Отключены фоновые задачи (регламентные операции)|Готов список пользователей для восстановления (на случай ошибки)-->

    3. Способ 2: SQL-запросы для массового удаления

    Для баз с сотнями пользователей или при автоматизации процесса удобнее использовать прямые SQL-запросы. Этот метод работает только для файловых баз (с расширением .1CD) или клиент-серверных баз на MS SQL/PostgreSQL. Для SQLite-баз (например, в облачных решениях) этот способ не подходит.

    Внимание: неправильный SQL-запрос может повредить базу без возможности восстановления. Перед выполнением обязательно:

    • 🛑 Протестируйте запрос на копии базы.
    • 🛑 Убедитесь, что у вас есть права на ALTER и DELETE в таблицах .
    • 🛑 Проверьте, что база не используется другими пользователями.

Для 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 или Конфигуратором, существуют готовые обработки от и сторонних разработчиков. Они позволяют гибко настраивать критерии удаления (например, только неактивных пользователей или тех, кто не заходил более года).

Официальная обработка от называется "УдалениеПользователей.epf" и входит в комплект поставки платформы (папка Templates\РуководителюИТ). Чтобы ей воспользоваться:

  1. Откройте базу в режиме 1С:Предприятие под администратором.

  2. Перейдите в Файл → Открыть… и выберите обработку.

  3. В форме обработки укажите критерии отбора (например, дату последнего входа или статус активности).

  4. Нажмите Выполнить и подтвердите удаление.

Популярные сторонние обработки:

  • 📌 "Массовое удаление пользователей" от Infostart — поддерживает фильтрацию по ролям и группам.
  • 📌 "CleanUsers" — удаляет "мусорные" учетки с пустыми именами или дублями.
  • 📌 "1С:Аудит пользователей" — не только удаляет, но и анализирует активность учетных записей.
⚠️ Внимание: Сторонние обработки могут содержать вредоносный код. Скачивайте их только с официальных источников (Infostart, 1С:ИТС, Клуб программистов 1С) и предварительно проверяйте антивирусом. Перед первым запуском выполните тест на копии базы.

Преимущества использования обработок:

  • ✅ Визуальный интерфейс с предварительным просмотром списка на удаление.
  • ✅ Возможность отмены операции (в некоторых обработках).
  • ✅ Дополнительные функции (например, архивирование перед удалением).
💡

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

5. Скрытые последствия массового удаления

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

  • 📄 Обрыв ссылок в документах: поля "Кто создал", "Кто изменил" будут пустыми или содержать ошибки.
  • 🔍 Нарушение журналов регистрации: невозможно будет отследить, кто вносил изменения.
  • 🔄 Ошибки в бизнес-процессах: задачи на согласование "зависнут" без ответственного.
  • 📊 Проблемы с отчетами: некоторые отчеты (например, по активности пользователей) перестанут работать.

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

  1. Запустите Тестирование и исправление с галочкой Проверка логической целостности.

  2. Обновите кэш метаданных: Конфигуратор → Опции → Очистить кэш.

  3. Перезапустите сервер 1С:Предприятия (если используется клиент-серверный вариант).

  4. Проверьте работоспособность критичных отчетов и обработок.

Для восстановления ссылок на авторов документов можно использовать запрос (пример для MS SQL):

UPDATE DocLog SET UserRef = NULL WHERE UserRef NOT IN (SELECT Ref FROM Users);

Если в вашей конфигурации используются бизнес-процессы или задачи, после удаления пользователей требуется дополнительная очистка таблиц:

  • BPTasks — задачи бизнес-процессов.
  • BPTaskParticipants — участники задач.
  • BPTaskHistory — история выполнения.
💡

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

6. Альтернативы полному удалению

В большинстве случаев полное удаление пользователей неоправданно рискованно. Рассмотрите альтернативные методы, которые сохранят целостность данных:

  • 🔒 Блокировка учетных записей: снимите галочку Активен в свойствах пользователя. Это запретит вход, но сохранит все ссылки.
  • 🔄 Перенос в архивную группу: создайте роль Архивные пользователи с минимальными правами и переместите туда ненужные учетки.
  • 📝 Анонимизация: замените имена пользователей на обобщенные (например, Пользователь_1, Пользователь_2) через обработку.
  • 🗑️ Очистка только неиспользуемых учеток: удаляйте только тех, кто не входил в систему более года (проверяйте по журналу регистрации).

Для блокировки всех пользователей кроме администратора можно использовать этот код на встроенном языке :

Пользователи = Справочники.Пользователи.НайтиПоРеквизиту("Активен", Истина);

Для Каждого Пользователь Из Пользователи Цикл

Если Пользователь.Наименование <> "Администратор" Тогда

Пользователь.Активен = Ложь;

Пользователь.Записать();

КонецЕсли;

КонецЦикла;

Если вам нужно скрыть пользователей из интерфейса, но оставить их в базе, добавьте в конфигуратор следующий код (в модуль формы списка пользователей):

Процедура ПриОткрытии(Отказ)

ЭлементыФормы.Список.Ограничение = Новый ОписаниеТипов("СправочникСсылка.Пользователи");

Запрос = Новый Запрос;

Запрос.Текст = "ВЫБРАТЬ РазрешенныеРоли.Ссылка КАК Ссылка

ИЗ Справочник.Пользователи КАК Пользователи

ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДопустимыеРолиПользователей КАК РазрешенныеРоли

ПО Пользователи.Ссылка = РазрешенныеРоли.Пользователь

ГДЕ Пользователи.Активен = ИСТИНА";

Результат = Запрос.Выполнить();

СписокЗначений = Новый СписокЗначений;

Пока Результат.Следующий() Цикл

СписокЗначений.Добавить(Результат.Ссылка);

КонецЦикла;

ЭлементыФормы.Список.Значение = СписокЗначений;

КонецПроцедуры

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С

Если самостоятельное восстановление не удалось, обратитесь в службу поддержки с следующими данными:

  • 📄 Лог-файл 1Cv8.log (находится в %APPDATA%\1C\1Cv8\).
  • 📄 Дамп структуры базы (можно сделать через SQL или chdbfl /DumpStructure).
  • 📄 Описание действий, предшествовавших потере доступа.
⚠️ Внимание: В облачных сервисах (1С:Фреш, 1С:Линк) самостоятельное восстановление доступа невозможно. Вам потребуется обратиться в техническую поддержку провайдера с подтверждением прав на базу (договор, данные арендатора).

FAQ: Частые вопросы по удалению пользователей в 1С

Можно ли удалить пользователя, который создал документы в базе?

Технически да, но это приведет к потере информации о том, кто вносил изменения. В документах и регистрах останутся "битые" ссылки на несуществующего пользователя. Лучше заблокировать такого пользователя (снять галочку Активен), чем удалять.

Как удалить пользователя, если он не отображается в списке в Конфигураторе?

Это может происходить по двум причинам:

  1. Пользователь скрыт настройками видимости ролей. Проверьте права текущего пользователя на просмотр справочника Пользователи.
  2. Учетная запись повреждена. В этом случае поможет только прямое удаление через SQL или утилиту chdbfl.exe.

Что будет, если удалить пользователя, у которого есть незавершенные задачи в бизнес-процессах?

Задачи останутся в базе, но станут "бесхозными". Их нельзя будет завершить или делегировать через стандартный интерфейс. Для очистки потребуется ручное удаление из таблиц BPTasks и BPTaskParticipants или использование специализированной обработки (например, "Очистка бизнес-процессов" от Infostart).

Как удалить всех пользователей, кроме администратора, в 1С:ЗУП?

В 1С:Зарплата и Управление Персоналом пользователи привязаны к физическим лицам в справочнике Сотрудники. Чтобы избежать ошибок:

  1. Сначала удалите привязки в регистре СоответствиеПользователейСотрудникам.
  2. Затем удаляйте пользователей стандартным способом через Конфигуратор.
  3. Проверьте, что в справочнике ФизическиеЛица не осталось ссылок на удаленных пользователей.

Для автоматизации можно использовать обработку "Удаление пользователей с проверкой ссылок".

Почему после удаления пользователей база стала работать медленнее?

Это связано с фрагментацией индексов в таблицах Users и UserRoles. После массового удаления выполните:

  • 🔧 Тестирование и исправление с переиндексацией.
  • 🔧 Для SQL-баз: запустите DBCC REINDEX (MS SQL) или REINDEX TABLE (PostgreSQL).
  • 🔧 Очистите кэш метаданных и перезапустите сервер .

Если проблема сохраняется, проверьте планы выполнения запросов — возможно, оптимизатор SQL стал использовать неэффективные индексы.