Администрирование · 10 мин
Что такое сеанс в 1С и как с ним работать
Сеанс в 1С — что это такое, чем отличается от соединения, как посмотреть список активных сеансов и корректно завершить зависший сеанс пользователя.
Сеанс в 1С — это один активный экземпляр взаимодействия пользователя или программного механизма с информационной базой. Каждый раз, когда сотрудник запускает 1С и входит в базу, платформа создаёт для него отдельный сеанс с уникальным номером. Сеанс существует до тех пор, пока пользователь не закроет программу или пока сеанс не будет принудительно завершён администратором.
Понимание того, что такое сеанс, критично для администраторов: именно через список сеансов контролируют, кто сейчас работает в базе, ищут «зависших» пользователей, освобождают лицензии и готовят базу к регламентным операциям вроде обновления конфигурации или создания резервной копии. Ошибки при работе с сеансами — частая причина потери несохранённых данных и невозможности зайти в базу.
Материал рассчитан на администраторов и продвинутых пользователей файловых и клиент-серверных баз. Разберём, чем сеанс отличается от соединения, какие бывают виды сеансов, где их смотреть в разных режимах работы и как безопасно завершать чужие сеансы.
Чем сеанс отличается от соединения и пользователя
Эти три понятия часто путают, но они описывают разные уровни работы системы. Пользователь — это учётная запись в базе (справочная информация с логином и правами). Сеанс — это конкретный факт входа этой учётной записи в базу в данный момент времени. Один пользователь может иметь несколько одновременных сеансов: например, открыть базу на двух компьютерах или запустить тонкий клиент и веб-клиент параллельно.
Соединение — технический канал между клиентским приложением и сервером 1С или СУБД. В клиент-серверном варианте один сеанс обычно связан с одним соединением, но в фоновых процессах и при обрывах связи количество соединений может не совпадать с количеством сеансов. Именно поэтому «зависшие» соединения иногда остаются видимыми в консоли даже после того, как пользователь давно закрыл программу.
Какие виды сеансов существуют в 1С
Платформа различает сеансы по типу приложения, которое их создало. В списке сеансов консоли кластера или в форме активных пользователей это видно в колонке «Приложение». Понимание типа помогает отличить живого пользователя от служебного процесса.
- Толстый клиент — классическое приложение, сейчас используется редко, в основном разработчиками и для старых конфигураций.
- Тонкий клиент — основной способ работы пользователей в современных конфигурациях.
- Веб-клиент — работа через браузер без установки платформы.
- Конфигуратор — сеанс разработчика или администратора, вносящего изменения в структуру базы.
- Фоновое задание — сеанс, созданный регламентными операциями: расчётом итогов, обменом данными, отправкой отчётности.
- COM-соединение и веб-сервисы — сеансы, которые создают внешние программы при интеграции с 1С.
Фоновые сеансы часто становятся причиной неожиданных проблем: пользователи все вышли, а монопольный режим установить нельзя, потому что в базе «висит» регламентное задание. Перед обновлением конфигурации проверяйте не только пользовательские, но и фоновые сеансы.
Где посмотреть список активных сеансов
Способ просмотра зависит от режима работы базы — файлового или клиент-серверного. В обоих случаях доступна и программная проверка через встроенный язык.
Файловая база
В типовых конфигурациях откройте раздел «Администрирование» и перейдите по ссылке «Активные пользователи» (в некоторых конфигурациях — «Обслуживание — Активные пользователи»). Откроется список с именами пользователей, временем входа и компьютерами. В файловом режиме завершить чужой сеанс из этого списка нельзя — можно только увидеть, кто в базе.
Клиент-серверная база
Откройте консоль кластера серверов 1С (поставляется вместе с сервером платформы). Разверните нужный кластер, найдите информационную базу и перейдите на вкладку «Сеансы». Здесь видны номер сеанса, пользователь, приложение, время начала, последняя активность и объём вызовов. Для доступа потребуются права администратора кластера или базы.
- 1Откройте оснастку «Администрирование серверов 1С:Предприятия»
- 2Разверните ветку нужного сервера и кластера
- 3Найдите информационную базу и выберите вкладку «Сеансы»
- 4Отсортируйте по колонке «Начало сеанса» или «Приложение»
- 5Проверьте наличие фоновых заданий перед регламентными работами
Как завершить сеанс пользователя
Принудительное завершение сеанса — крайняя мера. При разрыве сеанса все несохранённые данные пользователя теряются: незакрытые документы, незаписанные изменения в формах. Поэтому первый шаг — всегда попытаться связаться с пользователем и попросить выйти штатно.
В консоли кластера завершение выполняется так: выделите сеанс в списке, откройте контекстное меню и выберите «Удалить» (или нажмите Delete). Сеанс будет разорван немедленно. В типовых конфигурациях на управляемых формах есть более мягкий механизм — «Завершение работы пользователей» из подсистемы «Библиотека стандартных подсистем»: администратор устанавливает блокировку входа, а активным пользователям приходит предупреждение с таймером, после которого их сеансы завершаются автоматически.
Если сеанс «завис» (пользователь выключил компьютер, не выйдя из 1С), он может продолжать отображаться в списке до истечения таймаута. Такой сеанс можно удалить принудительно без риска для данных, потому что клиент уже не работает.
Сеансы и лицензии: почему заканчиваются «места»
Каждый пользовательский сеанс занимает клиентскую лицензию 1С. Если сотрудник открыл базу на двух компьютерах, он расходует две лицензии. Характерная ситуация: коллеги сообщают, что «1С не пускает, лицензии кончились», хотя реально работает меньше людей, чем куплено лицензий. Причина почти всегда в зависших или дублирующихся сеансах.
Диагностика проста: откройте список сеансов и сравните количество активных сеансов с количеством реально работающих людей. Лишние сеансы с одним и тем же пользователем на разных компьютерах или сеансы без активности в течение нескольких часов — кандидаты на завершение. Фоновые задания и сеансы веб-сервисов клиентские лицензии, как правило, не потребляют, но их стоит учитывать при анализе нагрузки.
Найдите повторы по имени пользователя и компьютеру
Проверьте фоновые задания и сеансы конфигуратора
Посчитайте пользовательские сеансы в консоли кластера
Такой сеанс можно удалить принудительно
Монопольный режим и блокировка сеансов
Обновление конфигурации, загрузка данных из dt-файла, тестирование и исправление, некоторые операции пересчёта итогов требуют монопольного доступа — то есть в базе не должно быть ни одного другого сеанса. Пока хотя бы один пользователь или фоновое задание подключены, операция не запустится.
Правильный порядок подготовки базы к монопольной операции: сначала установить блокировку входа (чтобы никто не зашёл новым сеансом), затем предупредить и вывести активных пользователей, потом дождаться завершения фоновых заданий и только после этого запускать операцию. В клиент-серверном варианте блокировка устанавливается в свойствах информационной базы в консоли кластера: там же можно задать сообщение, которое увидят пользователи при попытке входа, и код разрешения для входа администратора.
Программная работа с сеансами
Разработчику доступен объект встроенного языка ПолучитьСеансыИнформационнойБазы(), который возвращает массив описаний текущих сеансов: номер, имя пользователя, приложение, время начала. Это используют для собственных обработок мониторинга и автоматического сброса зависших сеансов по расписанию.
Сеансы = ПолучитьСеансыИнформационнойБазы();
Для Каждого Сеанс Из Сеансы Цикл
Сообщить(Сеанс.НомерСеанса);
КонецЦикла;Для принудительного завершения сеанса из кода в клиент-серверном режиме применяется административный COM-объект V83.ComConnector или утилита rac из состава сервера. Это инструменты для опытных администраторов: ошибка в параметрах может разорвать не те сеансы, поэтому сначала тестируйте на копии базы.
Что важно запомнить
Сеанс — это один активный вход в базу, он занимает лицензию и мешает монопольным операциям. Список сеансов смотрят в консоли кластера или в разделе «Активные пользователи». Перед принудительным завершением чужого сеанса всегда предупреждайте пользователя, а перед обновлением — ставьте блокировку входа и проверяйте фоновые задания.
Частые вопросы о сеансах в 1С
Почему пользователь вышел из 1С, а его сеанс всё ещё висит в списке?
При аварийном закрытии программы, обрыве сети или выключении компьютера сервер узнаёт о разрыве не сразу — сеанс остаётся до истечения таймаута. Такой сеанс безопасно удалить вручную через консоль кластера.
Может ли один пользователь открыть несколько сеансов?
Да, платформа это не запрещает: один и тот же логин может работать одновременно на нескольких компьютерах и в разных клиентах. Каждый такой сеанс занимает отдельную клиентскую лицензию, поэтому в больших коллективах это приводит к нехватке лицензий.
Что будет, если завершить сеанс во время записи документа?
Незавершённая транзакция будет отменена, несохранённые данные потеряются. Записанные ранее данные не пострадают, но пользователю придётся вводить документ заново. Поэтому перед завершением стоит убедиться, что в сеансе нет активной работы.
Занимают ли лицензии фоновые задания?
Фоновые задания и сеансы регламентных операций клиентские лицензии не расходуют. Однако они учитываются при проверке монопольного режима, поэтому перед обновлением конфигурации их нужно остановить или дождаться завершения.
Как запретить пользователям заходить в базу на время обновления?
В консоли кластера откройте свойства информационной базы и установите блокировку начала сеансов с указанием времени и сообщения для пользователей. В типовых конфигурациях есть штатная обработка «Блокировка работы пользователей», которая делает то же самое изнутри программы.
Чем посмотреть сеансы, если нет доступа к консоли кластера?
В файловой базе используйте раздел «Администрирование — Активные пользователи». В клиент-серверной базе без прав на консоль можно применить встроенную функцию ПолучитьСеансыИнформационнойБазы() через внешнюю обработку — для этого достаточно прав на выполнение кода в базе.