diff --git a/lib.config b/lib.config index 16d7bc0..d1bbcbb 100644 --- a/lib.config +++ b/lib.config @@ -31,6 +31,7 @@ + diff --git a/packagedef b/packagedef index e899202..6d59d4b 100644 --- a/packagedef +++ b/packagedef @@ -1,6 +1,6 @@  Описание.Имя("irac") - .Версия("0.11.1") + .Версия("0.12.0") .Автор("Artem Kuznetsov") .АдресАвтора("ArKuznetsov@gmail.com") .Описание("Библиотека администрирования кластера серверов 1С") diff --git a/src/lib.config b/src/lib.config index c24edcb..93277e6 100644 --- a/src/lib.config +++ b/src/lib.config @@ -31,6 +31,7 @@ + diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\264\320\274\320\270\320\275\320\270\321\201\321\202\321\200\320\260\321\202\320\276\321\200\321\213\320\220\320\263\320\265\320\275\321\202\320\260.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\264\320\274\320\270\320\275\320\270\321\201\321\202\321\200\320\260\321\202\320\276\321\200\321\213\320\220\320\263\320\265\320\275\321\202\320\260.os" index e70996e..1622cd4 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\264\320\274\320\270\320\275\320\270\321\201\321\202\321\200\320\260\321\202\320\276\321\200\321\213\320\220\320\263\320\265\320\275\321\202\320\260.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\264\320\274\320\270\320\275\320\270\321\201\321\202\321\200\320\260\321\202\320\276\321\200\321\213\320\220\320\263\320\265\320\275\321\202\320\260.os" @@ -95,7 +95,11 @@ // Параметры: // Отбор - Структура - Структура отбора администраторов (<поле>:<значение>) // ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) -// ЭлементыКакСоответствия - Булево - Истина - элементы результата будут преобразованы в соответствия +// ЭлементыКакСоответствия - Булево, - Истина - элементы результата будут преобразованы в соответствия +// Строка с именами свойств в качестве ключей +// <Имя поля> - элементы результата будут преобразованы в соответствия +// со значением указанного поля в качестве ключей ("Имя"|"ИмяРАК") +// Ложь - (по умолчанию) элементы будут возвращены как есть // // Возвращаемое значение: // Массив - список администраторов агента кластера 1С @@ -111,9 +115,13 @@ // Функция возвращает список администраторов агента кластеров 1С // // Параметры: -// ПоляИерархии - Строка - Поля для построения иерархии списка администраторов, разделенные "," -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) -// ЭлементыКакСоответствия - Булево - Истина - элементы результата будут преобразованы в соответствия +// ПоляИерархии - Строка - Поля для построения иерархии списка администраторов, разделенные "," +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// ЭлементыКакСоответствия - Булево, - Истина - элементы результата будут преобразованы в соответствия +// Строка с именами свойств в качестве ключей +// <Имя поля> - элементы результата будут преобразованы в соответствия +// со значением указанного поля в качестве ключей ("Имя"|"ИмяРАК") +// Ложь - (по умолчанию) элементы будут возвращены как есть // // Возвращаемое значение: // Соответствие - список администраторов агента кластеров 1С diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\264\320\274\320\270\320\275\320\270\321\201\321\202\321\200\320\260\321\202\320\276\321\200\321\213\320\232\320\273\320\260\321\201\321\202\320\265\321\200\320\260.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\264\320\274\320\270\320\275\320\270\321\201\321\202\321\200\320\260\321\202\320\276\321\200\321\213\320\232\320\273\320\260\321\201\321\202\320\265\321\200\320\260.os" index 234b326..470de58 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\264\320\274\320\270\320\275\320\270\321\201\321\202\321\200\320\260\321\202\320\276\321\200\321\213\320\232\320\273\320\260\321\201\321\202\320\265\321\200\320\260.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\220\320\264\320\274\320\270\320\275\320\270\321\201\321\202\321\200\320\260\321\202\320\276\321\200\321\213\320\232\320\273\320\260\321\201\321\202\320\265\321\200\320\260.os" @@ -97,9 +97,13 @@ // Функция возвращает список администраторов кластера // // Параметры: -// Отбор - Структура - Структура отбора администраторов (<поле>:<значение>) -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) -// ЭлементыКакСоответствия - Булево - Истина - элементы результата будут преобразованы в соответствия +// Отбор - Структура - Структура отбора администраторов (<поле>:<значение>) +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// ЭлементыКакСоответствия - Булево, - Истина - элементы результата будут преобразованы в соответствия +// Строка с именами свойств в качестве ключей +// <Имя поля> - элементы результата будут преобразованы в соответствия +// со значением указанного поля в качестве ключей ("Имя"|"ИмяРАК") +// Ложь - (по умолчанию) элементы будут возвращены как есть // // Возвращаемое значение: // Массив - список администраторов кластера 1С @@ -117,7 +121,11 @@ // Параметры: // ПоляИерархии - Строка - Поля для построения иерархии списка администраторов, разделенные "," // ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) -// ЭлементыКакСоответствия - Булево - Истина - элементы результата будут преобразованы в соответствия +// ЭлементыКакСоответствия - Булево, - Истина - элементы результата будут преобразованы в соответствия +// Строка с именами свойств в качестве ключей +// <Имя поля> - элементы результата будут преобразованы в соответствия +// со значением указанного поля в качестве ключей ("Имя"|"ИмяРАК") +// Ложь - (по умолчанию) элементы будут возвращены как есть // // Возвращаемое значение: // Соответствие - список администраторов кластеров 1С diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\221\320\273\320\276\320\272\320\270\321\200\320\276\320\262\320\272\320\270.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\221\320\273\320\276\320\272\320\270\321\200\320\276\320\262\320\272\320\270.os" index 4c3666c..b209672 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\221\320\273\320\276\320\272\320\270\321\200\320\276\320\262\320\272\320\270.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\221\320\273\320\276\320\272\320\270\321\200\320\276\320\262\320\272\320\270.os" @@ -119,9 +119,13 @@ // Функция возвращает список блокировок // // Параметры: -// Отбор - Структура - Структура отбора блокировок (<поле>:<значение>) -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) -// ЭлементыКакСоответствия - Булево - Истина - элементы результата будут преобразованы в соответствия +// Отбор - Структура - Структура отбора блокировок (<поле>:<значение>) +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// ЭлементыКакСоответствия - Булево, - Истина - элементы результата будут преобразованы в соответствия +// Строка с именами свойств в качестве ключей +// <Имя поля> - элементы результата будут преобразованы в соответствия +// со значением указанного поля в качестве ключей ("Имя"|"ИмяРАК") +// Ложь - (по умолчанию) элементы будут возвращены как есть // // Возвращаемое значение: // Массив - список блокировок @@ -137,9 +141,13 @@ // Функция возвращает список блокировок // // Параметры: -// ПоляИерархии - Строка - Поля для построения иерархии списка блокировок, разделенные "," -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) -// ЭлементыКакСоответствия - Булево - Истина - элементы результата будут преобразованы в соответствия +// ПоляИерархии - Строка - Поля для построения иерархии списка блокировок, разделенные "," +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// ЭлементыКакСоответствия - Булево, - Истина - элементы результата будут преобразованы в соответствия +// Строка с именами свойств в качестве ключей +// <Имя поля> - элементы результата будут преобразованы в соответствия +// со значением указанного поля в качестве ключей ("Имя"|"ИмяРАК") +// Ложь - (по умолчанию) элементы будут возвращены как есть // // Возвращаемое значение: // Соответствие - список блокировок diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\320\276\320\275\320\275\320\260\321\217\320\221\320\260\320\267\320\260.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\320\276\320\275\320\275\320\260\321\217\320\221\320\260\320\267\320\260.os" index 3258982..6c8d832 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\320\276\320\275\320\275\320\260\321\217\320\221\320\260\320\267\320\260.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\320\276\320\275\320\275\320\260\321\217\320\221\320\260\320\267\320\260.os" @@ -43,7 +43,7 @@ Возврат; КонецЕсли; - ПараметрыОбъекта = Новый КомандыОбъекта(Перечисления.РежимыАдминистрирования.ИБ); + ПараметрыОбъекта = Новый КомандыОбъекта(Перечисления.РежимыАдминистрирования.ИнформационныеБазы); Кластер_Агент = АгентКластера; Кластер_Владелец = Кластер; diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\320\276\320\275\320\275\321\213\320\265\320\221\320\260\320\267\321\213.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\320\276\320\275\320\275\321\213\320\265\320\221\320\260\320\267\321\213.os" index 5cfcaaf..b4d232a 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\320\276\320\275\320\275\321\213\320\265\320\221\320\260\320\267\321\213.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\230\320\275\321\204\320\276\321\200\320\274\320\260\321\206\320\270\320\276\320\275\320\275\321\213\320\265\320\221\320\260\320\267\321\213.os" @@ -27,7 +27,7 @@ Кластер_Агент = АгентКластера; Кластер_Владелец = Кластер; - ПараметрыОбъекта = Новый КомандыОбъекта(Перечисления.РежимыАдминистрирования.ИБ); + ПараметрыОбъекта = Новый КомандыОбъекта(Перечисления.РежимыАдминистрирования.ИнформационныеБазы); Элементы = Новый ОбъектыКластера(ЭтотОбъект); @@ -93,9 +93,13 @@ // Функция возвращает список информационных баз // // Параметры: -// Отбор - Структура - Структура отбора информационных баз (<поле>:<значение>) -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) -// ЭлементыКакСоответствия - Булево - Истина - элементы результата будут преобразованы в соответствия +// Отбор - Структура - Структура отбора информационных баз (<поле>:<значение>) +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// ЭлементыКакСоответствия - Булево, - Истина - элементы результата будут преобразованы в соответствия +// Строка с именами свойств в качестве ключей +// <Имя поля> - элементы результата будут преобразованы в соответствия +// со значением указанного поля в качестве ключей ("Имя"|"ИмяРАК") +// Ложь - (по умолчанию) элементы будут возвращены как есть // // Возвращаемое значение: // Массив - список информационных баз @@ -111,9 +115,13 @@ // Функция возвращает список информационных баз // // Параметры: -// ПоляИерархии - Строка - Поля для построения иерархии списка информационных баз, разделенные "," -// ОбновитьПринудительно - Булево - Истина - обновить список (вызов RAC) -// ЭлементыКакСоответствия - Булево - Истина - элементы результата будут преобразованы в соответствия +// ПоляИерархии - Строка - Поля для построения иерархии списка информационных баз, разделенные "," +// ОбновитьПринудительно - Булево - Истина - обновить список (вызов RAC) +// ЭлементыКакСоответствия - Булево, - Истина - элементы результата будут преобразованы в соответствия +// Строка с именами свойств в качестве ключей +// <Имя поля> - элементы результата будут преобразованы в соответствия +// со значением указанного поля в качестве ключей ("Имя"|"ИмяРАК") +// Ложь - (по умолчанию) элементы будут возвращены как есть // // Возвращаемое значение: // Соответствие - список информационных баз diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\273\320\260\321\201\321\202\320\265\321\200\321\213.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\273\320\260\321\201\321\202\320\265\321\200\321\213.os" index 3fe97cf..52ccd9d 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\273\320\260\321\201\321\202\320\265\321\200\321\213.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\273\320\260\321\201\321\202\320\265\321\200\321\213.os" @@ -82,9 +82,13 @@ // Функция возвращает список кластеров 1С // // Параметры: -// Отбор - Структура - Структура отбора кластеров (<поле>:<значение>) -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) -// ЭлементыКакСоответствия - Булево - Истина - элементы результата будут преобразованы в соответствия +// Отбор - Структура - Структура отбора кластеров (<поле>:<значение>) +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// ЭлементыКакСоответствия - Булево, - Истина - элементы результата будут преобразованы в соответствия +// Строка с именами свойств в качестве ключей +// <Имя поля> - элементы результата будут преобразованы в соответствия +// со значением указанного поля в качестве ключей ("Имя"|"ИмяРАК") +// Ложь - (по умолчанию) элементы будут возвращены как есть // // Возвращаемое значение: // Массив - список кластеров 1С @@ -100,9 +104,13 @@ // Функция возвращает иерархический список кластеров 1С // // Параметры: -// ПоляИерархии - Строка - Поля для построения иерархии списка кластеров, разделенные "," -// ОбновитьПринудительно - Булево - Истина - обновить список (вызов RAC) -// ЭлементыКакСоответствия - Булево - Истина - элементы результата будут преобразованы в соответствия +// ПоляИерархии - Строка - Поля для построения иерархии списка кластеров, разделенные "," +// ОбновитьПринудительно - Булево - Истина - обновить список (вызов RAC) +// ЭлементыКакСоответствия - Булево, - Истина - элементы результата будут преобразованы в соответствия +// Строка с именами свойств в качестве ключей +// <Имя поля> - элементы результата будут преобразованы в соответствия +// со значением указанного поля в качестве ключей ("Имя"|"ИмяРАК") +// Ложь - (по умолчанию) элементы будут возвращены как есть // // Возвращаемое значение: // Соответствие - список кластеров 1С diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\233\320\270\321\206\320\265\320\275\320\267\320\270\320\270.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\233\320\270\321\206\320\265\320\275\320\267\320\270\320\270.os" new file mode 100644 index 0000000..7926dda --- /dev/null +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\233\320\270\321\206\320\265\320\275\320\267\320\270\320\270.os" @@ -0,0 +1,230 @@ +// ---------------------------------------------------------- +// This Source Code Form is subject to the terms of the +// Mozilla Public License, v.2.0. If a copy of the MPL +// was not distributed with this file, You can obtain one +// at http://mozilla.org/MPL/2.0/. +// ---------------------------------------------------------- +// Codebase: https://github.com/ArKuznetsov/irac/ +// ---------------------------------------------------------- + +Перем Кластер_Агент; +Перем Кластер_Владелец; +Перем Владелец; +Перем ИБ_Владелец; + +Перем ПараметрыОбъекта; + +Перем Элементы; + +Перем Лог; + +// Конструктор +// +// Параметры: +// АгентКластера - АгентКластера - ссылка на родительский объект агента кластера +// Кластер - Кластер - ссылка на родительский объект кластера +// ВладелецЛицензий - РабочиеПроцессы, - ссылка на родительский объект рабочих процессов +// Сеансы или сеансов +// ИБ - ИнформационнаяБаза - ссылка на родительский объект информационной базы +// используется если владелец "Сеансы" +// +Процедура ПриСозданииОбъекта(АгентКластера, Кластер, ВладелецЛицензий = Неопределено, ИБ = Неопределено) + + Лог = Служебный.Лог(); + + Кластер_Агент = АгентКластера; + Кластер_Владелец = Кластер; + Владелец = ВладелецЛицензий; + ИБ_Владелец = ИБ; + + ПараметрыОбъекта = Новый КомандыОбъекта(ТипЛицензий()); + + Элементы = Новый ОбъектыКластера(ЭтотОбъект); + +КонецПроцедуры // ПриСозданииОбъекта() + +// Процедура получает данные по лицензиям от сервиса администрирования кластера 1С +// и сохраняет в локальных переменных +// +// Параметры: +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// - Ложь - данные будут получены если истекло время актуальности +// или данные не были получены ранее +// +Процедура ОбновитьДанные(ОбновитьПринудительно = Ложь) Экспорт + + Если НЕ Элементы.ТребуетсяОбновление(ОбновитьПринудительно) Тогда + Возврат; + КонецЕсли; + + ПараметрыКоманды = Новый Соответствие(); + ПараметрыКоманды.Вставить("СтрокаПодключенияАгента" , Кластер_Агент.СтрокаПодключения()); + ПараметрыКоманды.Вставить("ИдентификаторКластера" , Кластер_Владелец.Ид()); + ПараметрыКоманды.Вставить("СтрокаАвторизацииКластера", Кластер_Владелец.СтрокаАвторизации()); + + Если ТипЗнч(Владелец) = Тип("РабочийПроцесс") Тогда + ПараметрыКоманды.Вставить("ИдентификаторПроцесса" , Владелец.Ид()); + ИмяКоманды = "Описание"; + ИначеЕсли ТипЗнч(Владелец) = Тип("Сеанс") Тогда + ПараметрыКоманды.Вставить("ИдентификаторСеанса" , Владелец.Ид()); + ИмяКоманды = "Описание"; + Иначе + ИмяКоманды = "Список"; + КонецЕсли; + + Если ТипЛицензий() = Перечисления.РежимыАдминистрирования.ЛицензииСеансов + И НЕ ИБ_Владелец = Неопределено Тогда + ПараметрыКоманды.Вставить("ИдентификаторИБ", ИБ_Владелец.Ид()); + КонецЕсли; + + ПараметрыОбъекта.УстановитьЗначенияПараметровКоманд(ПараметрыКоманды); + + КодВозврата = Кластер_Агент.ВыполнитьКоманду(ПараметрыОбъекта.ПараметрыКоманды(ИмяКоманды)); + + Если НЕ КодВозврата = 0 Тогда + ВызватьИсключение СтрШаблон("Ошибка получения списка лицензий, КодВозврата = %1: %2", + КодВозврата, + Кластер_Агент.ВыводКоманды(Ложь)); + КонецЕсли; + + МассивРезультатов = Кластер_Агент.ВыводКоманды(); + + МассивЛицензий = Новый Массив(); + Для Каждого ТекОписание Из МассивРезультатов Цикл + МассивЛицензий.Добавить(Новый ОбъектКластера(Кластер_Агент, Кластер_Владелец, ТипЛицензий(), ТекОписание)); + КонецЦикла; + + Элементы.Заполнить(МассивЛицензий); + + Элементы.УстановитьАктуальность(); + +КонецПроцедуры // ОбновитьДанныеЛицензий() + +// Функция возвращает коллекцию параметров объекта +// +// Параметры: +// ИмяПоляКлюча - Строка - имя поля, значение которого будет использовано +// в качестве ключа возвращаемого соответствия +// +// Возвращаемое значение: +// Соответствие - коллекция параметров объекта, для получения/изменения значений +// +Функция ПараметрыОбъекта(ИмяПоляКлюча = "Имя") Экспорт + + Возврат ПараметрыОбъекта.ОписаниеСвойств(ИмяПоляКлюча); + +КонецФункции // ПараметрыОбъекта() + +// Функция возвращает тип лицензии по типу владельца +// +// Возвращаемое значение: +// Перечисление.РежимыАдминистрирования - тип лицензии +// +Функция ТипЛицензий() Экспорт + + Если ТипЗнч(Владелец) = Тип("РабочиеПроцессы") + ИЛИ ТипЗнч(Владелец) = Тип("РабочийПроцесс") Тогда + Возврат Перечисления.РежимыАдминистрирования.ЛицензииПроцессов; + ИначеЕсли ТипЗнч(Владелец) = Тип("Сеансы") + ИЛИ ТипЗнч(Владелец) = Тип("Сеанс") Тогда + Возврат Перечисления.РежимыАдминистрирования.ЛицензииСеансов; + Иначе + ВызватьИсключение СтрШаблон("Некорректный тип ""%1"" владельца лицензий, + |ожидались ""РабочиеПроцессы"" или ""Сеансы""!"); + КонецЕсли; + +КонецФункции // ТипЛицензий() + +// Функция возвращает список сеансов +// +// Параметры: +// Отбор - Структура - Структура отбора сеансов (<поле>:<значение>) +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// ЭлементыКакСоответствия - Булево, - Истина - элементы результата будут преобразованы в соответствия +// Строка с именами свойств в качестве ключей +// <Имя поля> - элементы результата будут преобразованы в соответствия +// со значением указанного поля в качестве ключей ("Имя"|"ИмяРАК") +// Ложь - (по умолчанию) элементы будут возвращены как есть +// +// Возвращаемое значение: +// Массив - список сеансов +// +Функция Список(Отбор = Неопределено, ОбновитьПринудительно = Ложь, ЭлементыКакСоответствия = Ложь) Экспорт + + Лицензии = Элементы.Список(Отбор, ОбновитьПринудительно, ЭлементыКакСоответствия); + + Возврат Лицензии; + +КонецФункции // Список() + +// Функция возвращает список сеансов +// +// Параметры: +// ПоляИерархии - Строка - Поля для построения иерархии списка сеансов, разделенные "," +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// ЭлементыКакСоответствия - Булево, - Истина - элементы результата будут преобразованы в соответствия +// Строка с именами свойств в качестве ключей +// <Имя поля> - элементы результата будут преобразованы в соответствия +// со значением указанного поля в качестве ключей ("Имя"|"ИмяРАК") +// Ложь - (по умолчанию) элементы будут возвращены как есть +// +// Возвращаемое значение: +// Соответствие - список сеансов +// +Функция ИерархическийСписок(Знач ПоляИерархии, ОбновитьПринудительно = Ложь, ЭлементыКакСоответствия = Ложь) Экспорт + + Лицензии = Элементы.ИерархическийСписок(ПоляИерархии, ОбновитьПринудительно, ЭлементыКакСоответствия); + + Возврат Лицензии; + +КонецФункции // ИерархическийСписок() + +// Функция возвращает количество сеансов в списке +// +// Возвращаемое значение: +// Число - количество сеансов +// +Функция Количество() Экспорт + + Если Элементы = Неопределено Тогда + Возврат 0; + КонецЕсли; + + Возврат Элементы.Количество(); + +КонецФункции // Количество() + +// Функция возвращает описание сеанса кластера 1С +// +// Параметры: +// ИдВладельца - Строка - номер сеанса в виде <имя информационной базы>:<номер сеанса> +// или номер процесса в виде <адрес сервера>:<номер процесса ОС (pid))> +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// КакСоответствие - Булево - Истина - результат будет преобразован в соответствие +// +// Возвращаемое значение: +// Соответствие - описание сеанса 1С +// +Функция Получить(Знач ИдВладельца, Знач ОбновитьПринудительно = Ложь, КакСоответствие = Ложь) Экспорт + + СеансИлиПроцесс = Владелец.Получить(ИдВладельца); + + Отбор = Новый Соответствие(); + + Если ТипЗнч(Владелец) = Тип("РабочиеПроцессы") Тогда + Отбор.Вставить("process", СеансИлиПроцесс.Ид()); + ИначеЕсли ТипЗнч(Владелец) = Тип("Сеансы") Тогда + Отбор.Вставить("session", СеансИлиПроцесс.Ид()); + Иначе + Возврат Неопределено; + КонецЕсли; + + Лицензии = Элементы.Список(Отбор, ОбновитьПринудительно, КакСоответствие); + + Если Лицензии.Количество() = 0 Тогда + Возврат Неопределено; + КонецЕсли; + + Возврат Лицензии[0]; + +КонецФункции // Получить() diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\321\213\320\232\320\273\320\260\321\201\321\202\320\265\321\200\320\260.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\321\213\320\232\320\273\320\260\321\201\321\202\320\265\321\200\320\260.os" index 06ca991..3148987 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\321\213\320\232\320\273\320\260\321\201\321\202\320\265\321\200\320\260.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\321\213\320\232\320\273\320\260\321\201\321\202\320\265\321\200\320\260.os" @@ -95,7 +95,11 @@ // Параметры: // Отбор - Структура - Структура отбора менеджеров (<поле>:<значение>) // ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) -// ЭлементыКакСоответствия - Булево - Истина - элементы результата будут преобразованы в соответствия +// ЭлементыКакСоответствия - Булево, - Истина - элементы результата будут преобразованы в соответствия +// Строка с именами свойств в качестве ключей +// <Имя поля> - элементы результата будут преобразованы в соответствия +// со значением указанного поля в качестве ключей ("Имя"|"ИмяРАК") +// Ложь - (по умолчанию) элементы будут возвращены как есть // // Возвращаемое значение: // Массив - список менеджеров кластера 1С @@ -113,7 +117,11 @@ // Параметры: // ПоляИерархии - Строка - Поля для построения иерархии списка менеджеров, разделенные "," // ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) -// ЭлементыКакСоответствия - Булево - Истина - элементы результата будут преобразованы в соответствия +// ЭлементыКакСоответствия - Булево, - Истина - элементы результата будут преобразованы в соответствия +// Строка с именами свойств в качестве ключей +// <Имя поля> - элементы результата будут преобразованы в соответствия +// со значением указанного поля в качестве ключей ("Имя"|"ИмяРАК") +// Ложь - (по умолчанию) элементы будут возвращены как есть // // Возвращаемое значение: // Соответствие - список менеджеров кластера 1С diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\244\321\203\320\275\320\272\321\206\320\270\320\276\320\275\320\260\320\273\321\214\320\275\320\276\321\201\321\202\320\270.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\244\321\203\320\275\320\272\321\206\320\270\320\276\320\275\320\260\320\273\321\214\320\275\320\276\321\201\321\202\320\270.os" index 7df66f1..e56d3c6 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\244\321\203\320\275\320\272\321\206\320\270\320\276\320\275\320\260\320\273\321\214\320\275\320\276\321\201\321\202\320\270.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\244\321\203\320\275\320\272\321\206\320\270\320\276\320\275\320\260\320\273\321\214\320\275\320\276\321\201\321\202\320\270.os" @@ -104,7 +104,11 @@ // Отбор - Структура - Структура отбора требований // назначения функциональности (<поле>:<значение>) // ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) -// ЭлементыКакСоответствия - Булево - Истина - элементы результата будут преобразованы в соответствия +// ЭлементыКакСоответствия - Булево, - Истина - элементы результата будут преобразованы в соответствия +// Строка с именами свойств в качестве ключей +// <Имя поля> - элементы результата будут преобразованы в соответствия +// со значением указанного поля в качестве ключей ("Имя"|"ИмяРАК") +// Ложь - (по умолчанию) элементы будут возвращены как есть // // Возвращаемое значение: // Массив - список требований назначения функциональности сервера 1С @@ -123,7 +127,11 @@ // ПоляИерархии - Строка - Поля для построения иерархии списка требований // назначения функциональности, разделенные "," // ОбновитьПринудительно - Булево - Истина - обновить список (вызов RAC) -// ЭлементыКакСоответствия - Булево - Истина - элементы результата будут преобразованы в соответствия +// ЭлементыКакСоответствия - Булево, - Истина - элементы результата будут преобразованы в соответствия +// Строка с именами свойств в качестве ключей +// <Имя поля> - элементы результата будут преобразованы в соответствия +// со значением указанного поля в качестве ключей ("Имя"|"ИмяРАК") +// Ложь - (по умолчанию) элементы будут возвращены как есть // // Возвращаемое значение: // Соответствие - список требований назначения функциональности сервера 1С diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\236\320\261\321\212\320\265\320\272\321\202\320\232\320\273\320\260\321\201\321\202\320\265\321\200\320\260.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\236\320\261\321\212\320\265\320\272\321\202\320\232\320\273\320\260\321\201\321\202\320\265\321\200\320\260.os" index 3e2b651..151f618 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\236\320\261\321\212\320\265\320\272\321\202\320\232\320\273\320\260\321\201\321\202\320\265\321\200\320\260.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\236\320\261\321\212\320\265\320\272\321\202\320\232\320\273\320\260\321\201\321\202\320\265\321\200\320\260.os" @@ -25,9 +25,9 @@ // Параметры: // АгентКластера - АгентКластера - ссылка на родительский объект агента кластера // Кластер - Кластер - ссылка на родительский объект кластера -// ОбъектКластера - Строка, Соответствие - идентификатор объекта в кластере 1С или параметры объекта // ТипОбъекта - Перечисления. - имя типа объекта кластера // РежимыАдминистрирования +// ОбъектКластера - Строка, Соответствие - идентификатор объекта в кластере 1С или параметры объекта // Процедура ПриСозданииОбъекта(АгентКластера, Кластер, ТипОбъекта, ОбъектКластера) diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\236\320\261\321\212\320\265\320\272\321\202\321\213\320\232\320\273\320\260\321\201\321\202\320\265\321\200\320\260.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\236\320\261\321\212\320\265\320\272\321\202\321\213\320\232\320\273\320\260\321\201\321\202\320\265\321\200\320\260.os" index dd0ece8..4349cea 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\236\320\261\321\212\320\265\320\272\321\202\321\213\320\232\320\273\320\260\321\201\321\202\320\265\321\200\320\260.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\236\320\261\321\212\320\265\320\272\321\202\321\213\320\232\320\273\320\260\321\201\321\202\320\265\321\200\320\260.os" @@ -84,21 +84,34 @@ // Функция возвращает список объектов кластера // // Параметры: -// Отбор - Структура - Структура отбора объектов (<поле>:<значение>) -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) -// ЭлементыКакСоответствия - Булево - Истина - элементы результата будут преобразованы в соответствия +// Отбор - Структура - Структура отбора объектов (<поле>:<значение>) +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// ЭлементыКакСоответствия - Булево, - Истина - элементы результата будут преобразованы в соответствия +// Строка с именами свойств в качестве ключей +// <Имя поля> - элементы результата будут преобразованы в соответствия +// со значением указанного поля в качестве ключей ("Имя"|"ИмяРАК") +// Ложь - (по умолчанию) элементы будут возвращены как есть // // Возвращаемое значение: // Массив - список объектов кластера 1С // -Функция Список(Отбор = Неопределено, ОбновитьПринудительно = Ложь, ЭлементыКакСоответствия = Ложь) Экспорт +Функция Список(Знач Отбор = Неопределено + , Знач ОбновитьПринудительно = Ложь + , Знач ЭлементыКакСоответствия = Ложь) Экспорт Владелец.ОбновитьДанные(ОбновитьПринудительно); Результат = Служебный.ПолучитьЭлементыИзМассиваСоответствий(Элементы, Отбор); + ИмяПоляКлюча = "Имя"; + + Если ТипЗнч(ЭлементыКакСоответствия) = Тип("Строка") Тогда + ИмяПоляКлюча = ЭлементыКакСоответствия; + ЭлементыКакСоответствия = Истина; + КонецЕсли; + Если ЭлементыКакСоответствия Тогда - ПоляЭлемента = Владелец.ПараметрыОбъекта(); + ПоляЭлемента = Владелец.ПараметрыОбъекта(ИмяПоляКлюча); Результат = Служебный.МассивОбъектовВМассивСоответствий(Результат, ПоляЭлемента); КонецЕсли; @@ -109,22 +122,56 @@ // Функция возвращает список объектов кластера // // Параметры: -// ПоляИерархии - Строка - Поля для построения иерархии списка объектов, разделенные "," -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) -// ЭлементыКакСоответствия - Булево - Истина - элементы результата будут преобразованы в соответствия +// ПоляИерархии - Строка, - имена полей для построения иерархии списка объектов, +// Массив разделенные "," или массив имен полей +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// ЭлементыКакСоответствия - Булево, - Истина - элементы результата будут преобразованы в соответствия +// Строка с именами свойств в качестве ключей +// <Имя поля> - элементы результата будут преобразованы в соответствия +// со значением указанного поля в качестве ключей ("Имя"|"ИмяРАК") +// Ложь - (по умолчанию) элементы будут возвращены как есть // // Возвращаемое значение: // Соответствие - список объектов кластера 1С // <имя поля объекта> - Массив(Соответствие), Соответствие - список объектов кластера или следующий уровень // -Функция ИерархическийСписок(Знач ПоляИерархии, ОбновитьПринудительно = Ложь, ЭлементыКакСоответствия = Ложь) Экспорт +Функция ИерархическийСписок(Знач ПоляИерархии + , Знач ОбновитьПринудительно = Ложь + , Знач ЭлементыКакСоответствия = Ложь) Экспорт Владелец.ОбновитьДанные(ОбновитьПринудительно); ЭлементыДляОбработки = Элементы; + + ИменаПолейКлюча = Новый Массив(); + ИменаПолейКлюча.Добавить("Имя"); + ИменаПолейКлюча.Добавить("ИмяРАК"); + + Если ТипЗнч(ЭлементыКакСоответствия) = Тип("Строка") Тогда + Если ИменаПолейКлюча[1] = ЭлементыКакСоответствия Тогда + ИменаПолейКлюча[1] = ИменаПолейКлюча[0]; + ИменаПолейКлюча[0] = ЭлементыКакСоответствия; + КонецЕсли; + ЭлементыКакСоответствия = Истина; + КонецЕсли; + + ПоляЭлемента0 = Владелец.ПараметрыОбъекта(ИменаПолейКлюча[0]); + ПоляЭлемента1 = Владелец.ПараметрыОбъекта(ИменаПолейКлюча[1]); + + Если ТипЗнч(ПоляИерархии) = Тип("Строка") Тогда + ПоляИерархии = СтрРазделить(ПоляИерархии, ",", Ложь); + КонецЕсли; + + Для й = 0 По ПоляИерархии.ВГраница() Цикл + ОписаниеПоля = ПоляЭлемента0.Получить(ПоляИерархии[й]); + Если ОписаниеПоля = Неопределено Тогда + ОписаниеПоля = ПоляЭлемента1.Получить(ПоляИерархии[й]); + КонецЕсли; + ПоляИерархии[й] = ОписаниеПоля[ИменаПолейКлюча[0]]; + КонецЦикла; + Если ЭлементыКакСоответствия Тогда - ПоляЭлемента = Владелец.ПараметрыОбъекта(); - ЭлементыДляОбработки = Служебный.МассивОбъектовВМассивСоответствий(Элементы, ПоляЭлемента); + ЭлементыДляОбработки = Служебный.МассивОбъектовВМассивСоответствий(Элементы, ПоляЭлемента0); КонецЕсли; Результат = Служебный.ИерархическоеПредставлениеМассиваСоответствий(ЭлементыДляОбработки, ПоляИерархии); diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\236\320\261\321\212\320\265\320\272\321\202\321\213\320\237\321\200\320\276\321\204\320\270\320\273\321\217.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\236\320\261\321\212\320\265\320\272\321\202\321\213\320\237\321\200\320\276\321\204\320\270\320\273\321\217.os" index f047808..c9cd736 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\236\320\261\321\212\320\265\320\272\321\202\321\213\320\237\321\200\320\276\321\204\320\270\320\273\321\217.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\236\320\261\321\212\320\265\320\272\321\202\321\213\320\237\321\200\320\276\321\204\320\270\320\273\321\217.os" @@ -117,7 +117,11 @@ // Параметры: // Отбор - Структура - Структура отбора объектов (<поле>:<значение>) // ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) -// ЭлементыКакСоответствия - Булево - Истина - элементы результата будут преобразованы в соответствия +// ЭлементыКакСоответствия - Булево, - Истина - элементы результата будут преобразованы в соответствия +// Строка с именами свойств в качестве ключей +// <Имя поля> - элементы результата будут преобразованы в соответствия +// со значением указанного поля в качестве ключей ("Имя"|"ИмяРАК") +// Ложь - (по умолчанию) элементы будут возвращены как есть // // Возвращаемое значение: // Массив - список объектов кластера 1С @@ -135,7 +139,11 @@ // Параметры: // ПоляИерархии - Строка - Поля для построения иерархии списка объектов, разделенные "," // ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) -// ЭлементыКакСоответствия - Булево - Истина - элементы результата будут преобразованы в соответствия +// ЭлементыКакСоответствия - Булево, - Истина - элементы результата будут преобразованы в соответствия +// Строка с именами свойств в качестве ключей +// <Имя поля> - элементы результата будут преобразованы в соответствия +// со значением указанного поля в качестве ключей ("Имя"|"ИмяРАК") +// Ложь - (по умолчанию) элементы будут возвращены как есть // // Возвращаемое значение: // Соответствие - список объектов кластера 1С diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\236\320\263\321\200\320\260\320\275\320\270\321\207\320\265\320\275\320\270\321\217\320\240\320\265\321\201\321\203\321\200\321\201\320\276\320\262.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\236\320\263\321\200\320\260\320\275\320\270\321\207\320\265\320\275\320\270\321\217\320\240\320\265\321\201\321\203\321\200\321\201\320\276\320\262.os" index 835df10..585a621 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\236\320\263\321\200\320\260\320\275\320\270\321\207\320\265\320\275\320\270\321\217\320\240\320\265\321\201\321\203\321\200\321\201\320\276\320\262.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\236\320\263\321\200\320\260\320\275\320\270\321\207\320\265\320\275\320\270\321\217\320\240\320\265\321\201\321\203\321\200\321\201\320\276\320\262.os" @@ -95,7 +95,11 @@ // Параметры: // Отбор - Структура - Структура отбора ограничений потребления ресурсов (<поле>:<значение>) // ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) -// ЭлементыКакСоответствия - Булево - Истина - элементы результата будут преобразованы в соответствия +// ЭлементыКакСоответствия - Булево, - Истина - элементы результата будут преобразованы в соответствия +// Строка с именами свойств в качестве ключей +// <Имя поля> - элементы результата будут преобразованы в соответствия +// со значением указанного поля в качестве ключей ("Имя"|"ИмяРАК") +// Ложь - (по умолчанию) элементы будут возвращены как есть // // Возвращаемое значение: // Массив - список ограничений потребления ресурсов кластера 1С @@ -111,10 +115,14 @@ // Функция возвращает ограничений потребления ресурсов кластера 1С // // Параметры: -// ПоляИерархии - Строка - Поля для построения иерархии списка ограничений потребления ресурсов, -// разделенные "," -// ОбновитьПринудительно - Булево - Истина - обновить список (вызов RAC) -// ЭлементыКакСоответствия - Булево - Истина - элементы результата будут преобразованы в соответствия +// ПоляИерархии - Строка - Поля для построения иерархии списка ограничений потребления ресурсов, +// разделенные "," +// ОбновитьПринудительно - Булево - Истина - обновить список (вызов RAC) +// ЭлементыКакСоответствия - Булево, - Истина - элементы результата будут преобразованы в соответствия +// Строка с именами свойств в качестве ключей +// <Имя поля> - элементы результата будут преобразованы в соответствия +// со значением указанного поля в качестве ключей ("Имя"|"ИмяРАК") +// Ложь - (по умолчанию) элементы будут возвращены как есть // // Возвращаемое значение: // Соответствие - список ограничений потребления ресурсов кластера 1С diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\237\321\200\320\276\321\204\320\270\320\273\320\270\320\221\320\265\320\267\320\276\320\277\320\260\321\201\320\275\320\276\321\201\321\202\320\270.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\237\321\200\320\276\321\204\320\270\320\273\320\270\320\221\320\265\320\267\320\276\320\277\320\260\321\201\320\275\320\276\321\201\321\202\320\270.os" index d7d66a7..cd5495e 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\237\321\200\320\276\321\204\320\270\320\273\320\270\320\221\320\265\320\267\320\276\320\277\320\260\321\201\320\275\320\276\321\201\321\202\320\270.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\237\321\200\320\276\321\204\320\270\320\273\320\270\320\221\320\265\320\267\320\276\320\277\320\260\321\201\320\275\320\276\321\201\321\202\320\270.os" @@ -95,7 +95,11 @@ // Параметры: // Отбор - Структура - Структура отбора профилей безопасности (<поле>:<значение>) // ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) -// ЭлементыКакСоответствия - Булево - Истина - элементы результата будут преобразованы в соответствия +// ЭлементыКакСоответствия - Булево, - Истина - элементы результата будут преобразованы в соответствия +// Строка с именами свойств в качестве ключей +// <Имя поля> - элементы результата будут преобразованы в соответствия +// со значением указанного поля в качестве ключей ("Имя"|"ИмяРАК") +// Ложь - (по умолчанию) элементы будут возвращены как есть // // Возвращаемое значение: // Массив - список профилей безопасности кластера 1С @@ -114,7 +118,11 @@ // ПоляИерархии - Строка - Поля для построения иерархии списка профилей безопасности, // разделенные "," // ОбновитьПринудительно - Булево - Истина - обновить список (вызов RAC) -// ЭлементыКакСоответствия - Булево - Истина - элементы результата будут преобразованы в соответствия +// ЭлементыКакСоответствия - Булево, - Истина - элементы результата будут преобразованы в соответствия +// Строка с именами свойств в качестве ключей +// <Имя поля> - элементы результата будут преобразованы в соответствия +// со значением указанного поля в качестве ключей ("Имя"|"ИмяРАК") +// Ложь - (по умолчанию) элементы будут возвращены как есть // // Возвращаемое значение: // Соответствие - список профилей безопасности кластера 1С diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\240\320\260\320\261\320\276\321\207\320\270\320\265\320\237\321\200\320\276\321\206\320\265\321\201\321\201\321\213.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\240\320\260\320\261\320\276\321\207\320\270\320\265\320\237\321\200\320\276\321\206\320\265\321\201\321\201\321\213.os" index bf0ea4d..49b0902 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\240\320\260\320\261\320\276\321\207\320\270\320\265\320\237\321\200\320\276\321\206\320\265\321\201\321\201\321\213.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\240\320\260\320\261\320\276\321\207\320\270\320\265\320\237\321\200\320\276\321\206\320\265\321\201\321\201\321\213.os" @@ -11,7 +11,6 @@ Перем Кластер_Владелец; Перем ПараметрыОбъекта; -Перем ПараметрыЛицензий; Перем Элементы; Перем Лицензии; @@ -36,7 +35,7 @@ ПараметрыЛицензий = Новый КомандыОбъекта(Перечисления.РежимыАдминистрирования.ЛицензииПроцессов); Элементы = Новый ОбъектыКластера(ЭтотОбъект); - Лицензии = Новый ОбъектыКластера(ЭтотОбъект); + Лицензии = Новый Лицензии(Кластер_Агент, Кластер_Владелец, ЭтотОбъект); КонецПроцедуры @@ -82,43 +81,6 @@ КонецПроцедуры // ОбновитьДанные() -// Процедура получает данные по лицензиям рабочих процессов от сервиса администрирования кластера 1С -// и сохраняет в локальных переменных -// -// Параметры: -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) -// - Ложь - данные будут получены если истекло время актуальности -// или данные не были получены ранее -// -Процедура ОбновитьДанныеЛицензий(ОбновитьПринудительно = Ложь) Экспорт - - Если НЕ Лицензии.ТребуетсяОбновление(ОбновитьПринудительно) Тогда - Возврат; - КонецЕсли; - - ПараметрыКоманды = Новый Соответствие(); - ПараметрыКоманды.Вставить("СтрокаПодключенияАгента" , Кластер_Агент.СтрокаПодключения()); - ПараметрыКоманды.Вставить("СтрокаАвторизацииКластера", Кластер_Владелец.СтрокаАвторизации()); - ПараметрыКоманды.Вставить("ИдентификаторКластера" , Кластер_Владелец.Ид()); - - ПараметрыЛицензий.УстановитьЗначенияПараметровКоманд(ПараметрыКоманды); - - КодВозврата = Кластер_Агент.ВыполнитьКоманду(ПараметрыЛицензий.ПараметрыКоманды("Список")); - - Если НЕ КодВозврата = 0 Тогда - ВызватьИсключение СтрШаблон("Ошибка получения лицензий рабочих процессов, КодВозврата = %1: %2", - КодВозврата, - Кластер_Агент.ВыводКоманды(Ложь)); - КонецЕсли; - - МассивРезультатов = Кластер_Агент.ВыводКоманды(); - - Лицензии.Заполнить(МассивРезультатов); - - Лицензии.УстановитьАктуальность(); - -КонецПроцедуры // ОбновитьДанныеЛицензий() - // Функция возвращает коллекцию параметров объекта // // Параметры: @@ -139,7 +101,11 @@ // Параметры: // Отбор - Структура - Структура отбора процессов (<поле>:<значение>) // ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) -// ЭлементыКакСоответствия - Булево - Истина - элементы результата будут преобразованы в соответствия +// ЭлементыКакСоответствия - Булево, - Истина - элементы результата будут преобразованы в соответствия +// Строка с именами свойств в качестве ключей +// <Имя поля> - элементы результата будут преобразованы в соответствия +// со значением указанного поля в качестве ключей ("Имя"|"ИмяРАК") +// Ложь - (по умолчанию) элементы будут возвращены как есть // // Возвращаемое значение: // Массив - список рабочих процессов 1С @@ -157,7 +123,11 @@ // Параметры: // ПоляИерархии - Строка - Поля для построения иерархии списка процессов, разделенные "," // ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) -// ЭлементыКакСоответствия - Булево - Истина - элементы результата будут преобразованы в соответствия +// ЭлементыКакСоответствия - Булево, - Истина - элементы результата будут преобразованы в соответствия +// Строка с именами свойств в качестве ключей +// <Имя поля> - элементы результата будут преобразованы в соответствия +// со значением указанного поля в качестве ключей ("Имя"|"ИмяРАК") +// Ложь - (по умолчанию) элементы будут возвращены как есть // // Возвращаемое значение: // Соответствие - список рабочих процессов кластера 1С @@ -217,21 +187,6 @@ КонецФункции // Получить() -// Функция возвращает коллекцию параметров лицензий -// -// Параметры: -// ИмяПоляКлюча - Строка - имя поля, значение которого будет использовано -// в качестве ключа возвращаемого соответствия -// -// Возвращаемое значение: -// Соответствие - коллекция параметров лицензий, для получения/изменения значений -// -Функция ПараметрыЛицензий(ИмяПоляКлюча = "Имя") Экспорт - - Возврат ПараметрыЛицензий.ОписаниеСвойств(ИмяПоляКлюча); - -КонецФункции // ПараметрыОбъекта() - // Функция возвращает список лицензий рабочих процессов 1С // // Параметры: @@ -242,8 +197,6 @@ // Функция Лицензии(ОбновитьПринудительно = Ложь) Экспорт - ОбновитьДанныеЛицензий(ОбновитьПринудительно); - Возврат Лицензии; КонецФункции // Лицензии() diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\240\320\260\320\261\320\276\321\207\320\270\320\271\320\237\321\200\320\276\321\206\320\265\321\201\321\201.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\240\320\260\320\261\320\276\321\207\320\270\320\271\320\237\321\200\320\276\321\206\320\265\321\201\321\201.os" index 5f4e637..db6bccf 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\240\320\260\320\261\320\276\321\207\320\270\320\271\320\237\321\200\320\276\321\206\320\265\321\201\321\201.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\240\320\260\320\261\320\276\321\207\320\270\320\271\320\237\321\200\320\276\321\206\320\265\321\201\321\201.os" @@ -18,7 +18,6 @@ Перем Процесс_Соединения; Перем ПараметрыОбъекта; -Перем ПараметрыЛицензий; Перем ПериодОбновления; Перем МоментАктуальности; @@ -59,7 +58,7 @@ ПериодОбновления = 60000; Процесс_Соединения = Новый Соединения(Кластер_Агент, Кластер_Владелец, ЭтотОбъект); - Процесс_Лицензии = Новый ОбъектыКластера(ЭтотОбъект); + Процесс_Лицензии = Новый Лицензии(Кластер_Агент, Кластер_Владелец, ЭтотОбъект); КонецПроцедуры // ПриСозданииОбъекта() @@ -120,44 +119,6 @@ КонецПроцедуры // ЗаполнитьПараметрыПроцесса() -// Процедура получает данные лицензий, выданных рабочим процессом -// и сохраняет в локальных переменных -// -// Параметры: -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) -// - Ложь - данные будут получены если истекло время актуальности -// или данные не были получены ранее -// -Процедура ОбновитьДанныеЛицензий(ОбновитьПринудительно = Ложь) - - Если НЕ Процесс_Лицензии.ТребуетсяОбновление(ОбновитьПринудительно) Тогда - Возврат; - КонецЕсли; - - ПараметрыКоманды = Новый Соответствие(); - ПараметрыКоманды.Вставить("СтрокаПодключенияАгента" , Кластер_Агент.СтрокаПодключения()); - ПараметрыКоманды.Вставить("СтрокаАвторизацииКластера", Кластер_Владелец.СтрокаАвторизации()); - ПараметрыКоманды.Вставить("ИдентификаторКластера" , Кластер_Владелец.Ид()); - ПараметрыКоманды.Вставить("ИдентификаторПроцесса" , Ид()); - - ПараметрыЛицензий.УстановитьЗначенияПараметровКоманд(ПараметрыКоманды); - - КодВозврата = Кластер_Агент.ВыполнитьКоманду(ПараметрыЛицензий.ПараметрыКоманды("Описание")); - - Если НЕ КодВозврата = 0 Тогда - ВызватьИсключение СтрШаблон("Ошибка получения описания лицензий рабочего процесса, КодВозврата = %1: %2", - КодВозврата, - Кластер_Агент.ВыводКоманды(Ложь)); - КонецЕсли; - - МассивРезультатов = Кластер_Агент.ВыводКоманды(); - - Процесс_Лицензии.Заполнить(МассивРезультатов); - - Процесс_Лицензии.УстановитьАктуальность(); - -КонецПроцедуры // ОбновитьДанныеЛицензий() - // Функция возвращает коллекцию параметров объекта // // Параметры: @@ -265,21 +226,6 @@ КонецФункции // Соединения() -// Функция возвращает коллекцию параметров лицензий -// -// Параметры: -// ИмяПоляКлюча - Строка - имя поля, значение которого будет использовано -// в качестве ключа возвращаемого соответствия -// -// Возвращаемое значение: -// Соответствие - коллекция параметров лицензий, для получения/изменения значений -// -Функция ПараметрыЛицензий(ИмяПоляКлюча = "Имя") Экспорт - - Возврат ПараметрыЛицензий.ОписаниеСвойств(ИмяПоляКлюча); - -КонецФункции // ПараметрыОбъекта() - // Функция возвращает список лицензий, выданных рабочим процессом 1С // // Параметры: @@ -290,8 +236,6 @@ // Функция Лицензии(ОбновитьПринудительно = Ложь) Экспорт - ОбновитьДанныеЛицензий(ОбновитьПринудительно); - Возврат Процесс_Лицензии; КонецФункции // Лицензии() diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\241\320\265\320\260\320\275\321\201.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\241\320\265\320\260\320\275\321\201.os" index 97a2c22..ad3e2cc 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\241\320\265\320\260\320\275\321\201.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\241\320\265\320\260\320\275\321\201.os" @@ -16,7 +16,6 @@ Перем ИБ_Владелец; Перем ПараметрыОбъекта; -Перем ПараметрыЛицензий; Перем ПериодОбновления; Перем МоментАктуальности; @@ -58,7 +57,7 @@ ПериодОбновления = 60000; - Сеанс_Лицензии = Новый ОбъектыКластера(ЭтотОбъект); + Сеанс_Лицензии = Новый Лицензии(Кластер_Агент, Кластер_Владелец, ЭтотОбъект, ИБ_Владелец); КонецПроцедуры // ПриСозданииОбъекта() @@ -105,44 +104,6 @@ КонецПроцедуры // ОбновитьДанные() -// Процедура получает данные лицензии, выданной сеансу -// и сохраняет в локальных переменных -// -// Параметры: -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) -// - Ложь - данные будут получены если истекло время актуальности -// или данные не были получены ранее -// -Процедура ОбновитьДанныеЛицензий(ОбновитьПринудительно = Ложь) - - Если НЕ Сеанс_Лицензии.ТребуетсяОбновление(ОбновитьПринудительно) Тогда - Возврат; - КонецЕсли; - - ПараметрыКоманды = Новый Соответствие(); - ПараметрыКоманды.Вставить("СтрокаПодключенияАгента" , Кластер_Агент.СтрокаПодключения()); - ПараметрыКоманды.Вставить("СтрокаАвторизацииКластера", Кластер_Владелец.СтрокаАвторизации()); - ПараметрыКоманды.Вставить("ИдентификаторКластера" , Кластер_Владелец.Ид()); - ПараметрыКоманды.Вставить("ИдентификаторСеанса" , Ид()); - - ПараметрыЛицензий.УстановитьЗначенияПараметровКоманд(ПараметрыКоманды); - - КодВозврата = Кластер_Агент.ВыполнитьКоманду(ПараметрыЛицензий.ПараметрыКоманды("Описание")); - - Если НЕ КодВозврата = 0 Тогда - ВызватьИсключение СтрШаблон("Ошибка получения описания лицензий сеанса, КодВозврата = %1: %2", - КодВозврата, - Кластер_Агент.ВыводКоманды(Ложь)); - КонецЕсли; - - МассивРезультатов = Кластер_Агент.ВыводКоманды(); - - Сеанс_Лицензии.Заполнить(МассивРезультатов); - - Сеанс_Лицензии.УстановитьАктуальность(); - -КонецПроцедуры // ОбновитьДанныеЛицензий() - // Функция возвращает коллекцию параметров объекта // // Параметры: @@ -201,21 +162,6 @@ КонецФункции // Получить() -// Функция возвращает коллекцию параметров лицензий -// -// Параметры: -// ИмяПоляКлюча - Строка - имя поля, значение которого будет использовано -// в качестве ключа возвращаемого соответствия -// -// Возвращаемое значение: -// Соответствие - коллекция параметров лицензий, для получения/изменения значений -// -Функция ПараметрыЛицензий(ИмяПоляКлюча = "Имя") Экспорт - - Возврат ПараметрыЛицензий.ОписаниеСвойств(ИмяПоляКлюча); - -КонецФункции // ПараметрыОбъекта() - // Функция возвращает список лицензий, выданных сеансу 1С // // Параметры: @@ -226,8 +172,6 @@ // Функция Лицензии(ОбновитьПринудительно = Ложь) Экспорт - ОбновитьДанныеЛицензий(ОбновитьПринудительно); - Возврат Сеанс_Лицензии; КонецФункции // Лицензии() diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\241\320\265\320\260\320\275\321\201\321\213.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\241\320\265\320\260\320\275\321\201\321\213.os" index ec46adc..7de5fa9 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\241\320\265\320\260\320\275\321\201\321\213.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\241\320\265\320\260\320\275\321\201\321\213.os" @@ -12,7 +12,6 @@ Перем ИБ_Владелец; Перем ПараметрыОбъекта; -Перем ПараметрыЛицензий; Перем Элементы; Перем Лицензии; @@ -39,7 +38,7 @@ ПараметрыЛицензий = Новый КомандыОбъекта(Перечисления.РежимыАдминистрирования.ЛицензииСеансов); Элементы = Новый ОбъектыКластера(ЭтотОбъект); - Лицензии = Новый ОбъектыКластера(ЭтотОбъект); + Лицензии = Новый Лицензии(Кластер_Агент, Кластер_Владелец, ЭтотОбъект, ИБ_Владелец); КонецПроцедуры // ПриСозданииОбъекта() @@ -89,47 +88,6 @@ КонецПроцедуры // ОбновитьДанные() -// Процедура получает данные по лицензиям сеансов от сервиса администрирования кластера 1С -// и сохраняет в локальных переменных -// -// Параметры: -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) -// - Ложь - данные будут получены если истекло время актуальности -// или данные не были получены ранее -// -Процедура ОбновитьДанныеЛицензий(ОбновитьПринудительно = Ложь) Экспорт - - Если НЕ Лицензии.ТребуетсяОбновление(ОбновитьПринудительно) Тогда - Возврат; - КонецЕсли; - - ПараметрыКоманды = Новый Соответствие(); - ПараметрыКоманды.Вставить("СтрокаПодключенияАгента" , Кластер_Агент.СтрокаПодключения()); - ПараметрыКоманды.Вставить("ИдентификаторКластера" , Кластер_Владелец.Ид()); - ПараметрыКоманды.Вставить("СтрокаАвторизацииКластера", Кластер_Владелец.СтрокаАвторизации()); - - Если НЕ ИБ_Владелец = Неопределено Тогда - ПараметрыКоманды.Вставить("ИдентификаторИБ", ИБ_Владелец.Ид()); - КонецЕсли; - - ПараметрыЛицензий.УстановитьЗначенияПараметровКоманд(ПараметрыКоманды); - - КодВозврата = Кластер_Агент.ВыполнитьКоманду(ПараметрыЛицензий.ПараметрыКоманды("Список")); - - Если НЕ КодВозврата = 0 Тогда - ВызватьИсключение СтрШаблон("Ошибка получения списка сеансов, КодВозврата = %1: %2", - КодВозврата, - Кластер_Агент.ВыводКоманды(Ложь)); - КонецЕсли; - - МассивРезультатов = Кластер_Агент.ВыводКоманды(); - - Лицензии.Заполнить(МассивРезультатов); - - Лицензии.УстановитьАктуальность(); - -КонецПроцедуры // ОбновитьДанныеЛицензий() - // Функция возвращает коллекцию параметров объекта // // Параметры: @@ -150,7 +108,11 @@ // Параметры: // Отбор - Структура - Структура отбора сеансов (<поле>:<значение>) // ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) -// ЭлементыКакСоответствия - Булево - Истина - элементы результата будут преобразованы в соответствия +// ЭлементыКакСоответствия - Булево, - Истина - элементы результата будут преобразованы в соответствия +// Строка с именами свойств в качестве ключей +// <Имя поля> - элементы результата будут преобразованы в соответствия +// со значением указанного поля в качестве ключей ("Имя"|"ИмяРАК") +// Ложь - (по умолчанию) элементы будут возвращены как есть // // Возвращаемое значение: // Массив - список сеансов @@ -166,9 +128,13 @@ // Функция возвращает список сеансов // // Параметры: -// ПоляИерархии - Строка - Поля для построения иерархии списка сеансов, разделенные "," -// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) -// ЭлементыКакСоответствия - Булево - Истина - элементы результата будут преобразованы в соответствия +// ПоляИерархии - Строка - Поля для построения иерархии списка сеансов, разделенные "," +// ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) +// ЭлементыКакСоответствия - Булево, - Истина - элементы результата будут преобразованы в соответствия +// Строка с именами свойств в качестве ключей +// <Имя поля> - элементы результата будут преобразованы в соответствия +// со значением указанного поля в качестве ключей ("Имя"|"ИмяРАК") +// Ложь - (по умолчанию) элементы будут возвращены как есть // // Возвращаемое значение: // Соответствие - список сеансов @@ -256,21 +222,6 @@ КонецПроцедуры // Удалить() -// Функция возвращает коллекцию параметров лицензий -// -// Параметры: -// ИмяПоляКлюча - Строка - имя поля, значение которого будет использовано -// в качестве ключа возвращаемого соответствия -// -// Возвращаемое значение: -// Соответствие - коллекция параметров лицензий, для получения/изменения значений -// -Функция ПараметрыЛицензий(ИмяПоляКлюча = "Имя") Экспорт - - Возврат ПараметрыЛицензий.ОписаниеСвойств(ИмяПоляКлюча); - -КонецФункции // ПараметрыОбъекта() - // Функция возвращает список лицензий сеансов 1С // // Параметры: @@ -281,8 +232,6 @@ // Функция Лицензии(ОбновитьПринудительно = Ложь) Экспорт - ОбновитьДанныеЛицензий(ОбновитьПринудительно); - Возврат Лицензии; КонецФункции // Лицензии() diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\241\320\265\321\200\320\262\320\265\321\200\321\213\320\232\320\273\320\260\321\201\321\202\320\265\321\200\320\260.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\241\320\265\321\200\320\262\320\265\321\200\321\213\320\232\320\273\320\260\321\201\321\202\320\265\321\200\320\260.os" index 2887af8..2aa588d 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\241\320\265\321\200\320\262\320\265\321\200\321\213\320\232\320\273\320\260\321\201\321\202\320\265\321\200\320\260.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\241\320\265\321\200\320\262\320\265\321\200\321\213\320\232\320\273\320\260\321\201\321\202\320\265\321\200\320\260.os" @@ -95,7 +95,11 @@ // Параметры: // Отбор - Структура - Структура отбора серверов (<поле>:<значение>) // ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) -// ЭлементыКакСоответствия - Булево - Истина - элементы результата будут преобразованы в соответствия +// ЭлементыКакСоответствия - Булево, - Истина - элементы результата будут преобразованы в соответствия +// Строка с именами свойств в качестве ключей +// <Имя поля> - элементы результата будут преобразованы в соответствия +// со значением указанного поля в качестве ключей ("Имя"|"ИмяРАК") +// Ложь - (по умолчанию) элементы будут возвращены как есть // // Возвращаемое значение: // Массив - список серверов кластера 1С @@ -113,7 +117,11 @@ // Параметры: // ПоляИерархии - Строка - Поля для построения иерархии списка серверов, разделенные "," // ОбновитьПринудительно - Булево - Истина - обновить список (вызов RAC) -// ЭлементыКакСоответствия - Булево - Истина - элементы результата будут преобразованы в соответствия +// ЭлементыКакСоответствия - Булево, - Истина - элементы результата будут преобразованы в соответствия +// Строка с именами свойств в качестве ключей +// <Имя поля> - элементы результата будут преобразованы в соответствия +// со значением указанного поля в качестве ключей ("Имя"|"ИмяРАК") +// Ложь - (по умолчанию) элементы будут возвращены как есть // // Возвращаемое значение: // Соответствие - список серверов кластера 1С diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\241\320\265\321\200\320\262\320\270\321\201\321\213.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\241\320\265\321\200\320\262\320\270\321\201\321\213.os" index 31a4fbd..ddd3012 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\241\320\265\321\200\320\262\320\270\321\201\321\213.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\241\320\265\321\200\320\262\320\270\321\201\321\213.os" @@ -98,7 +98,11 @@ // Параметры: // Отбор - Структура - Структура отбора сервисов (<поле>:<значение>) // ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) -// ЭлементыКакСоответствия - Булево - Истина - элементы результата будут преобразованы в соответствия +// ЭлементыКакСоответствия - Булево, - Истина - элементы результата будут преобразованы в соответствия +// Строка с именами свойств в качестве ключей +// <Имя поля> - элементы результата будут преобразованы в соответствия +// со значением указанного поля в качестве ключей ("Имя"|"ИмяРАК") +// Ложь - (по умолчанию) элементы будут возвращены как есть // // Возвращаемое значение: // Массив - список сервисов 1С @@ -116,7 +120,11 @@ // Параметры: // ПоляИерархии - Строка - Поля для построения иерархии списка сервисов, разделенные "," // ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) -// ЭлементыКакСоответствия - Булево - Истина - элементы результата будут преобразованы в соответствия +// ЭлементыКакСоответствия - Булево, - Истина - элементы результата будут преобразованы в соответствия +// Строка с именами свойств в качестве ключей +// <Имя поля> - элементы результата будут преобразованы в соответствия +// со значением указанного поля в качестве ключей ("Имя"|"ИмяРАК") +// Ложь - (по умолчанию) элементы будут возвращены как есть // // Возвращаемое значение: // Соответствие - список сервисов кластера 1С diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\241\320\276\320\265\320\264\320\270\320\275\320\265\320\275\320\270\321\217.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\241\320\276\320\265\320\264\320\270\320\275\320\265\320\275\320\270\321\217.os" index c6e2d0a..96146f3 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\241\320\276\320\265\320\264\320\270\320\275\320\265\320\275\320\270\321\217.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\241\320\276\320\265\320\264\320\270\320\275\320\265\320\275\320\270\321\217.os" @@ -114,7 +114,11 @@ // Параметры: // Отбор - Структура - Структура отбора соединений (<поле>:<значение>) // ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) -// ЭлементыКакСоответствия - Булево - Истина - элементы результата будут преобразованы в соответствия +// ЭлементыКакСоответствия - Булево, - Истина - элементы результата будут преобразованы в соответствия +// Строка с именами свойств в качестве ключей +// <Имя поля> - элементы результата будут преобразованы в соответствия +// со значением указанного поля в качестве ключей ("Имя"|"ИмяРАК") +// Ложь - (по умолчанию) элементы будут возвращены как есть // // Возвращаемое значение: // Массив - список соединений @@ -132,7 +136,11 @@ // Параметры: // ПоляИерархии - Строка - Поля для построения иерархии списка соединений, разделенные "," // ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) -// ЭлементыКакСоответствия - Булево - Истина - элементы результата будут преобразованы в соответствия +// ЭлементыКакСоответствия - Булево, - Истина - элементы результата будут преобразованы в соответствия +// Строка с именами свойств в качестве ключей +// <Имя поля> - элементы результата будут преобразованы в соответствия +// со значением указанного поля в качестве ключей ("Имя"|"ИмяРАК") +// Ложь - (по умолчанию) элементы будут возвращены как есть // // Возвращаемое значение: // Соответствие - список соединений diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\241\321\207\320\265\321\202\321\207\320\270\320\272\320\270\320\240\320\265\321\201\321\203\321\200\321\201\320\276\320\262.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\241\321\207\320\265\321\202\321\207\320\270\320\272\320\270\320\240\320\265\321\201\321\203\321\200\321\201\320\276\320\262.os" index 54c48e2..5503c46 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\241\321\207\320\265\321\202\321\207\320\270\320\272\320\270\320\240\320\265\321\201\321\203\321\200\321\201\320\276\320\262.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\241\321\207\320\265\321\202\321\207\320\270\320\272\320\270\320\240\320\265\321\201\321\203\321\200\321\201\320\276\320\262.os" @@ -95,7 +95,11 @@ // Параметры: // Отбор - Структура - Структура отбора счетчиков потребления ресурсов (<поле>:<значение>) // ОбновитьПринудительно - Булево - Истина - принудительно обновить данные (вызов RAC) -// ЭлементыКакСоответствия - Булево - Истина - элементы результата будут преобразованы в соответствия +// ЭлементыКакСоответствия - Булево, - Истина - элементы результата будут преобразованы в соответствия +// Строка с именами свойств в качестве ключей +// <Имя поля> - элементы результата будут преобразованы в соответствия +// со значением указанного поля в качестве ключей ("Имя"|"ИмяРАК") +// Ложь - (по умолчанию) элементы будут возвращены как есть // // Возвращаемое значение: // Массив - список счетчиков потребления ресурсов кластера 1С @@ -114,7 +118,11 @@ // ПоляИерархии - Строка - Поля для построения иерархии списка счетчиков потребления ресурсов, // разделенные "," // ОбновитьПринудительно - Булево - Истина - обновить список (вызов RAC) -// ЭлементыКакСоответствия - Булево - Истина - элементы результата будут преобразованы в соответствия +// ЭлементыКакСоответствия - Булево, - Истина - элементы результата будут преобразованы в соответствия +// Строка с именами свойств в качестве ключей +// <Имя поля> - элементы результата будут преобразованы в соответствия +// со значением указанного поля в качестве ключей ("Имя"|"ИмяРАК") +// Ложь - (по умолчанию) элементы будут возвращены как есть // // Возвращаемое значение: // Соответствие - список счетчиков потребления ресурсов кластера 1С diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\232\320\273\320\260\321\201\321\202\320\265\321\200\320\276\320\2741\320\241.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\232\320\273\320\260\321\201\321\202\320\265\321\200\320\276\320\2741\320\241.os" index 46b3a81..3fa3951 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\232\320\273\320\260\321\201\321\202\320\265\321\200\320\276\320\2741\320\241.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\243\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\232\320\273\320\260\321\201\321\202\320\265\321\200\320\276\320\2741\320\241.os" @@ -55,7 +55,7 @@ Агент_ИсполнительКоманд = Новый ИсполнительКоманд(ВерсияИлиПутьКУтилитеАдминистрирования); - ПараметрыОбъекта = Новый КомандыОбъекта(Перечисления.РежимыАдминистрирования.Агент); + ПараметрыОбъекта = Новый КомандыОбъекта(Перечисления.РежимыАдминистрирования.Агенты); Если ТипЗнч(Администратор) = Тип("Структура") Тогда Агент_Администратор = Новый Структура("Администратор, Пароль"); @@ -407,21 +407,35 @@ // Функция возвращает описание центрального сервера 1С в виде соответствия, // с вложенными описаниями кластеров и всех дочерних объектов // +// Параметры: +// ИмяПоляКлюча - Строка - имя поля, значение которого будет использовано +// в качестве ключа возвращаемого соответствия +// // Возвращаемое значение: // Соответствие - описание центрального сервера 1С, // включая описания кластеров и всех дочерних объектов // -Функция ОписаниеЦентральногоСервера() Экспорт +Функция ОписаниеЦентральногоСервера(Знач ИмяПоляКлюча = "Имя") Экспорт Описание = Новый Соответствие(); - Описание.Вставить("СервисАдминистрирования", - ПолучитьПоляОбъекта(ЭтотОбъект)); + ПоляОбъекта = Новый Соответствие(); + + Параметры = ПараметрыОбъекта(ИмяПоляКлюча); + + Для Каждого ТекПараметр Из Параметры Цикл + ПоляОбъекта.Вставить(ТекПараметр.Значение[ИмяПоляКлюча], ЭтотОбъект.Получить(ТекПараметр.Ключ)); + КонецЦикла; + + Если ИмяПоляКлюча = "Имя" Тогда + Описание.Вставить("СервисАдминистрирования", ПоляОбъекта); + Иначе + Описание.Вставить("ras", ПоляОбъекта); + КонецЕсли; СписокАдминистраторов = Новый Массив(); Попытка - СписокАдминистраторов = ПолучитьСписокОбъектов(ЭтотОбъект.Администраторы().Список(), - ЭтотОбъект.Администраторы().ПараметрыОбъекта()); + СписокАдминистраторов = ЭтотОбъект.Администраторы().Список(, , ИмяПоляКлюча); Исключение ТекстОшибки = СтрШаблон("Ошибка получения списка администраторов агента: %1", ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); @@ -429,15 +443,15 @@ СписокАдминистраторов.Добавить(СтрШаблон("<%1>", ТекстОшибки)); КонецПопытки; - Описание.Вставить("Администраторы", СписокАдминистраторов); + Описание.Вставить(ПолучитьИмяКоллекцииОбъектов("Агент.Администратор", ИмяПоляКлюча), СписокАдминистраторов); - Описание.Вставить("Кластеры", Новый Массив()); + Описание.Вставить(ПолучитьИмяКоллекцииОбъектов("Кластер", ИмяПоляКлюча), Новый Массив()); Кластеры = Кластеры().Список(); Для Каждого ТекКластер Из Кластеры Цикл - Описание["Кластеры"].Добавить(ОписаниеКластера(ТекКластер)); + Описание[ПолучитьИмяКоллекцииОбъектов("Кластер", ИмяПоляКлюча)].Добавить(ОписаниеКластера(ТекКластер, ИмяПоляКлюча)); КонецЦикла; @@ -449,13 +463,15 @@ // с вложенными описаниями всех дочерних объектов // // Параметры: -// КластерИлиАдрес - Кластер, Строка - объект или адрес кластера 1С +// КластерИлиАдрес - Кластер, Строка - объект или адрес кластера 1С +// ИмяПоляКлюча - Строка - имя поля, значение которого будет использовано +// в качестве ключа возвращаемого соответствия // // Возвращаемое значение: // Соответствие - описание кластера 1С, // включая описания всех дочерних объектов // -Функция ОписаниеКластера(Знач КластерИлиАдрес) Экспорт +Функция ОписаниеКластера(Знач КластерИлиАдрес, Знач ИмяПоляКлюча = "Имя") Экспорт Если ТипЗнч(КластерИлиАдрес) = Тип("Строка") Тогда Кластер = ЭтотОбъект.Кластеры.Получить(КластерИлиАдрес); @@ -463,80 +479,102 @@ Кластер = КластерИлиАдрес; КонецЕсли; - Описание = ПолучитьПоляОбъекта(Кластер); + Описание = Новый Соответствие(); + + Параметры = Кластер.ПараметрыОбъекта(ИмяПоляКлюча); - Описание.Вставить("Администраторы", - ПолучитьСписокОбъектов(Кластер.Администраторы().Список(), - Кластер.Администраторы().ПараметрыОбъекта())); + Для Каждого ТекПараметр Из Параметры Цикл + Описание.Вставить(ТекПараметр.Значение[ИмяПоляКлюча], Кластер.Получить(ТекПараметр.Ключ)); + КонецЦикла; - Описание.Вставить("Серверы", Новый Массив()); + Описание.Вставить(ПолучитьИмяКоллекцииОбъектов("Кластер.Администратор", ИмяПоляКлюча), + Кластер.Администраторы().Список(, , ИмяПоляКлюча)); + + Описание.Вставить(ПолучитьИмяКоллекцииОбъектов("Сервер", ИмяПоляКлюча), Новый Массив()); Серверы = Кластер.Серверы().Список(); Для Каждого ТекСервер Из Серверы Цикл - ПоляОбъекта = ПолучитьПоляОбъекта(ТекСервер); + ПоляОбъекта = Новый Соответствие(); + + Параметры = ТекСервер.ПараметрыОбъекта(ИмяПоляКлюча); + + Для Каждого ТекПараметр Из Параметры Цикл + ПоляОбъекта.Вставить(ТекПараметр.Значение[ИмяПоляКлюча], ТекСервер.Получить(ТекПараметр.Ключ)); + КонецЦикла; + ПоляОбъекта.Вставить("НазначенияФункциональности", - ПолучитьСписокОбъектов(ТекСервер.НазначенияФункциональности().Список())); - Описание["Серверы"].Добавить(ПоляОбъекта); + ТекСервер.НазначенияФункциональности().Список(, , ИмяПоляКлюча)); + Описание[ПолучитьИмяКоллекцииОбъектов("Сервер", ИмяПоляКлюча)].Добавить(ПоляОбъекта); КонецЦикла; - Описание.Вставить("Менеджеры", - ПолучитьСписокОбъектов(Кластер.Менеджеры().Список())); + Описание.Вставить(ПолучитьИмяКоллекцииОбъектов("МенеджерКластера", ИмяПоляКлюча), + Кластер.Менеджеры().Список(, , ИмяПоляКлюча)); + + Описание.Вставить(ПолучитьИмяКоллекцииОбъектов("Сервис", ИмяПоляКлюча), + Кластер.Сервисы().Список(, , ИмяПоляКлюча)); - Описание.Вставить("Сервисы", - ПолучитьСписокОбъектов(Кластер.Сервисы().Список())); + Описание.Вставить(ПолучитьИмяКоллекцииОбъектов("РабочийПроцесс", ИмяПоляКлюча), + Кластер.РабочиеПроцессы().Список(, , ИмяПоляКлюча)); + ИмяСвойства = СтрШаблон("%1.%2", + ПолучитьИмяКоллекцииОбъектов("РабочийПроцесс", ИмяПоляКлюча), + ПолучитьИмяКоллекцииОбъектов("РабочийПроцесс.Лицензия", ИмяПоляКлюча)); + Описание.Вставить(ИмяСвойства, Кластер.РабочиеПроцессы().Лицензии().Список(, , ИмяПоляКлюча)); - Описание.Вставить("РабочиеПроцессы", - ПолучитьСписокОбъектов(Кластер.РабочиеПроцессы().Список())); - Описание.Вставить("РабочиеПроцессы.Лицензии", - ПолучитьСписокОбъектов(Кластер.РабочиеПроцессы().Лицензии().Список(), - Кластер.РабочиеПроцессы().ПараметрыЛицензий())); + Описание.Вставить(ПолучитьИмяКоллекцииОбъектов("ИнформационнаяБаза", ИмяПоляКлюча), + Кластер.ИнформационныеБазы().Список(, , ИмяПоляКлюча)); - Описание.Вставить("ИнформационныеБазы", - ПолучитьСписокОбъектов(Кластер.ИнформационныеБазы().Список())); - Описание.Вставить("Соединения", СоединенияКластера(Кластер)); + Описание.Вставить(ПолучитьИмяКоллекцииОбъектов("Соединение", ИмяПоляКлюча), + СоединенияКластера(Кластер, ИмяПоляКлюча)); - Описание.Вставить("Сеансы", СеансыКластера(Кластер)); - Описание.Вставить("Сеансы.Лицензии", - ПолучитьСписокОбъектов(Кластер.Сеансы().Лицензии().Список(), - Кластер.Сеансы().ПараметрыЛицензий())); + Описание.Вставить(ПолучитьИмяКоллекцииОбъектов("Сеанс", ИмяПоляКлюча), СеансыКластера(Кластер, ИмяПоляКлюча)); + ИмяСвойства = СтрШаблон("%1.%2", + ПолучитьИмяКоллекцииОбъектов("Сеанс", ИмяПоляКлюча), + ПолучитьИмяКоллекцииОбъектов("Сеанс.Лицензия", ИмяПоляКлюча)); + Описание.Вставить(ИмяСвойства, Кластер.Сеансы().Лицензии().Список(, , ИмяПоляКлюча)); - Описание.Вставить("Блокировки", - ПолучитьСписокОбъектов(Кластер.Блокировки().Список())); + Описание.Вставить(ПолучитьИмяКоллекцииОбъектов("Блокировка", ИмяПоляКлюча), + Кластер.Блокировки().Список(, , ИмяПоляКлюча)); - Описание.Вставить("ПрофилиБезопасности", Новый Массив()); + Описание.Вставить(ПолучитьИмяКоллекцииОбъектов("ПрофильБезопасности", ИмяПоляКлюча), Новый Массив()); ПрофилиБезопасности = Кластер.ПрофилиБезопасности().Список(); Для Каждого ТекПрофиль Из ПрофилиБезопасности Цикл - ПоляОбъекта = ПолучитьПоляОбъекта(ТекПрофиль); + ПоляОбъекта = Новый Соответствие(); + + Параметры = ТекПрофиль.ПараметрыОбъекта(ИмяПоляКлюча); + + Для Каждого ТекПараметр Из Параметры Цикл + ПоляОбъекта.Вставить(ТекПараметр.Значение[ИмяПоляКлюча], ТекПрофиль.Получить(ТекПараметр.Ключ)); + КонецЦикла; - ПоляОбъекта.Вставить("Каталоги", - ПолучитьСписокОбъектов(ТекПрофиль.Каталоги().Список())); - ПоляОбъекта.Вставить("COMКлассы", - ПолучитьСписокОбъектов(ТекПрофиль.COMКлассы().Список())); + ПоляОбъекта.Вставить(ПолучитьИмяКоллекцииОбъектов("ПрофильБезопасности.Каталог", ИмяПоляКлюча), + ТекПрофиль.Каталоги().Список(, , ИмяПоляКлюча)); + ПоляОбъекта.Вставить(ПолучитьИмяКоллекцииОбъектов("ПрофильБезопасности.COMКласс", ИмяПоляКлюча), + ТекПрофиль.COMКлассы().Список(, , ИмяПоляКлюча)); - ПоляОбъекта.Вставить("ВнешниеКомпоненты", - ПолучитьСписокОбъектов(ТекПрофиль.ВнешниеКомпоненты().Список())); + ПоляОбъекта.Вставить(ПолучитьИмяКоллекцииОбъектов("ПрофильБезопасности.ВнешняяКомпонента", ИмяПоляКлюча), + ТекПрофиль.ВнешниеКомпоненты().Список(, , ИмяПоляКлюча)); - ПоляОбъекта.Вставить("ВнешниеМодули", - ПолучитьСписокОбъектов(ТекПрофиль.ВнешниеМодули().Список())); + ПоляОбъекта.Вставить(ПолучитьИмяКоллекцииОбъектов("ПрофильБезопасности.ВнешнийМодуль", ИмяПоляКлюча), + ТекПрофиль.ВнешниеМодули().Список(, , ИмяПоляКлюча)); - ПоляОбъекта.Вставить("Приложения", - ПолучитьСписокОбъектов(ТекПрофиль.Приложения().Список())); + ПоляОбъекта.Вставить(ПолучитьИмяКоллекцииОбъектов("ПрофильБезопасности.Приложение", ИмяПоляКлюча), + ТекПрофиль.Приложения().Список(, , ИмяПоляКлюча)); - ПоляОбъекта.Вставить("ИнтернетРесурсы", - ПолучитьСписокОбъектов(ТекПрофиль.ИнтернетРесурсы().Список())); + ПоляОбъекта.Вставить(ПолучитьИмяКоллекцииОбъектов("ПрофильБезопасности.ИнтернетРесурс", ИмяПоляКлюча), + ТекПрофиль.ИнтернетРесурсы().Список(, , ИмяПоляКлюча)); - Описание["ПрофилиБезопасности"].Добавить(ПоляОбъекта); + Описание[ПолучитьИмяКоллекцииОбъектов("ПрофильБезопасности", ИмяПоляКлюча)].Добавить(ПоляОбъекта); КонецЦикла; - Описание.Вставить("СчетчикиРесурсов", - ПолучитьСписокОбъектов(Кластер.СчетчикиРесурсов().Список())); + Описание.Вставить(ПолучитьИмяКоллекцииОбъектов("СчетчикРесурсов", ИмяПоляКлюча), + Кластер.СчетчикиРесурсов().Список(, , ИмяПоляКлюча)); - Описание.Вставить("ОграниченияРесурсов", - ПолучитьСписокОбъектов(Кластер.ОграниченияРесурсов().Список())); + Описание.Вставить(ПолучитьИмяКоллекцииОбъектов("ОграничениеРесурсов", ИмяПоляКлюча), + Кластер.ОграниченияРесурсов().Список(, , ИмяПоляКлюча)); Возврат Описание; @@ -544,10 +582,14 @@ // Функция возвращает список сеансов всех кластеров центрального сервера 1С в виде массива // +// Параметры: +// ИмяПоляКлюча - Строка - имя поля, значение которого будет использовано +// в качестве ключа возвращаемого соответствия +// // Возвращаемое значение: // Массив (Соответствие) - список сеансов // -Функция ВсеСеансы() Экспорт +Функция ВсеСеансы(Знач ИмяПоляКлюча = "Имя") Экспорт ВсеКластеры = Кластеры.Список(); @@ -569,11 +611,13 @@ // // Параметры: // КластерИлиАдрес - Кластер, Строка - объект или адрес кластера 1С +// ИмяПоляКлюча - Строка - имя поля, значение которого будет использовано +// в качестве ключа возвращаемого соответствия // // Возвращаемое значение: // Массив (Соответствие) - список сеансов кластера 1С // -Функция СеансыКластера(Знач КластерИлиАдрес = Неопределено) Экспорт +Функция СеансыКластера(Знач КластерИлиАдрес = Неопределено, Знач ИмяПоляКлюча = "Имя") Экспорт Если НЕ ЗначениеЗаполнено(КластерИлиАдрес) Тогда Возврат ВсеСеансы(); @@ -585,16 +629,20 @@ Кластер = КластерИлиАдрес; КонецЕсли; - Возврат ПолучитьСписокОбъектов(Кластер.Сеансы().Список()); + Возврат Кластер.Сеансы().Список(, , ИмяПоляКлюча); КонецФункции // СеансыКластера() // Функция возвращает список соединений всех кластеров центрального сервера 1С в виде массива // +// Параметры: +// ИмяПоляКлюча - Строка - имя поля, значение которого будет использовано +// в качестве ключа возвращаемого соответствия +// // Возвращаемое значение: // Массив (Соответствие) - список соединений // -Функция ВсеСоединения() Экспорт +Функция ВсеСоединения(Знач ИмяПоляКлюча = "Имя") Экспорт ВсеКластеры = Кластеры.Список(); @@ -615,12 +663,14 @@ // Функция возвращает список соединений кластера 1С в виде массива // // Параметры: -// КластерИлиАдрес - Кластер, Строка - объект или адрес кластера 1С +// КластерИлиАдрес - Кластер, Строка - объект или адрес кластера 1С +// ИмяПоляКлюча - Строка - имя поля, значение которого будет использовано +// в качестве ключа возвращаемого соответствия // // Возвращаемое значение: // Массив (Соответствие) - список соединений кластера 1С // -Функция СоединенияКластера(Знач КластерИлиАдрес = Неопределено) Экспорт +Функция СоединенияКластера(Знач КластерИлиАдрес = Неопределено, Знач ИмяПоляКлюча = "Имя") Экспорт Если НЕ ЗначениеЗаполнено(КластерИлиАдрес) Тогда Возврат ВсеСоединения(); @@ -632,7 +682,7 @@ Кластер = КластерИлиАдрес; КонецЕсли; - Возврат ПолучитьСписокОбъектов(Кластер.Соединения().Список()); + Возврат Кластер.Соединения().Список(, , ИмяПоляКлюча); КонецФункции // СоединенияКластера() @@ -640,38 +690,24 @@ #Область СлужебныеМетоды -Функция ПолучитьСписокОбъектов(Знач Список, Знач Параметры = Неопределено) - - СписокОбъектов = Новый Массив(); - - Для Каждого ТекОбъект Из Список Цикл - СписокОбъектов.Добавить(ПолучитьПоляОбъекта(ТекОбъект, Параметры)); - КонецЦикла; - - Возврат СписокОбъектов; - -КонецФункции // ПолучитьСписокОбъектов() - -Функция ПолучитьПоляОбъекта(Знач ОбъектКластера, Знач Параметры = Неопределено) - - ПоляОбъекта = Новый Соответствие(); +// Функция возвращает имя коллекции объектов по имени типа, из указанного поля ключа +// +// Параметры: +// ИмяТипа - Строка - имя типа объектов кластера +// ИмяПоляКлюча - Строка - имя поля, значение которого будет возвращено +// в качестве имени коллекции +// +// Возвращаемое значение: +// Строка - имя коллекции объектов +// +Функция ПолучитьИмяКоллекцииОбъектов(Знач ИмяТипа, Знач ИмяПоляКлюча = "Имя") - ИспользоватьПараметрыОбъекта = (Параметры = Неопределено); - Если ИспользоватьПараметрыОбъекта Тогда - Параметры = ОбъектКластера.ПараметрыОбъекта(); + Если ИмяПоляКлюча = "Имя" Тогда + ИмяПоляКлюча = "ИмяКоллекции"; КонецЕсли; - Для Каждого ТекПараметр Из Параметры Цикл - Если ИспользоватьПараметрыОбъекта Тогда - Ключ = ТекПараметр.Ключ; - Иначе - Ключ = ТекПараметр.Значение.ИмяРАК; - КонецЕсли; - ПоляОбъекта.Вставить(ТекПараметр.Значение.ИмяРАК, ОбъектКластера.Получить(Ключ)); - КонецЦикла; - - Возврат ПоляОбъекта; + Возврат ТипыОбъектовКластера.ТипОбъекта(ИмяТипа)[ИмяПоляКлюча]; -КонецФункции // ПолучитьПоляОбъекта() +КонецФункции // ПолучитьИмяКоллекцииОбъектов() #КонецОбласти // СлужебныеМетоды \ No newline at end of file diff --git "a/src/\320\234\320\260\320\272\320\265\321\202\321\213/package-loader.os" "b/src/\320\234\320\260\320\272\320\265\321\202\321\213/package-loader.os" new file mode 100644 index 0000000..18a5cd4 --- /dev/null +++ "b/src/\320\234\320\260\320\272\320\265\321\202\321\213/package-loader.os" @@ -0,0 +1,7 @@ +Процедура ПриЗагрузкеБиблиотеки(Знач Путь, СтандартнаяОбработка, Отказ) + + СтандартнаяОбработка = Ложь; + ДобавитьМакет(ОбъединитьПути(Путь, "Перечисления.json"), "/Макеты/Перечисления"); + ДобавитьМакет(ОбъединитьПути(Путь, "ТипыОбъектовКластера.json"), "/Макеты/ТипыОбъектовКластера"); + +КонецПроцедуры \ No newline at end of file diff --git "a/src/\320\234\320\260\320\272\320\265\321\202\321\213/\320\242\320\270\320\277\321\213\320\236\320\261\321\212\320\265\320\272\321\202\320\276\320\262\320\232\320\273\320\260\321\201\321\202\320\265\321\200\320\260.json" "b/src/\320\234\320\260\320\272\320\265\321\202\321\213/\320\242\320\270\320\277\321\213\320\236\320\261\321\212\320\265\320\272\321\202\320\276\320\262\320\232\320\273\320\260\321\201\321\202\320\265\321\200\320\260.json" index 7200ece..856cf0d 100644 --- "a/src/\320\234\320\260\320\272\320\265\321\202\321\213/\320\242\320\270\320\277\321\213\320\236\320\261\321\212\320\265\320\272\321\202\320\276\320\262\320\232\320\273\320\260\321\201\321\202\320\265\321\200\320\260.json" +++ "b/src/\320\234\320\260\320\272\320\265\321\202\321\213/\320\242\320\270\320\277\321\213\320\236\320\261\321\212\320\265\320\272\321\202\320\276\320\262\320\232\320\273\320\260\321\201\321\202\320\265\321\200\320\260.json" @@ -1,5 +1,5 @@ { - "Агент":{ + "Агенты":{ "Имя" : "Агент", "РежимАдминистрирования" : "agent", "Свойства":{ @@ -637,8 +637,8 @@ } } }, - "ИБ":{ - "Имя" : "ИБ", + "ИнформационныеБазы":{ + "Имя" : "ИнформационнаяБаза", "РежимАдминистрирования" : "infobase", "Свойства":{ "Ид":{ @@ -1607,7 +1607,7 @@ } }, "МодулиПрофиля":{ - "Имя" : "Модуль", + "Имя" : "ВнешнийМодуль", "РежимАдминистрирования" : "module", "Свойства":{ "Имя":{ diff --git "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.os" "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.os" index 4c94dc3..cb8ffa7 100644 --- "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.os" +++ "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271.os" @@ -14,8 +14,8 @@ #Использовать 1commands #Использовать v8runner #Использовать 1connector +#Использовать "../Макеты" -Перем ЭтоПриложениеEXE; Перем Лог; // Функция - читает указанный макет JSON и возвращает содержимое в виде структуры/массива @@ -28,17 +28,12 @@ // Функция ПрочитатьДанныеИзМакетаJSON(ИмяМакета) Экспорт - Если ЭтоСборкаEXE() Тогда - КаталогЗапуска = КаталогПрограммы(); - Иначе - КаталогЗапуска = ТекущийСценарий().Каталог; - КонецЕсли; - Чтение = Новый ЧтениеJSON(); - - Чтение.ОткрытьФайл(СтрШаблон("%1/../Макеты/%2.json", КаталогЗапуска, ИмяМакета), - КодировкаТекста.UTF8); + ПутьКМакету = ПолучитьМакет(СтрШаблон("/Макеты/%1", ИмяМакета)); + + Чтение.ОткрытьФайл(ПутьКМакету, КодировкаТекста.UTF8); + Возврат ПрочитатьJSON(Чтение, Ложь); КонецФункции // ПрочитатьДанныеИзМакетаJSON() @@ -112,9 +107,10 @@ // копирования данных не происходят, в результирующее соответствие помещаются исходные элементы массива // // Параметры: -// МассивСоответствий - Массив(Соответствие) - Данные для преобразования -// <имя поля> - Произвольный - Значение элемента соответствия -// ПоляИерархии - Строка - Поля для построения иерархии списка объектов, разделенные "," +// МассивСоответствий - Массив(Соответствие) - Данные для преобразования +// <имя поля> - Произвольный - Значение элемента соответствия +// ПоляИерархии - Строка, Массив - имена полей для построения иерархии списка объектов, +// разделенные "," или массив имен полей // // Возвращаемое значение: // Соответствие - иерархия соответствий по значениям полей упорядочивания @@ -125,7 +121,11 @@ // Функция ИерархическоеПредставлениеМассиваСоответствий(МассивСоответствий, ПоляИерархии) Экспорт - МассивУпорядочивания = СтрРазделить(ПоляИерархии, ",", Ложь); + МассивУпорядочивания = ПоляИерархии; + + Если ТипЗнч(ПоляИерархии) = Тип("Строка") Тогда + МассивУпорядочивания = СтрРазделить(ПоляИерархии, ",", Ложь); + КонецЕсли; Если МассивУпорядочивания.Количество() = 0 Тогда Возврат МассивСоответствий; @@ -208,6 +208,14 @@ // Функция МассивОбъектовВМассивСоответствий(МассивЭлементов, ПоляЭлемента) Экспорт + Если НЕ ТипЗнч(МассивЭлементов) = Тип("Массив") Тогда + Возврат МассивЭлементов; + КонецЕсли; + + Если МассивЭлементов.Количество() = 0 Тогда + Возврат МассивЭлементов; + КонецЕсли; + Если ТипЗнч(МассивЭлементов[0]) = Тип("Соответствие") Тогда Возврат МассивЭлементов; КонецЕсли; @@ -345,21 +353,6 @@ КонецПроцедуры // ВывестиПоляОбъекта() -// Функция признак того, что выполняется скрипт, собранный в приложение -// -// Возвращаемое значение: -// Булево - Истина - выполняется скрипт, собранный в приложение -// -Функция ЭтоСборкаEXE() Экспорт - - Если ЭтоПриложениеEXE = Неопределено Тогда - ЭтоПриложениеEXE = ВРег(Прав(ТекущийСценарий().Источник, 3)) = "EXE"; - КонецЕсли; - - Возврат ЭтоПриложениеEXE; - -КонецФункции // ЭтоСборкаEXE() - // Функция возвращает лог библиотеки // // Возвращаемое значение: diff --git "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\242\320\270\320\277\321\213\320\236\320\261\321\212\320\265\320\272\321\202\320\276\320\262\320\232\320\273\320\260\321\201\321\202\320\265\321\200\320\260.os" "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\242\320\270\320\277\321\213\320\236\320\261\321\212\320\265\320\272\321\202\320\276\320\262\320\232\320\273\320\260\321\201\321\202\320\265\321\200\320\260.os" index 4629928..925a4e6 100644 --- "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\242\320\270\320\277\321\213\320\236\320\261\321\212\320\265\320\272\321\202\320\276\320\262\320\232\320\273\320\260\321\201\321\202\320\265\321\200\320\260.os" +++ "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\242\320\270\320\277\321\213\320\236\320\261\321\212\320\265\320\272\321\202\320\276\320\262\320\232\320\273\320\260\321\201\321\202\320\265\321\200\320\260.os" @@ -79,13 +79,13 @@ // Функция ТипОбъекта(Знач ТипОбъектов) Экспорт - ИмяТипа = ТипыОбъектов.Получить(ВРег(ТипОбъектов)); + ОписаниеТипа = ТипыОбъектов.Получить(ВРег(ТипОбъектов)); - Если ИмяТипа = Неопределено Тогда + Если ОписаниеТипа = Неопределено Тогда ВызватьИсключение СтрШаблон("Не найден тип объектов ""%1""", ТипОбъектов); КонецЕсли; - Возврат ИмяТипа; + Возврат ОписаниеТипа; КонецФункции // ТипОбъекта() @@ -404,6 +404,8 @@ ОписаниеТипа = Новый Структура(); ОписаниеТипа.Вставить("Имя" , ИменаТипа[0]); + ОписаниеТипа.Вставить("ИмяКоллекции" , ИмяТипа); + ОписаниеТипа.Вставить("ИмяРАК" , ОписаниеТипаОбъектов.РежимАдминистрирования); ОписаниеТипа.Вставить("РежимАдминистрирования", ОписаниеТипаОбъектов.РежимАдминистрирования); Если ТипЗнч(ИменаРодителя) = Тип("Массив") И ИменаРодителя.Количество() > 0 Тогда ОписаниеТипа.Вставить("Владелец" , ТипОбъекта(ИменаРодителя[0])); diff --git "a/tests/fixtures/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\321\217.os" "b/tests/fixtures/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\321\217.os" index 979adc2..4e75cec 100644 --- "a/tests/fixtures/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\321\217.os" +++ "b/tests/fixtures/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\321\217.os" @@ -503,7 +503,7 @@ ПараметрыКоманды.Вставить("ИдентификаторКластера" , Кластер_Ид()); ПараметрыКоманды.Вставить("СтрокаАвторизацииКластера", Кластер_СтрокаАвторизации()); - ПараметрыОбъекта = Новый КомандыОбъекта(Перечисления.РежимыАдминистрирования.ИБ, ПараметрыКоманды); + ПараметрыОбъекта = Новый КомандыОбъекта(Перечисления.РежимыАдминистрирования.ИнформационныеБазы, ПараметрыКоманды); ВыводКоманды = ""; @@ -533,7 +533,8 @@ ПараметрыКоманды.Вставить("СтрокаАвторизацииКластера", Кластер_СтрокаАвторизации()); ПараметрыКоманды.Вставить("ИдентификаторИБ" , ТекИБ["infobase"]); - ПараметрыОбъекта = Новый КомандыОбъекта(Перечисления.РежимыАдминистрирования.ИБ, ПараметрыКоманды); + ПараметрыОбъекта = Новый КомандыОбъекта(Перечисления.РежимыАдминистрирования.ИнформационныеБазы, + ПараметрыКоманды); ВыводКоманды = СокращенныйТекстОписанияИБ(ТекИБ["ТекстОбъекта"]); @@ -562,7 +563,8 @@ ПараметрыКоманды.Вставить("ИдентификаторИБ" , ТекИБ["infobase"]); ПараметрыКоманды.Вставить("СтрокаАвторизацииИБ" , ИБ_СтрокаАвторизации()); - ПараметрыОбъекта = Новый КомандыОбъекта(Перечисления.РежимыАдминистрирования.ИБ, ПараметрыКоманды); + ПараметрыОбъекта = Новый КомандыОбъекта(Перечисления.РежимыАдминистрирования.ИнформационныеБазы, + ПараметрыКоманды); ВыводКоманды = ТекИБ["ТекстОбъекта"]; @@ -591,7 +593,8 @@ ПараметрыКоманды.Вставить("ИдентификаторИБ" , ТекИБ["infobase"]); ПараметрыКоманды.Вставить("СтрокаАвторизацииИБ" , ""); - ПараметрыОбъекта = Новый КомандыОбъекта(Перечисления.РежимыАдминистрирования.ИБ, ПараметрыКоманды); + ПараметрыОбъекта = Новый КомандыОбъекта(Перечисления.РежимыАдминистрирования.ИнформационныеБазы, + ПараметрыКоманды); ВыводКоманды = СтрШаблон("Недостаточно прав пользователя для доступа к базе %1", ТекИБ["name"]); @@ -612,7 +615,8 @@ ПараметрыКоманды.Вставить("ИдентификаторКластера" , Кластер_Ид()); ПараметрыКоманды.Вставить("СтрокаАвторизацииКластера", Кластер_СтрокаАвторизации()); - ПараметрыОбъекта = Новый КомандыОбъекта(Перечисления.РежимыАдминистрирования.ИБ, ПараметрыКоманды); + ПараметрыОбъекта = Новый КомандыОбъекта(Перечисления.РежимыАдминистрирования.ИнформационныеБазы, + ПараметрыКоманды); ВыводКоманды = ""; @@ -652,7 +656,7 @@ ПараметрыКоманды.Вставить("БлокировкаРегламентныхЗаданийВключена", Перечисления.СостоянияВыключателя.Выключено); ПараметрыКоманды.Вставить("ВыдачаЛицензийСервером" , Перечисления.ПраваДоступа.Разрешено); - ПараметрыОбъекта = Новый КомандыОбъекта(Перечисления.РежимыАдминистрирования.ИБ, ПараметрыКоманды); + ПараметрыОбъекта = Новый КомандыОбъекта(Перечисления.РежимыАдминистрирования.ИнформационныеБазы, ПараметрыКоманды); ВремТекст = Новый ТекстовыйДокумент(); ВремТекст.УстановитьТекст(ВозвращаемыеЗначения["ИнформационныеБазы.Добавление"]); diff --git a/tests/irac-test.os b/tests/irac-test.os index f91a340..d1458bc 100644 --- a/tests/irac-test.os +++ b/tests/irac-test.os @@ -775,7 +775,7 @@ ПараметрыТестирования.УстановитьВыводИсполнителяКоманд(АгентКластера.ИсполнительКоманд(), "Сеансы.Список"); - Сеансы = Кластер.Сеансы().ИерархическийСписок("host,user-name"); + Сеансы = Кластер.Сеансы().ИерархическийСписок("host,Пользователь"); СеансыКомпьютера = Сеансы["Sport1"];