Альтернативная конфигурация для внешнего управления сеансами (КОРП)

12.03.26

База данных - Инструменты администратора БД

Реализация конфигурации внешнего управления сеансами (ограничения сеансов) с заданием ограничения на несколько баз с получением количества активных сеансов из консоли кластера 1С через COM-соединение с кластером.

Файлы

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

Наименование Скачано Купить файл
Альтернативная конфигурация для внешнего управления сеансами (КОРП)
.cf 19,91Kb
5 2 500 руб. Купить

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

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

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

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

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

Конфигурация создана как альтернатив типовому варианту с ИТС (весь процесс настройки тут подробно приведен) и может стать основой для вашего решения внешнего управления сеансами если вам нужно построить ограничение сеансов таким образом, чтобы учитывались суммарные сеансы на несколько баз. Например, у организации есть база БП и ЗУП, нужно ограничить суммарное количество сеансов на организацию в обеих базах. Количество баз, на которое задается суммарное ограничение - не ограничено.

За базу была взята обработка //infostart.ru/1c/tools/1265333/, но почти полностью переработана.

Тестировалось на платформе 1С:Предприятие 8.3 (8.3.27.1859), сервер 64 КОРП на Windows, apache 2.4

Установка: создаем новую пустую базу, загружаем туда cf, публикуем на веб-сервере (апач или IIS):

 

 

Запоминаем имя публикации и имя веб-сервиса.

В свойствах базы в кластере делаем так:

 

 

В строке внешнего управления сеансами пишем:

wsdl=https://<адрес_веб_сервера>/SessionManagement/ws/SessionControl?wsdl;ns=http://v8.1c.ru/SessionManagement;srvc=SessionControl;port=SessionControlSoap;

SessionManagement - это имя публикации

SessionControl - имя веб-сервиса

и галку обязательное использование внешнего управления.

---

Теперь настройка самих ограничений и мониторинг.

Нашу базу контроля открываем, создаем новый элемент, наименование какое хотите, в поле количество пишем максимально доступное количество сеансов:

 

 

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

 

 

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

Сохраняем, пробуем:

 

 

Сообщение сможете изменить в конфигурации, как захотите.

Да, и обязательно настройку в разделе настройки:

 

 

Если на кластер есть админские логины - вписываем. В AppID исключений я вписал сеансы консоли кластера, фоновые задания и сом-подключение к консоли. Эти сеансы не учитываются при контроле.

Теперь немного кода и методики. 

Штатное использование управления сеансами предполагает работу только с одной базой и установку запрета в рамках одной базы. Именно поэтому была разработана данная альтернативная конфигурация. Здесь мы получаем количество сеансов не типовыми функциями, а путем запроса к консоли кластера через COM (внимание, должна быть зарегистрирована компонента comcntr (regsvr32 comcntr.dll), ну и на линуксах не заработает), фильтруем по базе:

// замена штатной функции synchronize на получение общего списка сеансов 
// по элементу справочника Доступные сеансы, который задает ограничение суммарных сеансов на группу инф.баз
Процедура synchronizeByGetSessions(ЭлементСправочникаДоступныеСеансы)
	
	Настройка = Справочники.спрНастройки.ЕдинственныйЭлемент;
	
	COMСоединитель = Новый COMОбъект("V83.COMConnector");
	Агент = COMСоединитель.ConnectAgent(СокрЛП(Настройка.СтрокаПодключения));
	Кластер = Агент.GetClusters().GetValue(0);
	Агент.Authenticate(Кластер,СокрЛП(Настройка.ЛогинКластер),СокрЛП(Настройка.ПарольКластер));
	МассивСессий = Агент.GetSessions(Кластер).Выгрузить();    	
	
	Попытка
		Объект = ЭлементСправочникаДоступныеСеансы.ПолучитьОбъект();
		Объект.Заблокировать(); // Установка блокировки
		Объект.ТекущиеСеансы.Очистить();
		Для Каждого Сессия Из МассивСессий Цикл        
			Если Объект.ИнфБазы.НайтиСтроки(Новый Структура("ИмяБазы",Сессия.infoBase.Name)).Количество()>0 
				И Настройка.ИсключенияAppID.НайтиСтроки(Новый Структура("AppID",Сессия.AppID)).Количество()=0 Тогда
				
				Строка = Объект.ТекущиеСеансы.Добавить();
				Строка.SessionID = Сессия.SessionID;
				Строка.infobaseName = Сессия.infoBase.Name;
				Строка.UserName = Сессия.UserName;
				Строка.AppID = Сессия.AppID;
				Строка.LanguageCode = Сессия.Locale;
				Строка.Hibernate = Сессия.Hibernate;
				Строка.StartedAt = Сессия.StartedAt;
			КонецЕсли;
		КонецЦикла;
		Объект.ВсегоСессий = Объект.ТекущиеСеансы.Количество();
		Объект.БезСпящих = Объект.ТекущиеСеансы.НайтиСтроки(Новый Структура("Hibernate", Ложь)).Количество();
		Объект.Записать();
	Исключение
		ЗаписьЖурналаРегистрации("synchronizeByGetSessions",УровеньЖурналаРегистрации.Ошибка,,,"Не удалось заблокировать объект "+ЭлементСправочникаДоступныеСеансы);
	КонецПопытки
	
