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

Особое внимание уделим скрытым сеансам, которые не отображаются в стандартном списке, но продолжают потреблять ресурсы сервера. Вы узнаете, как их обнаружить, почему они возникают (например, при аварийном завершении работы клиента) и как безопасно их удалить без риска повреждения данных. Также рассмотрим нюансы для разных версий платформы — от 1С:Предприятие 8.2 до последних релизов 8.3.23+, где механизм управления сеансами претерпел изменения.

Если вы администратор, разрабатываете интеграции или просто поддерживаете работоспособность базы — эта инструкция поможет избежать типичных ошибок, таких как принудительное завершение сеансов с открытыми транзакциями или игнорирование блокировок объектов. А в конце статьи вы найдёте FAQ с ответами на самые частые вопросы, включая проблемы с лицензиями и правами доступа.

1. Что такое сеансы в 1С и почему их нужно отключать

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

  • 🔄 Зависшие сеансы: пользователь закрыл программу некорректно (например, через диспетчер задач), но сессия осталась активной.
  • 🔒 Блокировки объектов: сеанс удерживает исключительную блокировку на документ или справочник, мешая другим пользователям работать.
  • 📉 Производительность: большое количество неактивных сеансов замедляет работу сервера, особенно в файловом варианте.
  • 🔄 Обновление конфигурации: некоторые операции (например, реструктуризация базы) требуют отсутствия активных подключений.

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

📊 Как часто вам приходится отключать сеансы в 1С?
Ежедневно
Несколько раз в неделю
Редко, только при проблемах
Никогда не приходилось

2. Способы отключения сеансов в файловом варианте 1С

В файловом варианте (когда база хранится в файле .1CD) управление сеансами осуществляется через Конфигуратор. Этот способ подходит для небольших баз с количеством пользователей до 10–15. Инструкция:

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

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

  • 🔄 Перезапуск агента 1С: в диспетчере задач (Ctrl+Shift+Esc) найдите процесс ragent.exe и завершите его. После этого сеансы должны исчезнуть.
  • 💻 Перезагрузка компьютера: если база локальная, иногда помогает обычная перезагрузка ПК.
  • 📂 Удаление файла блокировок: в папке с базой найдите файл 1Cv8.lck и удалите его (предварительно убедитесь, что все пользователи действительно отключены!).

Убедиться, что в сеансе не выполняются критичные операции|Сделать резервную копию базы|Предупредить пользователей о возможном обрыве работы|Проверить права доступа к папке с базой

-->

⚠️ Внимание: В файловом варианте принудительное завершение сеансов с открытыми транзакциями (например, в середине проведения документа) может привести к повреждению данных. Всегда проверяйте статус сеанса в колонке Состояние — если там указано Выполняется транзакция, дождитесь её завершения или используйте тестовое восстановление базы (Администрирование → Тестирование и исправление) после отключения.

3. Отключение сеансов в клиент-серверном варианте

В клиент-серверном варианте (с использованием 1С:Предприятие 8.3 Server) управление сеансами осуществляется через Консоль кластера серверов или оснастку администрирования 1С. Этот метод более надёжен и позволяет гибко управлять сеансами на уровне сервера.

Шаги для отключения через консоль кластера:

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

Для автоматизации можно использовать командную строку с утилитой rac.exe (входит в комплект серверной установки). Пример команды для завершения всех сеансов пользователя Иванов:

rac session terminate --cluster=ИмяКластера --infobase=ИмяБазы --user=Иванов --force

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

  1. В консоли кластера перейдите в Настройки кластера → Сеансы.
  2. Установите параметр Таймаут неактивного сеанса (мин) (рекомендуемое значение — 30–60 минут).
  3. Активируйте опцию Автоматически завершать неактивные сеансы.
Что делать, если в консоли кластера не отображаются сеансы?

Иногда сеансы не видны в консоли из-за проблем с лицензиями или правами. Проверьте:

1. Лицензии: Убедитесь, что на сервере достаточно лицензий 1С (в консоли кластера → раздел "Лицензии").

2. Права: Пользователь, под которым вы подключаетесь к консоли, должен иметь роль "Администратор кластера".

3. Службы: Перезапустите службу "Агент сервера 1С:Предприятия" на сервере (через services.msc).

4. Логи: Проверьте логи сервера (%ProgramData%\1C\1Cv8\logs) на наличие ошибок подключения.

