1
0
mirror of https://github.com/BlizD/Tasks.git synced 2025-03-19 21:07:53 +02:00

@hawkxtreme #283 Добавить возможность сохранять настройки канбан доски как отдельный вариант.

This commit is contained in:
Anton Ivanov 2023-02-04 10:46:26 +03:00
parent 8d257d5e30
commit 79e9313649
11 changed files with 1141 additions and 37 deletions

View File

@ -2,6 +2,15 @@
Что сделать дополнительно:
* Обновить в файле настроек сонара новую версию релиза sonar.projectVersion=1.0.5.ххх
**Выпущена версия 1.0.5.ххх (Обновление от хх.хх.ххх)**
**Изменения**
* #283 Добавить возможность сохранять настройки канбан доски как отдельный вариант. Спасибо @hawkxtreme (Максим Мальков)
**Выпущена версия 1.0.5.016 (Обновление от 03.01.2022)**
**Изменения**

View File

@ -1346,6 +1346,8 @@
</TabularSection>
<Form>Удалить_Форма</Form>
<Form>ФормаДинамическая</Form>
<Form>ФормаСохраненияВарианта</Form>
<Form>ФормаЗагрузкиВарианта</Form>
<Template>СхемаКомпоновкиДанных</Template>
<Command uuid="ab189899-73fe-4879-8f31-035adab3f53c">
<Properties>

View File

@ -99,6 +99,37 @@
КонецФункции
// [+] #283 Мальков М.В. 2023-01-30
Функция ПолучитьСписокВариантов(ОсновнойКлючВарианта) Экспорт
СписокЗначений = Новый СписокЗначений;
Если ЗначениеЗаполнено(ОсновнойКлючВарианта) Тогда
ТекущийПользовательСтрока = "" + СтандартныеПодсистемыСервер.ТекущийПользователь();
Отбор = Новый Структура();
Отбор.Вставить("Пользователь", ТекущийПользовательСтрока);
Выборка = ХранилищеОбщихНастроек.Выбрать(Отбор);
Пока Выборка.Следующий() Цикл
Если СтрНайти(Выборка.КлючНастроек, ОсновнойКлючВарианта) > 0 Тогда
Если Выборка.КлючНастроек = ОсновнойКлючВарианта Тогда
СписокЗначений.Добавить(Выборка.КлючНастроек, "Основной");
Иначе
СписокЗначений.Добавить(Выборка.КлючНастроек, СтрЗаменить(Выборка.КлючНастроек, ОсновнойКлючВарианта + ".", ""));
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецЕсли;
Возврат СписокЗначений
КонецФункции
// [-] #283 Мальков М.В. 2023-01-30
#КонецОбласти
#КонецЕсли
#КонецЕсли

View File

