Удаление неактивных и повторно запущенных пользователем сеансов - обработкой в фоне или внешней обработкой

28.04.22

Администрирование - Мониторинг

На экране монитора при запуске конфигурации нередко приходится видеть обидное сообщение "Не обнаружено свободной лицензии". Особенно это актуально, когда у вас 100 лицензий и при этом работает порядка 90 пользователей. При этом, очень актуальна жесткая политика - "Один сеанс в одни руки". Для автоматизации ручной работы администратора 1С по удалению сеансов пользователей и предназначена данная обработка. Обработка может быть использована как внешняя, так и поставлена в дополнительные отчеты и обработки с установкой расписания запуска, в этом случае обработка будет выполняться как фоновое задание. Обработка предназначена для работы в клиент-серверных базах и тестировалась на платформе 8.3.14.1854. Обработка установленная на платформе не ниже 8.3.6, позволяет управлять сеансами конфигураций установленных на платформе 8.2

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Удаление не активных и повторно запущенных пользователем сеансов - обработкой в фоне или внешней обработкой:
.epf 12,78Kb ver:1.1
50 3 400 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

1. Работа внешней обработки.

    При запуске обработки автоматически заполняются реквизиты "Адрес сервера" и "Имя базы". При необходимости эти данные можно поменять в ручную и подключиться к другой базе. Если запустить обработку на файловой конфигурации, то эти реквизиты необходимо занести в ручную. Если на кластер 1С установлен пароль администратора, то его пароль и логин заносятся в реквизиты "Пароль" и "Имя администратора". 

    В реквизит "Время опроса мин", заносится период опроса сеансов базы данных. Минимальное время 1 мин. Если разница во времени между текущим временем и временем последней активности сеанса будет больше установленого числа в реквизите "Время неактивности сеанса мин", то сеанс будет считаться не активным и будет удален.

    Реквизиты "Мониторинг запущен" и "Количество опросов" с момента запуска мониторинга, являются информационными.

    Управление обработкой осуществляется кнопками:

"Одиночный опрос"- осуществляет один опос сеансов пользователей базы;

"Начать мониторинг" - запускает непрерывный опрос сеансов пользователей с частотой 1 раз в период установленный в реквизите "Время опроса мин" ;

"Остановить мониторинг" - останавливает мониторинг сеансов пользователей.

     Кроме не активных сеансов будут удаляться сеансы повторно запущенных пользователями "тонкого" и "толстого" клиентов. Удален будет сеанс с наименьшим временем активности. Таким образом реализована политика "Один сеанс в одни руки"

        Таблица "ПротоколУдаленияСеансов", содержит строки удаленных сеансов базы данных.

2. Работа в режиме фонового задания

     Для работы обработки в режиме фонового задания, её необходимо установить в дополнительные обработки и настроить расписание запуска.

   

После этого в "Регламентных и фоновых заданиях" выбрать пользователя с правами "Администратор", под которым будет запускаться обработка.

    При необходимости отредактировать код вызова процедуры мониторинга. Заполняем ИмяАдминистратора и ПарольАдминистратора, если они установлены и меняем ВремяНеактивностиСеансаМин, по умолчанию 80 мин.

Перем Команда_Мониторинг_Сеансов Экспорт;
Перем ТабУдалСеансов;
Перем ПутьКПротоколуУдаленияСеансов;

Функция СведенияОВнешнейОбработке() Экспорт
	
	РегистрационныеДанные = Новый Структура;
	РегистрационныеДанные.Вставить("Вид", "ДополнительнаяОбработка");
	РегистрационныеДанные.Вставить("Наименование", "Мониторинг сеансов в фоне");
	РегистрационныеДанные.Вставить("Версия", "1.0");
	РегистрационныеДанные.Вставить("БезопасныйРежим", Ложь);
	РегистрационныеДанные.Вставить("Информация", "Мониторинг сеансов в фоне");

	ТЗКоманды = Новый ТаблицаЗначений;
	ТЗКоманды.Колонки.Добавить("Идентификатор");
	ТЗКоманды.Колонки.Добавить("Представление");
	ТЗКоманды.Колонки.Добавить("Модификатор");
	ТЗКоманды.Колонки.Добавить("ПоказыватьОповещение");
	ТЗКоманды.Колонки.Добавить("Использование");

	СтрокаКоманды = ТЗКоманды.Добавить();
	СтрокаКоманды.Представление = "Мониторинг сеансов в фоне";
	СтрокаКоманды.ПоказыватьОповещение = Ложь;
	СтрокаКоманды.Использование = "ВызовСерверногоМетода";
	СтрокаКоманды.Идентификатор = "Команда_Мониторинг_Сеансов";

	РегистрационныеДанные.Вставить("Команды", ТЗКоманды);

	Возврат РегистрационныеДанные;
	
