Работа с 1С:Предприятие 8.3 часто требует административного вмешательства, когда нужно срочно обновить конфигурацию, сделать резервную копию или устранить блокировки в базе данных. Основная проблема — активные пользователи, которые мешают выполнить эти операции. Их сеансы блокируют файлы базы, что приводит к ошибкам вроде «База данных используется другим пользователем» или «Не удалось получить монопольный доступ».

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

Почему нельзя просто закрыть 1С у пользователей?

Многие администраторы пытаются решить проблему радикально: просят сотрудников закрыть программу или принудительно завершают процесс 1cv8.exe через диспетчер задач. Этот подход чреват:

  • 🔴 Потерей несохранённых данных: если пользователь вёл документ или отчёт, изменения могут не сохраниться.
  • 🔴 Повреждением транзакций: прерванные операции в базе (например, проведение документа) оставляют «висящие» блокировки.
  • 🔴 Ошибками в журнале регистрации: принудительное отключение фиксируется как аварийное завершение сеанса.
  • 🔴 Проблемами с лицензиями: при использовании аппаратных ключей (HASP) резкое завершение может привести к их «зависанию».

Корректное отключение должно проходить через механизмы самой платформы , которые гарантируют:

  • ✅ Сохранение открытых документов (если пользователь не запретил автосохранение).
  • ✅ Освобождение блокировок в базе данных.
  • ✅ Логирование события в журнале регистрации.
📊 Как вы обычно отключаете пользователей в 1С?
Через конфигуратор
Использую скрипты
Перезагружаю сервер
Прошу закрыть программу вручную

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

Самый безопасный и рекомендуемый платформой способ — использование встроенного функционала Конфигуратора. Он доступен администраторам и пользователям с правами «Администрирование».

Инструкция:

  1. Откройте 1С:Предприятие в режиме Конфигуратор (выберите базу, удерживайте Shift при запуске).
  2. Перейдите в меню Администрирование → Активные пользователи.
  3. В списке выберите пользователя(ей), которых нужно отключить. Для множественного выбора используйте Ctrl+клик.
  4. Нажмите кнопку Отключить (или Завершить сеанс в некоторых версиях).
  5. Подтвердите действие в диалоговом окне.

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

  • ⚡ Быстрота — сеансы завершаются за несколько секунд.
  • 🛡️ Безопасность — платформа сама обрабатывает освобождение ресурсов.
  • 📝 Логирование — событие фиксируется в журнале регистрации.

Убедиться, что у вас права администратора

Проверить, нет ли критичных операций у пользователей (проведение документов, выгрузка данных)

Сделать резервную копию базы (рекомендуется при массовом отключении)

Предупредить пользователей о принудительном завершении (по возможности)-->

Ограничения:

  • 🔄 Не работает, если пользователь открыл модальное окно (например, печать документа) — сеанс не завершится, пока окно не закроется.
  • 🔒 В клиент-серверном варианте требует прав на сервере 1С:Предприятия.
  • 🚫 Не срабатывает для «зависших» сеансов (когда процесс 1cv8.exe не отвечает).
Что делать, если кнопка "Отключить" неактивна?

Если кнопка Отключить недоступна, это означает, что у вашей учётной записи недостаточно прав. Проверьте:

1. Запущен ли Конфигуратор от имени администратора (правая кнопка → "Запуск от имени администратора").

2. Есть ли у вашего пользователя роль "Администрирование" в настройках безопасности (Администрирование → Пользователи).

3. Не блокирует ли антивирус доступ к файлам базы (особенно актуально для файлового варианта).

Если права подтверждены, но кнопка всё равно неактивна, попробуйте перезапустить службу 1С:Предприятия на сервере.

Способ 2: Принудительное отключение через скрипт (встроенный язык)

Когда стандартные методы не работают (например, при «зависших» сеансах), можно использовать скрипт на встроенном языке . Этот способ требует знания основ программирования, но даёт больше контроля.

Пример кода для отключения всех пользователей, кроме текущего:

Процедура ОтключитьВсехПользователей()

Сеансы = ПолучаемСписокСеансов();

Для Каждого Сеанс Из Сеансы Цикл

Если Сеанс.ИмяПользователя <> ТекущийПользователь() Тогда

Попытка

ОтключитьСеанс(Сеанс.Идентификатор);

Сообщить("Отключён пользователь: " + Сеанс.ИмяПользователя);

Исключение

Сообщить("Ошибка при отключении " + Сеанс.ИмяПользователя + ": " + ОписаниеОшибки());

КонецПопытки;

КонецЕсли;

КонецЦикла;

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

Функция ПолучаемСписокСеансов()

Возврат ПолучаемСеансыИнформационнойБазы();

КонецФункции

Как запустить скрипт:

  1. Откройте Конфигуратор и перейдите в Файл → Новый → Внешняя обработка.
  2. Вставьте код в модуль обработки.
  3. Сохраните файл (например, ОтключениеПользователей.epf).
  4. Запустите обработку в режиме 1С:Предприятие с правами администратора.
💡

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