@ -92,34 +92,78 @@
<VerticalStretch>true</VerticalStretch>
<ExtendedTooltip name="ГруппаНастройкиРасширеннаяПодсказка" id="457"/>
<ChildItems>
<CommandBar name="Группа2" id="513">
<CommandBar name="ГруппаВаринаты" id="575">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Группа варинаты</v8:content>
</v8:item>
</Title>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Группа2</v8:content>
<v8:content>Группа варинаты</v8:content>
</v8:item>
</ToolTip>
<ExtendedTooltip name="Группа2РасширеннаяПодсказка" id="514"/>
<ExtendedTooltip name="ГруппаВаринатыРасширеннаяПодсказка" id="576"/>
<ChildItems>
<Button name="КомандаОбновить" id="507">
<Type>CommandBarButton</Type>
<CommandName>Form.Command.КомандаОбновить</CommandName>
<ExtendedTooltip name="КомандаОбновитьРасширеннаяПодсказка" id="508"/>
</Button>
<Button name="КомандаУстановитьСтандартныеНастройки" id="509">
<Type>CommandBarButton</Type>
<CommandName>Form.Command.КомандаУстановитьСтандартныеНастройки</CommandName>
<ExtendedTooltip name="КомандаУстановитьСтандартныеНастройкиРасширеннаяПодсказка" id="510"/>
</Button>
<ButtonGroup name="Группа3" id="515">
<UserVisible>
<xr:Common>false</xr:Common>
<xr:Value name="Role.ПолныеПрава">true</xr:Value>
<xr:Value name="Role.узПолныеПрава">true</xr:Value>
</UserVisible>
<CommandSource>Form</CommandSource>
<ExtendedTooltip name="Группа3РасширеннаяПодсказка" id="516"/>
</ButtonGroup>
<Popup name="ПодменюВарианты" id="569">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Сохранение (выбор) варианта отчета</v8:content>
</v8:item>
</Title>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Выбрать другой вариант канбан доски или сохранить новый</v8:content>
</v8:item>
</ToolTip>
<Picture>
<xr:Ref>CommonPicture.ВыбратьВариантОтчета</xr:Ref>
<xr:LoadTransparent>true</xr:LoadTransparent>
</Picture>
<Representation>Picture</Representation>
<ExtendedTooltip name="ПодменюВариантыРасширеннаяПодсказка" id="570"/>
<ChildItems>
<Button name="ЗагрузитьВариантКоманда" id="567">
<Type>CommandBarButton</Type>
<CommandName>Form.Command.КомандаЗагрузитьВариант</CommandName>
<LocationInCommandBar>InCommandBar</LocationInCommandBar>
<ExtendedTooltip name="ЗагрузитьВариантКомандаРасширеннаяПодсказка" id="568"/>
</Button>
<Button name="СохранитьВариантКоманда" id="565">
<Type>CommandBarButton</Type>
<Visible>false</Visible>
<CommandName>Form.Command.КомандаСохранитьВариант</CommandName>
<LocationInCommandBar>InCommandBar</LocationInCommandBar>
<ExtendedTooltip name="СохранитьВариантКомандаРасширеннаяПодсказка" id="566"/>
</Button>
<Button name="СохранитьВариантКакКоманда" id="571">
<Type>CommandBarButton</Type>
<CommandName>Form.Command.КомандаСохранитьВариантКак</CommandName>
<LocationInCommandBar>InCommandBar</LocationInCommandBar>
<ExtendedTooltip name="СохранитьВариантКакКомандаРасширеннаяПодсказка" id="572"/>
</Button>
<Button name="СохранитьТекущийВариантВсемКоманда" id="573">
<Type>CommandBarButton</Type>
<CommandName>Form.Command.КомандаСохранитьТекущийВариантВсем</CommandName>
<LocationInCommandBar>InCommandBar</LocationInCommandBar>
<ExtendedTooltip name="СохранитьТекущийВариантВсемКомандаРасширеннаяПодсказка" id="574"/>
</Button>
<Button name="КомандаУстановитьСтандартныеНастройки" id="509">
<Type>CommandBarButton</Type>
<CommandName>Form.Command.КомандаУстановитьСтандартныеНастройки</CommandName>
<ExtendedTooltip name="КомандаУстановитьСтандартныеНастройкиРасширеннаяПодсказка" id="510"/>
</Button>
</ChildItems>
</Popup>
</ChildItems>
</CommandBar>
<UsualGroup name="Группа4" id="520">
@ -623,6 +667,24 @@
</Title>
<Type/>
</Attribute>
<Attribute name="ТекущийКлючНастроек" id="7">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Текущий ключ настроек</v8:content>
</v8:item>
</Title>
<Type>
<v8:Type>xs:string</v8:Type>
<v8:StringQualifiers>
<v8:Length>0</v8:Length>
<v8:AllowedLength>Variable</v8:AllowedLength>
</v8:StringQualifiers>
</Type>
<Save>
<Field>ТекущийКлючНастроек</Field>
</Save>
</Attribute>
</Attributes>
<Commands>
<Command name="КомандаДобавитьВСпринт" id="1">
@ -847,5 +909,83 @@
<Action>КомандаОтобразитьДополнительныеНастройки</Action>
<CurrentRowUse>DontUse</CurrentRowUse>
</Command>
<Command name="КомандаСохранитьВариантКак" id="12">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Сохранить вариант как</v8:content>
</v8:item>
</Title>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Сохранить вариант как</v8:content>
</v8:item>
</ToolTip>
<Picture>
<xr:Ref>StdPicture.SaveValues</xr:Ref>
<xr:LoadTransparent>true</xr:LoadTransparent>
</Picture>
<Action>СохранитьВариантКакКомандаПеред</Action>
</Command>
<Command name="КомандаЗагрузитьВариант" id="13">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Выбрать вариант</v8:content>
</v8:item>
</Title>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Загрузить вариант</v8:content>
</v8:item>
</ToolTip>
<Picture>
<xr:Ref>StdPicture.RestoreValues</xr:Ref>
<xr:LoadTransparent>true</xr:LoadTransparent>
</Picture>
<Action>ЗагрузитьВариантКомандаПеред</Action>
<Representation>TextPicture</Representation>
</Command>
<Command name="КомандаСохранитьВариант" id="14">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Сохранить вариант</v8:content>
</v8:item>
</Title>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Сохранить вариант</v8:content>
</v8:item>
</ToolTip>
<Picture>
<xr:Ref>StdPicture.SaveValues</xr:Ref>
<xr:LoadTransparent>true</xr:LoadTransparent>
</Picture>
<Action>СохранитьВариантКомандаПеред</Action>
<Representation>TextPicture</Representation>
</Command>
<Command name="КомандаСохранитьТекущийВариантВсем" id="15">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Сохранить вариант всем пользователям</v8:content>
</v8:item>
</Title>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Загрузить текущую настройку всем</v8:content>
</v8:item>
</ToolTip>
<Picture>
<xr:Ref>StdPicture.SaveValues</xr:Ref>
<xr:LoadTransparent>true</xr:LoadTransparent>
</Picture>
<Action>СохранитьТекущийВариантВсемКоманда</Action>
</Command>
</Commands>
</Form>