КонецПроцедуры

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

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

Внешнее управление сеансами КОРП

См. также

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

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы, интерфейс 8.5. Может выполнять свертку одновременно в несколько потоков, а также без непосредственного участия пользователя. Решение в Реестре отечественного ПО.

24900 руб.

20.08.2024    74852    377    170    

324

Разработка Инструменты администратора БД Администрирование веб-серверов Администрирование Программист 1C:ERP Платные (руб)

Это специализированное решение для глубокого анализа и мониторинга серверов и баз данных 1С. Продукт позволяет выявлять причины замедлений, блокировок и ошибок, объединяя данные технологического журнала, СУБД и оборудования в единой интерактивной системе.

90000 руб.

13.05.2026    1258    2    0    

4

Инструменты администратора БД Инструментарий разработчика Роли и права Программист 1С:Предприятие 8 1C:Бухгалтерия Россия Платные (руб)

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

17000 руб.

10.11.2023    26351    98    46    

104

Информационная безопасность Инструменты администратора БД Инструментарий разработчика Учет документов Системный администратор Программист Бизнес-аналитик Бухгалтер Пользователь Руководитель проекта 1С 8.3 1С 8.5 Розничная и сетевая торговля (FMCG) Платные (руб)

Контроль ввода данных в 1С: проверка заполнения реквизитов, обязательные поля, контроль перед записью и проведением, запрет проведения документа. Позволяет настраивать любые проверки данных в 1С 8.3/8.5 от обязательных полей до сложных условий – без открытия конфигуратора и написания кода. Готовое расширение, которое подключается и работает сразу.

6000 руб.

15.04.2026    2551    6    0    

21

Закрытие периода Инструменты администратора БД Корректировка данных Бухгалтер Пользователь 1С:Предприятие 8 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Расширение «Оперативное проведение» в 4 раза уменьшает время проведения документов и закрытия месяца. Является комплексным решением проблем 62 и 60 счетов. Оптимизирует проведение при включенной функциональной опции «Раздельный учет НДС». Используется в более 10 организациях уже 2 года. Совместимо с конфигурацией Бухгалтерия 3.0 (+КОРП).

14640 руб.

29.04.2020    51233    140    162    

95

SALE! 15%

Файловый обмен (TXT, XML, DBF), FTP Поиск данных Инструменты администратора БД Корректировка данных Системный администратор Программист 1С:Предприятие 8 1C:Бухгалтерия 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Данная обработка позволит Вам легко и просто, а главное - быстро, выполнить сравнение данных между ЛЮБЫМИ базами (и РИБ, по правилам конвертаций) по контрольным суммам выбранных объектов баз 1С, работающих на платформах 8.3 и выше. Удобный и понятный интерфейс в виде "мастера". Высокая скорость сравнения достигается за счет специального алгоритма расчета контрольной суммы объекта/записи и сравнения по данным суммам объектов 2х баз через файл. Имеется возможность выбора реквизитов, по которым система будет сравнивать объекты. Сравнение количества записей в движениях документов, возможность сравнивать данные по правилам конвертации и не только! Выбор объектов конфигурации для КАЖДОГО узла в отдельности с индивидуальным отбором для каждого объекта конфигурации, работа с FTP, сохранение или загрузка настроек, сохранение или загрузка результата сравнения, регистрация на обмен объекта и его движений. (Обновление от 12.11.2024, версия 2.2-2.5)

24400 20740 руб.

27.10.2017    46910    32    15    

50
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. demon_infernal 41 13.03.26 10:05 Сейчас в теме
Добрый день.
Чтобы заработало на линуксах - достаточно отказаться от COM-соединения и использовать rac\ras
Для отправки сообщения требуется регистрация/авторизация