Предупреждения:

⚠️ Внимание: Скрипт не проверяет, сохранены ли данные у пользователей. Принудительное отключение может привести к потере несохранённых изменений. Всегда предупреждайте сотрудников заранее.
Ситуация Рекомендуемый метод Риски
Пользователь отвечает на запросы Конфигуратор (Администрирование → Активные пользователи) Минимальные (данные сохранятся)
Сеанс «завис» (нет ответа) Скрипт с принудительным отключением Возможна потеря несохранённых данных
Нужно отключить всех кроме админа Скрипт с фильтрацией по имени пользователя Средние (зависит от логики скрипта)
Блокировка файлов в файловом варианте Перезапуск службы 1С:Предприятия или сервера Высокие (риск повреждения базы)

Способ 3: Отключение через оснастку «Управление кластером серверов 1С»

В клиент-серверных конфигурациях (например, 1С:УПП, 1С:ERP) для управления сеансами можно использовать оснастку «Управление кластером серверов 1С». Она входит в комплект поставки серверной версии платформы и устанавливается вместе с 1С:Предприятием.

Пошаговая инструкция:

  1. Откройте Пуск → Панель управления → Администрирование → Управление кластером серверов 1С.
  2. В дереве слева выберите нужный кластер (если их несколько).
  3. Перейдите на вкладку Сеансы.
  4. В списке найдите пользователя, которого нужно отключить. Здесь отображаются:
    • Имя пользователя
    • Имя компьютера
    • Время начала сеанса
    • Состояние (активен/неактивен)
  5. Кликните правой кнопкой по сеансу и выберите Завершить сеанс.
  6. Особенности метода:

    • 🔧 Работает только для клиент-серверного варианта (не подходит для файловой базы).
    • 📊 Показывает расширенную информацию о сеансах (например, используемые блокировки).
    • 🔄 Можно завершать сеансы на конкретном рабочем сервере кластера.
    ⚠️ Внимание: Если в оснастке отображаются «зависшие» сеансы с статусом Не отвечает, их принудительное завершение может потребовать перезапуска службы ragent на сервере. Это приведёт к кратковременному отключению всех пользователей.

    Способ 4: Утилита rac для администрирования кластера

    Для опытных администраторов предусмотрена консольная утилита rac.exe (Remote Administration Console), которая позволяет управлять кластером серверов из командной строки. Она расположена в каталоге установки 1С:Предприятия (обычно C:\Program Files\1cv8\<версия>\bin\rac.exe).

    Примеры команд:

    • Просмотр активных сеансов:
      rac session list --cluster=<имя_кластера>
    • Принудительное завершение сеанса по ID:
      rac session terminate --cluster=<имя_кластера> --session=
    • Завершение всех сеансов пользователя:
      rac session terminate --cluster=<имя_кластера> --user=<имя_пользователя> --all

    Преимущества rac.exe:

    • 🖥️ Удалённое управление (можно подключаться к серверу по сети).
    • 📋 Автоматизация (команды можно встраивать в скрипты .bat или .ps1).
    • 🔍 Подробная информация о сеансах (включая блокировки).

    Недостатки:

    • 📚 Требует знания синтаксиса команд.
    • 🔒 Опасно для новичков — ошибка в команде может завершить не те сеансы.
    • 🛑 Не работает с файловой базой.
    💡

    Утилита rac.exe — самый мощный инструмент для администрирования кластера, но требует осторожности. Всегда проверяйте ID сеансов перед завершением, особенно в продуктивных базах.

    Способ 5: Отключение через SQL-запрос (для опытных)

    В клиент-серверном варианте с использованием Microsoft SQL Server или PostgreSQL можно завершить сеансы напрямую через SQL-запросы. Этот метод подходит только администраторам баз данных и требует понимания структуры системных таблиц .

    Пример запроса для MS SQL Server:

    -- Найти активные сеансы 1С
    

    SELECT

    ses.session_id,

    ses.login_name,

    ses.host_name,

    ses.program_name,

    ses.last_request_start_time

    FROM

    sys.dm_exec_sessions ses

    WHERE

    ses.program_name LIKE '%1cv8%';

    -- Принудительно завершить сеанс по ID

    KILL 55; -- замените 55 на реальный ID сеанса

    Для PostgreSQL:

    -- Найти активные соединения 1С
    

    SELECT

    pid,

    usename,

    application_name,

    client_addr,

    query_start

    FROM

    pg_stat_activity

    WHERE

    application_name LIKE '%1cv8%';

    -- Завершить соединение

    SELECT pg_terminate_backend(1234); -- замените 1234 на реальный PID

    Предупреждения:

    ⚠️ Внимание: Принудительное завершение SQL-сеансов может привести к:
    • 🔴 Повреждению транзакций в базе данных.
    • 🔴 Несогласованности данных (если сеанс вёл запись в таблицы).
    • 🔴 Блокировке базы для других пользователей до восстановления.

    Используйте этот метод только в крайних случаях, когда:

    • Сеанс «завис» и не реагирует на другие способы отключения.
    • Вы уверены, что пользователь не вёл критичных операций.
    • У вас есть резервная копия базы.