View File

@ -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

View File

@ -0,0 +1,22 @@
<?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.15">
<Form uuid="c824408f-92d8-45a8-a5ce-da808811ac9c">
<Properties>
<Name>ФормаЗагрузкиВарианта</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Форма загрузки варианта</v8:content>
</v8:item>
</Synonym>
<Comment>// [+] #283 Мальков М.В. 2023-01-30</Comment>
<FormType>Managed</FormType>
<IncludeHelpInContents>false</IncludeHelpInContents>
<UsePurposes>
<v8:Value xsi:type="app:ApplicationUsePurpose">PlatformApplication</v8:Value>
<v8:Value xsi:type="app:ApplicationUsePurpose">MobilePlatformApplication</v8:Value>
</UsePurposes>
<ExtendedPresentation/>
</Properties>
</Form>
</MetaDataObject>

View File

@ -0,0 +1,200 @@
<?xml version="1.0" encoding="UTF-8"?>
<Form xmlns="http://v8.1c.ru/8.3/xcf/logform" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" 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: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.15">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Выбрать вариант</v8:content>
</v8:item>
</Title>
<AutoTitle>false</AutoTitle>
<AutoCommandBar name="ФормаКоманднаяПанель" id="-1">
<ChildItems>
<Button name="ФормаЗагрузитьКоманда" id="20">
<Type>CommandBarButton</Type>
<DefaultButton>true</DefaultButton>
<CommandName>Form.Command.ЗагрузитьКоманда</CommandName>
<ExtendedTooltip name="ФормаЗагрузитьКомандаРасширеннаяПодсказка" id="21"/>
</Button>
<Button name="ФормаКомандаЗакрыть" id="24">
<Type>CommandBarButton</Type>
<CommandName>Form.Command.КомандаЗакрыть</CommandName>
<ExtendedTooltip name="ФормаКомандаЗакрытьРасширеннаяПодсказка" id="25"/>
</Button>
<Button name="ФормаУдалитьВариантКоманда" id="22">
<Type>CommandBarButton</Type>
<CommandName>Form.Command.УдалитьВариантКоманда</CommandName>
<LocationInCommandBar>InAdditionalSubmenu</LocationInCommandBar>
<ExtendedTooltip name="ФормаУдалитьВариантКомандаРасширеннаяПодсказка" id="23"/>
</Button>
</ChildItems>
</AutoCommandBar>
<Events>
<Event name="OnCreateAtServer">ПриСозданииНаСервере</Event>
</Events>
<ChildItems>
<Table name="СписокВариантов" id="1">
<Representation>List</Representation>
<ChangeRowSet>false</ChangeRowSet>
<ChangeRowOrder>false</ChangeRowOrder>
<Header>false</Header>
<HorizontalLines>false</HorizontalLines>
<VerticalLines>false</VerticalLines>
<AutoInsertNewRow>true</AutoInsertNewRow>
<DataPath>СписокВариантов</DataPath>
<RowPictureDataPath>СписокВариантов.Picture</RowPictureDataPath>
<CommandSet>
<ExcludedCommand>Add</ExcludedCommand>
<ExcludedCommand>CancelSearch</ExcludedCommand>
<ExcludedCommand>Change</ExcludedCommand>
<ExcludedCommand>CheckAll</ExcludedCommand>
<ExcludedCommand>Copy</ExcludedCommand>
<ExcludedCommand>CopyToClipboard</ExcludedCommand>
<ExcludedCommand>Delete</ExcludedCommand>
<ExcludedCommand>EndEdit</ExcludedCommand>
<ExcludedCommand>Find</ExcludedCommand>
<ExcludedCommand>FindByCurrentValue</ExcludedCommand>
<ExcludedCommand>MoveDown</ExcludedCommand>
<ExcludedCommand>MoveUp</ExcludedCommand>
<ExcludedCommand>Pickup</ExcludedCommand>
<ExcludedCommand>SearchEverywhere</ExcludedCommand>
<ExcludedCommand>SearchHistory</ExcludedCommand>
<ExcludedCommand>SelectAll</ExcludedCommand>
<ExcludedCommand>ShowMultipleSelection</ExcludedCommand>
<ExcludedCommand>ShowRowRearrangement</ExcludedCommand>
<ExcludedCommand>SortListAsc</ExcludedCommand>
<ExcludedCommand>SortListDesc</ExcludedCommand>
<ExcludedCommand>UncheckAll</ExcludedCommand>
</CommandSet>
<ContextMenu name="СписокВариантовКонтекстноеМеню" id="2"/>
<AutoCommandBar name="СписокВариантовКоманднаяПанель" id="3">
<Autofill>false</Autofill>
</AutoCommandBar>
<ExtendedTooltip name="СписокВариантовРасширеннаяПодсказка" id="4"/>
<SearchStringAddition name="СписокВариантовСтрокаПоиска" id="5">
<AdditionSource>
<Item>СписокВариантов</Item>
<Type>SearchStringRepresentation</Type>
</AdditionSource>
<ContextMenu name="СписокВариантовСтрокаПоискаКонтекстноеМеню" id="6"/>
<ExtendedTooltip name="СписокВариантовСтрокаПоискаРасширеннаяПодсказка" id="7"/>
</SearchStringAddition>
<ViewStatusAddition name="СписокВариантовСостояниеПросмотра" id="8">
<AdditionSource>
<Item>СписокВариантов</Item>
<Type>ViewStatusRepresentation</Type>
</AdditionSource>
<ContextMenu name="СписокВариантовСостояниеПросмотраКонтекстноеМеню" id="9"/>
<ExtendedTooltip name="СписокВариантовСостояниеПросмотраРасширеннаяПодсказка" id="10"/>
</ViewStatusAddition>
<SearchControlAddition name="СписокВариантовУправлениеПоиском" id="11">
<AdditionSource>
<Item>СписокВариантов</Item>
<Type>SearchControl</Type>
</AdditionSource>
<ContextMenu name="СписокВариантовУправлениеПоискомКонтекстноеМеню" id="12"/>
<ExtendedTooltip name="СписокВариантовУправлениеПоискомРасширеннаяПодсказка" id="13"/>
</SearchControlAddition>
<Events>
<Event name="Selection">СписокВариантовВыбор</Event>
<Event name="BeforeAddRow">СписокВариантовПередНачаломДобавления</Event>
</Events>
<ChildItems>
<InputField name="СписокВариантовЗначение" id="14">
<DataPath>СписокВариантов.Value</DataPath>
<Visible>false</Visible>
<ReadOnly>true</ReadOnly>
<EditMode>EnterOnInput</EditMode>
<ContextMenu name="СписокВариантовЗначениеКонтекстноеМеню" id="15"/>
<ExtendedTooltip name="СписокВариантовЗначениеРасширеннаяПодсказка" id="16"/>
</InputField>
<InputField name="СписокВариантовПредставление" id="17">
<DataPath>СписокВариантов.Presentation</DataPath>
<ReadOnly>true</ReadOnly>
<EditMode>EnterOnInput</EditMode>
<ContextMenu name="СписокВариантовПредставлениеКонтекстноеМеню" id="18"/>
<ExtendedTooltip name="СписокВариантовПредставлениеРасширеннаяПодсказка" id="19"/>
</InputField>
</ChildItems>
</Table>
</ChildItems>
<Attributes>
<Attribute name="СписокВариантов" id="1">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Список вариантов</v8:content>
</v8:item>
</Title>
<Type>
<v8:Type>v8:ValueListType</v8:Type>
</Type>
</Attribute>
<Attribute name="ОсновнойКлючВарианта" id="2">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Основной ключ варианта</v8:content>
</v8:item>
</Title>
<Type>
<v8:Type>xs:string</v8:Type>
<v8:StringQualifiers>
<v8:Length>0</v8:Length>
<v8:AllowedLength>Variable</v8:AllowedLength>
</v8:StringQualifiers>
</Type>
</Attribute>
</Attributes>
<Commands>
<Command name="ЗагрузитьКоманда" id="1">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>ОК</v8:content>
</v8:item>
</Title>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Загрузить</v8:content>
</v8:item>
</ToolTip>
<Action>ЗагрузитьКоманда</Action>
</Command>
<Command name="УдалитьВариантКоманда" id="2">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Удалить выбранный вариант</v8:content>
</v8:item>
</Title>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Удалить вариант команда</v8:content>
</v8:item>
</ToolTip>
<Picture>
<xr:Ref>StdPicture.Delete</xr:Ref>
<xr:LoadTransparent>true</xr:LoadTransparent>
</Picture>
<Action>УдалитьВариантКоманда</Action>
<Representation>TextPicture</Representation>
</Command>
<Command name="КомандаЗакрыть" id="3">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Закрыть</v8:content>
</v8:item>
</Title>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Команда закрыть</v8:content>
</v8:item>
</ToolTip>
<Action>КомандаЗакрыть</Action>
</Command>
</Commands>
</Form>