Способ отключения Применимость Риски Требуемые права
Через конфигуратор (файловый вариант) Локальные базы, небольшие команды Низкие (если сеансы неактивны) Администратор базы
Через консоль кластера Клиент-серверный вариант Средние (принудительное завершение может прервать транзакции) Администратор кластера
Команда rac session terminate Автоматизация, скрипты Высокие (при неверных параметрах) Администратор ОС + права на кластер
Удаление файла 1Cv8.lck Файловый вариант (аварийные случаи) Высокие (риск повреждения данных) Полный доступ к папке базы

4. Как отключить скрытые сеансы, которые не видны в стандартных списках

Иногда в системе остаются "невидимые" сеансы, которые не отображаются ни в конфигураторе, ни в консоли кластера, но продолжают блокировать объекты. Это может происходить из-за:

  • 🖥️ Аварийного завершения работы клиентского ПК (например, отключение питания).
  • 🔌 Проблем с сетью (обрыв соединения при работе в клиент-серверном варианте).
  • 🤖 Фоновых задач (регламентные задания, обмены данными), которые "зависнут" на уровне СУБД.

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

Для файлового варианта:

  1. Закройте все экземпляры 1С:Предприятие и Конфигуратор.
  2. Удалите файл блокировок 1Cv8.lck в папке с базой.
  3. Если проблема осталась, проверьте процессы в диспетчере задач: должны отсутствовать 1cv8.exe, 1cv8s.exe, rmngr.exe.

Для клиент-серверного варианта:

  1. Подключитесь к SQL Server Management Studio (если используется MS SQL) или psql (для PostgreSQL).
  2. Выполните запрос для поиска активных сеансов 1С:
    -- Для MS SQL
    

    SELECT * FROM sys.dm_exec_sessions

    WHERE program_name LIKE '1C%'

    -- Для PostgreSQL

    SELECT * FROM pg_stat_activity

    WHERE application_name LIKE '1C%';

  3. Если найдёте подозрительные сеансы, завершите их командой:
    -- Для MS SQL
    

    KILL {SessionID};

    -- Для PostgreSQL

    SELECT pg_terminate_backend({PID});

После принудительного завершения сеансов на уровне СУБД обязательно выполните тестирование и исправление базы через конфигуратор (Администрирование → Тестирование и исправление) с отметками:

  • 🔍 Проверять логическую целостность
  • 🔧 Проверять ссылочную целостность
  • 🗑️ Реиндексировать таблицы
💡

Если скрытые сеансы появляются регулярно, настройте на сервере 1С параметр MaxUnusedSessions в файле конфигурации кластера (conf.cfg). Это ограничит количество неиспользуемых сеансов, которые могут накапливаться в системе.

5. Типичные ошибки при отключении сеансов и как их избежать

Даже опытные администраторы иногда допускают ошибки, которые ведут к потере данных или простою системы. Рассмотрим самые распространённые:

  1. Отключение сеанса с открытой транзакцией:

    Если в сеансе выполняется запись в базу (например, проведение документа), его принудительное завершение может привести к незафиксированным изменениям. Всегда проверяйте столбец Состояние в мониторе сеансов. Если там указано Транзакция активна, дождитесь её завершения или используйте команду:

    rac session list --cluster=ИмяКластера --infobase=ИмяБазы --full

    чтобы увидеть детальную информацию о блокировках.

  2. Игнорирование фоновых задач:

    Сеансы регламентных заданий (например, обменов данными или расчёта зарплаты) часто остаются незамеченными. Их отключение может прервать критичные процессы. Перед завершением проверьте вкладку Фоновые задания в консоли кластера.

  3. Недостаточные права:

    Для завершения сеансов в клиент-серверном варианте ваша учётная запись должна иметь роль Администратор кластера. Если кнопка Завершить неактивна, проверьте права в консоли кластера (Узлы → Пользователи).

  4. Отключение сеансов на реплицируемых базах:

    В кластерах с репликацией (например, при использовании 1С:ГИС или распределённых баз) принудительное завершение сеансов на главном узле может вызвать конфликты репликации. Всегда синхронизируйте действия с администратором репликации.

⚠️ Внимание: Если после отключения сеансов база перестала открываться с ошибкой "Файл базы данных повреждён", не пытайтесь восстановить её самостоятельно с помощью утилит вроде chdbfl.exe. Обратитесь в службу поддержки 1С с логами (%ProgramData%\1C\1Cv8\logs) — неквалифицированные действия могут усугубить проблему.

6. Автоматизация отключения сеансов: скрипты и регламентные задания

Для крупных организаций с сотнями пользователей ручное управление сеансами неэффективно. В таких случаях помогает автоматизация. Рассмотрим несколько подходов:

1. Скрипт на PowerShell для завершения неактивных сеансов

Следующий скрипт подключается к кластеру 1С и завершает сеансы, простаивающие более 1 часа:

$ClusterName = "ВашКластер"

$InfobaseName = "ВашаБаза"

$TimeoutMinutes = 60

Подключение к кластеру

$rac = "C:\Program Files\1cv8\8.3.x.x\bin\rac.exe"

$Sessions = & $rac session list --cluster=$ClusterName --infobase=$InfobaseName --output=json | ConvertFrom-Json

Фильтрация неактивных сеансов

$InactiveSessions = $Sessions | Where-Object { $_.IdleTime -gt $TimeoutMinutes }

Завершение сеансов

foreach ($session in $InactiveSessions) {

& $rac session terminate --cluster=$ClusterName --infobase=$InfobaseName --session=$session.SessionID --force

Write-Host "Завершён сеанс пользователя $($session.UserName), ID: $($session.SessionID)"

}

Чтобы скрипт работал, его нужно запускать от имени администратора и предварительно настроить планировщик задач Windows на регулярное выполнение (например, каждый час).

2. Регламентное задание в 1С для очистки сеансов

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

Процедура ЗавершитьНеактивныеСеансы() Экспорт

Таймаут = 3600; // 1 час в секундах

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

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

Если Сеанс.ВремяПростоя > Таймаут Тогда

Попытка

ЗавершитьСеанс(Сеанс.Идентификатор, Истина); // Истина - принудительно

Сообщить("Завершён сеанс: " + Сеанс.Пользователь);

Исключение

Сообщить("Ошибка завершения сеанса: " + ОписаниеОшибки());

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

КонецЕсли;

КонецЦикла;

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

Это задание можно запускать по расписанию (например, ночью) через Регламентные задания в конфигураторе.

3. Настройка кластера на автоматическое завершение

