Представим критическую ситуацию: администратор, желая оптимизировать использование лицензий, заходит в Конфигуратор и устанавливает параметр «Время завершения сеанса при бездействии». Спустя мгновение выясняется, что ни один пользователь, включая самого администратора, не может зайти ни в программу, ни обратно в Конфигуратор. Система выдает ошибку или просто закрывается — здесь поможет мониторинг ошибок и прерывание проблемных сеансов. В этой статье мы подробно разберем, почему возникает этот «замкнутый круг» и как из него выбраться, используя различные инструменты администрирования.
Для начала давайте проанализируем, почему безобидная на первый взгляд настройка приводит к полной блокировке системы. В платформе 1С:Предприятие 8.3 функционал управления сеансами (включая принудительное завершение при бездействии и ограничение потребления памяти) жестко привязан к уровню лицензий сервера.
Разберем механику ограничения:
Время завершения сеанса при бездействии, сервер начинает проверять количество активных подключений. Если их больше 10, сервер блокирует возможность создания новых сеансов, считая использование функционала неправомерным.Ситуация становится патовой: чтобы отключить настройку, нужно зайти в Конфигуратор, но вход в Конфигуратор — это тоже сеанс, который блокируется сервером. Рассмотрим пошагово, как решить эту проблему.
Самый быстрый способ «проскочить» проверку лицензионности — временно уменьшить количество работающих пользователей. Если в базе останется менее 10 сеансов, сервер 1С позволит администратору зайти в Конфигуратор и вернуть настройки в исходное состояние.
Рассмотрим порядок действий:
Важно: Учтите, что пользователи могут пытаться зайти в базу повторно, снова занимая «слоты» сеансов. Рекомендуется временно включить «Блокировку начала сеансов» в свойствах базы в той же консоли администрирования, чтобы никто, кроме вас, не смог занять место.
Если уменьшение количества сеансов не помогает или вы хотите решить проблему более фундаментально, нам следует изменить настройки базы напрямую через параметры сервера, не заходя в саму 1С. Настройки, сделанные в Конфигураторе, дублируются в свойствах информационной базы на сервере.
Разберем этот процесс по шагам:
Время завершения сеанса при бездействии и Время ожидания начала завершения сеанса.0. В терминологии 1С значение «0» означает, что механизм отключен.После этого попробуйте войти в систему. Если вход по-прежнему заблокирован, возможно, параметры кэшированы процессом rmngr. В таком случае потребуется перезагрузка службы 1C:Enterprise Server (через оснастку services.msc).
Иногда возникают ситуации, когда консоль администрирования недоступна или изменения в ней не применяются. В клиент-серверном варианте параметры информационной базы хранятся в специальной системной таблице внутри SQL-базы. Мы можем очистить эти настройки напрямую.
Внимание: Данный метод является «хакерским» и требует осторожности. Обязательно сделайте бэкап SQL-базы перед выполнением запросов.
Проанализируем структуру: настройки параметров базы хранятся в таблице IBParams. Нам необходимо найти записи, отвечающие за таймауты, и обнулить их. Примерный алгоритм действий в SQL Management Studio:
-- Посмотрим текущие параметры базы
SELECT * FROM IBParams;
-- Обычно параметры таймаута хранятся в бинарном или строковом виде
-- Для полного сброса параметров (в критическом случае)
-- некоторые администраторы очищают таблицу, но это крайняя мера.
-- Безопаснее найти конкретную запись с именем параметра.
После выполнения очистки таблицы IBParams (или удаления строк с таймаутами), сервер 1С при следующем обращении к базе не обнаружит ограничивающих настроек и позволит выполнить вход.
Хотя в обсуждении рассматривался клиент-серверный вариант, для файловых баз проблема также актуальна. В файловой базе настройки хранятся внутри 1Cv8.1CD. Если вы оказались заблокированы в файловом варианте, попробуйте следующие приемы:
/AllowExecuteScheduledJobs -Off. Это может предотвратить запуск фоновых процессов, которые сервер засчитывает как активные сеансы.1Cv8.1CD в новую пустую папку. Это гарантирует, что никакие старые .lck файлы (файлы блокировок) не будут мешать входу.Чтобы не повторять подобных ошибок, давайте выработаем правила безопасной настройки параметров сервера:
1. Использование профилей безопасности. Вместо жесткой установки параметров для всей базы в Конфигураторе, лучше использовать Профили безопасности в консоли администрирования. Это более гибкий инструмент, который легче откатить.
2. Программная проверка. Если вам нужно выталкивать бездействующих пользователей, это можно реализовать программно в модуле управляемого приложения. Используйте глобальный обработчик ожидания, который будет проверять время последней активности. При этом в коде всегда делайте исключение для администратора:
Процедура ПроверитьВремяБездействия()
Если ИмяПользователя() = "Администратор" Тогда
Возврат; // Администратора никогда не выкидываем
КонецЕсли;
// Логика проверки времени и завершения работы
// ...
КонецПроцедуры
3. Мониторинг фоновых заданий. Помните, что жесткое завершение сеансов влияет и на фоновые задания. Если задание будет прервано в момент записи данных в базу, это может привести к нарушению логической целостности данных.
Подводя итог, можно сказать, что ситуация «Все пропало, шеф!» в данном случае легко решаема через внешние инструменты администрирования. Главное — понимать связь между настройками платформы и типом используемых лицензий 1С:Предприятие.