View File

@ -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
&НаСервере
Процедура УдалитьВариантНаСервере(ТекущиеДанные)
Пользователь = Пользователи.ТекущийПользователь();
ХранилищеОбщихНастроек.Удалить(ТекущиеДанные.Значение, ТекущиеДанные.Значение, "" + Пользователь);
СписокВариантов = Обработки.узКанбанДоска.ПолучитьСписокВариантов(ОсновнойКлючВарианта);
КонецПроцедуры
&НаКлиенте
Процедура КомандаЗакрыть(Команда)
Закрыть();
КонецПроцедуры
#КонецОбласти

View File

@ -0,0 +1,22 @@
<?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.15">
<Form uuid="df53397c-9c50-41bf-b022-39d0c117758e">
<Properties>
<Name>ФормаСохраненияВарианта</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Форма сохранения варианта (ВС)</v8:content>
</v8:item>
</Synonym>
<Comment>// [+] #283 Мальков М.В. 2023-01-30</Comment>
<FormType>Managed</FormType>
<IncludeHelpInContents>false</IncludeHelpInContents>
<UsePurposes>
<v8:Value xsi:type="app:ApplicationUsePurpose">PlatformApplication</v8:Value>
<v8:Value xsi:type="app:ApplicationUsePurpose">MobilePlatformApplication</v8:Value>
</UsePurposes>
<ExtendedPresentation/>
</Properties>
</Form>
</MetaDataObject>

