Работа с сеансами в 1С:Предприятие — одна из самых частых административных задач, с которой сталкиваются как начинающие, так и опытные специалисты. Некорректно завершённые сессии могут блокировать доступ к базе, замедлять работу системы или даже приводить к ошибкам при обновлении конфигурации. В этой статье мы разберём все актуальные способы отключения сеансов — от ручного прерывания через конфигуратор до автоматизированных скриптов для серверного варианта работы.
Особое внимание уделим скрытым сеансам, которые не отображаются в стандартном списке, но продолжают потреблять ресурсы сервера. Вы узнаете, как их обнаружить, почему они возникают (например, при аварийном завершении работы клиента) и как безопасно их удалить без риска повреждения данных. Также рассмотрим нюансы для разных версий платформы — от 1С:Предприятие 8.2 до последних релизов 8.3.23+, где механизм управления сеансами претерпел изменения.
Если вы администратор, разрабатываете интеграции или просто поддерживаете работоспособность базы — эта инструкция поможет избежать типичных ошибок, таких как принудительное завершение сеансов с открытыми транзакциями или игнорирование блокировок объектов. А в конце статьи вы найдёте FAQ с ответами на самые частые вопросы, включая проблемы с лицензиями и правами доступа.
1. Что такое сеансы в 1С и почему их нужно отключать
Сеанс в 1С:Предприятие — это активное подключение пользователя или фонового процесса к информационной базе. Каждый сеанс потребляет ресурсы сервера (память, процессорное время) и может блокировать объекты базы данных (документы, справочники, регистры) для других пользователей. Основные причины, по которым требуется принудительное отключение:
- 🔄 Зависшие сеансы: пользователь закрыл программу некорректно (например, через диспетчер задач), но сессия осталась активной.
- 🔒 Блокировки объектов: сеанс удерживает исключительную блокировку на документ или справочник, мешая другим пользователям работать.
- 📉 Производительность: большое количество неактивных сеансов замедляет работу сервера, особенно в файловом варианте.
- 🔄 Обновление конфигурации: некоторые операции (например, реструктуризация базы) требуют отсутствия активных подключений.
Важно понимать, что не все сеансы можно отключить без последствий. Например, если в сеансе выполняется длительная операция (например, проведение документа с большим количеством движений), его принудительное завершение может привести к неконсистентности данных. Поэтому перед отключением всегда проверяйте статус сеанса в мониторе активных пользователей.
2. Способы отключения сеансов в файловом варианте 1С
В файловом варианте (когда база хранится в файле .1CD) управление сеансами осуществляется через Конфигуратор. Этот способ подходит для небольших баз с количеством пользователей до 10–15. Инструкция:
- Закройте все окна 1С:Предприятие на клиентских машинах.
- Запустите Конфигуратор от имени администратора (правая кнопка мыши →
Запуск от имени администратора). - В меню выберите
Администрирование → Активные пользователи. - В открывшемся окне вы увидите список всех активных сеансов с указанием пользователя, компьютера, времени начала и статуса.
- Выделите нужный сеанс и нажмите кнопку
Завершить.
Если сеанс не завершается стандартным способом (кнопка Завершить неактивна или ничего не происходит), попробуйте следующие действия:
- 🔄 Перезапуск агента 1С: в диспетчере задач (
Ctrl+Shift+Esc) найдите процессragent.exeи завершите его. После этого сеансы должны исчезнуть. - 💻 Перезагрузка компьютера: если база локальная, иногда помогает обычная перезагрузка ПК.
- 📂 Удаление файла блокировок: в папке с базой найдите файл
1Cv8.lckи удалите его (предварительно убедитесь, что все пользователи действительно отключены!).
Убедиться, что в сеансе не выполняются критичные операции|Сделать резервную копию базы|Предупредить пользователей о возможном обрыве работы|Проверить права доступа к папке с базой
-->
⚠️ Внимание: В файловом варианте принудительное завершение сеансов с открытыми транзакциями (например, в середине проведения документа) может привести к повреждению данных. Всегда проверяйте статус сеанса в колонкеСостояние— если там указаноВыполняется транзакция, дождитесь её завершения или используйте тестовое восстановление базы (Администрирование → Тестирование и исправление) после отключения.
3. Отключение сеансов в клиент-серверном варианте
В клиент-серверном варианте (с использованием 1С:Предприятие 8.3 Server) управление сеансами осуществляется через Консоль кластера серверов или оснастку администрирования 1С. Этот метод более надёжен и позволяет гибко управлять сеансами на уровне сервера.
Шаги для отключения через консоль кластера:
- Откройте Консоль кластера серверов 1С (пуск →
1С Предприятие 8.3 → Администрирование кластера серверов). - Подключитесь к нужному кластеру (если их несколько).
- Перейдите в раздел
Информационные базыи выберите нужную базу. - В правой части окна откройте вкладку
Сеансы. - Выделите сеанс(ы) для завершения и нажмите
Завершить(илиЗавершить принудительно, если стандартный способ не срабатывает).
Для автоматизации можно использовать командную строку с утилитой rac.exe (входит в комплект серверной установки). Пример команды для завершения всех сеансов пользователя Иванов:
rac session terminate --cluster=ИмяКластера --infobase=ИмяБазы --user=Иванов --force
Если вы администрируете большой кластер с сотнями пользователей, полезно настроить автоматическое завершение неактивных сеансов. Для этого:
- В консоли кластера перейдите в
Настройки кластера → Сеансы. - Установите параметр
Таймаут неактивного сеанса (мин)(рекомендуемое значение — 30–60 минут). - Активируйте опцию
Автоматически завершать неактивные сеансы.
Что делать, если в консоли кластера не отображаются сеансы?
Иногда сеансы не видны в консоли из-за проблем с лицензиями или правами. Проверьте:
1. Лицензии: Убедитесь, что на сервере достаточно лицензий 1С (в консоли кластера → раздел "Лицензии").
2. Права: Пользователь, под которым вы подключаетесь к консоли, должен иметь роль "Администратор кластера".
3. Службы: Перезапустите службу "Агент сервера 1С:Предприятия" на сервере (через services.msc).
4. Логи: Проверьте логи сервера (%ProgramData%\1C\1Cv8\logs) на наличие ошибок подключения.
| Способ отключения | Применимость | Риски | Требуемые права |
|---|---|---|---|
| Через конфигуратор (файловый вариант) | Локальные базы, небольшие команды | Низкие (если сеансы неактивны) | Администратор базы |
| Через консоль кластера | Клиент-серверный вариант | Средние (принудительное завершение может прервать транзакции) | Администратор кластера |
Команда rac session terminate |
Автоматизация, скрипты | Высокие (при неверных параметрах) | Администратор ОС + права на кластер |
Удаление файла 1Cv8.lck |
Файловый вариант (аварийные случаи) | Высокие (риск повреждения данных) | Полный доступ к папке базы |
4. Как отключить скрытые сеансы, которые не видны в стандартных списках
Иногда в системе остаются "невидимые" сеансы, которые не отображаются ни в конфигураторе, ни в консоли кластера, но продолжают блокировать объекты. Это может происходить из-за:
- 🖥️ Аварийного завершения работы клиентского ПК (например, отключение питания).
- 🔌 Проблем с сетью (обрыв соединения при работе в клиент-серверном варианте).
- 🤖 Фоновых задач (регламентные задания, обмены данными), которые "зависнут" на уровне СУБД.
Чтобы обнаружить и удалить такие сеансы, используйте следующие методы:
Для файлового варианта:
- Закройте все экземпляры 1С:Предприятие и Конфигуратор.
- Удалите файл блокировок
1Cv8.lckв папке с базой. - Если проблема осталась, проверьте процессы в диспетчере задач: должны отсутствовать
1cv8.exe,1cv8s.exe,rmngr.exe.
Для клиент-серверного варианта:
- Подключитесь к SQL Server Management Studio (если используется MS SQL) или
psql(для PostgreSQL). - Выполните запрос для поиска активных сеансов 1С:
-- Для MS SQLSELECT * FROM sys.dm_exec_sessions
WHERE program_name LIKE '1C%'
-- Для PostgreSQL
SELECT * FROM pg_stat_activity
WHERE application_name LIKE '1C%';
- Если найдёте подозрительные сеансы, завершите их командой:
-- Для MS SQLKILL {SessionID};
-- Для PostgreSQL
SELECT pg_terminate_backend({PID});
После принудительного завершения сеансов на уровне СУБД обязательно выполните тестирование и исправление базы через конфигуратор (Администрирование → Тестирование и исправление) с отметками:
- 🔍
Проверять логическую целостность - 🔧
Проверять ссылочную целостность - 🗑️
Реиндексировать таблицы
Если скрытые сеансы появляются регулярно, настройте на сервере 1С параметр MaxUnusedSessions в файле конфигурации кластера (conf.cfg). Это ограничит количество неиспользуемых сеансов, которые могут накапливаться в системе.
5. Типичные ошибки при отключении сеансов и как их избежать
Даже опытные администраторы иногда допускают ошибки, которые ведут к потере данных или простою системы. Рассмотрим самые распространённые:
- Отключение сеанса с открытой транзакцией:
Если в сеансе выполняется запись в базу (например, проведение документа), его принудительное завершение может привести к незафиксированным изменениям. Всегда проверяйте столбец
Состояниев мониторе сеансов. Если там указаноТранзакция активна, дождитесь её завершения или используйте команду:rac session list --cluster=ИмяКластера --infobase=ИмяБазы --fullчтобы увидеть детальную информацию о блокировках.
- Игнорирование фоновых задач:
Сеансы регламентных заданий (например, обменов данными или расчёта зарплаты) часто остаются незамеченными. Их отключение может прервать критичные процессы. Перед завершением проверьте вкладку
Фоновые заданияв консоли кластера. - Недостаточные права:
Для завершения сеансов в клиент-серверном варианте ваша учётная запись должна иметь роль
Администратор кластера. Если кнопкаЗавершитьнеактивна, проверьте права в консоли кластера (Узлы → Пользователи). - Отключение сеансов на реплицируемых базах:
В кластерах с репликацией (например, при использовании 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С на автоматическую очистку. Для этого:
- Откройте консоль кластера.
- Перейдите в
Настройки кластера → Сеансы. - Установите параметры:
- 🕒
Таймаут неактивного сеанса (мин): 60 - ✅
Автоматически завершать неактивные сеансы: Да - 🔄
Интервал проверки (сек): 300 (5 минут)
- 🕒
ПКМ по кластеру → Перезапустить).Автоматическое завершение сеансов через настройки кластера — самый безопасный метод, так как 1С сама контролирует целостность данных перед отключением. Однако он не поможет с "зависшими" сеансами, которые система считает активными.
7. Особенности отключения сеансов в облачных и арендованных базах (1С:Fresh, 1С:Линк)
Если вы работаете с облачными сервисами 1С (например, 1С:Fresh, 1С:Линк или арендованными базами у партнёров), возможности по управлению сеансами ограничены. В большинстве случаев вам будут доступны только:
- 🌐 Личный кабинет: некоторые провайдеры предоставляют веб-интерфейс для управления сеансами (например, в 1С:Линк это раздел
Управление базами → Активные сеансы). - 📞 Техническая поддержка: для принудительного завершения сеансов может потребоваться запрос в службу поддержки провайдера.
- 🔄 Автоматические настройки: в облаке обычно уже настроено автоматическое завершение неактивных сеансов (таймаут — 15–30 минут).
Пример интерфейса управления сеансами в 1С:Линк:
Чтобы завершить сеанс:
- Авторизуйтесь в личном кабинете 1С:Линк.
- Выберите нужную базу в разделе
Мои базы. - Перейдите на вкладку
Активные сеансы. - Нажмите кнопку
Завершитьрядом с нужным сеансом.
⚠️ Внимание: В облачных сервисах принудительное завершение сеансов может быть ограничено по времени (например, в 1С:Fresh нельзя завершать сеансы в рабочие часы без согласования с поддержкой). Всегда уточняйте правила у вашего провайдера.
Если вам часто приходится работать с облачными базами, полезно настроить уведомления о длительных сеансах. Например, в 1С:Линк можно создать правило:
- В личном кабинете перейдите в
Настройки → Уведомления. - Добавьте новое правило с условием
Длительность сеанса > 1 часа. - Укажите email или Telegram для оповещений.
8. Проверка результатов и восстановление после отключения сеансов
После завершения сеансов (особенно принудительного) необходимо убедиться, что база осталась в работоспособном состоянии. Следуйте этому чек-листу:
Убедиться, что все пользователи могут подключиться к базе|Проверить журналы 1С на ошибки (%ProgramData%\1C\1Cv8\logs)|Выполнить тестирование и исправление базы|Проверить целостность критичных данных (остатки, документы)|Сделать резервную копию базы
-->
Если после отключения сеансов возникли проблемы, воспользуйтесь следующими рекомендациями:
| Симптом | Возможная причина | Решение |
|---|---|---|
База не открывается, ошибка "Файл повреждён" |
Прервана транзакция при записи в базу | Выполнить Тестирование и исправление с галочками Исправлять ошибки и Реиндексировать таблицы |
Пользователи не могут войти, ошибка "Превышено число лицензий" |
Сеансы не освободили лицензии | Перезапустить службу 1C:Enterprise 8.3 Server Agent |
| Медленная работа базы после отключения сеансов | Фрагментация индексов или блокировки на уровне СУБД | Выполнить реиндексацию через SQL или команду rac infobase reindex |
Ошибка "Объект заблокирован другим пользователем" |
Остались невидимые блокировки | Проверьте блокировки через SQL-запрос (см. раздел 4) |
Если проблема не решается стандартными методами, воспользуйтесь журналами технологического логирования. Чтобы их включить:
- В конфигураторе перейдите в
Администрирование → Поддержка и обслуживание → Настройки технологического журнала. - Установите уровень логирования
Отладкадля разделовСеансыиБлокировки. - Воспроизведите проблему и проанализируйте логи в папке
%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С с логами (
%ProgramData%\1C\1Cv8\logs).
В будущем избегайте принудительного завершения сеансов со статусом Транзакция активна.
Как отключить все сеансы сразу, не выбирая каждый по отдельности?
В клиент-серверном варианте используйте команду:
rac session terminate --cluster=ИмяКластера --infobase=ИмяБазы --all --force
Для файлового варианта можно написать скрипт на 1С:Предприятие, который пройдётся по всем сеансам и завершит их:
Сеансы = ПолучаемСписокСеансов();
Для Каждого Сеанс Из Сеансы Цикл
ЗавершитьСеанс(Сеанс.Идентификатор, Истина);
КонецЦикла;
⚠️ Предупреждение: массовое завершение сеансов может привести к потере несохранённых данных пользователей. Всегда предупреждайте пользователей заранее!
Почему после перезагрузки сервера сеансы в 1С остаются активными?
Это возможно, если:
- Сервер 1С (
ragent.exe,rmngr.exe) не был корректно остановлен перед перезагрузкой. - Используется отказоустойчивый кластер (например, с Microsoft Failover Cluster), где сеансы мигрируют между узлами.
- В настройках кластера включён параметр
SaveSessionsOnRest