Завершаем сеансы и удаляем пользователей из базы 1С
Содержание
Чаще всего «сбросить пользователей» нужно не для того, чтобы кого-то удалить навсегда, а чтобы освободить базу: завершить зависший сеанс, снять блокировку перед обновлением или закрыть вход всем, пока идут регламентные работы. Это две разные задачи — завершить сеанс и удалить пользователя из информационной базы, — и путают их постоянно.
В клиент-серверной базе сеансами управляют через консоль кластера или утилиту rac. В файловой базе отдельной службы сеансов нет — там действуют иначе. А удаление самого пользователя (его логина и прав) — это третья операция, которую делают либо в режиме 1С:Предприятие, либо в Конфигураторе. Ниже — что из этого когда применять, с точными путями.
Чем сеанс отличается от пользователя
Это ключевое различие, без него легко сломать не то.
- 🧑💻 Пользователь информационной базы — это учётная запись для входа: логин, способ аутентификации, набор ролей. Он существует постоянно, пока вы его не удалите.
- 🔌 Сеанс — это конкретное подключение этого пользователя прямо сейчас. Один человек может держать несколько сеансов (толстый клиент, веб-клиент, фоновое задание). Сеанс живёт, пока открыт клиент или не завершён принудительно.
Отсюда простое правило: если кто-то «завис», забыл выйти перед уходом домой или держит базу перед обновлением — нужно завершить сеанс, а учётка остаётся. Если сотрудник уволился и доступ больше не нужен — тогда снимают право входа или удаляют пользователя.
Перед тем как кого-то выкидывать из базы, посмотрите список активных: в режиме 1С:Предприятие это Все функции → Стандартные → Активные пользователи. Так вы увидите, кто и с какого компьютера подключён, и не оборвёте чужую работу вслепую.
Как завершить сеансы в клиент-серверной базе
В клиент-сервере все сеансы видит и завершает кластер серверов . Способа два: графическая консоль и командная строка.
Через консоль администрирования серверов
Оснастка называется Администрирование серверов 1С:Предприятия (ставится вместе с сервером). Порядок:
- Запустите консоль, разверните
Central server → Кластеры → ваш кластер. - Откройте узел
Сеансы. В списке — все активные подключения: пользователь, приложение, компьютер, время начала. - Выделите нужный сеанс (или несколько с
Ctrl), правой кнопкой →Удалить.
Сеанс закрывается в течение нескольких секунд. Клиент у пользователя при этом завершится — несохранённые данные в открытой форме пропадут.
Частая причина «не отпускает базу», даже когда все люди вышли, — фоновые и регламентные задания. В списке сеансов они видны как приложение BackgroundJob или фоновое задание без привязки к конкретному сотруднику. Их тоже видно в узле Сеансы, и при подготовке к обновлению их нужно либо дождаться, либо завершить вместе с остальными. Если задания запускаются по расписанию и тут же цепляют базу снова — отключите расписание регламентных заданий на время работ.
Прежде чем массово завершать сеансы, предупредите людей. Принудительное завершение обрывает работу: незаписанный документ потеряется, а если пользователь был в середине длинной операции — она прервётся на полпути.
Через командную строку rac
Если графической консоли под рукой нет (например, на Linux-сервере), работает утилита rac из каталога bin платформы. Базовая логика:
rac cluster list
rac session list --cluster=<идентификатор кластера>
rac session terminate --cluster=<идентификатор кластера> --session=<идентификатор сеанса>
Первая команда покажет идентификатор кластера, вторая — список сеансов с их UUID, третья завершит конкретный сеанс. Точный набор параметров и аутентификацию (администратор кластера) смотрите в rac help — там же команды для просмотра лицензий (rac session list --licenses).
Не используйте rac для «пересоздания кластера» и не удаляйте базу из списка, если просто не можете войти — так теряется вся служебная настройка. Для разлогинивания достаточно завершить сеансы.
Как закрыть сеансы в файловой базе
В файловом варианте нет службы кластера и нет узла Сеансы. Управлять подключениями на уровне сервера нечем — каждый клиент работает с файлом 1Cv8.1CD напрямую.
Что реально помогает:
- 👥 Попросить всех выйти. Список подключённых виден в
Все функции → Стандартные → Активные пользователи. - 🖥 Если клиент завис и не закрывается, снять процесс
1cv8.exeна машине пользователя (Диспетчер задач). После этого блокировка освобождается. - 🔄 Если база «думает», что в ней ещё кто-то есть, хотя все вышли — убедитесь, что на всех компьютерах закрыты окна 1С и нет запущенного веб-клиента или фонового задания.
Не удаляйте служебные файлы из каталога базы «для сброса». Пока с файловой базой кто-то работает, вмешательство в её файлы ведёт к повреждению данных. Сначала убедитесь, что все процессы 1cv8 закрыты, и только потом делайте резервную копию и действуйте.
Как заблокировать вход, пока идут работы
Отдельная задача — не выгнать текущих, а запретить новые входы: перед обновлением, свёрткой, тестированием.
В режиме 1С:Предприятие (БП 3.0, ЗУП 3.1, УТ 11) откройте Администрирование → Обслуживание → Блокировка работы пользователей. Здесь задаётся время начала блокировки, текст сообщения для пользователей и код, по которому администратор сам сможет войти. По наступлении времени действующие сеансы завершаются, новые входы отклоняются.
В клиент-сервере то же самое делается в свойствах информационной базы через консоль кластера: флаг Блокировка начала сеансов включена, сообщение и код разрешения. Пользователь с этим кодом (ключ /UC в параметрах запуска) войдёт даже при включённой блокировке.
Таблица — какой способ когда удобнее:
| Ситуация | Способ |
|---|---|
| Надо выгнать одного зависшего | Консоль кластера → Сеансы → Удалить |
| Запретить вход всем на час обновления | Блокировка работы пользователей (в базе) |
| Сервер на Linux, нет оснастки | rac session terminate |
| Файловая база | Попросить выйти / снять процесс на машине |
Монопольный режим: когда он реально нужен
Распространённое заблуждение — что Конфигуратор «захватывает базу монопольно» при любом открытии. Это не так. Открыть Конфигуратор можно и при работающих пользователях.
Монопольный (исключительный) доступ нужен только для операций, меняющих структуру или целостность базы:
- обновление конфигурации базы данных (когда меняется структура);
- загрузка и выгрузка
.dt; - тестирование и исправление информационной базы;
- загрузка расширения конфигурации , которое меняет структуру.
Если при такой операции платформа пишет, что база занята, — значит, остались активные сеансы. Их и нужно завершить (способами выше) либо включить блокировку начала сеансов и дождаться, пока все выйдут. Снимать монопольность «силой» не надо — надо убрать тех, кто мешает.
Для планового обновления удобнее сначала включить блокировку работы пользователей с запасом по времени, разослать предупреждение, а уже потом заходить в Конфигуратор. Тогда никого не придётся выкидывать вручную.
Как удалить пользователя из информационной базы
Теперь про саму учётку. Здесь важно, что в типовых конфигурациях есть два связанных объекта:
- Пользователь информационной базы — логин и аутентификация на уровне платформы;
- Элемент справочника
Пользователи— карточка сотрудника в прикладном решении, к которой привязан этот логин.
Как действовать:
- Снять доступ, не удаляя. Самый безопасный вариант для уволившихся. В режиме 1С:Предприятие откройте
Администрирование → Настройки пользователей и прав → Пользователи, зайдите в карточку и снимите флагВход в программу разрешён. Человек больше не войдёт, но все его документы и история действий останутся корректными. - Пометить на удаление. В том же списке выделите пользователя →
Пометить на удаление. Затем черезАдминистрирование → Обслуживание → Удаление помеченных объектовпрограмма проверит ссылки и удалит, если на пользователя ничего не ссылается. - Удалить логин в Конфигураторе.
Администрирование → Пользователи— здесь живут именно учётные записи входа. Удаление строки убирает возможность входа, но карточку в справочнике не трогает.
Если на пользователя ссылаются документы (а он почти всегда автор каких-то записей), полное удаление не пройдёт — останутся битые ссылки. В рабочей базе правильнее запретить вход, а не удалять. Сначала резервная копия, потом любое удаление.
Отдельно про администратора. Если потерян пароль администратора базы, его можно сбросить через Конфигуратор под другой учёткой с полными правами. А вот с паролем администратора кластера серверов так не выйдет: его не «ломают» запросами — останавливают службу сервера, восстанавливают служебные файлы кластера из резервной копии или обращаются к администратору сервера. Пересоздавать кластер и удалять его настройки ради забытого пароля нельзя — потеряете все зарегистрированные базы.
rac session list --licenses) или добавьте лицензии.Почему не стоит чистить пользователей напрямую через SQL
В клиент-серверной базе под MS SQL или PostgreSQL возникает соблазн «почистить пользователей запросом» — особенно у тех, кто привык к администрированию СУБД. Делать этого не нужно, и вот почему.
Список пользователей и их аутентификация хранятся в служебных структурах 1С в зашифрованном виде и обслуживаются платформой. Прямое изменение системных таблиц 1С средствами СУБД не поддерживается и ломает аутентификацию: база перестаёт открываться, а восстановление — только из резервной копии.
Что из «уровня СУБД» законно и иногда нужно:
- 🔎 Посмотреть, какое соединение держит блокировку. В MS SQL это
Activity Monitorили системные представления; в PostgreSQL —pg_stat_activity. Это диагностика, а не чистка. - 🛑 В крайнем случае снять подвисшее соединение на уровне СУБД. Но «убитое» соединение — это не чистое завершение сеанса 1С: открытая транзакция откатится, и клиент получит ошибку. Делать это стоит, только если сеанс не завершается штатно через консоль.
Правильный «продвинутый» инструмент — это не SQL, а всё та же rac из командной строки плюс консоль кластера. Они работают с базой через платформу и не нарушают целостность. Если же задача — массово изменить права или роли сразу у многих пользователей, это делается не запросом к СУБД, а групповой обработкой в режиме 1С:Предприятие или типовой настройкой профилей групп доступа: платформа сама корректно перепишет служебные структуры.
Снятие соединения на уровне СУБД обрывает транзакцию и может оставить незавершённую операцию. Применяйте только к действительно мёртвым сеансам, которые не снимаются обычным способом, и обязательно при наличии свежей резервной копии.
Как не доводить до аварийного сброса
Большинство «срочных сбросов» — следствие того, что люди не выходят из базы на ночь и перед обновлениями. Несколько привычек снимают проблему.
Ещё несколько мер на каждый день:
- ⏰ Настройте автоматическое завершение неактивных сеансов — параметр тайм-аута задаётся в свойствах информационной базы на уровне кластера. Забытые с вечера клиенты будут отключаться сами.
- 🔑 Для уволенных снимайте флаг входа сразу, а не копите «мёртвые» учётки — так и лицензии не занимаются, и список чище.
- 📋 Держите расписание обновлений, чтобы блокировку включать заранее, а не выгонять людей в рабочее время.
Частые вопросы
Завершение сеанса удаляет пользователя?
Можно ли завершить сеанс в файловой базе через консоль?
1cv8.exe на машине пользователя.Что делать, если не знаю код разрешения при включённой блокировке?
Пользователь уволился — удалять его или просто запретить вход?
Вход в программу разрешён). Полное удаление часто не проходит из-за ссылок в документах, которые он создавал, и оставляет битые ссылки.Как узнать, кто сейчас держит базу перед обновлением?
Все функции → Стандартные → Активные пользователи. В клиент-сервере — узел Сеансы в консоли кластера или команда rac session list.