View File

@ -0,0 +1,209 @@
<?xml version="1.0" encoding="UTF-8"?>
<Form xmlns="http://v8.1c.ru/8.3/xcf/logform" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" 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: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.15">
<CommandBarLocation>Bottom</CommandBarLocation>
<AutoCommandBar name="ФормаКоманднаяПанель" id="-1">
<HorizontalAlign>Right</HorizontalAlign>
<Autofill>false</Autofill>
<ChildItems>
<Button name="ФормаСохранитьКоманда" id="23">
<Type>CommandBarButton</Type>
<DefaultButton>true</DefaultButton>
<CommandName>Form.Command.СохранитьКоманда</CommandName>
<ExtendedTooltip name="ФормаСохранитьКомандаРасширеннаяПодсказка" id="24"/>
</Button>
</ChildItems>
</AutoCommandBar>
<Events>
<Event name="OnCreateAtServer">ПриСозданииНаСервере</Event>
</Events>
<ChildItems>
<Table name="СписокВариантов" id="1">
<Representation>List</Representation>
<ChangeRowSet>false</ChangeRowSet>
<ChangeRowOrder>false</ChangeRowOrder>
<Header>false</Header>
<HorizontalLines>false</HorizontalLines>
<VerticalLines>false</VerticalLines>
<AutoInsertNewRow>true</AutoInsertNewRow>
<DataPath>СписокВариантов</DataPath>
<RowPictureDataPath>СписокВариантов.Picture</RowPictureDataPath>
<CommandSet>
<ExcludedCommand>Add</ExcludedCommand>
<ExcludedCommand>CancelSearch</ExcludedCommand>
<ExcludedCommand>Change</ExcludedCommand>
<ExcludedCommand>CheckAll</ExcludedCommand>
<ExcludedCommand>Copy</ExcludedCommand>
<ExcludedCommand>CopyToClipboard</ExcludedCommand>
<ExcludedCommand>Delete</ExcludedCommand>
<ExcludedCommand>EndEdit</ExcludedCommand>
<ExcludedCommand>Find</ExcludedCommand>
<ExcludedCommand>FindByCurrentValue</ExcludedCommand>
<ExcludedCommand>MoveDown</ExcludedCommand>
<ExcludedCommand>MoveUp</ExcludedCommand>
<ExcludedCommand>Pickup</ExcludedCommand>
<ExcludedCommand>SearchEverywhere</ExcludedCommand>
<ExcludedCommand>SearchHistory</ExcludedCommand>
<ExcludedCommand>SelectAll</ExcludedCommand>
<ExcludedCommand>ShowMultipleSelection</ExcludedCommand>
<ExcludedCommand>ShowRowRearrangement</ExcludedCommand>
<ExcludedCommand>SortListAsc</ExcludedCommand>
<ExcludedCommand>SortListDesc</ExcludedCommand>
<ExcludedCommand>UncheckAll</ExcludedCommand>
</CommandSet>
<ContextMenu name="СписокВариантовКонтекстноеМеню" id="2"/>
<AutoCommandBar name="СписокВариантовКоманднаяПанель" id="3">
<Autofill>false</Autofill>
</AutoCommandBar>
<ExtendedTooltip name="СписокВариантовРасширеннаяПодсказка" id="4"/>
<SearchStringAddition name="СписокВариантовСтрокаПоиска" id="5">
<AdditionSource>
<Item>СписокВариантов</Item>
<Type>SearchStringRepresentation</Type>
</AdditionSource>
<ContextMenu name="СписокВариантовСтрокаПоискаКонтекстноеМеню" id="6"/>
<ExtendedTooltip name="СписокВариантовСтрокаПоискаРасширеннаяПодсказка" id="7"/>
</SearchStringAddition>
<ViewStatusAddition name="СписокВариантовСостояниеПросмотра" id="8">
<AdditionSource>
<Item>СписокВариантов</Item>
<Type>ViewStatusRepresentation</Type>
</AdditionSource>
<ContextMenu name="СписокВариантовСостояниеПросмотраКонтекстноеМеню" id="9"/>
<ExtendedTooltip name="СписокВариантовСостояниеПросмотраРасширеннаяПодсказка" id="10"/>
</ViewStatusAddition>
<SearchControlAddition name="СписокВариантовУправлениеПоиском" id="11">
<AdditionSource>
<Item>СписокВариантов</Item>
<Type>SearchControl</Type>
</AdditionSource>
<ContextMenu name="СписокВариантовУправлениеПоискомКонтекстноеМеню" id="12"/>
<ExtendedTooltip name="СписокВариантовУправлениеПоискомРасширеннаяПодсказка" id="13"/>
</SearchControlAddition>
<Events>
<Event name="BeforeAddRow">СписокВариантовПередНачаломДобавления</Event>
<Event name="OnActivateRow">СписокВариантовПриАктивизацииСтроки</Event>
</Events>
<ChildItems>
<InputField name="СписокВариантовЗначение" id="14">
<DataPath>СписокВариантов.Value</DataPath>
<Visible>false</Visible>
<ReadOnly>true</ReadOnly>
<EditMode>EnterOnInput</EditMode>
<ContextMenu name="СписокВариантовЗначениеКонтекстноеМеню" id="15"/>
<ExtendedTooltip name="СписокВариантовЗначениеРасширеннаяПодсказка" id="16"/>
</InputField>
<InputField name="СписокВариантовПредставление" id="20">
<DataPath>СписокВариантов.Presentation</DataPath>
<ReadOnly>true</ReadOnly>
<EditMode>EnterOnInput</EditMode>
<ContextMenu name="СписокВариантовПредставлениеКонтекстноеМеню" id="21"/>
<ExtendedTooltip name="СписокВариантовПредставлениеРасширеннаяПодсказка" id="22"/>
</InputField>
</ChildItems>
</Table>
<InputField name="Вариант" id="17">
<DataPath>Вариант</DataPath>
<TitleLocation>None</TitleLocation>
<ContextMenu name="ВариантКонтекстноеМеню" id="18"/>
<ExtendedTooltip name="ВариантРасширеннаяПодсказка" id="19"/>
<Events>
<Event name="OnChange">ВариантПриИзменении</Event>
</Events>
</InputField>
</ChildItems>
<Attributes>
<Attribute name="СписокВариантов" id="1">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Список вариантов</v8:content>
</v8:item>
</Title>
<Type>
<v8:Type>v8:ValueListType</v8:Type>
</Type>
</Attribute>
<Attribute name="Вариант" id="2">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Вариант</v8:content>
</v8:item>
</Title>
<Type>
<v8:Type>xs:string</v8:Type>
<v8:StringQualifiers>
<v8:Length>0</v8:Length>
<v8:AllowedLength>Variable</v8:AllowedLength>
</v8:StringQualifiers>
</Type>
</Attribute>
<Attribute name="ОсновнойКлючВарианта" id="3">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Основной ключ варианта</v8:content>
</v8:item>
</Title>
<Type>
<v8:Type>xs:string</v8:Type>
<v8:StringQualifiers>
<v8:Length>0</v8:Length>
<v8:AllowedLength>Variable</v8:AllowedLength>
</v8:StringQualifiers>
</Type>
</Attribute>
<Attribute name="ТекущийКлючВарианта" id="4">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Текущий ключ варианта</v8:content>
</v8:item>
</Title>
<Type>
<v8:Type>xs:string</v8:Type>
<v8:StringQualifiers>
<v8:Length>0</v8:Length>
<v8:AllowedLength>Variable</v8:AllowedLength>
</v8:StringQualifiers>
</Type>
</Attribute>
<Attribute name="Ключ" id="5">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Ключ</v8:content>
</v8:item>
</Title>
<Type>
<v8:Type>xs:string</v8:Type>
<v8:StringQualifiers>
<v8:Length>0</v8:Length>
<v8:AllowedLength>Variable</v8:AllowedLength>
</v8:StringQualifiers>
</Type>
</Attribute>
</Attributes>
<Commands>
<Command name="СохранитьКоманда" id="1">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Сохранить</v8:content>
</v8:item>
</Title>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Сохранить</v8:content>
</v8:item>
</ToolTip>
<Picture>
<xr:Ref>StdPicture.Write</xr:Ref>
<xr:LoadTransparent>true</xr:LoadTransparent>
</Picture>
<Action>СохранитьКоманда</Action>
<Representation>TextPicture</Representation>
</Command>
</Commands>
</Form>

View File

@ -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
И СписокВариантов.НайтиПоЗначению(ТекущийКлючВарианта) <> Неопределено Тогда
Строка = СписокВариантов.НайтиПоЗначению(ТекущийКлючВарианта);
Вариант = Строка.Представление;
Ключ = ТекущийКлючВарианта;
КонецЕсли;
КонецПроцедуры
#КонецОбласти