КонецФункции

Процедура ВыполнитьКоманду(ИдентификаторКоманды) Экспорт	
	
	УстановитьПривилегированныйРежим(Истина);
	ПараметрыСеанса.ПризнакОтключенияКонтроляНастроек = Истина;
	Если ИдентификаторКоманды = Команда_Мониторинг_Сеансов Тогда

// Здесь редактируем параметры запуска процедуры мониторинга	
		НачатьМониторингСеансов(,,,80);

	КонецЕсли;	
	ПараметрыСеанса.ПризнакОтключенияКонтроляНастроек = Ложь;
	УстановитьПривилегированныйРежим(Ложь);

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

Функция НачатьМониторингСеансов(ИмяАдминистратора="", ПарольАдминистратора="", ЗапускИзФормы=Ложь, ВремяНеактивностиСеансаМин=60) Экспорт

 С настройкой вызова все. Но если мы хотим писать протокол удаленных сеансов то необходимо в переменную ПутьКПротоколуУдаленияСеансов записать путь к папке на сервере 1с для файла, в который будет писаться информация по удаленным сеансам всех баз данных с установленным фоновым заданием "Мониторинг сеансов в фоне".

Процедура ЗаполнитьПротоколУдаления()
	
	КаталогНаДиске = Новый Файл(ПутьКПротоколуУдаленияСеансов);
    Если не КаталогНаДиске.Существует() Тогда
        Возврат;
	КонецЕсли; 
	
	Текст = Новый ЗаписьТекста(ПутьКПротоколуУдаленияСеансов+"\Протокол.txt", КодировкаТекста.ANSI, Символы.ВК + Символы.ПС, Истина); 
	Для Каждого Строка Из ТабУдалСеансов Цикл
		Текст.ЗаписатьСтроку(Строка.Пользователь+"|"+Строка.ИдСеанса+"|"+Строка.Приложение+"|"+Строка.ТипУдаления+"|"+Строка.ДатаУдаления+"|"+Строка.ИмяБазы);
	КонецЦикла;	
	Текст.Закрыть();
	 
КонецПроцедуры	


Команда_Мониторинг_Сеансов = "Команда_Мониторинг_Сеансов";
ТабУдалСеансов = Новый ТаблицаЗначений;
ТабУдалСеансов.Колонки.Добавить("ИдСеанса", Новый ОписаниеТипов("Число"));
ТабУдалСеансов.Колонки.Добавить("Пользователь");
ТабУдалСеансов.Колонки.Добавить("Приложение");
ТабУдалСеансов.Колонки.Добавить("ТипУдаления", Новый ОписаниеТипов("Число"));
ТабУдалСеансов.Колонки.Добавить("ДатаУдаления", Новый ОписаниеТипов("Дата"));
ТабУдалСеансов.Колонки.Добавить("ИмяБазы");

//ПутьКПротоколуУдаленияСеансов = "C:\РНГ\ПротоколУдаленияСеансов";
ПутьКПротоколуУдаленияСеансов = "";

    Если переменная ПутьКПротоколуУдаленияСеансов = "", то протокол , в текстовый файл "Протокол.txt", писаться не будет. Если указанная вами папка на сервере 1с отсутствует, то протокол так же не пишется. Пользователь под которым запускается обработка, как фоновое задание должен иметь права на создание и редакцию файлов в папке протоколов.

          Версия 1.1

   Добавлен реквизит логического типа "МониторингВсехБаз". Установка в значение "Истина" позволяет осуществлять мониторинг всех баз крастера серверов 1с.

   В режиме фонового задания этот же режим достигается установкой параметра МониторингВсехБаз=Истина

//Робота по всем базам в фоне	
Функция НачатьМониторингСеансов(ИмяАдминистратора="", ПарольАдминистратора="", ЗапускИзФормы=Ложь, ВремяНеактивностиСеансаМин=60, МониторингВсехБаз=Истина) Экспорт
//Функция НачатьМониторингСеансов(ИмяАдминистратора="", ПарольАдминистратора="", ЗапускИзФормы=Ложь, ВремяНеактивностиСеансаМин=60, МониторингВсехБаз=Ложь) Экспорт

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

Вступайте в нашу телеграмм-группу Инфостарт

См. также

Работа с интерфейсом Анализ учета Мониторинг 1С:Предприятие 8 1С 8.3 1C:Бухгалтерия 1С:Бухгалтерия 3.0 1С:ERP Управление предприятием 2 1С:Управление холдингом 1С:Зарплата и Управление Персоналом 3.x 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Управление торговлей 11 Платные (руб)

