СвойстваСоединений (БСП)

Автор: 1С
ОбщийМодуль.АдминистрированиеКластераRAS
БСП

Свойства соединений. Возвращает описания соединений с информационной базой.

// Возвращает описания соединений с информационной базой.
//
// Параметры:
//   ИдентификаторКластера - Строка - внутренний идентификатор кластера серверов.
//   ПараметрыАдминистрированияКластера - Структура - структура, описывающая параметры подключения к кластеру серверов,
//                  описание см. АдминистрированиеКластера.ПараметрыАдминистрированияКластера().
//   ИдентификаторИнформационнойБазы - Строка - внутренний идентификатор информационной базы.
//   ПараметрыАдминистрированияИБ - Структура - структура, описывающая параметры подключения к информационной базе,
//                  описание см. АдминистрированиеКластера.ПараметрыАдминистрированияИнформационнойБазыКластера().
//   Фильтр - Описание условия фильтрации сеансов, описания которых требуется получить.
//      Варианты:
//         1. Массив структур, описывающих условия фильтрации сеансов. Поля структур, входящих в массив:
//            Свойство - Строка, имя свойства, по которому осуществляется фильтрация. Допустимые значения - см.
//               Возвращаемое значение функции АдминистрированиеКластера.СвойстваСеанса(),
//            ВидСравнения - значение системного перечисления ВидСравнения, вид сравнения значений сеансов с указанным
//               в условии фильтра. Допустимые значения:
//                  ВидСравнения.Равно,
//                  ВидСравнения.НеРавно,
//                  ВидСравнения.Больше (только для числовых значений),
//                  ВидСравнения.БольшеИлиРавно (только для числовых значений),
//                  ВидСравнения.Меньше (только для числовых значений),
//                  ВидСравнения.МеньшеИлиРавно (только для числовых значений),
//                  ВидСравнения.ВСписке,
//                  ВидСравнения.НеВСписке,
//                  ВидСравнения.Интервал (только для числовых значений),
//                  ВидСравнения.ИнтервалВключаяГраницы (только для числовых значений),
//                  ВидСравнения.ИнтервалВключаяНачало (только для числовых значений),
//                  ВидСравнения.ИнтервалВключаяОкончание (только для числовых значений),
//            Значение - Число, Строка, Дата, Булево, СписокЗначений, Массив, Структура - значение, с которым
//               сравнивается значение соответствующего свойства сеанса. При ВидСравнения.ВСписке и ВидСравнения.НеВСписке
//               в качестве значения должны передаваться СписокЗначений или Массив, содержащие набор значений, с которыми
//               будет выполняться сравнение. При ВидСравнения.Интервал, ВидСравнения.ИнтервалВключаяГраницы,
//               ВидСравнения.ИнтервалВключаяНачало и ВидСравнения.ИнтервалВключаяОкончание в качестве значения должны
//               передаваться структуры с полями С и По, значения которых образуют интервал, с которым будет выполняться
//               соответствующее сравнение,
//         2. Структура (упрощенный вариант), ключ - Имя свойства сеанса (см. выше), значение - значение, с которым
//            выполняется сравнение. При использовании данного варианта описания фильтра сравнение всегда выполняется на
//            равенство.
//   ИспользоватьСловарь - Булево - если Истина - возвращаемый результат будет заполнен с использован словаря, иначе - без
//                  использования.
//
// Возвращаемое значение: 
//   Массив - массив структур, описывающих свойства соединений (описание 
//                  см. АдминистрированиеКластера.СвойстваСоединения()) 
//                  или массив соответствий, описывающих свойства соединений в нотации утилиты rac 
//                  (при ИспользоватьСловарь = Ложь).
//
Функция СвойстваСоединений(Знач ИдентификаторКластера, Знач ПараметрыАдминистрированияКластера, Знач ИдентификаторИнформационнойБазы, Знач ПараметрыАдминистрированияИБ, Знач Фильтр = Неопределено, Знач ИспользоватьСловарь = Ложь) Экспорт
	
	ПараметрыКластера = ПараметрыКластера(ПараметрыАдминистрированияКластера, ИдентификаторКластера);
	
	Если ИспользоватьСловарь Тогда
		Словарь = СловарьСвойствСоединений();
	Иначе
		Словарь = Неопределено;
		Фильтр = ФильтрВНотациюRac(Фильтр, СловарьСвойствСоединений());
	КонецЕсли;
	
	Результат = Новый Массив();
	РабочиеПроцессы = СвойстваРабочихПроцессов(ИдентификаторКластера, ПараметрыАдминистрированияКластера);
	
	Для Каждого РабочийПроцесс Из РабочиеПроцессы Цикл
		
		Команда = "connection list --process=%1 --infobase=%2 --infobase-user=%3 --infobase-pwd=%4 " + ПараметрыКластера;
		ПодставитьПараметрыВКоманду(Команда,
			РабочийПроцесс.Получить("process"),
			ИдентификаторИнформационнойБазы,
			ПараметрыАдминистрированияИБ.ИмяАдминистратораИнформационнойБазы,
			ПараметрыАдминистрированияИБ.ПарольАдминистратораИнформационнойБазы);
			
		СоединенияРабочегоПроцесса = ЗапуститьКоманду(Команда, ПараметрыАдминистрированияКластера, Словарь, Фильтр, ТипыСвойствСоединений());
		Для Каждого Соединение Из СоединенияРабочегоПроцесса Цикл
			Если ИспользоватьСловарь Тогда
				Если Соединение.РежимСоединенияСБазойДанных = "none" Тогда
					Соединение.Вставить("РежимСоединенияСБазойДанных", 0);
				ИначеЕсли Соединение.РежимСоединенияСБазойДанных = "shared" Тогда
					Соединение.Вставить("РежимСоединенияСБазойДанных", 1);
				Иначе // exclusive
					Соединение.Вставить("РежимСоединенияСБазойДанных", 2);
				КонецЕсли;
				Соединение.Вставить("РежимСоединенияСИнформационнойБазой", ?(Соединение.РежимСоединенияСИнформационнойБазой = "shared", 0, 1));
				Соединение.Вставить("УправлениеНаходитсяНаСервере", ?(Соединение.УправлениеНаходитсяНаСервере = "client", 0, 1));
			Иначе
				Соединение.Вставить("process", РабочийПроцесс.Получить("process"));
			КонецЕсли;
			Результат.Добавить(Соединение);
		КонецЦикла;
		
	КонецЦикла;
	
	Возврат Результат;
	
КонецФункции

///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются 
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////

Рекомендации

Похожие публикации

СвойстваСоединений (БСП)

СвойстваОписанияСоединения (БСП)

СвойстваСоединения (БСП)

FTPСоединение (БСП)

FTPНастройкиСоединения (БСП)

ВнешнееСоединениеСБазой (БСП)

Обновлятор-1С: групповое (пакетное) обновление и обслуживание всех баз за один раз