Блокировка сеансов в 1С: что включилось и как вернуть людей в базу

· 9 мин

Содержание

Утром бухгалтер звонит: «Пишет, что доступ к информационной базе запрещён». Или наоборот: база открывается, но проведение документа висит минуту, а потом падает с ошибкой о времени ожидания блокировки. Это два разных случая, и лечатся они по-разному. В первом на базе стоит запрет начала сеансов, во втором сеансы живы, но мешают друг другу блокировками данных.

Чтобы снять блокировку сеансов, откройте консоль администрирования серверов 1С, найдите базу в списке информационных баз, снимите флажок «Блокировка начала сеансов включена» и сохраните. Если нужно сначала выгнать зависших пользователей, завершите их сеансы в ветке «Сеансы» той же базы. Подробности и запасные способы ниже.

Сначала определите, какая у вас блокировка

Слово «блокировка» в 1С значит три разные вещи. Прежде чем что-то нажимать, сверьтесь с таблицей.

Что видит пользовательЧто происходитГде лечить
«Доступ к информационной базе запрещён», можно войти только с ключом доступаВключён запрет начала сеансовСвойства базы в консоли или форма блокировки в самой 1С
База не обновляется, пишет, что есть активные пользователиЖивые или зависшие сеансы мешают монопольному режимуСписок активных пользователей
Документы не проводятся, «Превышено время ожидания предоставления блокировки»Конфликт блокировок данных между сеансамиДиагностика через консоль и технологический журнал
Не запускаются регламентные задания, обмены, фоновые отчётыВключена блокировка регламентных заданийСвойства базы в консоли

Запрет начала сеансов не выгоняет тех, кто уже работает. Он лишь не пускает новых. Поэтому после его включения в базе часто остаются «хвосты» старых сеансов.

Почему сеансы вообще блокируются

Причин немного, и все они бытовые.

  • 🔒 Администратор сам включил запрет перед обновлением или загрузкой копии и не снял. Самая частая история.
  • 🔒 Запрет включила сама 1С: при обновлении через БСП или при загрузке данных программа закрывает вход на время работы.
  • 🧟 Сеанс пользователя завис: вечер, закрытый ноутбук, оборвавшийся удалённый рабочий стол. Сервер ещё какое-то время считает его живым.
  • ⏳ Длинная транзакция: закрытие месяца , массовое перепроведение, тяжёлый отчёт с записью. Остальные ждут её окончания.
  • 🔁 Взаимная блокировка двух сеансов: каждый держит то, что нужно другому. Платформа разрывает такие пары сама, но жертвой становится один из пользователей.
  • ⚙️ Жёсткие настройки: слишком маленький тайм-аут блокировки или включённый режим разделения данных, который держит больше, чем нужно.

Консоль администрирования: смотрим базу и сеансы

Для серверной базы это главный инструмент. Консоль входит в поставку платформы (оснастка «Администрирование серверов 1С:Предприятия»); если вы её не видите, поставьте компонент при установке платформы. Если консоль не подключается к кластеру, проверьте службу агента сервера и порт, по которому консоль обращается к серверу.

Находим базу и смотрим, что в ней творится

  1. Раскройте ветку центральных серверов, затем кластер.
  2. Откройте «Информационные базы» и выберите нужную.
  3. В ветке базы есть «Сеансы» и «Соединения». Первое показывает пользовательские сеансы с именем, приложением, временем начала и временем последней активности. Второе — технические подключения.

Зависший сеанс легко узнать: приложение «Тонкий клиент» или «Толстый клиент», а активности нет давно. У работающего человека время последней активности обновляется каждые несколько секунд. Если в колонке с учётной записью пусто, а приложение — фоновое задание или COM-соединение, это не человек, и трогать такой сеанс без понимания не стоит.