Создайте свой функциональный интерфейс в любой конфигурации 1С с помощью расширения Infostart Dashboard. Настраивайте панели виджетов с метриками, индикаторами и показателями на начальном экране. Узнайте возможность внедрения подсистемы у себя в конфигурации с помощью бесплатной обработки "Анализ внедрения подсистемы 1С Infostart Dashboard"!

31720 руб.

27.03.2025    90648    67    44    

77

Инструменты администратора БД Корректировка данных Мониторинг Учет документов 1С 8.3 1С:Управление торговлей 10 1С:Розница 2 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Розница 3.0 Платные (руб)

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

6100 руб.

11.06.2026    803    2    0    

4

Мониторинг Механизмы платформы 1С Системный администратор Программист Бесплатно (free)

Неделю мы искали, почему задание отрабатывает вхолостую, и всё это время оно вообще не запускалось. В истории механизма 580 записей, и все до одной поставлены руками: автоматических нет ни за один день с апреля 2025-го. Ошибок при этом ноль, потому что ошибке негде было возникнуть. Первую версию - задание пропускает запуск, увидев недавний успех - убил замер: четыре дня молчания после того, как мы расчистили состояние. Показываю весь перебор причин, ложную улику с расписанием, из-за которой расследование ушло в сторону на несколько дней, и то поле карточки, которое всё это время решало. Перебор собран списком по порядку проверки, так что по нему можно пройти свою базу.

18.09.2026    287    nedomolkov.ivan    0    

0

HighLoad оптимизация Мониторинг Системный администратор Программист 1С 8.3 Бесплатно (free)

Кто потребляет больше всех и что изменилось - два разных вопроса, и деградацию объясняет только ответ на второй. На сервере 1С, который начал грузить процессор, первым под подозрение попал обмен, и ряд запусков за двенадцать суток показал, что запускается он так же, как раньше. Дальше шесть мест, где расследование могло свернуть не туда, от службы печати с почти целым ядром до пустых файлов технологического журнала, и приём, которым нужный сервис кластера нашли без перезапуска агента. Корневая причина в разборе не названа, текст говорит об этом сразу.

16.09.2026    481    nedomolkov.ivan    0    

0

HighLoad оптимизация Мониторинг Системный администратор Программист 1С 8.3 Бесплатно (free)

Код не меняли год, а операция, которая раньше шла секунду, стала идти минуту. Виноват в таком обычно не код, а то, что данные перешли порог: у квадратичного алгоритма удвоение объёма стоит четырёхкратного роста работы, поэтому поломка не подкрадывается постепенно, а наступает сразу. В разборе - случай коллеги, где сервис деградировал месяц. Три объяснения закрыли замером, а развязку дал профиль на 16 642 снимках: 80,0 % процессорного времени в одной функции, которую при этом нельзя было чинить. Разогнали её 20 копий одного документа по 443 581 байту, наплодил их собственный экспортёр сервиса. Дальше - как отличить квадратичный рост от линейного двумя замерами, где такие места прячутся в коде 1С и что делать, если урезать боевую базу вдвое нельзя.

27.08.2026    1188    nedomolkov.ivan    2    

0

DevOps и автоматизация разработки Мониторинг Тестирование QA Программист 1С:Предприятие 8 Бесплатно (free)

Платформа 1С давно вышла за рамки учетных систем. Сегодня это полноценная среда для создания сложных, высоконагруженных и распределенных приложений. А значит, и стек технологий современного разработчика кардинально изменился. Систематизируем весь инструментарий, который превращает 1С-программиста в инженера: от EDT и Git до автотестов на YAxUnit, контейнеризации приложений в Docker, мониторинга в Prometheus и организации шины данных на Kafka. Разберемся, зачем каждый инструмент нужен, как он вписывается в жизненный цикл разработки и с чего начать его внедрение.

25.08.2026    21493    mrXoxot    53    

83

Технологический журнал Мониторинг Мессенджеры и боты Системный администратор Программист 1С 8.3 1С 8.5 Россия Абонемент ($m)

Лёгкое расширение для 1С, которое ловит ошибки — включая упавшие внутри транзакции проведения и не замеченные типовыми средствами — и сразу шлёт алерты в Telegram и на почту. Не заимствует ни одного объекта конфигурации, ставится на любую базу (типовую или самописную, с БСП или без) за 5 минут. Дедуплицирует повторы, не спамит при шторме ошибок, маскирует персональные данные перед отправкой наружу. Работает даже при отключённом администратором штатном Журнале регистрации — у расширения есть собственный независимый журнал самодиагностики.

3 стартмани

25.08.2026    552    1    KonMa    0    

2

HighLoad оптимизация Мониторинг Системный администратор Программист 1С 8.3 Бесплатно (free)

