Удаляем пользователя и его настройки из 1С 8.3 без хвостов в базе
Содержание
Чтобы удалить профиль пользователя в 1С 8.3, откройте Администрирование → Настройки пользователей и прав → Пользователи, найдите сотрудника и установите флажок «Недействителен» или пометку удаления. Затем удалите локальный кэш на его компьютере: папки базы в %APPDATA%\1C\1cv8 и %LOCALAPPDATA%\1C\1cv8. Физически стирать запись из базы стоит только тогда, когда пользователь ни разу не работал в программе.
Типичная ситуация: бухгалтер уволился, а его логин висит в списке входа, и новый сотрудник видит чужие настройки отчётов. Или пользователь жалуется, что 1С «помнит» старые формы после переустановки. В обоих случаях говорят «удалить профиль», но речь о разных вещах — о записи в базе и о файлах на диске.
Что именно называют профилем пользователя в 1С
В 1С:Предприятии 8.3 у одного человека есть несколько «следов». Удалять их нужно по-разному.
| Что | Где хранится | Как убрать |
|---|---|---|
| Пользователь информационной базы (логин, пароль, роли) | Внутри базы | Конфигуратор или режим Предприятия |
| Элемент справочника «Пользователи» | Внутри базы, в данных | Флажок «Недействителен» или пометка удаления |
| Персональные настройки (формы, отчёты, рабочий стол) | Внутри базы | Очистка настроек |
| Локальный кэш и список баз | Папки на компьютере пользователя | Удалить папки или запуск с /ClearCache |
| Профиль групп доступа | Внутри базы, справочник профилей | Только свой, не поставляемый |
📌 В типовых конфигурациях на БСП — Бухгалтерии 3.0, ЗУП 3.1, УТ 11 — пользователь информационной базы и элемент справочника «Пользователи» связаны. Программа создаёт и меняет их вместе. Поэтому удалять человека из базы правильнее из режима Предприятия, а не из Конфигуратора.
📌 «Профилем» в этих конфигурациях называют ещё и профиль групп доступа — набор ролей вроде «Бухгалтер» или «Кадровик». Если вы хотите убрать именно его, это отдельная задача: поставляемые профили удалить нельзя, а свой профиль можно пометить на удаление, когда он не используется ни в одной группе доступа.
Чем удаление в файловой базе отличается от серверной
Механика удаления пользователя одинаковая: список пользователей хранится внутри самой информационной базы. Разница в окружении.
🗂 Файловая база. Всё лежит в одном файле 1Cv8.1CD в каталоге базы. Сеансы видно в Конфигураторе и в режиме Предприятия. Кэш — только на клиентских компьютерах.
🖥 Клиент-серверная база . Данные в СУБД (MS SQL, PostgreSQL), сеансы и блокировки — в кластере серверов 1С. Пользователь может оставаться подключённым через фоновый сеанс или «зависший» сеанс, и его видно только в консоли кластера. Кэш есть и на клиентах, и на сервере 1С.
| Задача | Файловая база | Клиент-сервер |
|---|---|---|
| Удалить пользователя | Режим Предприятия или Конфигуратор | Так же |
| Завершить его сеанс | Администрирование → Обслуживание → активные пользователи | Консоль кластера или rac |
| Очистить кэш | На клиенте | На клиенте; серверный — только при необходимости |
| Резервная копия перед массовым удалением | Копия каталога базы или выгрузка .dt | Бэкап СУБД или .dt |
Перед массовым удалением пользователей сделайте резервную копию базы . Пометку можно снять, а физически удалённого пользователя информационной базы вернуть можно только из копии.
Удаление пользователя из режима Предприятия
Это основной и самый безопасный способ для типовых конфигураций.
Шаг 1. Отключите вход
- Откройте
Администрирование → Настройки пользователей и прав → Пользователи. - Двойным щелчком откройте карточку сотрудника.
- Снимите флажок «Вход в программу разрешен».
- Нажмите «Записать и закрыть».
С этого момента под этим логином войти нельзя. Все документы, где сотрудник указан ответственным или автором, остаются на месте.
Шаг 2. Сделайте пользователя недействительным
В той же карточке установите флажок «Недействителен». Пользователь исчезнет из списков выбора и из окна входа, но сохранится в базе для истории.
💡 Это рекомендуемый вариант для уволенных сотрудников. Ссылки на пользователя в документах, журнале регистрации и истории изменений не ломаются.
Шаг 3. Пометка удаления (если нужно убрать совсем)
- В списке пользователей выделите строку.
- Нажмите
Delили выберите «Пометить на удаление» в меню «Ещё». - Подтвердите действие.
Помеченный пользователь пока физически остаётся в базе. Окончательно его удаляет обработка Администрирование → Обслуживание → Удаление помеченных объектов.
Если пользователь хоть раз проводил документы, обработка покажет, что на него есть ссылки, и удалять его не станет. Это нормальная защита. Снимите пометку и оставьте пользователя недействительным.
Шаг 4. Очистите его персональные настройки
Настройки отчётов, списков и рабочего стола хранятся в базе отдельно от карточки. Для их сброса в разделе Администрирование → Настройки пользователей и прав есть группа ссылок про персональные настройки: «Очистка настроек», «Копирование настроек», «Настройки пользователей».
В «Очистке настроек» выберите пользователя и отметьте, что сбросить: внешний вид, настройки отчётов, прочие. Это же помогает, когда сотрудник остаётся, но у него «сломалась» форма.
Очистка кэша и локальных настроек на компьютере
Даже после удаления пользователя из базы на компьютере остаются файлы 1С. Именно они обычно мешают, когда «профиль не удаляется».
Где лежат локальные данные
| Папка | Что в ней |
|---|---|
%APPDATA%\1C\1cv8\ | Подпапки с именами-GUID по каждой базе: кэш конфигурации, локальные настройки |
%LOCALAPPDATA%\1C\1cv8\ | Кэш метаданных и форм, тоже по GUID баз |
%APPDATA%\1C\1CEStart\ibases.v8i | Список баз в окне запуска |
Чтобы открыть папку, вставьте путь в адресную строку Проводника — переменная развернётся в путь текущего пользователя Windows.
Порядок очистки
- Закройте все окна 1С на этом компьютере.
- Откройте
%APPDATA%\1C\1cv8\и удалите подпапки с длинными именами видаa1b2c3d4-…. - То же сделайте в
%LOCALAPPDATA%\1C\1cv8\. - Запустите 1С — программа заново скачает конфигурацию из базы. Первый запуск будет дольше обычного.
Удаляйте только папки-GUID. Файлы вроде 1cv8strt.pfl и 1cv8cmn.pfl хранят общие настройки клиента; их удаление сбросит, например, последнюю выбранную базу, но данные не тронет.
💡 Чтобы не искать нужную папку, запустите базу с параметром очистки кэша. В свойствах базы в окне запуска, в поле дополнительных параметров, впишите /ClearCache, войдите один раз и уберите параметр. Или запустите из командной строки:
"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" ENTERPRISE /F"D:\Bases\Buh" /ClearCache
Номер версии в пути подставьте свой.
Убрать базу из списка запуска
Если нужно, чтобы на компьютере уволенного сотрудника база вообще не отображалась, выделите её в окне запуска и нажмите «Удалить». Удалится только строка в ibases.v8i, сама база останется на месте.
Удаление пользователя через Конфигуратор
Конфигуратор нужен в трёх случаях: конфигурация нетиповая и без БСП, в режим Предприятия не попасть, или надо удалить технического пользователя.
- Запустите базу в режиме «Конфигуратор» под администратором.
- Откройте
Администрирование → Пользователи. - Выделите пользователя и нажмите «Удалить» (кнопка с крестиком) или
Del. - Подтвердите удаление.
Монопольный режим для этого не нужен, другие сотрудники могут продолжать работу.
В типовой конфигурации на БСП удаление из Конфигуратора убирает только пользователя информационной базы. Элемент справочника «Пользователи» остаётся. После этого в режиме Предприятия у сотрудника не будет входа, а карточка сохранится. Это не авария, но порядок нарушается — потом всё равно придётся сделать его недействительным в Предприятии.
Платформа следит, чтобы в непустом списке остался хотя бы один пользователь с полными административными правами. Последнего администратора удалить не получится.
Если база работает на сервере 1С
Завершите сеансы пользователя
Удалённый пользователь не выкидывается из программы мгновенно. Его открытый сеанс может работать до выхода. Поэтому сначала завершите сеансы.
Через консоль «Администрирование серверов 1С Предприятия»:
- Разверните кластер → «Информационные базы» → нужная база → «Сеансы».
- Найдите сеансы с именем пользователя в колонке «Пользователь».
- Правой кнопкой — «Удалить».
Завершение сеанса обрывает работу сотрудника без сохранения. Предупредите его или делайте это вне рабочего времени.
Через утилиту rac (сервер администрирования ras должен быть запущен):
rac cluster list
rac session list --cluster=<uuid-кластера>
rac session terminate --cluster=<uuid-кластера> --session=<uuid-сеанса>
Если не уверены в параметрах вашей версии, смотрите справку rac help session.
Серверный кэш
Сервер 1С хранит кэш сеансовых данных в каталоге кластера, обычно в srvinfo\reg_1541\snccntx…. Удалять его ради одного пользователя не нужно. Это делают, только если после удаления сохраняются странные эффекты у всех: «призрачные» сеансы, ошибки при входе.
Очистка серверного кэша требует остановки службы «Агент сервера 1С:Предприятия». Все пользователи всех баз кластера будут отключены. Делайте это ночью, после предупреждения.
Не трогайте таблицы СУБД
Пользователей и их настройки иногда пытаются удалить SQL-запросом прямо в базе MS SQL или PostgreSQL. Так делать нельзя: структура таблиц служебная, связи не очевидны, а последствия проявятся при следующем обновлении конфигурации.
Массовое удаление и автоматизация
Когда уходит отдел или заканчивается проект подрядчиков, удалять людей по одному долго.
Пакетная смена «Недействителен»
В типовых конфигурациях есть обработка Администрирование → Обслуживание → Групповое изменение реквизитов. Выберите вид объектов «Пользователи», отберите нужных, укажите реквизит «Недействителен» = «Да» и выполните изменение. Подписи и группа в разделе «Обслуживание» могут немного отличаться в разных релизах — найдите обработку по названию.
Внешняя обработка для пользователей ИБ
Для нетиповых баз без справочника пользователей подойдёт серверный код во внешней обработке. Запускать — под администратором:
&НаСервере
Процедура УдалитьПоПрефиксуНаСервере(Префикс)
Список = ПользователиИнформационнойБазы.ПолучитьПользователей();
Удалено = 0;
Для Каждого ПользовательИБ Из Список Цикл
Если СтрНачинаетсяС(ПользовательИБ.Имя, Префикс) Тогда
ПользовательИБ.Удалить();
Удалено = Удалено + 1;
КонецЕсли;
КонецЦикла;
Сообщить(СтрШаблон("Удалено пользователей: %1", Удалено));
КонецПроцедуры
ПолучитьПользователей() возвращает массив — его можно безопасно обходить, удаляя элементы. В конфигурациях на БСП этот код использовать не стоит: он не тронет справочник «Пользователи» и оставит рассинхрон.
Скрипт очистки кэша на терминальном сервере
На терминальном сервере у каждого сотрудника свой профиль Windows. Чистить папки руками в двадцати профилях неудобно. Скрипт PowerShell от администратора:
Get-ChildItem "C:\Users" -Directory | ForEach-Object {
$paths = @("$($_.FullName)\AppData\Roaming\1C\1cv8",
"$($_.FullName)\AppData\Local\1C\1cv8")
foreach ($p in $paths) {
if (Test-Path $p) {
Get-ChildItem $p -Directory |
Where-Object { $_.Name -match '^[0-9a-f]{8}-' } |
Remove-Item -Recurse -Force
}
}
}
Он удаляет только папки-GUID и не трогает общие файлы. Запускайте, когда пользователи вышли из 1С: занятые файлы удалить не получится.
Почему пользователь не удаляется: разбор ошибок
/N с именем удалённого пользователя, либо включена аутентификация Windows для удалённого логина. Уберите параметр из ярлыка или настроек базы в окне запуска.