Снимаем запрет начала сеансов

  1. Двойным щелчком откройте свойства информационной базы.
  2. Найдите флажок включённой блокировки начала сеансов. Рядом лежат поля «Начало», «Конец», «Сообщение» и «Код разрешения».
  3. Снимите флажок. Если запрет был по расписанию, очистите даты: иначе блокировка включится сама в назначенное время.
  4. Проверьте соседний флажок блокировки регламентных заданий. Если после обновления не идут обмены или рассылки, дело в нём.
  5. Нажмите «ОК».

Отдельно про «Код разрешения». Пока запрет включён, зайти можно, добавив параметр /UC и код к строке запуска, например 1cv8.exe ENTERPRISE /S"srv1c\buh" /UCсвойКод. Так администратор заходит в закрытую базу, чтобы проверить результат работ, пока остальные ждут.

Завершаем сеансы вручную

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

Через консоль администрирования

В ветке «Сеансы» выберите строку, вызовите контекстное меню и нажмите «Удалить» (в некоторых версиях консоли пункт называется «Завершить сеанс»). Консоль спросит подтверждение. После этого проверьте, что сеанс исчез. Бывает, что он остаётся в списке с пометкой завершения ещё несколько минут: сервер ждёт, пока клиент отпустит соединение.

Через сам Конфигуратор

Для файловых баз консоли нет, и этот способ часто единственный. Откройте Конфигуратор, зайдите в меню Администрирование → Активные пользователи. Список покажет компьютер, имя пользователя и время подключения. Кнопки «Завершить работу» там нет: отключить конкретного человека можно только на сервере или попросив его закрыть программу. Зато видно, кто держит базу, и это уже половина решения.

Изнутри обычной 1С

В типовых конфигурациях на БСП есть форма активных пользователей: раздел «Администрирование», подраздел «Поддержка и обслуживание», пункт «Активные пользователи». Отсюда можно посмотреть сеансы и включить блокировку работы пользователей с сообщением и временем — удобнее, чем объяснять всем голосом. Какие именно кнопки есть, зависит от версии БСП в конфигурации. Если пункта нет в вашей типовой конфигурации, работайте через консоль.

Командная строка: утилита rac

Когда консоль недоступна или нужно автоматизировать, пригодится rac, она лежит рядом с платформой на сервере. Базовые команды, в которых можно не сомневаться:

rac cluster list
rac session list --cluster=<идентификатор_кластера>
rac session terminate --cluster=<идентификатор_кластера> --session=<идентификатор_сеанса>

Идентификаторы — длинные GUID из вывода предыдущих команд. Список остальных параметров и команд смотрите в справке rac help, не угадывайте их.

Блокировки данных: когда сеансы живы, а документы не проводятся

Здесь запрет не включён, база открывается, но работа встаёт. Ошибка выглядит так:

Превышено время ожидания предоставления блокировки

Это значит, что один сеанс держит управляемую блокировку, а другой не дождался её освобождения. Виноват обычно не тот, кто получил ошибку, а тот, кто блокирует.

Что смотреть

  • В консоли администрирования у кластера есть раздел «Блокировки»: там видно, кто кого ждёт. Он полезен именно в момент проблемы, потом данные исчезают.
  • Для разбора постфактум включают технологический журнал и ищут события TLOCK, TTIMEOUT и TDEADLOCK. Они показывают, какие данные не поделили, и как долго ждали.
  • Журнал регистрации в самой 1С (Администрирование → Журнал регистрации) добавляет картину по пользователям: кто, в какое время и каким документом занимался.

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

Что делать с найденным виновником

  1. Выясните, что делает сеанс-держатель: проводит документы, закрывает месяц, строит отчёт.
  2. Если это штатная долгая операция, подождите её конца. Завершение сеанса посреди транзакции откатит всё сделанное, и операцию придётся запускать сначала.
  3. Если сеанс завис, завершите его способом выше.
  4. Если одна и та же пара операций конфликтует каждый день, разнесите их по времени. Например, массовое перепроведение переносите на вечер.