Мониторинг блокировок сам оказался старейшей открытой транзакцией в базе: сеанс спит, блокировок по нему ноль, транзакция висит четверо с половиной суток. Порог в его собственном запросе - пять секунд, свою транзакцию он продержал порядка восьмидесяти тысяч таких порогов и себя ни разу не заметил. Ни в один отчёт "кто кого блокирует" такой сеанс не попадает: никто никого не ждёт. Это четвёртый из четырёх механизмов, разобранных в статье. Остальные три: один текст ошибки на две совершенно разные причины, из-за которого уходят в разбор графов вместо одной правки обработчика; кольцевой буфер диагностики, обнуляемый переключением основного узла; события, записанные под чужим именем базы, из-за чего запрос отдаёт ноль строк там, где данные лежат. По каждому разобрано, как он выглядит, чем отличается от настоящей пустоты и что с ним делать.

21.08.2026    1307    nedomolkov.ivan    0    

1
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Van2507 12 13.11.19 14:22 Сейчас в теме
Полезная обработка. На сколько я знаю в самой платформе еще есть функционал, позволяющий завершать спящие сеансы. Время засыпания, также как и отключения спящих сеансов устанавливается вручную.
Прикрепленные файлы:
3. AnatolPopov 175 13.11.19 16:30 Сейчас в теме
(1) Мой опыт говорит, что тот функционал работает как хочет. Я немного обсуждаю его вот здесь:
https://infostart.ru/public/1125306/
Процитирую себя:
"Средства, предусмотренные на этот случай разработчиками платформы (Конфигуратор – Администрирование – Параметры ИБ – Время засыпания пассивного сеанса, Время завершения спящего сеанса), почему-то работали как хотели и не гарантировали результат. Возможно, они до сих пор точно так же халтурят. Давно не проверял за ненадобностью."
"... Кроме того, параметр «Время засыпания пассивного сеанса» все-таки чаще работает, чем не работает. Можно увеличить его с традиционных 20 минут до часа, и это сильно сократит количество жалоб."
nnnnnndfge; Jejer; +2 Ответить
4. Van2507 12 13.11.19 16:38 Сейчас в теме
(3) Пару недель назад проверяли этот способ, вроде все работает, по крайней мере зависшие сеансы прошлых дат перестали появлятся
2. AnatolPopov 175 13.11.19 16:24 Сейчас в теме
При этом, очень актуальна жесткая политика - "Один сеанс в одни руки"

Сурово...
Я как-то привык, что моим подопечным всю жизнь надо по два сеанса:
- БГУ и ЗКГУ
- БП и ЗУП
- БГУ и прошлогодняя копия БГУ
- что-то еще и что-то еще
5. IVC_goal 247 13.11.19 18:11 Сейчас в теме
(2) Речь идет - один сеанс к одной базе, учитываются только сеансы с "толстым" и "тонким" клиентами
6. пользователь 14.11.19 08:04
Сообщение было скрыто модератором.
...
7. dimisa 137 12.03.20 20:30 Сейчас в теме
В модуле объекта
1.
закомментил или попытка (не во всех конфигурациях есть)
{
ПараметрыСеанса.ПризнакОтключенияКонтроляНастроек = Истина;
ПараметрыСеанса.ПризнакОтключенияКонтроляНастроек = Ложь;
}

2. спасибо нашёл
{
Если ИмяПользователя = Сеанс.userName ИЛИ не СтрНайти( "1CV8,1CV8C,WebClient", Сеанс.AppID) > 0 Тогда
}

нужна ли конструкция "ИмяПользователя = Сеанс.userName" если фоновое задание ?
8. IVC_goal 247 13.03.20 07:52 Сейчас в теме
(7)
нужна ли конструкция "ИмяПользователя = Сеанс.userName" если фоновое задание ?


Нет не нужна
10. Svet_Serg 23.03.20 09:39 Сейчас в теме
(8) Спасибо за обработку. Не подошла(
9. Svet_Serg 16.03.20 15:12 Сейчас в теме
1С:Предприятие 8.3 (8.3.15.1778)
Документооборот 8 КОРП, редакция 2.1 (2.1.16.1)

На такой конфигурации сработает, как считаете? Жалко потратить с трудом добытый стартмани и узнать, что не подойдет)
11. user1581001 07.05.21 00:57 Сейчас в теме
Будет ли обработка работать на УТ 10.3?
12. IVC_goal 247 07.05.21 06:17 Сейчас в теме
(11) Нет. Под неуправляемыми формами обработка работать не будет. Из конфигурации под управляемыми формами, обработка может управлять сеансами УТ 10.3. Если переделать регистрацию обработки под неуправляемые формы, то возможно в фоновых заданиях обработка и сможет работать, но этот не точно. Этот вариант работы не тестировался.
Для отправки сообщения требуется регистрация/авторизация