Способ 6: Перезапуск службы 1С или сервера (крайняя мера)

Если все предыдущие методы не сработали (например, при глобальном «зависаньи» кластера), остаётся перезапустить службу 1С:Предприятия или весь сервер. Это гарантированно разорвёт все сеансы, но имеет максимальные риски.

Инструкция для Windows:

  1. Откройте Пуск → Выполнить → services.msc.
  2. Найдите службу 1С:Предприятие 8.3 Сервер (или Agent сервера 1С:Предприятия 8.3).
  3. Кликните правой кнопкой и выберите Перезапустить.

Для Linux (если сервер 1С работает под Linux):

sudo systemctl restart srv1cv83

Последствия перезапуска:

  • 🔴 Все пользователи будут отключены без сохранения данных.
  • 🔴 Возможны ошибки в базе при восстановлении сеансов.
  • 🔴 Требуется время на повторное подключение (особенно при большом количестве пользователей).
⚠️ Внимание: Если база работает в файловом варианте, перезапуск службы не поможет — нужно завершать процесс 1cv8.exe на каждом компьютере пользователя или перезагружать их машины. В этом случае лучше использовать скрипт или утилиту rac (если есть кластер).

Частые ошибки и как их избежать

При отключении пользователей администраторы часто сталкиваются с типовыми проблемами. Разберём самые распространённые:

Ошибка Причина Решение
Не удалось завершить сеанс: доступ запрещён Недостаточно прав в или на сервере Проверьте роль пользователя в Конфигураторе (Администрирование → Пользователи) и права на папку базы
Сеанс не найден в списке активных Пользователь уже отключился или сеанс «завис» на уровне ОС Проверьте процесс 1cv8.exe в Диспетчере задач
База данных заблокирована другим пользователем Остались неосвобождённые блокировки после аварийного отключения Выполните Тестирование и исправление базы в Конфигураторе
Ошибка соединения с кластером Служба ragent не работает или неправильные настройки подключения Проверьте статус службы и параметры в C:\ProgramData\1C\1cv8\<версия>\conf.cfg

Советы для предотвращения проблем:

  • 📅 Планируйте отключения: используйте Администрирование → Регламентные задания для автоматического завершения сеансов в нерабочее время.
  • 🔔 Настройте уведомления: перед массовым отключением отправляйте пользователям сообщения через или корпоративный чат.
  • 💾 Автоматизируйте резервное копирование: настройте автосохранение базы перед критичными операциями.
  • 🛠️ Мониторьте блокировки: используйте оснастку Управление кластером для отслеживания долгих транзакций.

FAQ: Ответы на частые вопросы

Можно ли отключить пользователя, не прерывая его работу?

Нет, любое отключение через административные инструменты приводит к завершению сеанса. Однако можно:

  • Попросить пользователя сохранить данные и закрыть программу самостоятельно.
  • Использовать скрипт с уведомлением: перед отключением показать пользователю сообщение с таймером (например, «Ваш сеанс будет завершён через 5 минут»).
Что делать, если после отключения пользователя база стала работать медленно?

Это признак неосвобождённых блокировок или повреждённых транзакций. Выполните:

  1. Тестирование и исправление базы в Конфигураторе (Администрирование → Тестирование и исправление).
  2. Перезапустите службу 1С:Предприятия.
  3. Проверьте журнал регистрации на ошибки (Администрирование → Журнал регистрации).

Если проблема сохраняется, восстановите базу из резервной копии.

Как отключить всех пользователей кроме администраторов?

Используйте скрипт с фильтрацией по ролям. Пример:

Процедура ОтключитьНеАдминов()

Сеансы = ПолучаемСписокСеансов();

Для Каждого Сеанс Из Сеансы Цикл

Пользователь = ПолучаемПользователяПоИмени(Сеанс.ИмяПользователя);

Если НЕ Пользователь.Роли.Найти("Администрирование") Тогда

ОтключитьСеанс(Сеанс.Идентификатор);

КонецЕсли;

КонецЦикла;

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

Альтернативно — завершайте сеансы вручную через Конфигуратор, проверяя роль каждого пользователя.

Почему после отключения пользователя он снова появляется в списке активных?

Это происходит, если:

  • Пользователь автоматически переподключается (например, через тонкий клиент с автологоном).
  • Сеанс «завис» на уровне ОС, и процесс 1cv8.exe не завершился.
  • Включено кэширование сеансов на сервере (проверьте настройки кластера).

Решение: завершите процесс 1cv8.exe через Диспетчер задач или перезапустите службу .

Как запретить пользователям подключаться к базе на время обновления?

Варианты:

  • Измените пароль пользователя Администратор и верните его после обновления.
  • Настройте регламентное задание, которое будет блокировать подключения в указанное время.
  • Используйте файл блокировки: создайте файл 1Cv8.lck в каталоге базы — это запретит новые подключения (но не разорвёт существующие сеансы).
  • Отключите службу 1С:Предприятия на сервере.