Диагностика: выберите симптом

Какой способ выбрать

СпособКогда подходитЧем рискуете
Снять флажок в свойствах базыЗапрет забыли выключитьНичем: сеансы не затрагиваются
Завершить сеанс в консолиОдин-два зависших сеансаПользователь теряет несохранённое
rac session terminateНет консоли, нужен скриптТо же, плюс ошибка в идентификаторе
Завершить rphost.exeСеанс не отпускает никакОбрыв всех сеансов этого процесса и откат транзакций
Перезапуск службы агентаЗавис весь серверОбрыв сеансов во всех базах кластера

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

Крайняя мера: процессы на сервере

Если сеанс не завершается ни из консоли, ни через rac, остаётся убить рабочий процесс. Это уже не «снять блокировку», а грубое вмешательство. Все пользователи, чьи сеансы обслуживал этот процесс, потеряют несохранённую работу, а незавершённые транзакции откатятся.

Порядок действий:

  1. Предупредите людей и выберите момент без закрытия периода и без обменов.
  2. В консоли посмотрите, какой рабочий процесс обслуживает проблемный сеанс: у соединения указан процесс. В диспетчере задач найдите rphost.exe с нужным номером.
  3. Завершите именно этот процесс. Сервер сам запустит новый.
  4. Проверьте, что сеансы пропали из списка, и снимите запрет, если он остался.

Службу агента сервера (ragent) трогайте только если зависло всё: перезапуск службы оборвёт сеансы во всех базах кластера, а не в одной.

Не удаляйте служебные файлы кластера и не пересоздавайте кластер, чтобы «сбросить» блокировки. Это не лечит причину и может потерять настройки баз.

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

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

Как настроить кластер, чтобы это не повторялось

Профилактика сводится к паре привычек и нескольким настройкам.

  • ⏱ Тайм-аут блокировки. Значение по умолчанию подходит большинству баз. Увеличивать его «чтобы не падало» опасно: пользователи будут ждать минутами, а причина останется.
  • 🕒 Лишние сеансы. В свойствах кластера задайте время отключения неактивных соединений. Тогда вечерние «хвосты» исчезнут сами.
  • 📅 Запрет по расписанию. Если вы пользуетесь запретом в окне регламентных работ, обязательно задавайте дату конца, а не оставляйте поле пустым.
  • 🧩 Обновление в тихое время. Объявите окно, включите блокировку с сообщением в самой 1С, подождите завершения сеансов, и только потом обновляйте.
  • 🧾 Длинные операции. Закрытие месяца и перепроведение запускайте, когда в базе мало людей.
  • 📈 Мониторинг. Если проблема повторяется, держите технологический журнал включённым на узком фильтре и разбирайте самые долгие ожидания, а не гасите симптомы.
Перед плановой работой в базе
Выполнено: 0 / 6

Частые вопросы

Запрет сеансов выгонит тех, кто сейчас в базе?
Нет. Он блокирует только новые подключения. Работающих нужно завершить отдельно.
Можно ли зайти в базу с запретом?
Да, с кодом разрешения. Его указывают в свойствах базы, а при запуске добавляют параметр /UC и сам код.
Как узнать, что сеанс завис, а не просто работает долго?
Посмотрите время последней активности и что делает сеанс в консоли. Если активности нет, а процессорное время не растёт, сеанс завис. Если счётчики растут, идёт операция.
Почему после завершения сеанса пользователь всё равно видит базу?
Клиент мог не получить уведомление сразу. Обычно через несколько минут он увидит сообщение об отключённом сеансе и запустит программу заново.
Что будет с данными при завершении сеанса?
Всё, что не было записано, пропадёт, а незавершённая транзакция откатится. Записанные документы остаются на месте.
Блокировка регламентных заданий — это то же самое?
Нет, это отдельный флажок в свойствах базы. Он останавливает фоновые задания (обмены, рассылки), но не мешает людям работать.