Удаление пользователя из 1С:Предприятие 8.3 — казалось бы, простая задача, но на практике она таит массу подводных камней. От отсутствия прав до блокировки базы, от потери истории действий до конфликтов с лицензиями — ошибки здесь обходятся дорого. Эта статья не про банальное нажатие кнопки «Удалить», а про системный подход, который учитывает последствия для бизнес-процессов, безопасности и производительности.
Мы разберём все актуальные методы: от ручного удаления через конфигуратор до автоматизированных скриптов для массовой чистки. Особое внимание уделим скрытым зависимостям пользователей в регистрах сведений и документах, которые часто становятся причиной сбоев после «успешного» удаления. А для администраторов, работающих с распределёнными базами, приведём алгоритмы синхронизации изменений между узлами.
Если вы ищете способ просто «выгнать» пользователя из текущего сеанса — это тоже здесь, но с предупреждениями о рисках для транзакций. И да, мы не будем советовать «перезагрузить сервер» как универсальное решение: вместо этого вы получите чек-листы проверок перед любым вмешательством в учётные записи.
1. Подготовка к удалению: что нужно проверить ДО действий
Прежде чем удалять пользователя, ответьте на три ключевых вопроса:
- 🔍 Есть ли у пользователя открытые сеансы? Активные соединения могут заблокировать объекты базы, что приведёт к ошибкам при удалении. Проверяется через
Администрирование → Активные пользователи. - 📊 Привязаны ли к пользователю критические документы? Например, если он был ответственным за заказы клиентов или кассовые ордера, его удаление может нарушить цепочки согласований.
- 🔑 Используются ли его данные в интеграциях? Некоторые API и обмены данными (например, с 1С:ЗУП или 1С:ERP) могут ссылаться на ID пользователя как на идентификатор источника.
Для проверки зависимостей используйте стандартный отчёт Пользователи и их права (Администрирование → Настройки пользователей и прав). Но он не покажет все связи — например, регистры сведений, где пользователь может быть указан как владелец записи. Для глубокого анализа потребуется запрос:
ВЫБРАТЬ
Метаданные.Имя,
Объект.Ссылка
ИЗ
РегистрСведений.ИмяРегистра КАК Объект
ГДЕ
Объект.Пользователь = &ТекущийПользователь
⚠️ Внимание: Если пользователь был администратором базы, его удаление может нарушить работу регламентных заданий, запущенных от его имени. Перед удалением переназначьте владельца заданий на другого пользователя с аналогичными правами.
2. Способ 1: Удаление через конфигуратор (ручной метод)
Самый очевидный, но не всегда безопасный способ. Подходит для файловых баз и клиент-серверных конфигураций, если у вас есть права администратора. Алгоритм:
- Закройте все сеансы 1С, включая фоновые (проверьте через
Диспетчер задачна сервере). - Запустите 1С:Предприятие в режиме
Конфигуратор(удерживайтеShiftпри запуске). - Перейдите в
Администрирование → Пользователи. - Выделите нужного пользователя и нажмите
Удалить(илиDel). - Подтвердите действие и выполните
Обновление конфигурации базы данных(Конфигурация → Обновить DB).
После удаления обязательно:
- 🔄 Перезапустите сервис
1С:Предприятие 8.3на сервере (для клиент-серверного варианта). - 📋 Проверьте журналы событий (
Администрирование → Журналы регистрации) на ошибки. - 🔐 Обновите права доступа для ролей, которые использовал удалённый пользователь.
⚠️ Внимание: В управляемых формах (начиная с версии 8.3.6) после удаления пользователя может потребоваться перезагрузка кэша метаданных на клиентских машинах. Иначе возможны ошибки вида «Пользователь не найден» при открытии форм.
Проверены активные сеансы пользователя|Создана резервная копия базы|Проверены зависимости в регистрах сведений|Переназначены регламентные задания|Обновлена конфигурация базы данных-->
3. Способ 2: Блокировка вместо удаления (рекомендуемый метод)
В большинстве случаев удалению стоит предпочесть блокировку. Это сохраняет историю действий пользователя и позволяет восстановить доступ при необходимости. Как блокировать:
- В режиме
1С:Предприятиеперейдите вАдминистрирование → Пользователи. - Выберите пользователя и снимите флажок
Разрешён вход. - Установите дату блокировки в поле
Действителен до(например, прошедшую дату). - Сохраните изменения и перезапустите сеансы.
Преимущества блокировки:
| Критерий | Удаление | Блокировка |
|---|---|---|
| Сохранение истории действий | ❌ Удаляется | ✅ Сохраняется |
| Возможность восстановления | ❌ Только через резервную копию | ✅ Одним кликом |
| Влияние на интеграции | ⚠️ Риск сбоев | ✅ Без изменений |
| Требуемые права | Администратор конфигуратора | Администратор пользователей |
Для полной «невидимости» заблокированного пользователя в интерфейсе используйте настройку Показывать в списках (снимите флажок). Это скрывает его из выпадающих списков при создании новых документов.
Если пользователь уволен, но его данные нужны для отчётности, переименуйте учётную запись, добавив префикс "ARCH_" (например, "ARCH_ИвановИИ"). Это упростит фильтрацию в отчётах.
4. Способ 3: Удаление через запрос (для опытных администраторов)
Если пользователей много или нужно автоматизировать процесс, используйте прямые SQL-запросы (для клиент-серверного варианта) или встроенный язык 1С. Пример кода для удаления:
Процедура УдалитьПользователя(ИмяПользователя)
Пользователь = Справочники.Пользователи.НайтиПоНаименованию(ИмяПользователя);
Если Не Пользователь.Пустая() Тогда
Попытка
Пользователь.Удалить();
ЗафиксироватьТранзакцию();
Сообщить("Пользователь " + ИмяПользователя + " удалён успешно");
Исключение
ОтменитьТранзакцию();
Сообщить("Ошибка: " + ОписаниеОшибки());
КонецПопытки;
КонецЕсли;
КонецПроцедуры
Для SQL-сервера аналогичный запрос будет выглядеть так:
DELETE FROM [dbo].[_1SUsers]
WHERE [Name] = 'ИмяПользователя'
⚠️ Внимание: Прямое удаление через SQL не обновляет метаданные 1С. После такого вмешательства обязательно выполните тестирование и исправление базы (Конфигуратор → Администрирование → Тестирование и исправление) с флагомРеиндексация таблиц.
Автоматизировать процесс поможет обработка УправлениеПользователями.epf, которую можно скачать из ИТС или 1С:Город. Она позволяет:
- 🔍 Искать пользователей по маске имени.
- 📊 Экспортировать список в Excel.
- 🗑️ Массово удалять или блокировать.
5. Как «выгнать» пользователя из текущего сеанса (без удаления)
Если задача — просто прервать активный сеанс (например, при подозрении на утечку данных), используйте:
- В режиме
1С:ПредприятиеоткройтеАдминистрирование → Активные пользователи. - Найдите нужного пользователя в списке и нажмите
Завершить сеанс. - Подтвердите действие. Система предложит отправить пользователю уведомление (опционально).
Для клиент-серверного варианта альтернативный способ — через OSQL (если 1С «завис»):
OSQL -E -S ИмяСервера -Q "KILL СеансID"
Где СеансID можно узнать запросом:
SELECT session_id, login_name, host_name
FROM sys.dm_exec_sessions
WHERE program_name LIKE '1C%'
⚠️ Внимание: Принудительное завершение сеанса не фиксирует транзакции. Если пользователь вёл документ или изменял справочник, данные могут быть потеряны. Всегда предупреждайте пользователя заранее!
Что делать если сеанс не завершается?
Если кнопка "Завершить сеанс" не работает, проверьте:
1. Блокировки в SQL: выполните запрос `sp_who2` и найдите блокирующие процессы.
2. Зависшие транзакции: в 1С перейдите в `Администрирование → Журналы регистрации` и найдите длинные операции.
3. Сервис 1С: перезапустите службу `1C:Enterprise 8.3 Server Agent` на сервере.
Если проблема сохраняется, требуется анализ дампа памяти (обратитесь в поддержку 1С).
6. Ошибки при удалении пользователей и их решения
Даже при следовании инструкциям возможны сбои. Рассмотрим типичные ошибки и способы их устранения:
| Ошибка | Причина | Решение |
|---|---|---|
Пользователь используется в регламентных заданиях |
У пользователя есть активные задания в Администрирование → Регламентные задания. |
Переназначьте задания на другого пользователя или удалите их. |
Нарушение ссылочной целостности |
Пользователь указан в документах или регистрах как ответственный. | Используйте запрос для поиска ссылок (см. раздел 1) и очистите их. |
Недостаточно прав для изменения пользователей |
У вашей учётной записи нет роли Администратор или Полные права. |
Запросите права у главного администратора или войдите под пользователем с нужными полномочиями. |
Сеанс пользователя заблокировал объект |
Пользователь открыл документ или справочник в монопольном режиме. | Завершите его сеанс (раздел 5) или дождитесь автоматического разблокирования (тайм-аут по умолчанию — 10 минут). |
Если ошибка не типична, изучите журнал регистрации (Администрирование → Журналы регистрации). Обратите внимание на:
- 🔴 Коды ошибок (например,
2147220991— нарушение прав доступа). - 📌 Контекст: в каком модуле или процедуре произошел сбой.
- 🖥️ Имя компьютера, с которого выполнялось действие (может указывать на проблему с лицензией).
1. Скриншот ошибки с полным текстом.
2. Фрагмент журнала регистрации (экспортируйте в .txt).
3. Версию платформы и конфигурации (меню "Справка → О программе").
Это ускорит решение проблемы в 3–5 раз.-->
7. Особенности для распределённых баз (РИБ, УРИБ, УРБД)
В распределённых информационных базах (РИБ) или базах с управляемой распределённой блокировкой данных (УРБД) удаление пользователя требует синхронизации между узлами. Алгоритм:
- Удалите пользователя на главном узле (см. раздел 2 или 4).
- Выполните
Обмен данными(Администрирование → Распределённая информационная база → Обмен данными). - Проверьте синхронизацию на подчинённых узлах:
- 🔄 Обновите конфигурацию базы данных.
- 📋 Запустите отчёт
Состояние обмена данными. - 🔐 Проверьте права пользователя на план обмена (
Администрирование → Планы обмена). - 📡 Если пользователь был ответственным за узел, переназначьте роль на другого администратора.
- 🔄 Переименуйте учётную запись и сбросьте пароль. Это сделает её непригодной для входа, но сохранит все связи.
- 🔒 Ограничьте права до минимальных (например, только просмотр справочников).
- 📜 Архивируйте данные: экспортируйте документы пользователя в отдельную базу через
Администрирование → Выгрузка данных.
Для УРИБ (управляемая распределённая база) дополнительно:
⚠️ Внимание: В РИБ не синхронизируются настройки прав доступа, если они изменены на подчинённом узле. После удаления пользователя на главном узле вручную проверьте права на всех остальных!
8. Альтернативные методы: когда удаление невозможно
Иногда удалить пользователя нельзя по техническим причинам (например, он владелец базы или используется в внешних отчётах). В таких случаях:
Для внешних обработок, которые ссылаются на пользователя, используйте редактор конфигурации:
- Откройте обработку в конфигураторе.
- Найдите ссылки на пользователя (через
Поиск по тексту, ищитеПользователи.ИмяПользователя). - Замените на актуального пользователя или параметр.
Если проблема в лицензиях (например, пользователь привязан к аппаратному ключу), обратитесь в службу поддержки 1С с запросом на перерегистрацию.
1. Регламентные задания — проверьте владельцев.
2. Подписки на события — в них могут быть жёстко прописаны имена пользователей.
3. Внешние печатные формы — некоторые формы подтягивают ФИО ответственного из данных пользователя.-->
FAQ: Частые вопросы по удалению пользователей в 1С 8.3
Можно ли удалить пользователя, если он владелец базы?
Нет, сначала нужно переназначить владельца. Для этого:
- Войдите в конфигуратор под пользователем с правами администратора.
- Перейдите в
Администрирование → Информационные базы. - Выберите свою базу и нажмите
Изменить владельца. - Укажите нового владельца (должен быть администратором).
Только после этого можно удалять старого владельца.
Как удалить пользователя, если забыли пароль администратора?
Есть два варианта:
- Через конфигуратор в монопольном режиме:
- Запустите 1С с ключом
/Config /Out-(например,"C:\Program Files\1cv8\8.3.20.1500\bin\1cv8.exe" /Config /Out-). - В меню
Администрирование → Пользователисбросьте пароль администратора.
- Запустите 1С с ключом
- Через SQL-сервер (только для клиент-серверного варианта):
UPDATE [dbo].[_Users]SET [PasswordHash] = NULL
WHERE [Name] = 'Администратор'
После этого войдите под администратором без пароля и установите новый.
⚠️ Внимание: Сброс пароля через SQL нарушает политику безопасности 1С. После восстановления доступа обязательно обновите конфигурацию базы!
Что будет с документами, где пользователь был ответственным?
Документы останутся в базе, но:
- В печатных формах поле «Ответственный» будет пустым или содержать ошибку.
- В отчётах (например, «Анализ продаж по менеджерам») данные по этому пользователю пропадут.
- Если пользователь был подписантом в документообороте, цепочка согласований может нарушиться.
- Переназначить ответственного в критичных документах (через групповую обработку).
- Создать архивную запись в справочнике
Физические лицас пометкой «Уволен».
Рекомендуем перед удалением:
Как удалить пользователя из 1С:ЗУП без потери данных по сотруднику?
В 1С:Зарплата и Управление Персоналом пользователь часто привязан к физическому лицу в справочнике Сотрудники. Чтобы удалить только учётную запись:
- Откройте справочник
Пользователи(Настройки → Пользователи). - Найдите пользователя и снимите связь с физическим лицом (поле
Сотрудник). - Удалите пользователя (теперь это безопасно).
Данные о сотруднике в справочнике Физические лица и истории начислений останутся нетронутыми.
Можно ли восстановить удалённого пользователя?
Да, но только если:
- 🔄 У вас есть резервная копия базы до удаления. Восстановите её и экспортируйте пользователя через
Администрирование → Выгрузка данных. - 📊 В журнале регистрации сохранена информация о пользователе (можно восстановить вручную через конфигуратор).
- 🔐 Пользователь был заблокирован, а не удалён — тогда достаточно снять блокировку.
Если копии нет, создать пользователя заново с тем же именем не получится — 1С сохраняет уникальные идентификаторы (GUID) даже после удаления.