Самый надёжный способ — настроить сам кластер 1С на автоматическую очистку. Для этого:

  1. Откройте консоль кластера.
  2. Перейдите в Настройки кластера → Сеансы.
  3. Установите параметры:
    • 🕒 Таймаут неактивного сеанса (мин): 60
    • Автоматически завершать неактивные сеансы: Да
    • 🔄 Интервал проверки (сек): 300 (5 минут)
  • Сохраните настройки и перезапустите кластер (ПКМ по кластеру → Перезапустить).
  • 💡

    Автоматическое завершение сеансов через настройки кластера — самый безопасный метод, так как 1С сама контролирует целостность данных перед отключением. Однако он не поможет с "зависшими" сеансами, которые система считает активными.

    7. Особенности отключения сеансов в облачных и арендованных базах (1С:Fresh, 1С:Линк)

    Если вы работаете с облачными сервисами 1С (например, 1С:Fresh, 1С:Линк или арендованными базами у партнёров), возможности по управлению сеансами ограничены. В большинстве случаев вам будут доступны только:

    • 🌐 Личный кабинет: некоторые провайдеры предоставляют веб-интерфейс для управления сеансами (например, в 1С:Линк это раздел Управление базами → Активные сеансы).
    • 📞 Техническая поддержка: для принудительного завершения сеансов может потребоваться запрос в службу поддержки провайдера.
    • 🔄 Автоматические настройки: в облаке обычно уже настроено автоматическое завершение неактивных сеансов (таймаут — 15–30 минут).

    Пример интерфейса управления сеансами в 1С:Линк:

    Чтобы завершить сеанс:

    1. Авторизуйтесь в личном кабинете 1С:Линк.
    2. Выберите нужную базу в разделе Мои базы.
    3. Перейдите на вкладку Активные сеансы.
    4. Нажмите кнопку Завершить рядом с нужным сеансом.
    ⚠️ Внимание: В облачных сервисах принудительное завершение сеансов может быть ограничено по времени (например, в 1С:Fresh нельзя завершать сеансы в рабочие часы без согласования с поддержкой). Всегда уточняйте правила у вашего провайдера.

    Если вам часто приходится работать с облачными базами, полезно настроить уведомления о длительных сеансах. Например, в 1С:Линк можно создать правило:

    1. В личном кабинете перейдите в Настройки → Уведомления.
    2. Добавьте новое правило с условием Длительность сеанса > 1 часа.
    3. Укажите email или Telegram для оповещений.

    8. Проверка результатов и восстановление после отключения сеансов

    После завершения сеансов (особенно принудительного) необходимо убедиться, что база осталась в работоспособном состоянии. Следуйте этому чек-листу:

    Убедиться, что все пользователи могут подключиться к базе|Проверить журналы 1С на ошибки (%ProgramData%\1C\1Cv8\logs)|Выполнить тестирование и исправление базы|Проверить целостность критичных данных (остатки, документы)|Сделать резервную копию базы

    -->

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

    Симптом Возможная причина Решение
    База не открывается, ошибка "Файл повреждён" Прервана транзакция при записи в базу Выполнить Тестирование и исправление с галочками Исправлять ошибки и Реиндексировать таблицы
    Пользователи не могут войти, ошибка "Превышено число лицензий" Сеансы не освободили лицензии Перезапустить службу 1C:Enterprise 8.3 Server Agent
    Медленная работа базы после отключения сеансов Фрагментация индексов или блокировки на уровне СУБД Выполнить реиндексацию через SQL или команду rac infobase reindex
    Ошибка "Объект заблокирован другим пользователем" Остались невидимые блокировки Проверьте блокировки через SQL-запрос (см. раздел 4)

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

    1. В конфигураторе перейдите в Администрирование → Поддержка и обслуживание → Настройки технологического журнала.
    2. Установите уровень логирования Отладка для разделов Сеансы и Блокировки.
    3. Воспроизведите проблему и проанализируйте логи в папке %ProgramData%\1C\1Cv8\logs.

    Для сложных случаев (например, когда база не открывается даже в конфигураторе) можно использовать утилиту chdbfl.exe, но только после согласования с поддержкой 1С. Пример команды для проверки целостности:

    chdbfl.exe C:\Path\To\Your\Base.1CD /Check /Fix
    💡

    Если после отключения сеансов пользователи жалуются на потерю несохранённых данных, напомните им о функции автосохранения в 1С. Настройте её в Сервис → Параметры → Автосохранение (рекомендуемый интервал — 5–10 минут).

    FAQ: Частые вопросы об отключении сеансов в 1С

    Могу ли я отключить сеанс другого пользователя, если у меня нет прав администратора?

    Нет, для завершения чужих сеансов требуются права администратора базы (в файловом варианте) или администратора кластера (в клиент-серверном). Если у вас нет таких прав, обратитесь к администратору или используйте личный кабинет облачного сервиса (если база арендована).

    Исключение: в файловом варианте вы можете завершить свой собственный сеанс через диспетчер задач (процесс 1cv8.exe), но это не гарантирует освобождение блокировок в базе.

    Что делать, если после отключения сеанса база стала открываться в режиме "Только чтение"?

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

    1. Выполнить Тестирование и исправление базы с галочками Исправлять ошибки и Реиндексировать таблицы.
    2. Если не поможет — восстановить базу из резервной копии.
    3. В крайнем случае обратиться в поддержку 1С с логами (%ProgramData%\1C\1Cv8\logs).

    В будущем избегайте принудительного завершения сеансов со статусом Транзакция активна.

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

    В клиент-серверном варианте используйте команду:

    rac session terminate --cluster=ИмяКластера --infobase=ИмяБазы --all --force

    Для файлового варианта можно написать скрипт на 1С:Предприятие, который пройдётся по всем сеансам и завершит их:

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

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

    ЗавершитьСеанс(Сеанс.Идентификатор, Истина);

    КонецЦикла;

    ⚠️ Предупреждение: массовое завершение сеансов может привести к потере несохранённых данных пользователей. Всегда предупреждайте пользователей заранее!

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

    Это возможно, если:

    • Сервер 1С (ragent.exe, rmngr.exe) не был корректно остановлен перед перезагрузкой.
    • Используется отказоустойчивый кластер (например, с Microsoft Failover Cluster), где сеансы мигрируют между узлами.
    • В настройках кластера включён параметр SaveSessionsOnRest