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

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

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

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