From 1486dfd7f042069f8ccca08a50b4be80b1a608fa Mon Sep 17 00:00:00 2001 From: Denis Date: Fri, 26 Apr 2024 09:34:48 +0300 Subject: [PATCH 1/5] added new collections to the parameters (valueTable, array, structure, valueList) --- ...0\275\320\272\321\206\320\270\320\270.xml" | 80 ++--- .../Ext/ManagerModule.bsl" | 68 +++- ...1\201\321\201\320\270\320\262\320\260.xml" | 10 +- .../Ext/Form.xml" | 186 +++++++++++ .../Ext/Form/Module.bsl" | 85 +++++ .../Ext/Form.xml" | 210 ------------ .../Ext/Form/Module.bsl" | 133 -------- ...0\272\321\202\321\203\321\200\321\213.xml" | 21 ++ .../Ext/Form.xml" | 181 ++++++++++ .../Ext/Form/Module.bsl" | 108 ++++++ ...1\207\320\265\320\275\320\270\320\271.xml" | 21 ++ .../Ext/Form.xml" | 257 +++++++++++++++ .../Ext/Form/Module.bsl" | 206 ++++++++++++ .../Ext/Form.xml" | 135 +++++--- .../Ext/Form/Module.bsl" | 312 +++++++++++++----- .../Ext/Module.bsl" | 29 ++ .../Ext/Module.bsl" | 33 ++ .../Ext/Module.bsl" | 8 + .../Ext/Module.bsl" | 22 +- ...0\262\321\202\320\230\321\201\320\277.xml" | 23 ++ .../Ext/Module.bsl" | 40 +++ ...0\262\321\202\320\230\321\201\320\277.xml" | 23 ++ .../Ext/Module.bsl" | 43 +++ .../Ext/Module.bsl" | 14 +- src/Configuration.xml | 2 + 25 files changed, 1726 insertions(+), 524 deletions(-) rename "src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\320\276\320\262.xml" => "src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\234\320\260\321\201\321\201\320\270\320\262\320\260.xml" (83%) create mode 100644 "src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\234\320\260\321\201\321\201\320\270\320\262\320\260/Ext/Form.xml" create mode 100644 "src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\234\320\260\321\201\321\201\320\270\320\262\320\260/Ext/Form/Module.bsl" delete mode 100644 "src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\320\276\320\262/Ext/Form.xml" delete mode 100644 "src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\320\276\320\262/Ext/Form/Module.bsl" create mode 100644 "src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\321\202\321\200\321\203\320\272\321\202\321\203\321\200\321\213.xml" create mode 100644 "src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\321\202\321\200\321\203\320\272\321\202\321\203\321\200\321\213/Ext/Form.xml" create mode 100644 "src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\321\202\321\200\321\203\320\272\321\202\321\203\321\200\321\213/Ext/Form/Module.bsl" create mode 100644 "src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271.xml" create mode 100644 "src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271/Ext/Form.xml" create mode 100644 "src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271/Ext/Form/Module.bsl" create mode 100644 "src/CommonModules/__\320\241\321\202\320\260\320\275\320\264\320\260\321\200\321\202\320\275\321\213\320\265\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\321\213\320\237\320\276\320\262\321\202\320\230\321\201\320\277.xml" create mode 100644 "src/CommonModules/__\320\241\321\202\320\260\320\275\320\264\320\260\321\200\321\202\320\275\321\213\320\265\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\321\213\320\237\320\276\320\262\321\202\320\230\321\201\320\277/Ext/Module.bsl" create mode 100644 "src/CommonModules/__\320\241\321\202\320\260\320\275\320\264\320\260\321\200\321\202\320\275\321\213\320\265\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\230\321\201\320\277.xml" create mode 100644 "src/CommonModules/__\320\241\321\202\320\260\320\275\320\264\320\260\321\200\321\202\320\275\321\213\320\265\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\230\321\201\320\277/Ext/Module.bsl" diff --git "a/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270.xml" "b/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270.xml" index 07b60aa1..e01bfe37 100644 --- "a/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270.xml" +++ "b/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270.xml" @@ -590,38 +590,35 @@ ForItem - + - Наименование + Идентификатор ru - Наименование - - - en - Name + Идентификатор - + Идентификатор - xs:string - - 200 - Variable - + v8:UUID false - + + + ru + Идентификатор параметра + + false false false - ShowError + DontCheck Items @@ -635,22 +632,26 @@ Use - + - ТипПараметра + Наименование ru - Тип параметра + Наименование en - Parameter Type + Name - v8:ValueStorage + xs:string + + 200 + Variable + false @@ -662,7 +663,7 @@ false - DontCheck + ShowError Items @@ -717,43 +718,32 @@ Use - + - ЗначениеПоУмолчанию + Тип ru - Значение по умолчанию - - - en - Default Value + Тип - + Тип - xs:boolean xs:string - xs:dateTime - xs:decimal - cfg:AnyRef - - 10 - 0 - Any - - 10 + 0 Variable - - Date - false - + + + ru + Тип параметра + + false false @@ -940,9 +930,11 @@
ФормаЭлемента
ФормаСписка
ФормаВыбора
-
ФормаПараметров
ФормаГруппы
УсловныйОператор
+
ФормаТаблицыЗначений
+
ФормаСтруктуры
+
ФормаМассива
diff --git "a/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Ext/ManagerModule.bsl" "b/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Ext/ManagerModule.bsl" index 1f3b861c..846d3750 100644 --- "a/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Ext/ManagerModule.bsl" +++ "b/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Ext/ManagerModule.bsl" @@ -20,6 +20,72 @@ #Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда +#Область ПрограммныйИнтерфейс + +// Формирует список возможных типов конфигурации. +// +// Параметры: +// СписокДобавленныхТипов - СписокЗначений - список типов, добавленных "вручную". +// +// Возвращаемое значение: +// СписокЗначений +// +Функция СформироватьСписокТипов(СписокДобавленныхТипов = Неопределено) Экспорт + + СписокТипов = Новый СписокЗначений; + + Если СписокДобавленныхТипов <> Неопределено Тогда + СписокТипов.ЗагрузитьЗначения(СписокДобавленныхТипов.ВыгрузитьЗначения()); + КонецЕсли; + + ОписаниеТипаВсеСсылки = __СтандартныеПодсистемыПовтИсп.ОписаниеТипаВсеСсылки(); + ДоступныеТипыДанных = Новый ОписаниеТипов(ОписаниеТипаВсеСсылки, "ОписаниеТипов"); + МассивТипов = ДоступныеТипыДанных.Типы(); + + НеПримитивныеТипы = Новый СписокЗначений; + НеПримитивныеТипы.ЗагрузитьЗначения(МассивТипов); + НеПримитивныеТипы.СортироватьПоЗначению(НаправлениеСортировки.Возр); + + СписокТипов.Добавить("Число", НСтр("ru = 'Число'")); + СписокТипов.Добавить("Строка", НСтр("ru = 'Строка'")); + СписокТипов.Добавить("Дата", НСтр("ru = 'Дата'")); + СписокТипов.Добавить("Булево", НСтр("ru = 'Булево'")); + СписокТипов.Добавить("ТаблицаЗначений", НСтр("ru = 'Таблица значений'")); + СписокТипов.Добавить("СписокЗначений", НСтр("ru = 'Список значений'")); + СписокТипов.Добавить("Массив", НСтр("ru = 'Массив'")); + СписокТипов.Добавить("Структура", НСтр("ru = 'Структура'")); + + Для каждого Стр Из НеПримитивныеТипы Цикл + ЗначениеТипа = XMLТип(Стр.Значение).ИмяТипа; + ПредставлениеТипа = Строка(Стр.Значение); + СписокТипов.Добавить(ЗначениеТипа, ПредставлениеТипа); + КонецЦикла; + + Возврат СписокТипов; + +КонецФункции + +// Фильтрует список типов для данного контекста. +// +// Параметры: +// СписокТипов - СписокЗначений - передаваемые типы. +// Контекст - Строка +// +Процедура ФильтрацияСпискаТипов(СписокТипов, Контекст) Экспорт + + // Пример фильтрации, добавить при необходимости + // Если НРег(Контекст) = "тип" Тогда + // Элемент = СписокТипов.НайтиПоЗначению("Тип"); + // СписокТипов.Удалить(Элемент); + // КонецЕсли; + + Элемент = СписокТипов.НайтиПоЗначению("TypeDescription"); // Тип "Описание типов" удаляется всегда. + СписокТипов.Удалить(Элемент); + +КонецПроцедуры + +#КонецОбласти + #Область СлужебныйПрограммныйИнтерфейс // Обновляет тексты предопределенных элементов справочника пользовательские функции. @@ -122,7 +188,7 @@ Если ТипЗнч(Ссылка) = Тип("ДанныеФормыСтруктура") Тогда ОписаниеТипаПараметра = ""; Иначе - ОписаниеТипаПараметра = СокрЛП(Параметр.ТипПараметра.Получить()); + ОписаниеТипаПараметра = СокрЛП(Параметр.Тип); КонецЕсли; ТекстКомментария = СтрШаблон("%1%2// %3 - '%4'", diff --git "a/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\320\276\320\262.xml" "b/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\234\320\260\321\201\321\201\320\270\320\262\320\260.xml" similarity index 83% rename from "src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\320\276\320\262.xml" rename to "src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\234\320\260\321\201\321\201\320\270\320\262\320\260.xml" index f018bf8e..1f1c00f9 100644 --- "a/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\320\276\320\262.xml" +++ "b/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\234\320\260\321\201\321\201\320\270\320\262\320\260.xml" @@ -1,16 +1,12 @@  -
+ - ФормаПараметров + ФормаМассива ru - Форма параметров - - - en - The form of the parameters + Форма массива diff --git "a/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\234\320\260\321\201\321\201\320\270\320\262\320\260/Ext/Form.xml" "b/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\234\320\260\321\201\321\201\320\270\320\262\320\260/Ext/Form.xml" new file mode 100644 index 00000000..e47022d9 --- /dev/null +++ "b/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\234\320\260\321\201\321\201\320\270\320\262\320\260/Ext/Form.xml" @@ -0,0 +1,186 @@ + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Конструктор "массива"</v8:content> + </v8:item> + + LockOwnerWindow + false + + + + + + + ПриСозданииНаСервере + ПриЗакрытии + + + + List +
false
+ false + false + true + Массив + Массив.Picture + + Pickup + + + + + + + Массив + SearchStringRepresentation + + + + + + + Массив + ViewStatusRepresentation + + + + + + + Массив + SearchControl + + + + + + + Массив.Value + EnterOnInput + true + + + + +
+
+ + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Структура</v8:content> + </v8:item> + + + v8:ValueTable + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Ключ</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Значение</v8:content> + </v8:item> + + + xs:boolean + xs:string + xs:dateTime + xs:decimal + cfg:AnyRef + + 10 + 0 + Any + + + 0 + Variable + + + Date + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Адрес значения</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Сохранить результат</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Массив</v8:content> + </v8:item> + + + v8:ValueListType + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>ОК</v8:content> + </v8:item> + + + + ru + Сохранить результат + + + СохранитьРезультат + + + \ No newline at end of file diff --git "a/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\234\320\260\321\201\321\201\320\270\320\262\320\260/Ext/Form/Module.bsl" "b/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\234\320\260\321\201\321\201\320\270\320\262\320\260/Ext/Form/Module.bsl" new file mode 100644 index 00000000..753a275f --- /dev/null +++ "b/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\234\320\260\321\201\321\201\320\270\320\262\320\260/Ext/Form/Module.bsl" @@ -0,0 +1,85 @@ +// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8, +// включая доработку типовых конфигураций. +// +// Copyright First BIT company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// URL: https://github.com/firstBitSportivnaya/PSSL/ +// + +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + Если Параметры.Свойство("АдресЗначения", АдресЗначения) Тогда + Значение = ПолучитьИзВременногоХранилища(АдресЗначения); + Если Значение <> Неопределено Тогда + Массив.ЗагрузитьЗначения(Значение); + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПриЗакрытии(ЗавершениеРаботы) + + Если ЗавершениеРаботы Тогда + Возврат; + КонецЕсли; + + Если СохранитьРезультат Тогда + Адрес = АдресМассиваВХранилище(); + ОповеститьОВыборе(Новый Структура("Адрес", Адрес)); + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиКомандФормы + +&НаКлиенте +Процедура СохранитьРезультат(Команда) + СохранитьРезультат = Истина; + Закрыть(); +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +&НаСервереБезКонтекста +Процедура ОчиститьНеиспользуемыеНастройки(Адрес) + УдалитьИзВременногоХранилища(Адрес); +КонецПроцедуры + +&НаСервере +Функция АдресМассиваВХранилище() + + Адрес = ""; + Если ЗначениеЗаполнено(Массив) Тогда + Результат = Массив.ВыгрузитьЗначения(); + // Если коллекция помещена в хранилище перезапишем в тот же адрес + УИД = ?(ПустаяСтрока(АдресЗначения), Новый УникальныйИдентификатор, АдресЗначения); + Адрес = ПоместитьВоВременноеХранилище(Результат, УИД); + Иначе + ОчиститьНеиспользуемыеНастройки(АдресЗначения); + КонецЕсли; + + Возврат Адрес; + +КонецФункции + +#КонецОбласти diff --git "a/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\320\276\320\262/Ext/Form.xml" "b/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\320\276\320\262/Ext/Form.xml" deleted file mode 100644 index 4b914093..00000000 --- "a/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\320\276\320\262/Ext/Form.xml" +++ /dev/null @@ -1,210 +0,0 @@ - -
- - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Форма заполнения параметров</v8:content> - </v8:item> - <v8:item> - <v8:lang>en</v8:lang> - <v8:content>Form of filling-in the parameters</v8:content> - </v8:item> - - false - Bottom - useIfNecessary - - Right - false - - - - - - - ПриСозданииНаСервере - - - - List - None - false - false - true - true - true - AsFile - ТаблицаПараметров - None - None - None - - - - - - - ТаблицаПараметров - SearchStringRepresentation - - - - - - - ТаблицаПараметров - ViewStatusRepresentation - - - - - - - ТаблицаПараметров - SearchControl - - - - - - - ТаблицаПараметров.Параметр - true - EnterOnInput - 24 - - - - - ТаблицаПараметров.Значение - EnterOnInput - true - - - - ТаблицаПараметровЗначениеНачалоВыбора - ТаблицаПараметровЗначениеОчистка - - - -
-
- - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Таблица параметров</v8:content> - </v8:item> - <v8:item> - <v8:lang>en</v8:lang> - <v8:content>Parameters Table</v8:content> - </v8:item> - - - v8:ValueTable - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Параметр</v8:content> - </v8:item> - <v8:item> - <v8:lang>en</v8:lang> - <v8:content>Parameter</v8:content> - </v8:item> - - - xs:string - - 50 - Variable - - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Значение</v8:content> - </v8:item> - <v8:item> - <v8:lang>en</v8:lang> - <v8:content>Value</v8:content> - </v8:item> - - - xs:boolean - xs:string - xs:dateTime - xs:decimal - cfg:AnyRef - - 10 - 0 - Any - - - 0 - Variable - - - Date - - - - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Ф кэш значений</v8:content> - </v8:item> - <v8:item> - <v8:lang>en</v8:lang> - <v8:content>F values cache</v8:content> - </v8:item> - - - - - - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>ОК</v8:content> - </v8:item> - <v8:item> - <v8:lang>en</v8:lang> - <v8:content>OK</v8:content> - </v8:item> - - - - ru - ОК - - - en - OK - - - ОК - DontUse - - -
\ No newline at end of file diff --git "a/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\320\276\320\262/Ext/Form/Module.bsl" "b/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\320\276\320\262/Ext/Form/Module.bsl" deleted file mode 100644 index f2226f5a..00000000 --- "a/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\320\276\320\262/Ext/Form/Module.bsl" +++ /dev/null @@ -1,133 +0,0 @@ -// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8, -// включая доработку типовых конфигураций. -// -// Copyright First BIT company -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// URL: https://github.com/firstBitSportivnaya/PSSL/ -// - -#Область ОбработчикиСобытийФормы - -&НаСервере -Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - - ПараметрыФункции = Параметры.ПараметрыФункции; - ЗначенияПараметров = Параметры.ЗначенияПараметров; - - ТаблицаПараметров.Очистить(); - - Для Каждого Параметр Из ПараметрыФункции Цикл - - ОписаниеТипа = Новый ОписаниеТипов(Параметр.фТипПараметра); - - Стр = ЗначенияПараметров.Получить(Параметр.Наименование); - Если Стр = Неопределено Тогда - - НоваяСтрока = ТаблицаПараметров.Добавить(); - НоваяСтрока.Параметр = Параметр.Наименование; - НоваяСтрока.Значение = ОписаниеТипа.ПривестиЗначение(); - Иначе - - НоваяСтрока = ТаблицаПараметров.Добавить(); - НоваяСтрока.Параметр = Параметр.Наименование; - - МассивТиповЗначения = Новый Массив; - МассивТиповЗначения.Добавить(ТипЗнч(Стр)); - - ОписаниеТипаЗначения = Новый ОписаниеТипов(МассивТиповЗначения); - - Если ОписаниеТипа = ОписаниеТипаЗначения Тогда - НоваяСтрока.Значение = Стр; - Иначе - НоваяСтрока.Значение = ОписаниеТипа.ПривестиЗначение(); - КонецЕсли; - КонецЕсли; - КонецЦикла; - - ЗаполнитьКэшЗначений(фКэшЗначений); - -КонецПроцедуры - -#КонецОбласти - -#Область ОбработчикиСобытийЭлементовТаблицыФормыТаблицаПараметров - -&НаКлиенте -Процедура ТаблицаПараметровЗначениеНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) - - ТекущиеДанные = Элементы.ТаблицаПараметров.ТекущиеДанные; - Если ТекущиеДанные = Неопределено Тогда - Возврат; - КонецЕсли; - - СписокВыбора = фКэшЗначений.ДоступныеТипыЗначенияПараметра; - __РаботаСДиалогамиКлиент.НачалоВыбораСоставного( - ЭтотОбъект, Элемент, ТекущиеДанные, "Значение", СписокВыбора, СтандартнаяОбработка); - -КонецПроцедуры - -&НаКлиенте -Процедура ТаблицаПараметровЗначениеОчистка(Элемент, СтандартнаяОбработка) - - Элементы.ТаблицаПараметровЗначение.ВыбиратьТип = Истина; - -КонецПроцедуры - -#КонецОбласти - -#Область ОбработчикиКомандФормы - -&НаКлиенте -Процедура ОК(Команда) - - ВернутьПараметрыИЗакрыть(); - -КонецПроцедуры - -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции - -&НаСервере -Процедура ЗаполнитьКэшЗначений(КэшированныеЗначения) - - КэшированныеЗначения = Новый Структура; - - МассивТипов = ТаблицаПараметров.Выгрузить().Колонки.Значение.ТипЗначения.Типы(); - СписокТипов = __ОбщегоНазначенияСервер.ПодготовитьСписокВыбораТипа(МассивТипов); - - КэшированныеЗначения.Вставить("ДоступныеТипыЗначенияПараметра", СписокТипов); - -КонецПроцедуры - -&НаКлиенте -Процедура ВернутьПараметрыИЗакрыть(ПараметрыФормы = Ложь) - - СоответствиеПараметров = Неопределено; - - Если Не ПараметрыФормы Тогда - - СоответствиеПараметров = Новый Соответствие; - Для Каждого Параметр Из ТаблицаПараметров Цикл - СоответствиеПараметров.Вставить(Параметр.Параметр, Параметр.Значение); - КонецЦикла; - КонецЕсли; - - Закрыть(СоответствиеПараметров); - -КонецПроцедуры - -#КонецОбласти - diff --git "a/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\321\202\321\200\321\203\320\272\321\202\321\203\321\200\321\213.xml" "b/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\321\202\321\200\321\203\320\272\321\202\321\203\321\200\321\213.xml" new file mode 100644 index 00000000..9931ca87 --- /dev/null +++ "b/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\321\202\321\200\321\203\320\272\321\202\321\203\321\200\321\213.xml" @@ -0,0 +1,21 @@ + + +
+ + ФормаСтруктуры + + + ru + Форма структуры + + + + Managed + false + + PlatformApplication + MobilePlatformApplication + + +
+
\ No newline at end of file diff --git "a/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\321\202\321\200\321\203\320\272\321\202\321\203\321\200\321\213/Ext/Form.xml" "b/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\321\202\321\200\321\203\320\272\321\202\321\203\321\200\321\213/Ext/Form.xml" new file mode 100644 index 00000000..555c1d51 --- /dev/null +++ "b/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\321\202\321\200\321\203\320\272\321\202\321\203\321\200\321\213/Ext/Form.xml" @@ -0,0 +1,181 @@ + +
+ + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Конструктор "структуры"</v8:content> + </v8:item> + + LockOwnerWindow + false + + + + + + + ПриСозданииНаСервере + ПриЗакрытии + + + + List + true + true + true + Структура + + + + + + + Структура + SearchStringRepresentation + + + + + + + Структура + ViewStatusRepresentation + + + + + + + Структура + SearchControl + + + + + + + Структура.Ключ + EnterOnInput + true + + + + СтруктураКлючПриИзменении + + + + Структура.Значение + EnterOnInput + true + + + + +
+
+ + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Структура</v8:content> + </v8:item> + + + v8:ValueTable + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Ключ</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Значение</v8:content> + </v8:item> + + + xs:boolean + xs:string + xs:dateTime + xs:decimal + cfg:AnyRef + + 10 + 0 + Any + + + 0 + Variable + + + Date + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Адрес значения</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Сохранить результат</v8:content> + </v8:item> + + + xs:boolean + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>ОК</v8:content> + </v8:item> + + + + ru + Сохранить результат + + + СохранитьРезультат + + +
\ No newline at end of file diff --git "a/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\321\202\321\200\321\203\320\272\321\202\321\203\321\200\321\213/Ext/Form/Module.bsl" "b/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\321\202\321\200\321\203\320\272\321\202\321\203\321\200\321\213/Ext/Form/Module.bsl" new file mode 100644 index 00000000..a7f01192 --- /dev/null +++ "b/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\321\202\321\200\321\203\320\272\321\202\321\203\321\200\321\213/Ext/Form/Module.bsl" @@ -0,0 +1,108 @@ +// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8, +// включая доработку типовых конфигураций. +// +// Copyright First BIT company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// URL: https://github.com/firstBitSportivnaya/PSSL/ +// + +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + Если Параметры.Свойство("АдресЗначения", АдресЗначения) Тогда + Значение = ПолучитьИзВременногоХранилища(АдресЗначения); + Если Значение <> Неопределено Тогда + Для Каждого Пара Из Значение Цикл + нСтрока = Структура.Добавить(); + ЗаполнитьЗначенияСвойств(нСтрока, Пара); + КонецЦикла; + КонецЕсли; + КонецЕсли; + +КонецПроцедуры + +&НаКлиенте +Процедура ПриЗакрытии(ЗавершениеРаботы) + + Если ЗавершениеРаботы Тогда + Возврат; + КонецЕсли; + + Если СохранитьРезультат Тогда + Адрес = АдресСтруктурыВХранилище(); + ОповеститьОВыборе(Новый Структура("Адрес", Адрес)); + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовТаблицыФормыСтруктура + +&НаКлиенте +Процедура СтруктураКлючПриИзменении(Элемент) + ТекДанные = Элементы.Структура.ТекущиеДанные; + Если ЗначениеЗаполнено(ТекДанные.Ключ) Тогда + Результат = СтрЗаменить(ТекДанные.Ключ, " ", ""); + Пока __ОбщегоНазначенияСлужебныйКлиентСервер.ЭтоЧисло(Сред(Результат,1,1)) Цикл + Результат = Прав(Результат, СтрДлина(Результат) - 1); + КонецЦикла; + __ОбщегоНазначенияКлиентСервер.УдалитьНедопустимыеСимволы(Результат); + ТекДанные.Ключ = Результат; + КонецЕсли; +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиКомандФормы + +&НаКлиенте +Процедура СохранитьРезультат(Команда) + СохранитьРезультат = Истина; + Закрыть(); +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +&НаСервереБезКонтекста +Процедура ОчиститьНеиспользуемыеНастройки(Адрес) + УдалитьИзВременногоХранилища(Адрес); +КонецПроцедуры + +&НаСервере +Функция АдресСтруктурыВХранилище() + + Адрес = ""; + + Если ЗначениеЗаполнено(Структура) Тогда + Результат = Новый Структура; + Для Каждого Пара Из Структура Цикл + Результат.Вставить(Пара.Ключ, Пара.Значение); + КонецЦикла; + УИД = ?(ПустаяСтрока(АдресЗначения), Новый УникальныйИдентификатор, АдресЗначения); + Адрес = ПоместитьВоВременноеХранилище(Результат, УИД); + Иначе + ОчиститьНеиспользуемыеНастройки(АдресЗначения); + КонецЕсли; + + Возврат Адрес; + +КонецФункции + +#КонецОбласти diff --git "a/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271.xml" "b/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271.xml" new file mode 100644 index 00000000..8cf4ac50 --- /dev/null +++ "b/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271.xml" @@ -0,0 +1,21 @@ + + +
+ + ФормаТаблицыЗначений + + + ru + Форма таблицы значений + + + + Managed + false + + PlatformApplication + MobilePlatformApplication + + +
+
\ No newline at end of file diff --git "a/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271/Ext/Form.xml" "b/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271/Ext/Form.xml" new file mode 100644 index 00000000..ea340f49 --- /dev/null +++ "b/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271/Ext/Form.xml" @@ -0,0 +1,257 @@ + +
+ + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Конструктор "таблицы значений"</v8:content> + </v8:item> + + LockOwnerWindow + false + + + + + + + ПриСозданииНаСервере + ПриЗакрытии + + + + + List + true + true + true + КолонкиТаблицыЗначений + + + + + + + КолонкиТаблицыЗначений + SearchStringRepresentation + + + + + + + КолонкиТаблицыЗначений + ViewStatusRepresentation + + + + + + + КолонкиТаблицыЗначений + SearchControl + + + + + + КолонкиТаблицыЗначенийПриНачалеРедактирования + + + + КолонкиТаблицыЗначений.Имя + EnterOnInput + true + + + + КолонкиТаблицыЗначенийИмяПриИзменении + + + + КолонкиТаблицыЗначений.ТипЗначения + EnterOnInput + true + true + + + + +
+ + List + true + true + true + СтрокиТаблицыЗначений + + + + + + + СтрокиТаблицыЗначений + SearchStringRepresentation + + + + + + + СтрокиТаблицыЗначений + ViewStatusRepresentation + + + + + + + СтрокиТаблицыЗначений + SearchControl + + + + +
+
+ + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Колонки таблицы значений</v8:content> + </v8:item> + + + v8:ValueTable + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Имя</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Тип значения</v8:content> + </v8:item> + + + v8:TypeDescription + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Идентификатор</v8:content> + </v8:item> + + + v8:UUID + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Строки таблицы значений</v8:content> + </v8:item> + + + v8:ValueTable + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Показать таблицу</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Сохранить результат</v8:content> + </v8:item> + + + xs:boolean + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Адрес значения</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Показать колонки/строки</v8:content> + </v8:item> + + + + ru + Показать колонки строки + + + КолонкиСтроки + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>ОК</v8:content> + </v8:item> + + + + ru + Сохранить результат + + + СохранитьРезультат + + +
\ No newline at end of file diff --git "a/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271/Ext/Form/Module.bsl" "b/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271/Ext/Form/Module.bsl" new file mode 100644 index 00000000..cecbde83 --- /dev/null +++ "b/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271/Ext/Form/Module.bsl" @@ -0,0 +1,206 @@ +// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8, +// включая доработку типовых конфигураций. +// +// Copyright First BIT company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// URL: https://github.com/firstBitSportivnaya/PSSL/ +// + +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + + Если Параметры.Свойство("АдресЗначения", АдресЗначения) Тогда + Таблица = ПолучитьИзВременногоХранилища(АдресЗначения); + Если Таблица <> Неопределено Тогда + Для Каждого Колонка Из Таблица.Колонки Цикл + // Заполняем таблицу колонок + нСтрока = КолонкиТаблицыЗначений.Добавить(); + ЗаполнитьЗначенияСвойств(нСтрока, Колонка); + КонецЦикла; + // Создаем реквизиты формы, выводим таблицу формы + ПоказатьТаблицу = Истина; + ОбновитьТаблицуСтрок(); + // Заполняем таблицу строк + Для Каждого Стр Из Таблица Цикл + нСтрока = СтрокиТаблицыЗначений.Добавить(); + ЗаполнитьЗначенияСвойств(нСтрока, Стр); + КонецЦикла; + КонецЕсли; + КонецЕсли; + + УстановитьВидимостьЭлементов(); + +КонецПроцедуры + +&НаКлиенте +Процедура ПриЗакрытии(ЗавершениеРаботы) + + Если ЗавершениеРаботы Тогда + Возврат; + КонецЕсли; + + Если СохранитьРезультат Тогда + Адрес = АдресТаблицыВХранилище(); + ОповеститьОВыборе(Новый Структура("Адрес", Адрес)); + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовТаблицыФормыКолонкиТаблицыЗначений + +&НаКлиенте +Процедура КолонкиТаблицыЗначенийИмяПриИзменении(Элемент) + ТекДанные = Элементы.КолонкиТаблицыЗначений.ТекущиеДанные; + Если ЗначениеЗаполнено(ТекДанные.Имя) Тогда + Результат = СтрЗаменить(ТекДанные.Имя, " ", ""); + __ОбщегоНазначенияКлиентСервер.УдалитьНедопустимыеСимволы(Результат); + ТекДанные.Имя = Результат; + КонецЕсли; +КонецПроцедуры + +&НаКлиенте +Процедура КолонкиТаблицыЗначенийПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование) + + Если Не НоваяСтрока Тогда + Возврат; + КонецЕсли; + + ТекДанные = Элементы.КолонкиТаблицыЗначений.ТекущиеДанные; + ТекДанные.Имя = "Колонка_"; + // Установим тип по умолчанию "Строка" + ТекДанные.ТипЗначения = Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(10)); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиКомандФормы + +&НаКлиенте +Процедура КолонкиСтроки(Команда) + УстановитьВидимостьЭлементов(); +КонецПроцедуры + +&НаКлиенте +Процедура СохранитьРезультат(Команда) + СохранитьРезультат = Истина; + Закрыть(); +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +&НаСервереБезКонтекста +Процедура ОчиститьНеиспользуемыеНастройки(Адрес) + УдалитьИзВременногоХранилища(Адрес); +КонецПроцедуры + +&НаСервере +Функция АдресТаблицыВХранилище() + + Адрес = ""; + Если ЗначениеЗаполнено(СтрокиТаблицыЗначений) Тогда + УИД = ?(ПустаяСтрока(АдресЗначения), Новый УникальныйИдентификатор, АдресЗначения); + ТаблицаЗначений = СтрокиТаблицыЗначений.Выгрузить(); + Адрес = ПоместитьВоВременноеХранилище(ТаблицаЗначений, УИД); + Иначе + ОчиститьНеиспользуемыеНастройки(АдресЗначения); + КонецЕсли; + + Возврат Адрес; + +КонецФункции + +&НаСервере +Процедура ОбновитьТаблицуСтрок() + + ИменаКолонок = Новый Массив; + Для Каждого Реквизит Из КолонкиТаблицыЗначений Цикл + ИменаКолонок.Добавить(Реквизит.Имя); + КонецЦикла; + + РеквизитыТаблицы = ПолучитьРеквизиты("СтрокиТаблицыЗначений"); + ИменаРеквизитов = Новый Массив(); + + УдаляемыеРеквизиты = Новый Массив; + Для Каждого Реквизит Из РеквизитыТаблицы Цикл + ИменаРеквизитов.Добавить(Реквизит.Имя); + Если ИменаКолонок.Найти(Реквизит.Имя) = Неопределено Тогда + УдаляемыеРеквизиты.Добавить("СтрокиТаблицыЗначений." + Реквизит.Имя); + __РаботаСФормами.УдалитьЭлемент(ЭтотОбъект, "СтрокиТаблицыЗначений" + Реквизит.Имя); + КонецЕсли; + КонецЦикла; + + ДобавляемыеРеквизиты = Новый Массив; + Для Каждого Колонка Из КолонкиТаблицыЗначений Цикл + Если ИменаРеквизитов.Найти(Колонка.Имя) = Неопределено Тогда + НовыйРеквизит = Новый РеквизитФормы(Колонка.Имя, Колонка.ТипЗначения, "СтрокиТаблицыЗначений"); + ДобавляемыеРеквизиты.Добавить(НовыйРеквизит); + КонецЕсли; + КонецЦикла; + + Если Не ЗначениеЗаполнено(УдаляемыеРеквизиты) И Не ЗначениеЗаполнено(ДобавляемыеРеквизиты) Тогда + Возврат; + КонецЕсли; + + НачатьТранзакцию(); + Попытка + + ИзменитьРеквизиты(, УдаляемыеРеквизиты); + ИзменитьРеквизиты(ДобавляемыеРеквизиты); + + Таблица = "СтрокиТаблицыЗначений"; + Для Каждого Реквизит Из ДобавляемыеРеквизиты Цикл + Если Элементы.Найти("СтрокиТаблицыЗначений" + Реквизит.Имя) = Неопределено Тогда + __РаботаСФормами.СоздатьКолонкаТаблицыФормы( + ЭтотОбъект, + Таблица + Реквизит.Имя, + Элементы.СтрокиТаблицыЗначений, + , + , + Таблица + "." + Реквизит.Имя); + КонецЕсли; + КонецЦикла; + + ЗафиксироватьТранзакцию(); + Исключение + ОтменитьТранзакцию(); + ВызватьИсключение; + КонецПопытки; + +КонецПроцедуры + +&НаСервере +Процедура УстановитьВидимостьЭлементов() + Если ПоказатьТаблицу Тогда + ОбновитьТаблицуСтрок(); + КонецЕсли; + ОбновитьЗаголовокКнопки(); + Элементы.КолонкиТаблицыЗначений.Видимость = Не ПоказатьТаблицу; + Элементы.СтрокиТаблицыЗначений.Видимость = ПоказатьТаблицу; + ПоказатьТаблицу = Не ПоказатьТаблицу; +КонецПроцедуры + +&НаСервере +Процедура ОбновитьЗаголовокКнопки() + Элементы.ФормаПоказатьКолонкиСтроки.Заголовок = ?(ПоказатьТаблицу, "Показать колонки", "Показать строки"); +КонецПроцедуры + +#КонецОбласти diff --git "a/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form.xml" "b/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form.xml" index c23e71f2..94bc0f35 100644 --- "a/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form.xml" +++ "b/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form.xml" @@ -4,13 +4,14 @@ Items + ОбработкаВыбора ПослеЗаписиНаСервере ПриЧтенииНаСервере ПриОткрытии ПередЗаписью ПриСозданииНаСервере - ПередЗаписьюНаСервере ПриЗаписиНаСервере + ПриЗакрытии @@ -208,11 +209,36 @@ - - Объект.ПараметрыФункции.фТипПараметра + + Объект.ПараметрыФункции.ТипВФорме EnterOnInput - - + true + true + false + + + + ПараметрыФункцииТипВФормеНачалоВыбора + + + + Объект.ПараметрыФункции.ЗначениеВФорме + EnterOnInput + true + false + + + + ПараметрыФункцииЗначениеВФормеНачалоВыбора + + + + Объект.ПараметрыФункции.АдресЗначения + false + EnterOnInput + true + + @@ -381,11 +407,6 @@ Form.Command.ДобавитьОписание - @@ -625,19 +646,63 @@ true - + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Тип</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + <v8:item> <v8:lang>ru</v8:lang> - <v8:content>Тип параметра</v8:content> + <v8:content>Значение</v8:content> </v8:item> + + + v8:ValueListType + xs:boolean + xs:string + xs:dateTime + xs:decimal + v8:UUID + cfg:AnyRef + + 10 + 0 + Any + + + 0 + Variable + + + Date + + + + + <v8:item> - <v8:lang>en</v8:lang> - <v8:content>Parameter Type</v8:content> + <v8:lang>ru</v8:lang> + <v8:content>Адрес значения (техн)</v8:content> </v8:item> - v8:TypeDescription + xs:string + + 0 + Variable + @@ -893,6 +958,17 @@ true + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Список типов</v8:content> + </v8:item> + + + v8:ValueListType + + @@ -1008,35 +1084,6 @@ true DontUse - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Задать параметры</v8:content> - </v8:item> - <v8:item> - <v8:lang>en</v8:lang> - <v8:content>Set Parameters</v8:content> - </v8:item> - - - - ru - Задать параметры для отладки кода - - - en - Set parameters for code debugging - - - - StdPicture.Enum - true - - ЗадатьПараметры - true - DontUse - <v8:item> diff --git "a/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl" "b/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl" index 6add519c..5e7b7527 100644 --- "a/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl" +++ "b/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl" @@ -26,10 +26,7 @@ &НаКлиенте Перем мПредИмя; // Хранит имя переменной до его изменения - -&НаКлиенте -Перем мЗначенияПараметров; // Хранит соответствие параметров и их значений для отладки. - +) #КонецОбласти #Область ОбработчикиСобытийФормы @@ -37,7 +34,7 @@ &НаСервере Процедура ПриЧтенииНаСервере(ТекущийОбъект) - ПрочитатьТипыПараметров(ТекущийОбъект); + ПрочитатьТипыИЗначенияПараметров(ТекущийОбъект, Истина); КонецПроцедуры @@ -60,7 +57,7 @@ КонецЦикла; ЗначениеВДанныеФормы(СправочникОбъект, Объект); - ПрочитатьТипыПараметров(СправочникОбъект); + ПрочитатьТипыИЗначенияПараметров(СправочникОбъект); Иначе ДобавитьПараметры(); КонецЕсли; @@ -89,13 +86,14 @@ ВидимостьКартыКода = Истина; ПодсвечиватьЗапросы = Истина; + СписокТипов = Справочники.__ПользовательскиеФункции.СформироватьСписокТипов(); + Справочники.__ПользовательскиеФункции.ФильтрацияСпискаТипов(СписокТипов, ""); + КонецПроцедуры &НаКлиенте Процедура ПриОткрытии(Отказ) - мЗначенияПараметров = Новый Соответствие; - Оповещение = Новый ОписаниеОповещения("ПослеПодключенияРасширенияДляРаботыСФайлами", ЭтотОбъект); НачатьПодключениеРасширенияРаботыСФайлами(Оповещение); ОпределитьРазделительПути(); @@ -109,26 +107,10 @@ КонецПроцедуры -&НаСервере -Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) - - Для Каждого ТекущийПараметр Из Объект.ПараметрыФункции Цикл - - СтруктураОтбора = Новый Структура; - СтруктураОтбора.Вставить("Наименование", ТекущийПараметр.Наименование); - - ДанныеПоиска = ТекущийОбъект.ПараметрыФункции.НайтиСтроки(СтруктураОтбора); - Если ДанныеПоиска.Количество() Тогда - ДанныеПоиска.Получить(0).ТипПараметра = Новый ХранилищеЗначения(ТекущийПараметр.фТипПараметра); - КонецЕсли; - КонецЦикла; - -КонецПроцедуры - &НаСервере Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи) - ПрочитатьТипыПараметров(ТекущийОбъект); + ПрочитатьТипыИЗначенияПараметров(ТекущийОбъект, Истина); КонецПроцедуры @@ -146,6 +128,31 @@ СохранитьКаталогИсходногоКодаКонфигурации(КаталогИсходногоКодаКонфигурации); КонецЕсли; + СохранитьПараметрыФункции(); + +КонецПроцедуры + +&НаКлиенте +Процедура ПриЗакрытии(ЗавершениеРаботы) + + Если ЗавершениеРаботы Тогда + Возврат; + КонецЕсли; + + УдалениеДанныхИзВременногоХранилища(); + +КонецПроцедуры + +&НаКлиенте +Процедура ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора) + + Если ИсточникВыбора.ИмяФормы = "Справочник.__ПользовательскиеФункции.Форма.ФормаТаблицыЗначений" + Или ИсточникВыбора.ИмяФормы = "Справочник.__ПользовательскиеФункции.Форма.ФормаСтруктуры" + Или ИсточникВыбора.ИмяФормы = "Справочник.__ПользовательскиеФункции.Форма.ФормаМассива" Тогда + текДанные = Элементы.ПараметрыФункции.ТекущиеДанные; + текДанные.АдресЗначения = ВыбранноеЗначение.Адрес; + КонецЕсли; + КонецПроцедуры #КонецОбласти @@ -196,6 +203,7 @@ Если НоваяСтрока Тогда ТекущиеДанные.Наименование = СтрШаблон("П%1", Строка(ТекущиеДанные.НомерСтроки)); + ТекущиеДанные.Идентификатор = Новый УникальныйИдентификатор; КонецЕсли; КонецПроцедуры @@ -214,6 +222,61 @@ КонецПроцедуры +&НаКлиенте +Асинх Процедура ПараметрыФункцииТипВФормеНачалоВыбора(Элемент, ДанныеВыбора, ВыборДобавлением, СтандартнаяОбработка) + + СтандартнаяОбработка = Ложь; + + ЗаголовокЭлемента = НСтр("ru = 'Редактирование типа данных'"); + + ВыбранныйЭлемент = Ждать СписокТипов.ВыбратьЭлементАсинх(ЗаголовокЭлемента); + Если ВыбранныйЭлемент = Неопределено Тогда + Возврат; + КонецЕсли; + + ТекДанные = Элементы.ПараметрыФункции.ТекущиеДанные; + + Если ВыбранныйЭлемент.Значение = "ТаблицаЗначений" + Или ВыбранныйЭлемент.Значение = "Массив" + Или ВыбранныйЭлемент.Значение = "Структура" Тогда + + ТекДанные.Тип = ВыбранныйЭлемент.Значение; + ТекДанные.ТипВФорме = ВыбранныйЭлемент.Представление; + // Доработать, отражение количество элементов в коллекции, условное оформление - цвет текста, запрет изменения + ТекДанные.ЗначениеВФорме = ВыбранныйЭлемент.Представление; + Иначе + ИнициализацияТипаИЗначенияПараметра(ТекДанные, ВыбранныйЭлемент); + КонецЕсли; + + Модифицированность = Истина; + +КонецПроцедуры + +&НаКлиенте +Процедура ПараметрыФункцииЗначениеВФормеНачалоВыбора(Элемент, ДанныеВыбора, ВыборДобавлением, СтандартнаяОбработка) + + ТекДанные = Элементы.ПараметрыФункции.ТекущиеДанные; + Тип = ТекДанные.Тип; + + Если Тип = "ТаблицаЗначений" Тогда + Путь = КлючОбъекта("ФормаТаблицыЗначений"); + ИначеЕсли Тип = "Структура" Тогда + Путь = КлючОбъекта("ФормаСтруктуры"); + ИначеЕсли Тип = "Массив" Тогда + Путь = КлючОбъекта("ФормаМассива"); + Иначе + Возврат; + КонецЕсли; + + ПараметрыФормы = Новый Структура; + Если ЗначениеЗаполнено(текДанные.АдресЗначения) Тогда + ПараметрыФормы.Вставить("АдресЗначения", текДанные.АдресЗначения); + КонецЕсли; + + ОткрытьФорму(Путь, ПараметрыФормы, ЭтотОбъект); + +КонецПроцедуры + #КонецОбласти #Область ОбработчикиСобытийЭлементовТаблицыФормыПеременные @@ -316,41 +379,11 @@ КонецПроцедуры -&НаКлиенте -Процедура ЗадатьПараметры(Команда) - - СтруктураТаблиц = Новый Структура; - УпаковатьТаблицу("ПараметрыФункции",СтруктураТаблиц); - - ПараметрыФормы = Новый Структура; - ПараметрыФормы.Вставить("ПараметрыФункции", СтруктураТаблиц.ПараметрыФункции); - ПараметрыФормы.Вставить("ЗначенияПараметров", мЗначенияПараметров); - - ОткрытьФорму("Справочник.__ПользовательскиеФункции.Форма.ФормаПараметров", ПараметрыФормы, ЭтотОбъект,,,, - Новый ОписаниеОповещения("ЗадатьПараметрыЗавершение", ЭтотОбъект), РежимОткрытияОкнаФормы.БлокироватьВесьИнтерфейс); - -КонецПроцедуры - -// Обработчик оповещения "ЗадатьПараметрыЗавершение". -// -// Параметры: -// НаборПараметров - Структура. -// Параметры - Структура. -// -&НаКлиенте -Процедура ЗадатьПараметрыЗавершение(НаборПараметров, Параметры) Экспорт - - Если Не НаборПараметров = Неопределено Тогда - мЗначенияПараметров = НаборПараметров; - КонецЕсли; - -КонецПроцедуры - &НаКлиенте Процедура ВыполнитьКод(Команда) ОбновитьИсполняемыйКод(); - ВыполнитьКодСервер(мЗначенияПараметров); + ВыполнитьКодСервер(); КонецПроцедуры @@ -406,7 +439,6 @@ // При загрузке из Эксель контекст зависит от того в каком правиле пытаемся выполнить загрузку, // в общем случае проверка невозможна. Элементы.ВыполнитьКод.Доступность = Не флКонтекстЗагрузкаЭксель; - Элементы.ЗадатьПараметры.Доступность = Не флКонтекстЗагрузкаЭксель; КонецПроцедуры @@ -427,26 +459,51 @@ КонецПроцедуры &НаСервере -Процедура ПрочитатьТипыПараметров(СпрОбъект) +Процедура ПрочитатьТипыИЗначенияПараметров(СпрОбъект, ПрочитатьЗначения = Ложь) + + Если ПрочитатьЗначения Тогда + НастройкиПараметров = ПолучитьПараметрыФункции(); + КонецЕсли; Для Каждого ТекущийПараметр Из СпрОбъект.ПараметрыФункции Цикл - - ОписаниеТипаПараметра = ТекущийПараметр.ТипПараметра.Получить(); - Если ОписаниеТипаПараметра = Неопределено Тогда - Продолжить; - КонецЕсли; - СтруктураОтбора = Новый Структура; - СтруктураОтбора.Вставить("Наименование", ТекущийПараметр.Наименование); - - ДанныеПоиска = Объект.ПараметрыФункции.НайтиСтроки(СтруктураОтбора); - Если Не ДанныеПоиска.Количество() = 0 Тогда - ДанныеПоиска.Получить(0).фТипПараметра = ОписаниеТипаПараметра; + СтруктураОтбора.Вставить("Идентификатор", ТекущийПараметр.Идентификатор); + АктивныеСтроки = Объект.ПараметрыФункции.НайтиСтроки(СтруктураОтбора); + + Если ЗначениеЗаполнено(АктивныеСтроки) Тогда + Представление = Строка(Тип(ТекущийПараметр.Тип)); + АктивныеСтроки[0].ТипВФорме = Представление; + // Доработать, отражение количество элементов в коллекции, условное оформление - цвет текста, запрет изменения + АктивныеСтроки[0].ЗначениеВФорме = Представление; + Если ПрочитатьЗначения Тогда + НастройкаПараметра = НастройкиПараметров.Получить(ТекущийПараметр.Идентификатор); + ЗначениеПараметраФункции(АктивныеСтроки[0], НастройкаПараметра); + КонецЕсли; КонецЕсли; КонецЦикла; КонецПроцедуры +&НаСервере +Процедура ЗначениеПараметраФункции(СтрокаТаблицы, Настройка) + + Если Настройка = Неопределено Тогда + Возврат; + КонецЕсли; + + Если СтрокаТаблицы.Тип = "ТаблицаЗначений" + Или СтрокаТаблицы.Тип = "Структура" + Или СтрокаТаблицы.Тип = "Массив" Тогда + Если ТипЗнч(Настройка.Значение) <> Тип("Строка") Тогда + СтрокаТаблицы.АдресЗначения = ПоместитьВоВременноеХранилище(Настройка.Значение, Новый УникальныйИдентификатор); + КонецЕсли; + СтрокаТаблицы.ЗначениеВФорме = СтрокаТаблицы.ТипВФорме; + Иначе + СтрокаТаблицы.ЗначениеВФорме = Настройка.Значение; + КонецЕсли; + +КонецПроцедуры + &НаСервере Процедура УпаковатьТаблицу(ИмяТаблицы, СтрТаблиц) @@ -464,7 +521,7 @@ КонецПроцедуры &НаСервере -Процедура ВыполнитьКодСервер(ЗначенияПараметров) +Процедура ВыполнитьКодСервер() СтрПеременные = Новый Структура; @@ -479,13 +536,15 @@ ТабПараметров.Колонки.Добавить("Параметр"); ТабПараметров.Колонки.Добавить("Значение"); - Ном = 1; - Для Каждого КлючЗначение Из ЗначенияПараметров Цикл + ПараметрыФунк = ПолучитьПараметрыФункции(); + Для Каждого Стр Из Объект.ПараметрыФункции Цикл НоваяСтрока = ТабПараметров.Добавить(); - НоваяСтрока.Номер = Ном; - НоваяСтрока.Параметр = КлючЗначение.Ключ; - НоваяСтрока.Значение = КлючЗначение.Значение; - Ном = Ном + 1; + НоваяСтрока.Номер = Стр.НомерСтроки; + НоваяСтрока.Параметр = Стр.Наименование; + Значение = ПараметрыФунк.Получить(Стр.Идентификатор); + Если ЗначениеЗаполнено(Значение) Тогда + НоваяСтрока.Значение = Значение.Значение; + КонецЕсли; КонецЦикла; // Чтобы текст функции не изменился сформируем его копию. @@ -600,13 +659,13 @@ Процедура СохранитьКаталогИсходногоКодаКонфигурации(Каталог) __ОбщегоНазначенияСлужебный.ХранилищеОбщихНастроекСохранить(КлючОбъекта(), - "__ПользовательскиеФункции_КаталогИсхКода", Каталог); + "__ПользовательскиеФункции_КаталогИсхКода", Каталог); КонецПроцедуры &НаСервере -Функция КлючОбъекта() - Возврат "Справочник.__ПользовательскиеФункции.Форма.ФормаЭлемента"; +Функция КлючОбъекта(ИмяФормы = "ФормаЭлемента") + Возврат "Справочник.__ПользовательскиеФункции.Форма." + ИмяФормы; КонецФункции #Область ОбработчикиСобытийПоляРедактора @@ -1956,4 +2015,99 @@ #КонецОбласти +#Область РаботаСПараметрами + +&НаКлиенте +Процедура ИнициализацияТипаИЗначенияПараметра(ТекущийПараметр, ТекущийТип) + + // Тип в табличной части. + ТекущийПараметр.Тип = ТипСтрока(ТекущийТип.Значение); + + // Тип в форме. + Массив = Новый Массив; + Массив.Добавить(Тип(ТекущийПараметр.Тип)); + Описание = Новый ОписаниеТипов(Массив); + + ТекущийПараметр.ТипВФорме = ТекущийТип.Представление; + + // Значение в форме. + Значение = Описание.ПривестиЗначение(Тип(ТекущийТип.Значение)); + ТекущийПараметр.ЗначениеВФорме = Значение; + +КонецПроцедуры + +// Возвращает строковое представление типа. +// Например, для ссылки справочника возвращает "CatalogRef.ИмяСправочника". +// +&НаСервереБезКонтекста +Функция ТипСтрока(Знач Значение) + + СписокДобавленныхТипов = Справочники.__ПользовательскиеФункции.СформироватьСписокТипов(); + + ТипСтрока = Строка(Тип(Значение)); + Если Значение = "СписокЗначений" Тогда + Возврат "СписокЗначений"; + КонецЕсли; + + ТипНайден = Ложь; + Для Каждого ЭлементСписка Из СписокДобавленныхТипов Цикл + Если ЭлементСписка.Представление = ТипСтрока Тогда + ТипНайден = Истина; + Прервать; + КонецЕсли; + КонецЦикла; + + Если Не ТипНайден Тогда + ТипСтрока = XMLТип(Тип(Значение)).ИмяТипа; + КонецЕсли; + + Возврат ТипСтрока; + +КонецФункции + +&НаСервере +Процедура УдалениеДанныхИзВременногоХранилища() + Для Каждого Параметр Из Объект.ПараметрыФункции Цикл + Если ЗначениеЗаполнено(Параметр.АдресЗначения) Тогда + УдалитьИзВременногоХранилища(Параметр.АдресЗначения); + КонецЕсли; + КонецЦикла; +КонецПроцедуры + +&НаСервере +Процедура СохранитьПараметрыФункции() + + НастройкиПараметров = ПолучитьПараметрыФункции(); + + // ключ - Идентификатор параметра, значение - Структура("Тип,Значение") + Данные = Новый Соответствие; + Для Каждого Параметр Из Объект.ПараметрыФункции Цикл + ОписаниеПараметра = Новый Структура; + ОписаниеПараметра.Вставить("Имя", Параметр.Наименование); + ОписаниеПараметра.Вставить("Тип", Параметр.Тип); + // Берем значение с формы только для типов не требующих преобразования + Значение = Параметр.ЗначениеВФорме; + Если ЗначениеЗаполнено(Параметр.АдресЗначения) Тогда + Значение = ПолучитьИзВременногоХранилища(Параметр.АдресЗначения); + УдалитьИзВременногоХранилища(Параметр.АдресЗначения); + КонецЕсли; + ОписаниеПараметра.Вставить("Значение", Значение); + Данные.Вставить(Параметр.Идентификатор, ОписаниеПараметра); + КонецЦикла; + + __ОбщегоНазначенияСлужебный.ХранилищеОбщихНастроекСохранить(КлючОбъекта(), + "__ПользовательскиеФункции_ПараметрыФункции", Данные); + +КонецПроцедуры + +&НаСервере +Функция ПолучитьПараметрыФункции() + + Возврат __ОбщегоНазначенияСлужебный.ХранилищеОбщихНастроекЗагрузить(КлючОбъекта(), + "__ПользовательскиеФункции_ПараметрыФункции", Новый Соответствие); + +КонецФункции + +#КонецОбласти + #КонецОбласти diff --git "a/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" "b/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" index 69e0b95e..c16c95e6 100644 --- "a/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" +++ "b/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" @@ -294,6 +294,35 @@ КонецПроцедуры +// Аналог метода БСП. Возвращает признак того, что переданное значение является, либо не является, числом. +// +// Параметры: +// ПроверяемоеЗначение - Строка - значение, которое проверяется на соответствие числу. +// +// Возвращаемое значение: +// Булево - признак того, что переданное значение является, либо не является, числом. +// +Функция ЭтоЧисло(Знач ПроверяемоеЗначение) Экспорт + + Если ПроверяемоеЗначение = "0" Тогда + Возврат Истина; + КонецЕсли; + + ОписаниеЧисла = Новый ОписаниеТипов("Число"); + + Возврат ОписаниеЧисла.ПривестиЗначение(ПроверяемоеЗначение) <> 0; + +КонецФункции + +#КонецОбласти + +#Область СлужебныйПрограммныйИнтерфейс + +Процедура УдалитьНедопустимыеСимволы(Строка) Экспорт + НедопустимыеСимволы = """'`/\[]{}:;|-=?*<>,.()+#№@!%^&~«»"; + Строка = СтрСоединить(СтрРазделить(Строка, НедопустимыеСимволы, Истина)); +КонецПроцедуры + #КонецОбласти #КонецОбласти diff --git "a/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" "b/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" index 133df3b6..446df34a 100644 --- "a/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" +++ "b/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" @@ -1215,6 +1215,29 @@ КонецПроцедуры +// Аналог метода БСП. Удаляет настройку из хранилища общих настроек, как метод платформы Удалить, +// объектов СтандартноеХранилищеНастроекМенеджер или ХранилищеНастроекМенеджер.<Имя хранилища>, +// но с поддержкой длины ключа настроек более 128 символов путем хеширования части, +// которая превышает 96 символов. +// Если нет права СохранениеДанныхПользователя, удаление пропускается без ошибки. +// +// Параметры: +// КлючОбъекта - Строка +// - Неопределено - см. синтакс-помощник платформы. +// КлючНастроек - Строка +// - Неопределено - см. синтакс-помощник платформы. +// ИмяПользователя - Строка +// - Неопределено - см. синтакс-помощник платформы. +// +Процедура ХранилищеОбщихНастроекУдалить(КлючОбъекта, КлючНастроек, ИмяПользователя) Экспорт + + ХранилищеУдалить(ХранилищеОбщихНастроек, + КлючОбъекта, + КлючНастроек, + ИмяПользователя); + + КонецПроцедуры + #КонецОбласти // Аналог метода БСП. Пока заглушка, см. ОбщегоНазначения.ПриНачалеВыполненияРегламентногоЗадания @@ -2211,6 +2234,16 @@ КонецФункции +// Аналог метода БСП. +// +Процедура ХранилищеУдалить(МенеджерХранилища, КлючОбъекта, КлючНастроек, ИмяПользователя) + + Если ПравоДоступа("СохранениеДанныхПользователя", Метаданные) Тогда + МенеджерХранилища.Удалить(КлючОбъекта, КлючНастроек(КлючНастроек), ИмяПользователя); + КонецЕсли; + +КонецПроцедуры + // Аналог метода БСП. Возвращает строку ключа настроек, не превышающую допустимую длину 128 символов. // Если указанная строка превышает 128, тогда вместо символов сверх 96 символов // добавляется их хеш-сумма по алгоритму MD5 размером 32 символа. diff --git "a/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl" "b/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl" index 364c151e..a484622e 100644 --- "a/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl" +++ "b/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl" @@ -80,6 +80,14 @@ КонецФункции +// См. __ОбщегоНазначенияСервер.ХранилищеОбщихНастроекУдалить. +Процедура ХранилищеОбщихНастроекУдалить(КлючОбъекта, КлючНастроек, ИмяПользователя = Неопределено) Экспорт + + Модуль = ПолучитьМодуль(); + Модуль.ХранилищеОбщихНастроекСохранить(КлючОбъекта, КлючНастроек, ИмяПользователя); + +КонецПроцедуры + // См. __ОбщегоНазначенияСервер.ПриНачалеВыполненияРегламентногоЗадания. Процедура ПриНачалеВыполненияРегламентногоЗадания(РегламентноеЗадание = Неопределено) Экспорт diff --git "a/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" "b/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" index 1541b527..8518ab42 100644 --- "a/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" +++ "b/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" @@ -97,6 +97,14 @@ КонецПроцедуры +// См. __ОбщегоНазначенияСлужебныйКлиентСервер.ЭтоЧисло. +Функция ЭтоЧисло(Знач ПроверяемоеЗначение) Экспорт + + Модуль = ПолучитьМодуль(); + Возврат Модуль.ЭтоЧисло(ПроверяемоеЗначение); + +КонецФункции + #КонецОбласти #КонецОбласти @@ -138,9 +146,17 @@ #КонецОбласти Функция ПолучитьМодуль() - Возврат __ОбщегоНазначенияВызовСервера.ОбщийМодуль( - "ОбщегоНазначенияКлиентСервер", - "__ОбщегоНазначенияКлиентСервер"); + + #Если Клиент Тогда + Возврат __ОбщегоНазначенияКлиент.ОбщийМодуль( + "ОбщегоНазначенияКлиентСервер", + "__ОбщегоНазначенияКлиентСервер"); + #Иначе + Возврат __ОбщегоНазначенияВызовСервера.ОбщийМодуль( + "ОбщегоНазначенияКлиентСервер", + "__ОбщегоНазначенияКлиентСервер"); + #КонецЕсли + КонецФункции #КонецОбласти diff --git "a/src/CommonModules/__\320\241\321\202\320\260\320\275\320\264\320\260\321\200\321\202\320\275\321\213\320\265\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\321\213\320\237\320\276\320\262\321\202\320\230\321\201\320\277.xml" "b/src/CommonModules/__\320\241\321\202\320\260\320\275\320\264\320\260\321\200\321\202\320\275\321\213\320\265\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\321\213\320\237\320\276\320\262\321\202\320\230\321\201\320\277.xml" new file mode 100644 index 00000000..e8bd4709 --- /dev/null +++ "b/src/CommonModules/__\320\241\321\202\320\260\320\275\320\264\320\260\321\200\321\202\320\275\321\213\320\265\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\321\213\320\237\320\276\320\262\321\202\320\230\321\201\320\277.xml" @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8"?> +<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.16"> + <CommonModule uuid="6980971c-f5f9-4e8c-9e7f-05a6cf21ab7c"> + <Properties> + <Name>__СтандартныеПодсистемыПовтИсп</Name> + <Synonym> + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Стандартные подсистемы повт исп</v8:content> + </v8:item> + </Synonym> + <Comment/> + <Global>false</Global> + <ClientManagedApplication>false</ClientManagedApplication> + <Server>true</Server> + <ExternalConnection>true</ExternalConnection> + <ClientOrdinaryApplication>true</ClientOrdinaryApplication> + <ServerCall>false</ServerCall> + <Privileged>false</Privileged> + <ReturnValuesReuse>DuringSession</ReturnValuesReuse> + </Properties> + </CommonModule> +</MetaDataObject> \ No newline at end of file diff --git "a/src/CommonModules/__\320\241\321\202\320\260\320\275\320\264\320\260\321\200\321\202\320\275\321\213\320\265\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\321\213\320\237\320\276\320\262\321\202\320\230\321\201\320\277/Ext/Module.bsl" "b/src/CommonModules/__\320\241\321\202\320\260\320\275\320\264\320\260\321\200\321\202\320\275\321\213\320\265\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\321\213\320\237\320\276\320\262\321\202\320\230\321\201\320\277/Ext/Module.bsl" new file mode 100644 index 00000000..0270671d --- /dev/null +++ "b/src/CommonModules/__\320\241\321\202\320\260\320\275\320\264\320\260\321\200\321\202\320\275\321\213\320\265\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\321\213\320\237\320\276\320\262\321\202\320\230\321\201\320\277/Ext/Module.bsl" @@ -0,0 +1,40 @@ +// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8, +// включая доработку типовых конфигураций. +// +// Copyright First BIT company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// URL: https://github.com/firstBitSportivnaya/PSSL/ +// + +#Область СлужебныйПрограммныйИнтерфейс + +Функция ОписаниеТипаВсеСсылки() Экспорт + + Возврат Новый ОписаниеТипов(Новый ОписаниеТипов(Новый ОписаниеТипов(Новый ОписаниеТипов(Новый ОписаниеТипов( + Новый ОписаниеТипов(Новый ОписаниеТипов(Новый ОписаниеТипов(Новый ОписаниеТипов( + Справочники.ТипВсеСсылки(), + Документы.ТипВсеСсылки().Типы()), + ПланыОбмена.ТипВсеСсылки().Типы()), + Перечисления.ТипВсеСсылки().Типы()), + ПланыВидовХарактеристик.ТипВсеСсылки().Типы()), + ПланыСчетов.ТипВсеСсылки().Типы()), + ПланыВидовРасчета.ТипВсеСсылки().Типы()), + БизнесПроцессы.ТипВсеСсылки().Типы()), + БизнесПроцессы.ТипВсеСсылкиТочекМаршрутаБизнесПроцессов().Типы()), + Задачи.ТипВсеСсылки().Типы()); + +КонецФункции + +#КонецОбласти \ No newline at end of file diff --git "a/src/CommonModules/__\320\241\321\202\320\260\320\275\320\264\320\260\321\200\321\202\320\275\321\213\320\265\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\230\321\201\320\277.xml" "b/src/CommonModules/__\320\241\321\202\320\260\320\275\320\264\320\260\321\200\321\202\320\275\321\213\320\265\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\230\321\201\320\277.xml" new file mode 100644 index 00000000..94d39cad --- /dev/null +++ "b/src/CommonModules/__\320\241\321\202\320\260\320\275\320\264\320\260\321\200\321\202\320\275\321\213\320\265\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\230\321\201\320\277.xml" @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8"?> +<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.16"> + <CommonModule uuid="c724f4aa-23a0-42b1-99fb-4cfc23ecd5af"> + <Properties> + <Name>__СтандартныеПодсистемыСлужебныйПовтИсп</Name> + <Synonym> + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Стандартные подсистемы служебный повт исп</v8:content> + </v8:item> + </Synonym> + <Comment/> + <Global>false</Global> + <ClientManagedApplication>false</ClientManagedApplication> + <Server>true</Server> + <ExternalConnection>true</ExternalConnection> + <ClientOrdinaryApplication>false</ClientOrdinaryApplication> + <ServerCall>false</ServerCall> + <Privileged>false</Privileged> + <ReturnValuesReuse>DuringSession</ReturnValuesReuse> + </Properties> + </CommonModule> +</MetaDataObject> \ No newline at end of file diff --git "a/src/CommonModules/__\320\241\321\202\320\260\320\275\320\264\320\260\321\200\321\202\320\275\321\213\320\265\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\230\321\201\320\277/Ext/Module.bsl" "b/src/CommonModules/__\320\241\321\202\320\260\320\275\320\264\320\260\321\200\321\202\320\275\321\213\320\265\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\230\321\201\320\277/Ext/Module.bsl" new file mode 100644 index 00000000..be5f3d65 --- /dev/null +++ "b/src/CommonModules/__\320\241\321\202\320\260\320\275\320\264\320\260\321\200\321\202\320\275\321\213\320\265\320\237\320\276\320\264\321\201\320\270\321\201\321\202\320\265\320\274\321\213\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\237\320\276\320\262\321\202\320\230\321\201\320\277/Ext/Module.bsl" @@ -0,0 +1,43 @@ +// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8, +// включая доработку типовых конфигураций. +// +// Copyright First BIT company +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// URL: https://github.com/firstBitSportivnaya/PSSL/ +// + +#Область СлужебныйПрограммныйИнтерфейс + +#Область ПереадресацияМетодов + +// См. __СтандартныеПодсистемыПовтИсп.ОписаниеТипаВсеСсылки. +Функция ОписаниеТипаВсеСсылки() Экспорт + + Модуль = ПолучитьМодуль(); + Возврат Модуль.ОписаниеТипаВсеСсылки(); + +КонецФункции + +#КонецОбласти + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Функция ПолучитьМодуль() + Возврат __ОбщегоНазначенияПовтИсп.ОбщийМодуль("СтандартныеПодсистемыПовтИсп", "__СтандартныеПодсистемыПовтИсп"); +КонецФункции + +#КонецОбласти diff --git "a/src/CommonModules/__\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" "b/src/CommonModules/__\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" index a7c8337d..7aa20525 100644 --- "a/src/CommonModules/__\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" +++ "b/src/CommonModules/__\320\241\321\202\321\200\320\276\320\272\320\276\320\262\321\213\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271\320\232\320\273\320\270\320\265\320\275\321\202\320\241\320\265\321\200\320\262\320\265\321\200/Ext/Module.bsl" @@ -54,9 +54,17 @@ #Область СлужебныеПроцедурыИФункции Функция ПолучитьМодуль() - Возврат __ОбщегоНазначенияВызовСервера.ОбщийМодуль( - "СтроковыеФункцииКлиентСервер", - "__СтроковыеФункцииКлиентСервер"); + + #Если Клиент Тогда + Возврат __ОбщегоНазначенияКлиент.ОбщийМодуль( + "СтроковыеФункцииКлиентСервер", + "__СтроковыеФункцииКлиентСервер"); + #Иначе + Возврат __ОбщегоНазначенияВызовСервера.ОбщийМодуль( + "СтроковыеФункцииКлиентСервер", + "__СтроковыеФункцииКлиентСервер"); + #КонецЕсли + КонецФункции #КонецОбласти \ No newline at end of file diff --git a/src/Configuration.xml b/src/Configuration.xml index 310fc7b5..c49002de 100644 --- a/src/Configuration.xml +++ b/src/Configuration.xml @@ -308,6 +308,8 @@ <CommonModule>__СправочникиПередЗаписью</CommonModule> <CommonModule>__СправочникиПриЗаписи</CommonModule> <CommonModule>__СправочникиПриКопировании</CommonModule> + <CommonModule>__СтандартныеПодсистемыПовтИсп</CommonModule> + <CommonModule>__СтандартныеПодсистемыСлужебныйПовтИсп</CommonModule> <CommonModule>__СтроковыеФункцииКлиентСервер</CommonModule> <CommonModule>__СтроковыеФункцииСлужебныйКлиентСервер</CommonModule> <CommonModule>__СхемыЗапросов</CommonModule> From 5b57fb7f915a9c556770124aa12bc32c149140ad Mon Sep 17 00:00:00 2001 From: Denis <denisushakov56@gmail.com> Date: Fri, 26 Apr 2024 09:49:56 +0300 Subject: [PATCH 2/5] small adjustments --- .../Ext/Form/Module.bsl" | 16 ++++++++-------- .../Ext/Form/Module.bsl" | 10 +++++----- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git "a/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271/Ext/Form/Module.bsl" "b/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271/Ext/Form/Module.bsl" index cecbde83..880c63d6 100644 --- "a/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271/Ext/Form/Module.bsl" +++ "b/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\242\320\260\320\261\320\273\320\270\321\206\321\213\320\227\320\275\320\260\321\207\320\265\320\275\320\270\320\271/Ext/Form/Module.bsl" @@ -136,22 +136,23 @@ ИменаКолонок.Добавить(Реквизит.Имя); КонецЦикла; - РеквизитыТаблицы = ПолучитьРеквизиты("СтрокиТаблицыЗначений"); + ИмяТаблицы = "СтрокиТаблицыЗначений"; + РеквизитыТаблицы = ПолучитьРеквизиты(ИмяТаблицы); ИменаРеквизитов = Новый Массив(); УдаляемыеРеквизиты = Новый Массив; Для Каждого Реквизит Из РеквизитыТаблицы Цикл ИменаРеквизитов.Добавить(Реквизит.Имя); Если ИменаКолонок.Найти(Реквизит.Имя) = Неопределено Тогда - УдаляемыеРеквизиты.Добавить("СтрокиТаблицыЗначений." + Реквизит.Имя); - __РаботаСФормами.УдалитьЭлемент(ЭтотОбъект, "СтрокиТаблицыЗначений" + Реквизит.Имя); + УдаляемыеРеквизиты.Добавить(ИмяТаблицы + "." + Реквизит.Имя); + __РаботаСФормами.УдалитьЭлемент(ЭтотОбъект, ИмяТаблицы + Реквизит.Имя); КонецЕсли; КонецЦикла; ДобавляемыеРеквизиты = Новый Массив; Для Каждого Колонка Из КолонкиТаблицыЗначений Цикл Если ИменаРеквизитов.Найти(Колонка.Имя) = Неопределено Тогда - НовыйРеквизит = Новый РеквизитФормы(Колонка.Имя, Колонка.ТипЗначения, "СтрокиТаблицыЗначений"); + НовыйРеквизит = Новый РеквизитФормы(Колонка.Имя, Колонка.ТипЗначения, ИмяТаблицы); ДобавляемыеРеквизиты.Добавить(НовыйРеквизит); КонецЕсли; КонецЦикла; @@ -166,16 +167,15 @@ ИзменитьРеквизиты(, УдаляемыеРеквизиты); ИзменитьРеквизиты(ДобавляемыеРеквизиты); - Таблица = "СтрокиТаблицыЗначений"; Для Каждого Реквизит Из ДобавляемыеРеквизиты Цикл - Если Элементы.Найти("СтрокиТаблицыЗначений" + Реквизит.Имя) = Неопределено Тогда + Если Элементы.Найти(ИмяТаблицы + Реквизит.Имя) = Неопределено Тогда __РаботаСФормами.СоздатьКолонкаТаблицыФормы( ЭтотОбъект, - Таблица + Реквизит.Имя, + ИмяТаблицы + Реквизит.Имя, Элементы.СтрокиТаблицыЗначений, , , - Таблица + "." + Реквизит.Имя); + ИмяТаблицы + "." + Реквизит.Имя); КонецЕсли; КонецЦикла; diff --git "a/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl" "b/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl" index 5e7b7527..adf2eb4a 100644 --- "a/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl" +++ "b/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl" @@ -26,7 +26,7 @@ &НаКлиенте Перем мПредИмя; // Хранит имя переменной до его изменения -) + #КонецОбласти #Область ОбработчикиСобытийФормы @@ -536,12 +536,12 @@ ТабПараметров.Колонки.Добавить("Параметр"); ТабПараметров.Колонки.Добавить("Значение"); - ПараметрыФунк = ПолучитьПараметрыФункции(); + ЗначенияПараметровФункции = ПолучитьПараметрыФункции(); Для Каждого Стр Из Объект.ПараметрыФункции Цикл НоваяСтрока = ТабПараметров.Добавить(); НоваяСтрока.Номер = Стр.НомерСтроки; НоваяСтрока.Параметр = Стр.Наименование; - Значение = ПараметрыФунк.Получить(Стр.Идентификатор); + Значение = ЗначенияПараметровФункции.Получить(Стр.Идентификатор); Если ЗначениеЗаполнено(Значение) Тогда НоваяСтрока.Значение = Значение.Значение; КонецЕсли; @@ -663,8 +663,8 @@ КонецПроцедуры -&НаСервере -Функция КлючОбъекта(ИмяФормы = "ФормаЭлемента") +&НаСервереБезКонтекста +Функция КлючОбъекта(Знач ИмяФормы = "ФормаЭлемента") Возврат "Справочник.__ПользовательскиеФункции.Форма." + ИмяФормы; КонецФункции From ea818af35c3c37b5bcf27daad4d478140a42e27c Mon Sep 17 00:00:00 2001 From: Denis <denisushakov56@gmail.com> Date: Fri, 26 Apr 2024 09:55:59 +0300 Subject: [PATCH 3/5] correct --- .../Ext/Module.bsl" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl" "b/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl" index a484622e..c6c3c183 100644 --- "a/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl" +++ "b/src/CommonModules/__\320\236\320\261\321\211\320\265\320\263\320\276\320\235\320\260\320\267\320\275\320\260\321\207\320\265\320\275\320\270\321\217\320\241\320\273\321\203\320\266\320\265\320\261\320\275\321\213\320\271/Ext/Module.bsl" @@ -84,7 +84,7 @@ Процедура ХранилищеОбщихНастроекУдалить(КлючОбъекта, КлючНастроек, ИмяПользователя = Неопределено) Экспорт Модуль = ПолучитьМодуль(); - Модуль.ХранилищеОбщихНастроекСохранить(КлючОбъекта, КлючНастроек, ИмяПользователя); + Модуль.ХранилищеОбщихНастроекУдалить(КлючОбъекта, КлючНастроек, ИмяПользователя); КонецПроцедуры From 69fad0a90b08f7872e20741857eb387bef496fc6 Mon Sep 17 00:00:00 2001 From: Denis <denisushakov56@gmail.com> Date: Fri, 26 Apr 2024 10:19:03 +0300 Subject: [PATCH 4/5] deleted func --- .../Ext/Form/Module.bsl" | 16 ---------------- 1 file changed, 16 deletions(-) diff --git "a/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl" "b/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl" index adf2eb4a..a443fce4 100644 --- "a/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl" +++ "b/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl" @@ -504,22 +504,6 @@ КонецПроцедуры -&НаСервере -Процедура УпаковатьТаблицу(ИмяТаблицы, СтрТаблиц) - - МассивРеквизитов = Объект[ИмяТаблицы].Выгрузить().Колонки; - ИменаРеквизитов = Новый Структура; - - Для каждого Реквизит Из МассивРеквизитов Цикл - ИменаРеквизитов.Вставить(Реквизит.Имя,Реквизит.ТипЗначения); - КонецЦикла; - - СтрТаблиц.Вставить(ИмяТаблицы, __ОбщегоНазначенияКлиентСервер.УпаковатьДанныеФормыКоллекция( - Объект[ИмяТаблицы], ИменаРеквизитов)); - СтрТаблиц.Вставить(ИмяТаблицы + "_Колонки", ИменаРеквизитов); - -КонецПроцедуры - &НаСервере Процедура ВыполнитьКодСервер() From 40bece29caf4de560368d5fbcc431cef6c0b8443 Mon Sep 17 00:00:00 2001 From: Denis <denisushakov56@gmail.com> Date: Sat, 27 Apr 2024 10:19:12 +0300 Subject: [PATCH 5/5] New description of functions --- ...0\275\320\272\321\206\320\270\320\270.xml" | 102 +++++++- .../Ext/ManagerModule.bsl" | 246 +++++++++++++++--- .../Ext/Form.xml" | 9 +- .../Ext/Form/Module.bsl" | 46 +--- .../Ext/Form.xml" | 9 +- .../Ext/Form/Module.bsl" | 42 +-- .../Ext/Form.xml" | 36 +-- .../Ext/Form/Module.bsl" | 57 ++-- ...0\275\320\272\321\206\320\270\320\270.xml" | 1 + 9 files changed, 362 insertions(+), 186 deletions(-) diff --git "a/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270.xml" "b/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270.xml" index e01bfe37..053b0192 100644 --- "a/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270.xml" +++ "b/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270.xml" @@ -632,6 +632,47 @@ <DataHistory>Use</DataHistory> </Properties> </Attribute> + <Attribute uuid="5b112e4b-dce5-4c96-86d3-b0bc7bf96726"> + <Properties> + <Name>ТипПараметра</Name> + <Synonym> + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Тип параметра</v8:content> + </v8:item> + <v8:item> + <v8:lang>en</v8:lang> + <v8:content>Parameter Type</v8:content> + </v8:item> + </Synonym> + <Comment/> + <Type> + <v8:Type>v8:ValueStorage</v8:Type> + </Type> + <PasswordMode>false</PasswordMode> + <Format/> + <EditFormat/> + <ToolTip/> + <MarkNegatives>false</MarkNegatives> + <Mask/> + <MultiLine>false</MultiLine> + <ExtendedEdit>false</ExtendedEdit> + <MinValue xsi:nil="true"/> + <MaxValue xsi:nil="true"/> + <FillChecking>DontCheck</FillChecking> + <ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems> + <ChoiceParameterLinks/> + <ChoiceParameters/> + <QuickChoice>Auto</QuickChoice> + <CreateOnInput>Auto</CreateOnInput> + <ChoiceForm/> + <LinkByType/> + <ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput> + <Indexing>DontIndex</Indexing> + <FullTextSearch>Use</FullTextSearch> + <DataHistory>Use</DataHistory> + </Properties> + </Attribute> <Attribute uuid="ed036b65-226b-42e4-ae09-bf1436fa0120"> <Properties> <Name>Наименование</Name> @@ -677,13 +718,70 @@ <DataHistory>Use</DataHistory> </Properties> </Attribute> + <Attribute uuid="8e72b20d-8eae-4026-88be-7ac8447469d7"> + <Properties> + <Name>ЗначениеПоУмолчанию</Name> + <Synonym> + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Значение по умолчанию</v8:content> + </v8:item> + <v8:item> + <v8:lang>en</v8:lang> + <v8:content>Default Value</v8:content> + </v8:item> + </Synonym> + <Comment/> + <Type> + <v8:Type>xs:boolean</v8:Type> + <v8:Type>xs:string</v8:Type> + <v8:Type>xs:dateTime</v8:Type> + <v8:Type>xs:decimal</v8:Type> + <v8:TypeSet>cfg:AnyRef</v8:TypeSet> + <v8:NumberQualifiers> + <v8:Digits>10</v8:Digits> + <v8:FractionDigits>0</v8:FractionDigits> + <v8:AllowedSign>Any</v8:AllowedSign> + </v8:NumberQualifiers> + <v8:StringQualifiers> + <v8:Length>10</v8:Length> + <v8:AllowedLength>Variable</v8:AllowedLength> + </v8:StringQualifiers> + <v8:DateQualifiers> + <v8:DateFractions>Date</v8:DateFractions> + </v8:DateQualifiers> + </Type> + <PasswordMode>false</PasswordMode> + <Format/> + <EditFormat/> + <ToolTip/> + <MarkNegatives>false</MarkNegatives> + <Mask/> + <MultiLine>false</MultiLine> + <ExtendedEdit>false</ExtendedEdit> + <MinValue xsi:nil="true"/> + <MaxValue xsi:nil="true"/> + <FillChecking>DontCheck</FillChecking> + <ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems> + <ChoiceParameterLinks/> + <ChoiceParameters/> + <QuickChoice>Auto</QuickChoice> + <CreateOnInput>Auto</CreateOnInput> + <ChoiceForm/> + <LinkByType/> + <ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput> + <Indexing>DontIndex</Indexing> + <FullTextSearch>Use</FullTextSearch> + <DataHistory>Use</DataHistory> + </Properties> + </Attribute> <Attribute uuid="aaefaa01-2704-426d-b247-0dfbeaa84deb"> <Properties> - <Name>НеОбязательныйДляЗаполнения</Name> + <Name>Необязательный</Name> <Synonym> <v8:item> <v8:lang>ru</v8:lang> - <v8:content>Не обязательный</v8:content> + <v8:content>Необязательный</v8:content> </v8:item> <v8:item> <v8:lang>en</v8:lang> diff --git "a/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Ext/ManagerModule.bsl" "b/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Ext/ManagerModule.bsl" index 846d3750..6b82d7ca 100644 --- "a/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Ext/ManagerModule.bsl" +++ "b/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Ext/ManagerModule.bsl" @@ -73,12 +73,6 @@ // Процедура ФильтрацияСпискаТипов(СписокТипов, Контекст) Экспорт - // Пример фильтрации, добавить при необходимости - // Если НРег(Контекст) = "тип" Тогда - // Элемент = СписокТипов.НайтиПоЗначению("Тип"); - // СписокТипов.Удалить(Элемент); - // КонецЕсли; - Элемент = СписокТипов.НайтиПоЗначению("TypeDescription"); // Тип "Описание типов" удаляется всегда. СписокТипов.Удалить(Элемент); @@ -163,49 +157,220 @@ // Формирует структуру заголовков для элемента справочника. // -Функция ПолучитьНазваниеПодпрограммыСПараметрами(Ссылка) Экспорт - - // Значения элементов структуры: - // - // - ЗаголовокФункции: Функция МояФункция(Параметр1, Параметр2). - // - НазваниеСПараметрами: МояФункция(Параметр1, Параметр2). - // - ОписаниеПараметров: // Типы входных параметров: - // // Параметр1 - 'Число'. - // // Параметр2 - 'Строка'. +// Параметры: +// Ссылка - СправочникСсылка.__ПользовательскиеФункции +// - Массив - Если передается группа, множественный выбор недоступен. +// ЭтоГруппа - Булево - Зависит выполняемый запрос для получения данных. +// ВыводитьТелоФункции - Булево - Если установлено Ложь, возможно сформировать описание функции и имя с параметрами. +// +// Возвращаемое значение: +// Массив - коллекция параметров в виде структур, +// гарантировано возвращает массив размером равным количеству переданных ссылок. +// *Структура - +// ** Ключ - Строка - НазваниеСПараметрами, ОписаниеПараметров; +// ** Значение - Строка - Содержит описание параметров. +// +Функция ПолучитьНазваниеПодпрограммыСПараметрами(Ссылка, ЭтоГруппа = Ложь, ВыводитьТелоФункции = Ложь) Экспорт + СтруктураПараметров = Новый Структура("ЗаголовокФункции, НазваниеСПараметрами, ОписаниеПараметров"); - ТекстНазвания = СтрШаблон("%1(", СокрЛП(Ссылка.Наименование)); - ТекстКомментария = "// Типы входных параметров: "; + Результат = Новый Массив(); - Для Каждого Параметр Из Ссылка.ПараметрыФункции Цикл + Запрос = Новый Запрос; + Запрос.Текст = ТекстЗапросаИменИТелФункции(ЭтоГруппа, ВыводитьТелоФункции); + + Запрос.УстановитьПараметр("Ссылка", Ссылка); + + РезультатыЗапроса = Запрос.ВыполнитьПакет(); + + ВыборкаЭлемент = РезультатыЗапроса[1].Выбрать(); + ВыборкаСсылка = РезультатыЗапроса[2].Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); + + Пока ВыборкаЭлемент.Следующий() Цикл + + СтруктураПараметров = Новый Структура("ЗаголовокФункции, НазваниеСПараметрами, ОписаниеПараметров"); + + ТипыВходПарам = Новый Массив(); + ТипыВходПарам.Добавить("// Типы входных параметров:"); - ТекстНазвания = ТекстНазвания + СокрЛП(Параметр.Наименование); + ЧастиИмени = Новый Массив(); + ЧастиИмени.Добавить(ВыборкаЭлемент.Представление); + ЧастиИмени.Добавить("("); + + Если ВыборкаСсылка.НайтиСледующий(ВыборкаЭлемент.Ссылка, "Ссылка") Тогда + + ВыборкаТЧ = ВыборкаСсылка.Выбрать(); + Пока ВыборкаТЧ.Следующий() Цикл + ТипВходПарам = СтрШаблон("// %1 - '%2'", ВыборкаТЧ.ИмяПараметра, ВыборкаТЧ.ТипПараметра); + ТипыВходПарам.Добавить(ТипВходПарам); + + Параметр = СокрЛП(ВыборкаТЧ.ИмяПараметра) + ?(ВыборкаТЧ.Необязательный, " = Неопределено", "") + + ?(ВыборкаТЧ.НомерСтроки <> ВыборкаСсылка.НомерСтроки, ", ", ""); + ЧастиИмени.Добавить(Параметр); + КонецЦикла; + + КонецЕсли; - Если Параметр.НеОбязательныйДляЗаполнения Тогда - ТекстНазвания = СтрШаблон("%1 = Неопределено", ТекстНазвания); + ТипыВходПарам.Добавить("//"); + Если ВыводитьТелоФункции Тогда + КодПодпрограммы = ПересобратьТелоФункции(ВыборкаЭлемент.КодПодпрограммы); + ТипыВходПарам.Добавить(КодПодпрограммы); КонецЕсли; + ТекстКомментария = СтрСоединить(ТипыВходПарам, Символы.ПС); - Если ТипЗнч(Ссылка) = Тип("ДанныеФормыСтруктура") Тогда - ОписаниеТипаПараметра = ""; - Иначе - ОписаниеТипаПараметра = СокрЛП(Параметр.Тип); + ЧастиИмени.Добавить(")"); + ТекстНазвания = СтрСоединить(ЧастиИмени, ""); + + СтруктураПараметров.НазваниеСПараметрами = ТекстНазвания; + СтруктураПараметров.ОписаниеПараметров = ТекстКомментария; + + Результат.Добавить(СтруктураПараметров); + КонецЦикла; + + Возврат Результат; + +КонецФункции + +// Формирует строку, содержащую описание функций. +// +// Параметры: +// Ссылка - СправочникСсылка.__ПользовательскиеФункции +// - Массив - Если передается группа, множественный выбор недоступен. +// ЭтоГруппа - Булево - Зависит выполняемый запрос для получения данных. +// ВыводитьТелоФункции - Булево - Если установлено Ложь, возможно сформировать описание функции и имя с параметрами. +// +// Возвращаемое значение: +// Строка - Сформированное описание Функций, с выводом имени функции, ее параметров и описание типов параметров +// +Функция СформироватьОписаниеФункций(Ссылка, ЭтоГруппа = Ложь, ВыводитьТелоФункции = Ложь) Экспорт + + Результат = Новый Массив(); + Результат.Добавить(СтрШаблон(НСтр("ru='#В группе: %1';en='#In Group: %1'"), Ссылка)); + Результат.Добавить(Символы.ВК); + + Запрос = Новый Запрос; + Запрос.Текст = ТекстЗапросаИменИТелФункции(ЭтоГруппа, ВыводитьТелоФункции); + + Запрос.УстановитьПараметр("Ссылка", Ссылка); + + РезультатыЗапроса = Запрос.ВыполнитьПакет(); + + ВыборкаЭлемент = РезультатыЗапроса[1].Выбрать(); + ВыборкаСсылка = РезультатыЗапроса[2].Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); + + Пока ВыборкаЭлемент.Следующий() Цикл + + Если ВыборкаЭлемент.ЭтоГруппа Тогда + Результат.Добавить(СтрШаблон("Группа: %1", ВыборкаЭлемент.Представление)); + Результат.Добавить(Символы.ВК); + Продолжить; + КонецЕсли; + + ТипыВходПарам = Новый Массив(); + ЧастиИмени = Новый Массив(); + + ТипыВходПарам.Добавить("// Типы входных параметров:"); + + ЧастиИмени.Добавить(СтрШаблон("Функция %1(", ВыборкаЭлемент.Представление)); + + Если ВыборкаСсылка.НайтиСледующий(ВыборкаЭлемент.Ссылка, "Ссылка") Тогда + + ВыборкаТЧ = ВыборкаСсылка.Выбрать(); + Пока ВыборкаТЧ.Следующий() Цикл + ТипВходПарам = СтрШаблон("// %1 - '%2'", ВыборкаТЧ.ИмяПараметра, ВыборкаТЧ.ТипПараметра); + ТипыВходПарам.Добавить(ТипВходПарам); + + Параметр = СокрЛП(ВыборкаТЧ.ИмяПараметра) + ?(ВыборкаТЧ.Необязательный, " = Неопределено", "") + + ?(ВыборкаТЧ.НомерСтроки = ВыборкаСсылка.НомерСтроки, "", ", "); + ЧастиИмени.Добавить(Параметр); + + КонецЦикла; КонецЕсли; + ЧастиИмени.Добавить(")"); + ТипыВходПарам.Добавить("//"); + + ИмяПараметрыФункции = СтрСоединить(ЧастиИмени, ""); - ТекстКомментария = СтрШаблон("%1%2// %3 - '%4'", - ТекстКомментария, Символы.ПС, СокрЛП(Параметр.Наименование), ОписаниеТипаПараметра); + ТипыВходПарам.Добавить(ИмяПараметрыФункции); + ОсновнойТекст = СтрСоединить(ТипыВходПарам, Символы.ПС); + Результат.Добавить(ОсновнойТекст); - Если Не Параметр.НомерСтроки = Ссылка.ПараметрыФункции.Количество() Тогда - ТекстНазвания = СтрШаблон("%1, ", ТекстНазвания); + Если ВыводитьТелоФункции Тогда + КодПодпрограммы = ПересобратьТелоФункции(ВыборкаЭлемент.КодПодпрограммы); + Результат.Добавить(КодПодпрограммы); КонецЕсли; + + Результат.Добавить(Символы.ВК); + КонецЦикла; - ТекстНазвания = СтрШаблон("%1)", ТекстНазвания); + Возврат СтрСоединить(Результат, Символы.ПС); - СтруктураПараметров.ЗаголовокФункции = СтрШаблон("Функция %1", ТекстНазвания); - СтруктураПараметров.НазваниеСПараметрами = ТекстНазвания; - СтруктураПараметров.ОписаниеПараметров = ТекстКомментария; +КонецФункции + +Функция ТекстЗапросаИменИТелФункции(ЭтоГруппа = Ложь, ВыводитьТелоФункции = Ложь) + + ТекстЗапроса = "ВЫБРАТЬ + | __ПользовательскиеФункции.Ссылка КАК Ссылка, + | __ПользовательскиеФункции.Представление КАК Представление, + | __ПользовательскиеФункции.ЭтоГруппа КАК ЭтоГруппа + |ПОМЕСТИТЬ ДанныеЭлемента + |ИЗ + | Справочник.__ПользовательскиеФункции КАК __ПользовательскиеФункции + |ГДЕ + | __ПользовательскиеФункции.Ссылка В (&Ссылка) + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ + | ДанныеЭлемента.Ссылка КАК Ссылка, + | ДанныеЭлемента.Представление КАК Представление, + | ДанныеЭлемента.ЭтоГруппа КАК ЭтоГруппа + |ИЗ + | ДанныеЭлемента КАК ДанныеЭлемента + | + |УПОРЯДОЧИТЬ ПО + | ЭтоГруппа + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ + | ТаблицаПараметров.Ссылка КАК Ссылка, + | ТаблицаПараметров.НомерСтроки КАК НомерСтроки, + | ТаблицаПараметров.Наименование КАК ИмяПараметра, + | ТаблицаПараметров.Необязательный КАК Необязательный, + | ТаблицаПараметров.Тип КАК ТипПараметра + |ИЗ + | ДанныеЭлемента КАК ДанныеЭлемента + | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.__ПользовательскиеФункции.ПараметрыФункции КАК ТаблицаПараметров + | ПО ДанныеЭлемента.Ссылка = ТаблицаПараметров.Ссылка + |ИТОГИ + | МАКСИМУМ(НомерСтроки) + |ПО + | Ссылка"; + + Если ЭтоГруппа Тогда + СхемаЗапроса = Новый СхемаЗапроса; + СхемаЗапроса.УстановитьТекстЗапроса(ТекстЗапроса); + Пакет = __СхемыЗапросов.ЗапросПакетаЗапросов(СхемаЗапроса, 0); + Пакет.Операторы[0].Отбор.Установить(0, Новый ВыражениеСхемыЗапроса("__ПользовательскиеФункции.Родитель = &Ссылка")); + ТекстЗапроса = СхемаЗапроса.ПолучитьТекстЗапроса(); + КонецЕсли; - Возврат СтруктураПараметров; + Если ВыводитьТелоФункции Тогда + ТекстЗапроса = __СхемыЗапросов.ДобавитьПолеВыборкиВЗапрос( + ТекстЗапроса, + "__ПользовательскиеФункции.КодПодпрограммы", + "КодПодпрограммы", + 0); + ТекстЗапроса = __СхемыЗапросов.ДобавитьПолеВыборкиВЗапрос( + ТекстЗапроса, + "ДанныеЭлемента.КодПодпрограммы", + "КодПодпрограммы", + 1); + КонецЕсли; + + Возврат ТекстЗапроса; КонецФункции @@ -254,6 +419,19 @@ КонецПроцедуры +Функция ПересобратьТелоФункции(ТелоФункции) + + РазобранныйКод = СтрРазделить(ТелоФункции, Символы.ПС, Ложь); + Части = Новый Массив(); + Для Сч = 0 По РазобранныйКод.ВГраница() Цикл + Если ЗначениеЗаполнено(РазобранныйКод[Сч]) Тогда + Части.Добавить(РазобранныйКод[Сч]); + КонецЕсли; + КонецЦикла; + Возврат СтрСоединить(Части, Символы.ПС); + +КонецФункции + #КонецОбласти #КонецЕсли diff --git "a/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260/Ext/Form.xml" "b/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260/Ext/Form.xml" index 97846312..be7241d8 100644 --- "a/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260/Ext/Form.xml" +++ "b/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260/Ext/Form.xml" @@ -120,14 +120,6 @@ <ShowTitle>false</ShowTitle> <ExtendedTooltip name="ГруппаОписаниеФункцииРасширеннаяПодсказка" id="45"/> <ChildItems> - <InputField name="Описание" id="30"> - <DataPath>Items.Список.CurrentData.Описание</DataPath> - <ReadOnly>true</ReadOnly> - <TitleLocation>None</TitleLocation> - <MultiLine>true</MultiLine> - <ContextMenu name="ОписаниеКонтекстноеМеню" id="31"/> - <ExtendedTooltip name="ОписаниеРасширеннаяПодсказка" id="46"/> - </InputField> <UsualGroup name="ГруппаШапкаФункции" id="13"> <Title> <v8:item> @@ -306,6 +298,7 @@ </Type> <MainAttribute>true</MainAttribute> <UseAlways> + <Field>Список.IsFolder</Field> <Field>Список.Ref</Field> </UseAlways> <Settings xsi:type="DynamicList"> diff --git "a/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260/Ext/Form/Module.bsl" "b/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260/Ext/Form/Module.bsl" index e44e68c6..8fbf52a0 100644 --- "a/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260/Ext/Form/Module.bsl" +++ "b/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\222\321\213\320\261\320\276\321\200\320\260/Ext/Form/Module.bsl" @@ -50,42 +50,18 @@ // Ссылка - СправочникСсылка.__ПользовательскиеФункции. // &НаСервере -Процедура ПоказатьОписаниеФункцииСервер(Ссылка) +Процедура ПоказатьОписаниеФункцииСервер(Ссылка, ЭтоГруппа) - Если Ссылка.ЭтоГруппа Тогда - - ТекстОписания = СтрШаблон(НСтр("ru='#В группе: %1';en='#In Group: %1'"), Символы.ПС); - - Выборка = Справочники.__ПользовательскиеФункции.Выбрать(Ссылка); - Пока Выборка.Следующий() Цикл - - Если Выборка.ЭтоГруппа Тогда - Продолжить; - КонецЕсли; - - ОписаниеСКомментариями = СтрЗаменить(СокрЛП(Выборка.Описание), Символы.ПС, СтрШаблон("%1// ", Символы.ПС)); - Если СокрЛП(Выборка.Описание) = "" Тогда - ОписаниеФункции = НСтр("ru='// <нет описания>';en='// <No description>'"); - Иначе - ОписаниеФункции = СтрШаблон("// %1", ОписаниеСКомментариями); - КонецЕсли; - - __ОбщегоНазначенияСервер.ДобавитьСтрокуКТексту(ТекстОписания, ОписаниеФункции); - СтруктураЗаголовка = Справочники.__ПользовательскиеФункции.ПолучитьНазваниеПодпрограммыСПараметрами(Выборка.Ссылка); - __ОбщегоНазначенияСервер.ДобавитьСтрокуКТексту(ТекстОписания, СтруктураЗаголовка.ЗаголовокФункции + Символы.ПС); - КонецЦикла; - - ПолеОписания = ТекстОписания; + Если ЭтоГруппа Тогда + ПолеОписания = Справочники.__ПользовательскиеФункции.СформироватьОписаниеФункций(Ссылка, ЭтоГруппа); Иначе - СтруктураЗаголовка = Справочники.__ПользовательскиеФункции.ПолучитьНазваниеПодпрограммыСПараметрами(Ссылка); - - Элементы.ДекорацияНазваниеСПараметрами.Заголовок = СтруктураЗаголовка.НазваниеСПараметрами; - ПолеОписания = СтрШаблон("%1%2%3", СтруктураЗаголовка.ОписаниеПараметров, Символы.ПС, СокрЛП(Ссылка.КодПодпрограммы)); + Результат = Справочники.__ПользовательскиеФункции.ПолучитьНазваниеПодпрограммыСПараметрами(Ссылка, ЭтоГруппа, Истина); + Элементы.ДекорацияНазваниеСПараметрами.Заголовок = Результат[0].НазваниеСПараметрами; + ПолеОписания = Результат[0].ОписаниеПараметров; КонецЕсли; - Элементы.Описание.Видимость = Не Ссылка.ЭтоГруппа; - Элементы.ГруппаШапкаФункции.Видимость = Не Ссылка.ЭтоГруппа; - Элементы.ГруппаПодвалФункции.Видимость = Не Ссылка.ЭтоГруппа; + Элементы.ГруппаШапкаФункции.Видимость = Не ЭтоГруппа; + Элементы.ГруппаПодвалФункции.Видимость = Не ЭтоГруппа; КонецПроцедуры @@ -94,12 +70,12 @@ &НаКлиенте Процедура ПоказатьОписаниеФункции() - ТекущиеДанные = Элементы.Список.ТекущиеДанные; - Если ТекущиеДанные = Неопределено Тогда + ТекДанные = Элементы.Список.ТекущиеДанные; + Если ТекДанные = Неопределено Тогда Возврат; КонецЕсли; - ПоказатьОписаниеФункцииСервер(ТекущиеДанные.Ссылка); + ПоказатьОписаниеФункцииСервер(ТекДанные.Ссылка, ТекДанные.ЭтоГруппа); КонецПроцедуры diff --git "a/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Ext/Form.xml" "b/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Ext/Form.xml" index ba8a5ae8..cfbc3ca4 100644 --- "a/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Ext/Form.xml" +++ "b/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Ext/Form.xml" @@ -133,14 +133,6 @@ <ShowTitle>false</ShowTitle> <ExtendedTooltip name="ГруппаОписаниеФункцииРасширеннаяПодсказка" id="43"/> <ChildItems> - <InputField name="Описание" id="28"> - <DataPath>Items.Список.CurrentData.Описание</DataPath> - <ReadOnly>true</ReadOnly> - <TitleLocation>None</TitleLocation> - <MultiLine>true</MultiLine> - <ContextMenu name="ОписаниеКонтекстноеМеню" id="29"/> - <ExtendedTooltip name="ОписаниеРасширеннаяПодсказка" id="44"/> - </InputField> <UsualGroup name="ГруппаШапкаФункции" id="16"> <Title> <v8:item> @@ -318,6 +310,7 @@ </Type> <MainAttribute>true</MainAttribute> <UseAlways> + <Field>Список.IsFolder</Field> <Field>Список.Ref</Field> </UseAlways> <Settings xsi:type="DynamicList"> diff --git "a/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Ext/Form/Module.bsl" "b/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Ext/Form/Module.bsl" index 7c0aeb84..0aa74bd1 100644 --- "a/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Ext/Form/Module.bsl" +++ "b/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\241\320\277\320\270\321\201\320\272\320\260/Ext/Form/Module.bsl" @@ -50,42 +50,18 @@ // Ссылка - СправочникСсылка.__ПользовательскиеФункции. // &НаСервере -Процедура ПоказатьОписаниеФункцииСервер(Ссылка) +Процедура ПоказатьОписаниеФункцииСервер(Ссылка, ЭтоГруппа) - Если Ссылка.ЭтоГруппа Тогда - - ТекстОписания = СтрШаблон(НСтр("ru='#В группе: %1';en='#In Group: %1'"), Символы.ПС); - - Выборка = Справочники.__ПользовательскиеФункции.Выбрать(Ссылка); - Пока Выборка.Следующий() Цикл - - Если Выборка.ЭтоГруппа Тогда - Продолжить; - КонецЕсли; - - ОписаниеСКомментариями = СтрЗаменить(СокрЛП(Выборка.Описание), Символы.ПС, СтрШаблон("%1// ", Символы.ПС)); - Если СокрЛП(Выборка.Описание) = "" Тогда - ОписаниеФункции = НСтр("ru='// <нет описания>';en='// <No description>'"); - Иначе - ОписаниеФункции = СтрШаблон("// %1", ОписаниеСКомментариями); - КонецЕсли; - - __ОбщегоНазначенияСервер.ДобавитьСтрокуКТексту(ТекстОписания, ОписаниеФункции); - СтруктураЗаголовка = Справочники.__ПользовательскиеФункции.ПолучитьНазваниеПодпрограммыСПараметрами(Выборка.Ссылка); - __ОбщегоНазначенияСервер.ДобавитьСтрокуКТексту(ТекстОписания, СтруктураЗаголовка.ЗаголовокФункции + Символы.ПС); - КонецЦикла; - - ПолеОписания = ТекстОписания; + Если ЭтоГруппа Тогда + ПолеОписания = Справочники.__ПользовательскиеФункции.СформироватьОписаниеФункций(Ссылка, ЭтоГруппа); Иначе - СтруктураЗаголовка = Справочники.__ПользовательскиеФункции.ПолучитьНазваниеПодпрограммыСПараметрами(Ссылка); - - Элементы.ДекорацияНазваниеСПараметрами.Заголовок = СтруктураЗаголовка.НазваниеСПараметрами; - ПолеОписания = СтрШаблон("%1%2%3", СтруктураЗаголовка.ОписаниеПараметров, Символы.ПС, СокрЛП(Ссылка.КодПодпрограммы)); + Результат = Справочники.__ПользовательскиеФункции.ПолучитьНазваниеПодпрограммыСПараметрами(Ссылка, ЭтоГруппа, Истина); + Элементы.ДекорацияНазваниеСПараметрами.Заголовок = Результат[0].НазваниеСПараметрами; + ПолеОписания = Результат[0].ОписаниеПараметров; КонецЕсли; - Элементы.Описание.Видимость = Не Ссылка.ЭтоГруппа; - Элементы.ГруппаШапкаФункции.Видимость = Не Ссылка.ЭтоГруппа; - Элементы.ГруппаПодвалФункции.Видимость = Не Ссылка.ЭтоГруппа; + Элементы.ГруппаШапкаФункции.Видимость = Не ЭтоГруппа; + Элементы.ГруппаПодвалФункции.Видимость = Не ЭтоГруппа; КонецПроцедуры @@ -99,7 +75,7 @@ Возврат; КонецЕсли; - ПоказатьОписаниеФункцииСервер(ТекущиеДанные.Ссылка); + ПоказатьОписаниеФункцииСервер(ТекущиеДанные.Ссылка, ТекущиеДанные.ЭтоГруппа); КонецПроцедуры diff --git "a/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form.xml" "b/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form.xml" index 94bc0f35..1b45e1ef 100644 --- "a/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form.xml" +++ "b/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form.xml" @@ -203,7 +203,7 @@ <ExtendedTooltip name="ПараметрыФункцииНаименованиеExtendedTooltip" id="83"/> </InputField> <CheckBoxField name="ПараметрыФункцииНеОбязательныйДляЗаполнения" id="26"> - <DataPath>Объект.ПараметрыФункции.НеОбязательныйДляЗаполнения</DataPath> + <DataPath>Объект.ПараметрыФункции.Необязательный</DataPath> <EditMode>EnterOnInput</EditMode> <CheckBoxType>Auto</CheckBoxType> <ContextMenu name="ПараметрыФункцииНеОбязательныйДляЗаполненияКонтекстноеМеню" id="27"/> @@ -402,11 +402,6 @@ <CommandName>Form.Command.ВставитьЗапрос</CommandName> <ExtendedTooltip name="ВставитьЗапросExtendedTooltip" id="95"/> </Button> - <Button name="ДобавитьОписание" id="64"> - <Type>CommandBarButton</Type> - <CommandName>Form.Command.ДобавитьОписание</CommandName> - <ExtendedTooltip name="ДобавитьОписаниеExtendedTooltip" id="96"/> - </Button> </ChildItems> </ButtonGroup> <ButtonGroup name="ГруппаНастройкиОтображения" id="139"> @@ -1055,35 +1050,6 @@ <ModifiesSavedData>true</ModifiesSavedData> <CurrentRowUse>DontUse</CurrentRowUse> </Command> - <Command name="ДобавитьОписание" id="5"> - <Title> - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Добавить описание</v8:content> - </v8:item> - <v8:item> - <v8:lang>en</v8:lang> - <v8:content>Add Description</v8:content> - </v8:item> - - - - ru - Добавить описание подпрограммы - - - en - Add the subroutine description - - - - StdPicture.Task - true - - ДобавитьОписание - true - DontUse - <v8:item> diff --git "a/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl" "b/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl" index a443fce4..a7311bfe 100644 --- "a/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl" +++ "b/src/Catalogs/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270/Forms/\320\244\320\276\321\200\320\274\320\260\320\255\320\273\320\265\320\274\320\265\320\275\321\202\320\260/Ext/Form/Module.bsl" @@ -72,7 +72,7 @@ КаталогИсходногоКодаКонфигурации = Каталог; КонецЕсли; - ПолучитьНазваниеПодпрограммыСПараметрамиСервер(); + ПолучитьНазваниеПодпрограммыСПараметрамиСервер(Истина); УправлениеЭлементамиФормы(); @@ -211,14 +211,14 @@ &НаКлиенте Процедура ПараметрыФункцииПриОкончанииРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования) - ПолучитьНазваниеПодпрограммыСПараметрамиСервер(); + ПолучитьНазваниеПодпрограммыСПараметрамиСервер(Истина); КонецПроцедуры &НаКлиенте Процедура ПараметрыФункцииПослеУдаления(Элемент) - ПолучитьНазваниеПодпрограммыСПараметрамиСервер(); + ПолучитьНазваниеПодпрограммыСПараметрамиСервер(Истина); КонецПроцедуры @@ -349,29 +349,6 @@ КонецПроцедуры -&НаКлиенте -Процедура ДобавитьОписание(Команда) - - Обработчик = Новый ОписаниеОповещения("ДобавитьОписаниеЗавершение", ЭтотОбъект); - ПоказатьВводСтроки(Обработчик, Объект.Описание, НСтр("ru='Описание подпрограммы';en='description of routines'"),, Истина); - -КонецПроцедуры - -//Обработчик оповещения "ДобавитьОписаниеЗавершение". -// -// Параметры: -// Текст - Строка. -// ПараметрыИсточника - Структура. -// -&НаКлиенте -Процедура ДобавитьОписаниеЗавершение(Текст, ПараметрыИсточника) Экспорт - - Если Текст <> Неопределено Тогда - Объект.Описание = Текст; - КонецЕсли; - -КонецПроцедуры - &НаКлиенте Процедура ВставитьЗапрос(Команда) @@ -446,15 +423,33 @@ Процедура ДобавитьПараметры() Справочники.__ПользовательскиеФункции.ЗаполнитьПараметры(Объект); - ПолучитьНазваниеПодпрограммыСПараметрамиСервер(); + ПолучитьНазваниеПодпрограммыСПараметрамиСервер(Истина); КонецПроцедуры // ДобавитьПараметры() &НаСервере -Процедура ПолучитьНазваниеПодпрограммыСПараметрамиСервер() +Процедура ПолучитьНазваниеПодпрограммыСПараметрамиСервер(ПараметрыИзменены = Ложь) + + Если Не ПараметрыИзменены Тогда + Позиция = СтрНайти(НазваниеПодпрограммы, "("); + НазваниеПодпрограммы = Объект.Наименование + ?(Позиция > 0, Сред(НазваниеПодпрограммы, Позиция), "()"); + Возврат; + КонецЕсли; + + ЧастиИмени = Новый Массив(); + + ЧастиИмени.Добавить(Объект.Наименование); + ЧастиИмени.Добавить("("); + Предел = Объект.ПараметрыФункции.Количество(); + Для Каждого СтрПараметр Из Объект.ПараметрыФункции Цикл + Параметр = СокрЛП(СтрПараметр.Наименование) + + ?(СтрПараметр.Необязательный, " = Неопределено", "") + + ?(СтрПараметр.НомерСтроки <> Предел, ", ", ""); + ЧастиИмени.Добавить(Параметр); + КонецЦикла; + ЧастиИмени.Добавить(")"); - СтруктураЗаголовка = Справочники.__ПользовательскиеФункции.ПолучитьНазваниеПодпрограммыСПараметрами(Объект); - НазваниеПодпрограммы = СтруктураЗаголовка.НазваниеСПараметрами; + НазваниеПодпрограммы = СтрСоединить(ЧастиИмени, ""); КонецПроцедуры @@ -608,7 +603,7 @@ ПараметрыФормы.Вставить("Переменные", СписокПеременных); - ОткрытьФорму("Справочник.__ПользовательскиеФункции.Форма.УсловныйОператор", ПараметрыФормы, ЭтотОбъект,,,, + ОткрытьФорму(КлючОбъекта("УсловныйОператор"), ПараметрыФормы, ЭтотОбъект,,,, Новый ОписаниеОповещения("ОткрытьКонструкторУсловногоВыраженияЗавершение", ЭтотОбъект)); КонецПроцедуры diff --git "a/src/Subsystems/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270.xml" "b/src/Subsystems/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270.xml" index 032285c6..4f419859 100644 --- "a/src/Subsystems/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270.xml" +++ "b/src/Subsystems/__\320\237\320\276\320\273\321\214\320\267\320\276\320\262\320\260\321\202\320\265\320\273\321\214\321\201\320\272\320\270\320\265\320\244\321\203\320\275\320\272\321\206\320\270\320\270.xml" @@ -32,6 +32,7 @@ <xr:Item xsi:type="xr:MDObjectRef">CommonModule.__СтроковыеФункцииКлиентСервер</xr:Item> <xr:Item xsi:type="xr:MDObjectRef">CommonModule.__ОбщегоНазначенияКлиентСервер</xr:Item> <xr:Item xsi:type="xr:MDObjectRef">CommonForm.__ФормаВыбораПоля</xr:Item> + <xr:Item xsi:type="xr:MDObjectRef">ff5b8427-8720-4983-8f89-9b95aa004c98</xr:Item> </Content> </Properties> <ChildObjects/>