From 79e931364997471c24f9bb728c04bb79944590c9 Mon Sep 17 00:00:00 2001 From: Anton Ivanov Date: Sat, 4 Feb 2023 10:46:26 +0300 Subject: [PATCH] =?UTF-8?q?@hawkxtreme=20#283=20=D0=94=D0=BE=D0=B1=D0=B0?= =?UTF-8?q?=D0=B2=D0=B8=D1=82=D1=8C=20=D0=B2=D0=BE=D0=B7=D0=BC=D0=BE=D0=B6?= =?UTF-8?q?=D0=BD=D0=BE=D1=81=D1=82=D1=8C=20=D1=81=D0=BE=D1=85=D1=80=D0=B0?= =?UTF-8?q?=D0=BD=D1=8F=D1=82=D1=8C=20=D0=BD=D0=B0=D1=81=D1=82=D1=80=D0=BE?= =?UTF-8?q?=D0=B9=D0=BA=D0=B8=20=D0=BA=D0=B0=D0=BD=D0=B1=D0=B0=D0=BD=20?= =?UTF-8?q?=D0=B4=D0=BE=D1=81=D0=BA=D0=B8=20=D0=BA=D0=B0=D0=BA=20=D0=BE?= =?UTF-8?q?=D1=82=D0=B4=D0=B5=D0=BB=D1=8C=D0=BD=D1=8B=D0=B9=20=D0=B2=D0=B0?= =?UTF-8?q?=D1=80=D0=B8=D0=B0=D0=BD=D1=82.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- VERSIONS.md | 9 + src/cf/DataProcessors/узКанбанДоска.xml | 2 + .../узКанбанДоска/Ext/ManagerModule.bsl | 33 +- .../Forms/ФормаДинамическая/Ext/Form.xml | 174 ++++++++++- .../Forms/ФормаДинамическая/Ext/Form/Module.bsl | 295 ++++++++++++++++-- .../Forms/ФормаЗагрузкиВарианта.xml | 22 ++ .../Forms/ФормаЗагрузкиВарианта/Ext/Form.xml | 200 ++++++++++++ .../Forms/ФормаЗагрузкиВарианта/Ext/Form/Module.bsl | 93 ++++++ .../Forms/ФормаСохраненияВарианта.xml | 22 ++ .../Forms/ФормаСохраненияВарианта/Ext/Form.xml | 209 +++++++++++++ .../Forms/ФормаСохраненияВарианта/Ext/Form/Module.bsl | 119 +++++++ 11 files changed, 1141 insertions(+), 37 deletions(-) create mode 100644 src/cf/DataProcessors/узКанбанДоска/Forms/ФормаЗагрузкиВарианта.xml create mode 100644 src/cf/DataProcessors/узКанбанДоска/Forms/ФормаЗагрузкиВарианта/Ext/Form.xml create mode 100644 src/cf/DataProcessors/узКанбанДоска/Forms/ФормаЗагрузкиВарианта/Ext/Form/Module.bsl create mode 100644 src/cf/DataProcessors/узКанбанДоска/Forms/ФормаСохраненияВарианта.xml create mode 100644 src/cf/DataProcessors/узКанбанДоска/Forms/ФормаСохраненияВарианта/Ext/Form.xml create mode 100644 src/cf/DataProcessors/узКанбанДоска/Forms/ФормаСохраненияВарианта/Ext/Form/Module.bsl diff --git a/VERSIONS.md b/VERSIONS.md index e9249b575..ab90ea1d0 100644 --- a/VERSIONS.md +++ b/VERSIONS.md @@ -2,6 +2,15 @@ Что сделать дополнительно: * Обновить в файле настроек сонара новую версию релиза sonar.projectVersion=1.0.5.ххх +**Выпущена версия 1.0.5.ххх (Обновление от хх.хх.ххх)** + +**Изменения** + +* #283 Добавить возможность сохранять настройки канбан доски как отдельный вариант. Спасибо @hawkxtreme (Максим Мальков) + + + + **Выпущена версия 1.0.5.016 (Обновление от 03.01.2022)** **Изменения** diff --git a/src/cf/DataProcessors/узКанбанДоска.xml b/src/cf/DataProcessors/узКанбанДоска.xml index 3ccd01a0f..5499e3071 100644 --- a/src/cf/DataProcessors/узКанбанДоска.xml +++ b/src/cf/DataProcessors/узКанбанДоска.xml @@ -1346,6 +1346,8 @@
Удалить_Форма
ФормаДинамическая
+
ФормаСохраненияВарианта
+
ФормаЗагрузкиВарианта
diff --git a/src/cf/DataProcessors/узКанбанДоска/Ext/ManagerModule.bsl b/src/cf/DataProcessors/узКанбанДоска/Ext/ManagerModule.bsl index 2c5e27230..67a6b11af 100644 --- a/src/cf/DataProcessors/узКанбанДоска/Ext/ManagerModule.bsl +++ b/src/cf/DataProcessors/узКанбанДоска/Ext/ManagerModule.bsl @@ -99,6 +99,37 @@ КонецФункции +// [+] #283 Мальков М.В. 2023-01-30 +Функция ПолучитьСписокВариантов(ОсновнойКлючВарианта) Экспорт + + СписокЗначений = Новый СписокЗначений; + + Если ЗначениеЗаполнено(ОсновнойКлючВарианта) Тогда + + ТекущийПользовательСтрока = "" + СтандартныеПодсистемыСервер.ТекущийПользователь(); + + Отбор = Новый Структура(); + Отбор.Вставить("Пользователь", ТекущийПользовательСтрока); + + Выборка = ХранилищеОбщихНастроек.Выбрать(Отбор); + + Пока Выборка.Следующий() Цикл + + Если СтрНайти(Выборка.КлючНастроек, ОсновнойКлючВарианта) > 0 Тогда + Если Выборка.КлючНастроек = ОсновнойКлючВарианта Тогда + СписокЗначений.Добавить(Выборка.КлючНастроек, "Основной"); + Иначе + СписокЗначений.Добавить(Выборка.КлючНастроек, СтрЗаменить(Выборка.КлючНастроек, ОсновнойКлючВарианта + ".", "")); + КонецЕсли; + КонецЕсли; + КонецЦикла; + КонецЕсли; + + Возврат СписокЗначений + +КонецФункции +// [-] #283 Мальков М.В. 2023-01-30 + #КонецОбласти -#КонецЕсли \ No newline at end of file +#КонецЕсли \ No newline at end of file diff --git a/src/cf/DataProcessors/узКанбанДоска/Forms/ФормаДинамическая/Ext/Form.xml b/src/cf/DataProcessors/узКанбанДоска/Forms/ФормаДинамическая/Ext/Form.xml index d2a66c86c..c0826f6de 100644 --- a/src/cf/DataProcessors/узКанбанДоска/Forms/ФормаДинамическая/Ext/Form.xml +++ b/src/cf/DataProcessors/узКанбанДоска/Forms/ФормаДинамическая/Ext/Form.xml @@ -92,34 +92,78 @@ true - + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа варинаты</v8:content> + </v8:item> + ru - Группа2 + Группа варинаты - + - - - - false - true - true - - Form - - + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Сохранение (выбор) варианта отчета</v8:content> + </v8:item> + + + + ru + Выбрать другой вариант канбан доски или сохранить новый + + + + CommonPicture.ВыбратьВариантОтчета + true + + Picture + + + + + + + + + @@ -623,6 +667,24 @@ + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Текущий ключ настроек</v8:content> + </v8:item> + + + xs:string + + 0 + Variable + + + + ТекущийКлючНастроек + + @@ -847,5 +909,83 @@ КомандаОтобразитьДополнительныеНастройки DontUse + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Сохранить вариант как</v8:content> + </v8:item> + + + + ru + Сохранить вариант как + + + + StdPicture.SaveValues + true + + СохранитьВариантКакКомандаПеред + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Выбрать вариант</v8:content> + </v8:item> + + + + ru + Загрузить вариант + + + + StdPicture.RestoreValues + true + + ЗагрузитьВариантКомандаПеред + TextPicture + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Сохранить вариант</v8:content> + </v8:item> + + + + ru + Сохранить вариант + + + + StdPicture.SaveValues + true + + СохранитьВариантКомандаПеред + TextPicture + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Сохранить вариант всем пользователям</v8:content> + </v8:item> + + + + ru + Загрузить текущую настройку всем + + + + StdPicture.SaveValues + true + + СохранитьТекущийВариантВсемКоманда + \ No newline at end of file diff --git a/src/cf/DataProcessors/узКанбанДоска/Forms/ФормаДинамическая/Ext/Form/Module.bsl b/src/cf/DataProcessors/узКанбанДоска/Forms/ФормаДинамическая/Ext/Form/Module.bsl index c87f025a8..0157a3222 100644 --- a/src/cf/DataProcessors/узКанбанДоска/Forms/ФормаДинамическая/Ext/Form/Module.bsl +++ b/src/cf/DataProcessors/узКанбанДоска/Forms/ФормаДинамическая/Ext/Form/Module.bsl @@ -7,8 +7,12 @@ СгенирироватьФормуЗаново = Истина; пНастройкиКомпоновщика = Неопределено; - - ЗагрузитьСохраненныеНастройки(пНастройкиКомпоновщика); + + // [+] #283 Мальков М.В. 2023-01-30 + //ЗагрузитьСохраненныеНастройки(пНастройкиКомпоновщика); + ТекущийКлючНастроек = ПолучитьТекущийКлючНастроек(); + ЗагрузитьСохраненныеНастройки(ТекущийКлючНастроек, пНастройкиКомпоновщика); + // [-] #283 Мальков М.В. 2023-01-30 СтруктураТЧДляСнятияФокусаСЗадач = Новый Структура(); @@ -24,7 +28,8 @@ УстановитьВидимостьДоступность(); - ВыполнитьЛокализацию(); + ВыполнитьЛокализацию(); + КонецПроцедуры &НаСервере @@ -70,7 +75,10 @@ КонецПроцедуры &НаКлиенте -Процедура ПриЗакрытии() +Процедура ПриЗакрытии() + + //СохранитьВариантНаКлиенте(); + КонецПроцедуры &НаКлиенте @@ -85,7 +93,13 @@ &НаСервере Процедура ПриЗакрытииНаСервере() - СохранитьНастройки(); + // [+] #283 Мальков М.В. 2023-01-30 + //СохранитьНастройки(); + + СохранитьТекущийКлючНастроек(); + + СохранитьНастройки(ТекущийКлючНастроек); + // [-] #283 Мальков М.В. 2023-01-30 КонецПроцедуры &НаКлиенте @@ -93,7 +107,11 @@ ПодключитьОбработчикОжидания("ЗаполнитьЗадачиНаКлиенте", 180); УбратьИзКонтекстногоМенюЛишниеКнопкиНаСервере(); - + + // [+] #283 Мальков М.В. 2023-01-30 + ОбновитьЗаголовокФормыНаКлиенте(ТекущийКлючНастроек); + // [-] #283 Мальков М.В. 2023-01-30 + КонецПроцедуры #КонецОбласти @@ -109,7 +127,7 @@ МассивДобавляемыхРеквизитов = Новый Массив; - ЭтаФорма.ИзменитьРеквизиты(МассивДобавляемыхРеквизитов); + ЭтотОбъект.ИзменитьРеквизиты(МассивДобавляемыхРеквизитов); ///// КОМАНДЫ ////////// // + #228 Пиганов Г.В. 2020.07.02 @@ -721,7 +739,10 @@ КлючНастроек = ПолучитьКлючНастроек(); ХранилищеОбщихНастроек.Сохранить(КлючНастроек,КлючНастроек,Неопределено); пНастройкиКомпоновщика = Неопределено; - ЗагрузитьСохраненныеНастройки(пНастройкиКомпоновщика); + // [+] #283 Мальков М.В. 2023-01-30 + //ЗагрузитьСохраненныеНастройки(пНастройкиКомпоновщика); + ЗагрузитьСохраненныеНастройки(КлючНастроек, пНастройкиКомпоновщика); + // [-] #283 Мальков М.В. 2023-01-30 ОпределитьОтборНаСервере(пНастройкиКомпоновщика); КонецПроцедуры @@ -729,7 +750,29 @@ Функция ПолучитьКлючНастроек() КлючНастроек = "Обработка.узКанбанДоска"; Возврат КлючНастроек; -КонецФункции +КонецФункции + +&НаСервере +Функция ПолучитьТекущийКлючНастроек() + + ТекущийКлючНастроекХранилище = "Обработка.узКД_ТекущийКлючНастроек"; + + Возврат ХранилищеОбщихНастроек.Загрузить( + ТекущийКлючНастроекХранилище, ТекущийКлючНастроекХранилище); + +КонецФункции + +&НаСервере +Процедура СохранитьТекущийКлючНастроек() + + ТекущийКлючНастроекХранилище = "Обработка.узКД_ТекущийКлючНастроек"; + + ХранилищеОбщихНастроек.Сохранить( + ТекущийКлючНастроекХранилище, + ТекущийКлючНастроекХранилище, + ТекущийКлючНастроек); + +КонецПроцедуры &НаСервере Процедура ЗаполнитьЗадачиНаСервере() @@ -747,8 +790,11 @@ ОформлениеЦветаЗадачНаСервере(); КонецПроцедуры -&НаСервере -Процедура ЗагрузитьСохраненныеНастройки(пНастройкиКомпоновщика) +&НаСервере +// [+] #283 Мальков М.В. 2023-01-30 +//Процедура ЗагрузитьСохраненныеНастройки(пНастройкиКомпоновщика) +Процедура ЗагрузитьСохраненныеНастройки(КлючНастроек, пНастройкиКомпоновщика) +// [-] #283 Мальков М.В. 2023-01-30 // + #225 Урянский Д. 2020-07-06: настройки по умолчанию Объект.ОтображениеФайловЗадач = Перечисления.узОтображениеФайловЗадачНаДоске.Отсутствует; @@ -756,7 +802,10 @@ Объект.ОтображениеЧеклистаЗадач = Перечисления.узОтображениеЧеклистаЗадачНаДоске.Отсутствует; // - #225 Урянский Д. 2020-07-06 - КлючНастроек = ПолучитьКлючНастроек(); + // [+] #283 Мальков М.В. 2023-01-30 + //КлючНастроек = ПолучитьКлючНастроек(); + // [-] #283 Мальков М.В. 2023-01-30 + СохраненныеНастройки = ХранилищеОбщихНастроек.Загрузить(КлючНастроек,КлючНастроек); Если СохраненныеНастройки <> Неопределено Тогда @@ -820,7 +869,7 @@ КонецПроцедуры &НаСервере -Процедура ОпределитьОтборНаСервере(пНастройкиКомпоновщика = Неопределено) +Процедура ОпределитьОтборНаСервере(пНастройкиКомпоновщика = Неопределено) Экспорт пОбъект = РеквизитФормыВЗначение("Объект"); МакетСКД = пОбъект.ПолучитьМакет("СхемаКомпоновкиДанных"); @@ -931,10 +980,15 @@ КонецФункции &НаСервере -Процедура СохранитьНастройки() - НастройкиКомпоновщикаХранилище = Новый ХранилищеЗначения(КомпоновщикНастроекКомпоновкиДанных.Настройки); +// [+] #283 Мальков М.В. 2023-01-30 +//Процедура СохранитьНастройки() +Процедура СохранитьНастройки(КлючНастроек, Пользователь = Неопределено) +// [-] #283 Мальков М.В. 2023-01-30 - КлючНастроек = ПолучитьКлючНастроек(); + НастройкиКомпоновщикаХранилище = Новый ХранилищеЗначения(КомпоновщикНастроекКомпоновкиДанных.Настройки); + // [+] #283 Мальков М.В. 2023-01-30 + //КлючНастроек = ПолучитьКлючНастроек(); + // [-] #283 Мальков М.В. 2023-01-30 ДопПараметры = Новый Структура(); ДопПараметры.Вставить("ТЧНастройкиКолонок",Объект.ТЧНастройкиКолонок.Выгрузить()); ДопПараметры.Вставить("НастройкиКомпоновщикаХранилище",НастройкиКомпоновщикаХранилище); @@ -945,7 +999,16 @@ ДопПараметры.Вставить("ОтображениеЧеклистаЗадач", Объект.ОтображениеЧеклистаЗадач); ДопПараметры.Вставить("ПоказыватьЗаказчика",Объект.ПоказыватьЗаказчика); // - #225 Урянский Д. 2020-07-06 - ХранилищеОбщихНастроек.Сохранить(КлючНастроек,КлючНастроек,ДопПараметры); + + // [+] #283 Мальков М.В. 2023-01-30 + //ХранилищеОбщихНастроек.Сохранить(КлючНастроек,КлючНастроек,ДопПараметры); + Если Пользователь = Неопределено Тогда + ХранилищеОбщихНастроек.Сохранить(КлючНастроек, КлючНастроек, ДопПараметры); + Иначе + ХранилищеОбщихНастроек.Сохранить(КлючНастроек, КлючНастроек, ДопПараметры, , "" + Пользователь); + КонецЕсли; + // [-] #283 Мальков М.В. 2023-01-30 + КонецПроцедуры #КонецОбласти @@ -977,7 +1040,37 @@ &НаКлиенте Процедура КомандаУстановитьСтандартныеНастройки(Команда) - УстановитьСтандартныеНастройкиНаСервере(); + + УстановитьСтандартныеНастройкиНаСервере(); + + ТекущийКлючНастроек = ПолучитьКлючНастроек(); + + ОбновитьЗаголовокФормыНаКлиенте(ТекущийКлючНастроек); + +КонецПроцедуры + +// [+] #283 Мальков М.В. 2023-01-30 +&НаКлиенте +Процедура ЗагрузитьВариантКомандаПеред(Команда) + ЗагрузитьВариантНаКлиенте(); +КонецПроцедуры + +// [+] #283 Мальков М.В. 2023-01-30 +&НаКлиенте +Процедура СохранитьВариантКакКомандаПеред(Команда) + СохранитьВариантКакНаКлиенте(); +КонецПроцедуры + +// [+] #283 Мальков М.В. 2023-01-30 +&НаКлиенте +Процедура СохранитьВариантКомандаПеред(Команда) + СохранитьВариантНаКлиенте(); +КонецПроцедуры + +// [+] #283 Мальков М.В. 2023-01-30 +&НаКлиенте +Процедура СохранитьТекущийВариантВсемКоманда(Команда) + СохранитьТекущийВариантВсемНаСервере(); КонецПроцедуры #КонецОбласти @@ -1086,7 +1179,7 @@ Если РезультатФункции.Свойство("НеобходимоВыбратьСпринт") Тогда ДополнительныеПараметры = Новый Структура(); ДополнительныеПараметры.Вставить("МассивВыделенныхСтрок",МассивВыделенныхСтрок); - ОповещениеОЗакрытии = Новый ОписаниеОповещения("ОбработатьВыборСпринта", ЭтаФорма, ДополнительныеПараметры); + ОповещениеОЗакрытии = Новый ОписаниеОповещения("ОбработатьВыборСпринта", ЭтотОбъект, ДополнительныеПараметры); пОтбор = Новый Структура("СпринтЗавершен", Ложь); ПараметрыОткрытияФормы = Новый Структура("Отбор", пОтбор); @@ -1652,6 +1745,170 @@ //- #108 Дзеса Ігор (capitoshko) 04.10.2018 #КонецОбласти +#Область Варианты +// [+] #283 Мальков М.В. 2023-01-30 +&НаКлиенте +Процедура ЗагрузитьВариантНаКлиенте() + + ПараметрыОткрытия = Новый Структура; + ПараметрыОткрытия.Вставить("ОсновнойКлючВарианта", ПолучитьКлючНастроек()); + ПараметрыОткрытия.Вставить("ТекущийКлючВарианта", ТекущийКлючНастроек); + + ОткрытьФорму("Обработка.узКанбанДоска.Форма.ФормаЗагрузкиВарианта", + ПараметрыОткрытия, ЭтотОбъект, , , , + Новый ОписаниеОповещения("ЗагрузитьВариантНаКлиентеЗавершение", ЭтотОбъект), + РежимОткрытияОкнаФормы.БлокироватьОкноВладельца); + +КонецПроцедуры +// [+] #283 Мальков М.В. 2023-01-30 +&НаКлиенте +Процедура ЗагрузитьВариантНаКлиентеЗавершение(Результат, ДополнительныеПараметры) Экспорт + + Если Результат <> Неопределено Тогда + + пНастройкиКомпоновщика = Неопределено; + СгенирироватьФормуЗаново = Истина; + ТекущийКлючНастроек = Результат; + + ЗагрузитьСохраненныеНастройки(Результат, пНастройкиКомпоновщика); + + ОбновитьЗаголовокФормыНаКлиенте(Результат); + ОпределитьОтборНаСервере(пНастройкиКомпоновщика); + КомандаОбновить(Неопределено); + + КонецЕсли; + +КонецПроцедуры + +// [+] #283 Мальков М.В. 2023-01-30 +&НаКлиенте +Процедура СохранитьВариантКакНаКлиенте() + + ПараметрыОткрытия = Новый Структура; + ПараметрыОткрытия.Вставить("ОсновнойКлючВарианта", ПолучитьКлючНастроек()); + ПараметрыОткрытия.Вставить("ТекущийКлючВарианта", ТекущийКлючНастроек); + + ОткрытьФорму("Обработка.узКанбанДоска.Форма.ФормаСохраненияВарианта", + ПараметрыОткрытия, ЭтотОбъект, , , , + Новый ОписаниеОповещения("СохранитьВариантКакНаКлиентеЗавершение", ЭтотОбъект), + РежимОткрытияОкнаФормы.БлокироватьОкноВладельца); + +КонецПроцедуры + +// [+] #283 Мальков М.В. 2023-01-30 +&НаКлиенте +Процедура СохранитьВариантКакНаКлиентеЗавершение(Результат, ДополнительныеПараметры) Экспорт + + Если Результат <> Неопределено Тогда + + ОсновнойКлюч = ПолучитьКлючНастроек(); + + Ключ = ""; + + Если Результат.Ключ = ОсновнойКлюч Тогда + Ключ = Результат.Ключ; + Иначе + Ключ = ОсновнойКлюч + "." + Результат.Представление; + КонецЕсли; + + ТекущийКлючНастроек = Ключ; + СохранитьНастройки(Ключ); + ОбновитьЗаголовокФормыНаКлиенте(Ключ); + + КонецЕсли; + +КонецПроцедуры + +// [+] #283 Мальков М.В. 2023-01-30 +&НаКлиенте +Процедура СохранитьВариантНаКлиенте() + + Если Не ЗначениеЗаполнено(ТекущийКлючНастроек) Тогда + СохранитьВариантКакНаКлиенте(); + Иначе + СохранитьНастройки(ТекущийКлючНастроек); + КонецЕсли; + +КонецПроцедуры + +// [+] #283 Мальков М.В. 2023-01-30 +&НаСервере +Процедура СохранитьТекущийВариантВсемНаСервере() + + Отказ = Ложь; + + Если ТекущийКлючНастроек = ПолучитьКлючНастроек() Тогда + Отказ = Истина; + Сообщить("Выбрана основная настройка"); + КонецЕсли; + + Если Не Отказ Тогда + + МассивПользователей = ПолучитьМассивАктивныхПользователей(); + + Для Каждого Пользователь Из МассивПользователей Цикл + СохранитьНастройки(ТекущийКлючНастроек, Пользователь); + КонецЦикла; + КонецЕсли; + +КонецПроцедуры + +// [+] #283 Мальков М.В. 2023-01-30 +&НаКлиенте +Процедура ОбновитьЗаголовокФормыНаКлиенте(Вариант) + + ИмяВарианта = ПолучитьИмяВариантаНаКлиенте(Вариант); + + АвтоЗаголовок = Ложь; + Заголовок = СтрШаблон("Канбан доска: %2", Заголовок, ИмяВарианта); + +КонецПроцедуры + +#КонецОбласти + +#Область Общее + +// [+] #283 Мальков М.В. 2023-01-30 +&НаСервере +Функция ПолучитьМассивАктивныхПользователей() + + Массив = Новый Массив; + + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ + | Пользователи.Ссылка КАК Ссылка + |ИЗ + | Справочник.Пользователи КАК Пользователи + |ГДЕ + | НЕ Пользователи.ПометкаУдаления"; + + РезультатЗапроса = Запрос.Выполнить(); + + ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); + + Пока ВыборкаДетальныеЗаписи.Следующий() Цикл + Массив.Добавить(ВыборкаДетальныеЗаписи.Ссылка); + КонецЦикла; + + Возврат Массив + +КонецФункции + +// [+] #283 Мальков М.В. 2023-01-30 +&НаКлиенте +Функция ПолучитьИмяВариантаНаКлиенте(Вариант) + + ИмяВарианта = СтрЗаменить(Вариант, "Обработка.узКанбанДоска", ""); + ИмяВарианта = СтрЗаменить(ИмяВарианта, ".", ""); + ИмяВарианта = ?(ИмяВарианта = "", "Основной", ИмяВарианта); + + Возврат ИмяВарианта + +КонецФункции + +#КонецОбласти +// [-] #283 Мальков М.В. 2023-01-30 diff --git a/src/cf/DataProcessors/узКанбанДоска/Forms/ФормаЗагрузкиВарианта.xml b/src/cf/DataProcessors/узКанбанДоска/Forms/ФормаЗагрузкиВарианта.xml new file mode 100644 index 000000000..1ccff1bd2 --- /dev/null +++ b/src/cf/DataProcessors/узКанбанДоска/Forms/ФормаЗагрузкиВарианта.xml @@ -0,0 +1,22 @@ + + +
+ + ФормаЗагрузкиВарианта + + + ru + Форма загрузки варианта + + + // [+] #283 Мальков М.В. 2023-01-30 + Managed + false + + PlatformApplication + MobilePlatformApplication + + + +
+
\ No newline at end of file diff --git a/src/cf/DataProcessors/узКанбанДоска/Forms/ФормаЗагрузкиВарианта/Ext/Form.xml b/src/cf/DataProcessors/узКанбанДоска/Forms/ФормаЗагрузкиВарианта/Ext/Form.xml new file mode 100644 index 000000000..459fe3ab1 --- /dev/null +++ b/src/cf/DataProcessors/узКанбанДоска/Forms/ФормаЗагрузкиВарианта/Ext/Form.xml @@ -0,0 +1,200 @@ + +
+ + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Выбрать вариант</v8:content> + </v8:item> + + false + + + + + + + + + ПриСозданииНаСервере + + + + List + false + false +
false
+ false + false + true + СписокВариантов + СписокВариантов.Picture + + Add + CancelSearch + Change + CheckAll + Copy + CopyToClipboard + Delete + EndEdit + Find + FindByCurrentValue + MoveDown + MoveUp + Pickup + SearchEverywhere + SearchHistory + SelectAll + ShowMultipleSelection + ShowRowRearrangement + SortListAsc + SortListDesc + UncheckAll + + + + false + + + + + СписокВариантов + SearchStringRepresentation + + + + + + + СписокВариантов + ViewStatusRepresentation + + + + + + + СписокВариантов + SearchControl + + + + + + СписокВариантовВыбор + СписокВариантовПередНачаломДобавления + + + + СписокВариантов.Value + false + true + EnterOnInput + + + + + СписокВариантов.Presentation + true + EnterOnInput + + + + +
+
+ + + + <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> + + + 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 + Удалить вариант команда + + + + StdPicture.Delete + true + + УдалитьВариантКоманда + TextPicture + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Закрыть</v8:content> + </v8:item> + + + + ru + Команда закрыть + + + КомандаЗакрыть + + +
\ No newline at end of file diff --git a/src/cf/DataProcessors/узКанбанДоска/Forms/ФормаЗагрузкиВарианта/Ext/Form/Module.bsl b/src/cf/DataProcessors/узКанбанДоска/Forms/ФормаЗагрузкиВарианта/Ext/Form/Module.bsl new file mode 100644 index 000000000..5d45914bc --- /dev/null +++ b/src/cf/DataProcessors/узКанбанДоска/Forms/ФормаЗагрузкиВарианта/Ext/Form/Module.bsl @@ -0,0 +1,93 @@ + +#Область ОбработчикиСобытийФормы + +// [+] #283 Мальков М.В. 2023-01-30 +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + ИнициализироватьФормуНаСервере(Отказ, СтандартнаяОбработка); +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовШапкиФормы + +// [+] #283 Мальков М.В. 2023-01-30 +&НаКлиенте +Процедура СписокВариантовПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа, Параметр) + Отказ = Истина; +КонецПроцедуры + +// [+] #283 Мальков М.В. 2023-01-30 +&НаКлиенте +Процедура СписокВариантовВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) + ЗагрузитьНаКлиенте(); +КонецПроцедуры + +// [+] #283 Мальков М.В. 2023-01-30 +&НаКлиенте +Процедура УдалитьВариантКоманда(Команда) + + ТекущиеДанные = Элементы.СписокВариантов.ТекущиеДанные; + + Если ТекущиеДанные <> Неопределено Тогда + УдалитьВариантНаСервере(ТекущиеДанные); + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиКомандФормы + +// [+] #283 Мальков М.В. 2023-01-30 +&НаКлиенте +Процедура ЗагрузитьКоманда(Команда) + ЗагрузитьНаКлиенте(); +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +// [+] #283 Мальков М.В. 2023-01-30 +&НаСервере +Процедура ИнициализироватьФормуНаСервере(Отказ, СтандартнаяОбработка) + + Параметры.Свойство("ОсновнойКлючВарианта", ОсновнойКлючВарианта); + + СписокВариантов = Обработки.узКанбанДоска.ПолучитьСписокВариантов(ОсновнойКлючВарианта); + +КонецПроцедуры + +// [+] #283 Мальков М.В. 2023-01-30 +&НаКлиенте +Процедура ЗагрузитьНаКлиенте() + + ТекущиеДанные = Элементы.СписокВариантов.ТекущиеДанные; + Вариант = ""; + + Если ТекущиеДанные <> Неопределено Тогда + Вариант = ТекущиеДанные.Значение; + КонецЕсли; + + Закрыть(Вариант); + +КонецПроцедуры + +// [+] #283 Мальков М.В. 2023-01-30 +&НаСервере +Процедура УдалитьВариантНаСервере(ТекущиеДанные) + + Пользователь = Пользователи.ТекущийПользователь(); + + ХранилищеОбщихНастроек.Удалить(ТекущиеДанные.Значение, ТекущиеДанные.Значение, "" + Пользователь); + СписокВариантов = Обработки.узКанбанДоска.ПолучитьСписокВариантов(ОсновнойКлючВарианта); + +КонецПроцедуры + +&НаКлиенте +Процедура КомандаЗакрыть(Команда) + Закрыть(); +КонецПроцедуры + +#КонецОбласти \ No newline at end of file diff --git a/src/cf/DataProcessors/узКанбанДоска/Forms/ФормаСохраненияВарианта.xml b/src/cf/DataProcessors/узКанбанДоска/Forms/ФормаСохраненияВарианта.xml new file mode 100644 index 000000000..5446e61a2 --- /dev/null +++ b/src/cf/DataProcessors/узКанбанДоска/Forms/ФормаСохраненияВарианта.xml @@ -0,0 +1,22 @@ + + +
+ + ФормаСохраненияВарианта + + + ru + Форма сохранения варианта (ВС) + + + // [+] #283 Мальков М.В. 2023-01-30 + Managed + false + + PlatformApplication + MobilePlatformApplication + + + +
+
\ No newline at end of file diff --git a/src/cf/DataProcessors/узКанбанДоска/Forms/ФормаСохраненияВарианта/Ext/Form.xml b/src/cf/DataProcessors/узКанбанДоска/Forms/ФормаСохраненияВарианта/Ext/Form.xml new file mode 100644 index 000000000..9f73fe2ed --- /dev/null +++ b/src/cf/DataProcessors/узКанбанДоска/Forms/ФормаСохраненияВарианта/Ext/Form.xml @@ -0,0 +1,209 @@ + +
+ Bottom + + Right + false + + + + + + ПриСозданииНаСервере + + + + List + false + false +
false
+ false + false + true + СписокВариантов + СписокВариантов.Picture + + Add + CancelSearch + Change + CheckAll + Copy + CopyToClipboard + Delete + EndEdit + Find + FindByCurrentValue + MoveDown + MoveUp + Pickup + SearchEverywhere + SearchHistory + SelectAll + ShowMultipleSelection + ShowRowRearrangement + SortListAsc + SortListDesc + UncheckAll + + + + false + + + + + СписокВариантов + SearchStringRepresentation + + + + + + + СписокВариантов + ViewStatusRepresentation + + + + + + + СписокВариантов + SearchControl + + + + + + СписокВариантовПередНачаломДобавления + СписокВариантовПриАктивизацииСтроки + + + + СписокВариантов.Value + false + true + EnterOnInput + + + + + СписокВариантов.Presentation + true + EnterOnInput + + + + +
+ + Вариант + None + + + + ВариантПриИзменении + + +
+ + + + <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> + + + xs:string + + 0 + Variable + + + + + + <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:string + + 0 + Variable + + + + + + <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 + Сохранить + + + + StdPicture.Write + true + + СохранитьКоманда + TextPicture + + +
\ No newline at end of file diff --git a/src/cf/DataProcessors/узКанбанДоска/Forms/ФормаСохраненияВарианта/Ext/Form/Module.bsl b/src/cf/DataProcessors/узКанбанДоска/Forms/ФормаСохраненияВарианта/Ext/Form/Module.bsl new file mode 100644 index 000000000..2052367e6 --- /dev/null +++ b/src/cf/DataProcessors/узКанбанДоска/Forms/ФормаСохраненияВарианта/Ext/Form/Module.bsl @@ -0,0 +1,119 @@ + +#Область ОбработчикиСобытийФормы + +&НаСервере +Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) + ИнициализироватьФормуНаСервере(Отказ, СтандартнаяОбработка); +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытийЭлементовШапкиФормы + +// [+] #283 Мальков М.В. 2023-01-30 +&НаКлиенте +Процедура СписокВариантовПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа, Параметр) + Отказ = Истина; +КонецПроцедуры + +// [+] #283 Мальков М.В. 2023-01-30 +&НаКлиенте +Процедура СписокВариантовПриАктивизацииСтроки(Элемент) + + ТекущиеДанные = Элементы.СписокВариантов.ТекущиеДанные; + + Если ТекущиеДанные <> Неопределено Тогда + + Вариант = ТекущиеДанные.Представление; + Ключ = ТекущиеДанные.Значение; + + КонецЕсли; + +КонецПроцедуры + +// [+] #283 Мальков М.В. 2023-01-30 +&НаКлиенте +Процедура ВариантПриИзменении(Элемент) + + КлючПоиска = ""; + + Если ЗначениеЗаполнено(Вариант) Тогда + Для Каждого Строка Из СписокВариантов Цикл + + Если Не ЗначениеЗаполнено(КлючПоиска) + И Строка.Представление = Вариант Тогда + КлючПоиска = Строка.Значение; + КонецЕсли; + + КонецЦикла; + КонецЕсли; + + Если Не ЗначениеЗаполнено(КлючПоиска) Тогда + КлючПоиска = ОсновнойКлючВарианта + "." + Вариант; + КонецЕсли; + + Ключ = КлючПоиска; + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиКомандФормы + +// [+] #283 Мальков М.В. 2023-01-30 +&НаКлиенте +Процедура СохранитьКоманда(Команда) + + Если Не ЗначениеЗаполнено(Вариант) Тогда + ПоказатьПредупреждение(, "Не заполнено значение варианта",, "Внимание"); + ИначеЕсли СписокВариантов.НайтиПоЗначению(Ключ) <> Неопределено Тогда + + Оповещение = Новый ОписаниеОповещения("СохранитьКомандаЗавершение", ЭтаФорма); + ПоказатьВопрос(Оповещение, "Вы хотите перезаписать вариант?", РежимДиалогаВопрос.ДаНет,, КодВозвратаДиалога.Да, "Внимание"); + + Иначе + + Данные = Новый Структура("Ключ, Представление", Ключ, Вариант); + Закрыть(Данные); + + КонецЕсли; + +КонецПроцедуры + +// [+] #283 Мальков М.В. 2023-01-30 +&НаКлиенте +Процедура СохранитьКомандаЗавершение(РезультатВопроса, ДополнительныеПараметры) Экспорт + + Если РезультатВопроса = КодВозвратаДиалога.Да Тогда + Данные = Новый Структура("Ключ, Представление", Ключ, Вариант); + Закрыть(Данные); + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +// [+] #283 Мальков М.В. 2023-01-30 +&НаСервере +Процедура ИнициализироватьФормуНаСервере(Отказ, СтандартнаяОбработка) + + Параметры.Свойство("ОсновнойКлючВарианта", ОсновнойКлючВарианта); + Параметры.Свойство("ТекущийКлючВарианта", ТекущийКлючВарианта); + + СписокВариантов = Обработки.узКанбанДоска.ПолучитьСписокВариантов(ОсновнойКлючВарианта); + + Если СписокВариантов.Количество() > 0 + И СписокВариантов.НайтиПоЗначению(ТекущийКлючВарианта) <> Неопределено Тогда + + Строка = СписокВариантов.НайтиПоЗначению(ТекущийКлючВарианта); + Вариант = Строка.Представление; + Ключ = ТекущийКлючВарианта; + + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти +