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

#2 Динамическая форма канбан доски

This commit is contained in:
Anton Ivanov 2017-02-04 18:17:19 +03:00
parent 9b7cd098f2
commit 0d730cde24
5 changed files with 219 additions and 71 deletions

View File

@ -466,6 +466,42 @@
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
</Properties>
</Attribute>
<Attribute uuid="54a39dde-be0c-4473-8355-2f2cc73f8363">
<Properties>
<Name>ИзмененЦветПоУмолчанию</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Изменен цвет по умолчанию</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Type>
<v8:Type>xs:boolean</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"/>
<FillFromFillingValue>false</FillFromFillingValue>
<FillValue xsi:nil="true"/>
<FillChecking>DontCheck</FillChecking>
<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
<ChoiceParameterLinks/>
<ChoiceParameters/>
<QuickChoice>Auto</QuickChoice>
<CreateOnInput>Auto</CreateOnInput>
<ChoiceForm/>
<LinkByType/>
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
</Properties>
</Attribute>
</ChildObjects>
</TabularSection>
<TabularSection uuid="fc9c0693-c970-4285-be29-6fac7fdd05e6">

View File

@ -84,8 +84,8 @@
| узСтатусыЗадачи.ИмяПредопределенныхДанных
|ИЗ
| Справочник.узСтатусыЗадачи КАК узСтатусыЗадачи
//|ГДЕ
//| узСтатусыЗадачи.Предопределенный
|ГДЕ
| узСтатусыЗадачи.Предопределенный
|
|УПОРЯДОЧИТЬ ПО
| узСтатусыЗадачи.РеквизитДопУпорядочивания";

View File

@ -8,6 +8,7 @@
<Event name="NotificationProcessing">ОбработкаОповещения</Event>
<Event name="OnOpen">ПриОткрытии</Event>
<Event name="OnCreateAtServer">ПриСозданииНаСервере</Event>
<Event name="OnClose">ПриЗакрытии</Event>
</Events>
<ChildItems>
<Pages name="ГруппаСтраницы" id="1">
@ -279,11 +280,11 @@
<v8:Type>dcsset:SettingsComposer</v8:Type>
</Type>
</Attribute>
<Attribute name="НастройкиТЧДляАктивацииПервойСтроки" id="4">
<Attribute name="СтруктураТЧДляСнятияФокусаСЗадач" id="4">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Настройки ТЧДля активации первой строки</v8:content>
<v8:content>Структура ТЧДля снятия фокуса с задач</v8:content>
</v8:item>
</Title>
<Type/>
@ -299,6 +300,15 @@
<v8:Type>xs:boolean</v8:Type>
</Type>
</Attribute>
<Attribute name="СтруктураИменИспользуемыхТЧ" id="6">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Структура имен используемых ТЧ</v8:content>
</v8:item>
</Title>
<Type/>
</Attribute>
</Attributes>
<Commands>
<Command name="КомандаДобавитьВСпринт" id="1">

View File

@ -10,7 +10,7 @@
ЗагрузитьСохраненныеНастройки(пНастройкиКомпоновщика);
НастройкиТЧДляАктивацииПервойСтроки = Новый Структура();
СтруктураТЧДляСнятияФокусаСЗадач = Новый Структура();
ОпределитьОтборНаСервере(пНастройкиКомпоновщика);
Попытка
@ -29,6 +29,7 @@
&НаКлиенте
Процедура ТЧНастройкиКолонокПриИзменении(Элемент)
СгенирироватьФормуЗаново = Истина;
КонецПроцедуры
&НаКлиенте
@ -63,6 +64,8 @@
&НаКлиенте
Процедура ПриОткрытии(Отказ)
ПодключитьОбработчикОжидания("ЗаполнитьЗадачиНаКлиенте", 180);
УбратьИзКонтекстногоМенюЛишниеКнопкиНаСервере();
КонецПроцедуры
#КонецОбласти
@ -73,6 +76,8 @@
Процедура СгенерироватьФорму()
УдалитьДинамическиеЭлементы();
///// РЕКВИЗИТЫ //////////
СтруктураИменИспользуемыхТЧ = Новый Структура();
МассивДобавляемыхРеквизитов = Новый Массив;
@ -87,6 +92,7 @@
пСтатус = СтрокаТЧНастройкиКолонок.Статус;
ДобавитьНаКанбанДоскуКолонку(пСтатус);
Конеццикла;
СгенирироватьФормуЗаново = Ложь;
КонецПроцедуры
@ -111,30 +117,30 @@
&НаСервере
Функция ПолучитьПрефиксДляИмениЭлементовКолонок()
Возврат "Динамич_";
Возврат "_Колонка_";
КонецФункции
&НаСервере
Процедура ДобавитьНаКанбанДоскуКолонку(пСтатус)
ИмяКолонки = ПолучитьИмяКолонки(пСтатус);
ПредставлениеКолонки = пСтатус.Наименование;
пЭлементыФормы = Этаформа.Элементы;
ПрефиксДляИмениЭлементовКолонок = ПолучитьПрефиксДляИмениЭлементовКолонок();
// ****** Группа формы "Группа для колонки статуса" ***********
ИмяГруппыКолонки = ПрефиксДляИмениЭлементовКолонок + ИмяКолонки + "_Группа";
ИменаЭлементов = ПолучитьИменаЭлементовДляКолонки(пСтатус);
пЭлементГруппаКолонка = пЭлементыФормы.Вставить(ИмяГруппыКолонки,Тип("ГруппаФормы"),пЭлементыФормы.ГруппаКанбанДоска);
пЭлементГруппаКолонка = пЭлементыФормы.Вставить(ИменаЭлементов.ИмяГруппыКолонки,Тип("ГруппаФормы"),пЭлементыФормы.ГруппаКанбанДоска);
пЭлементГруппаКолонка.Вид = ВидГруппыФормы.ОбычнаяГруппа;
пЭлементГруппаКолонка.Заголовок = ПредставлениеКолонки;
пЭлементГруппаКолонка.Подсказка = ПредставлениеКолонки;
пЭлементГруппаКолонка.Отображение = ОтображениеОбычнойГруппы.СлабоеВыделение;
// ****** Таблица формы "ТЧЗадачи" для статуса ***********
ИмяТЧЗадачи = ИмяКолонки + "_ТЧЗадачи";
пЭлементТЧЗадачи = пЭлементыФормы.Вставить(ИмяТЧЗадачи,Тип("ТаблицаФормы"),пЭлементГруппаКолонка,Неопределено);
СтруктураИменИспользуемыхТЧ.Вставить(ИменаЭлементов.ИмяТЧЗадачи);
пЭлементТЧЗадачи = пЭлементыФормы.Вставить(ИменаЭлементов.ИмяТЧЗадачи,Тип("ТаблицаФормы"),пЭлементГруппаКолонка,Неопределено);
пЭлементТЧЗадачи.ПутьКДанным = "Объект.ТЧЗадачи";
пЭлементТЧЗадачи.АвтоВводНовойСтроки = Истина;
пЭлементТЧЗадачи.ГоризонтальнаяПолосаПрокрутки = ИспользованиеПолосыПрокрутки.НеИспользовать;
@ -149,60 +155,46 @@
пЭлементТЧЗадачи.УстановитьДействие("Перетаскивание","ТЧЗадачиПеретаскивание");
пЭлементТЧЗадачи.КоманднаяПанель.Видимость = Ложь;
// ****** Команды из контекстного меню "ТЧЗадачи" ***********
ИмяКомандыДобавитьВСпринт = ИмяКолонки + "_ТЧЗадачи_КомандаДобавитьВСпринт";
пКомандаДобавитьВСпринт = пЭлементыФормы.Добавить(ИмяКомандыДобавитьВСпринт, Тип("КнопкаФормы"), пЭлементТЧЗадачи.КонтекстноеМеню);
пКомандаДобавитьВСпринт = пЭлементыФормы.Добавить(ИменаЭлементов.ИмяКомандыДобавитьВСпринт, Тип("КнопкаФормы"), пЭлементТЧЗадачи.КонтекстноеМеню);
пКомандаДобавитьВСпринт.Заголовок="Добавить в спринт";
пКомандаДобавитьВСпринт.ИмяКоманды="КомандаДобавитьВСпринт";
пКомандаДобавитьВСпринт.Отображение = ОтображениеКнопки.КартинкаИТекст;
ИмяКомандыУбратьИзСпринта = ИмяКолонки + "_ТЧЗадачи_КомандаУбратьИзСпринта";
пКомандаУбратьИзСпринта = пЭлементыФормы.Добавить(ИмяКомандыУбратьИзСпринта, Тип("КнопкаФормы"), пЭлементТЧЗадачи.КонтекстноеМеню);
пКомандаУбратьИзСпринта = пЭлементыФормы.Добавить(ИменаЭлементов.ИмяКомандыУбратьИзСпринта, Тип("КнопкаФормы"), пЭлементТЧЗадачи.КонтекстноеМеню);
пКомандаУбратьИзСпринта.Заголовок="Убрать из спринта";
пКомандаУбратьИзСпринта.ИмяКоманды="КомандаУбратьИзСпринта";
пКомандаУбратьИзСпринта.Отображение = ОтображениеКнопки.КартинкаИТекст;
ИмяКомандыСледитьЗаЗадачей = ИмяКолонки + "_ТЧЗадачи_КомандаСледитьЗаЗадачей";
пКомандаСледитьЗаЗадачей = пЭлементыФормы.Добавить(ИмяКомандыСледитьЗаЗадачей, Тип("КнопкаФормы"), пЭлементТЧЗадачи.КонтекстноеМеню);
пКомандаСледитьЗаЗадачей = пЭлементыФормы.Добавить(ИменаЭлементов.ИмяКомандыСледитьЗаЗадачей, Тип("КнопкаФормы"), пЭлементТЧЗадачи.КонтекстноеМеню);
пКомандаСледитьЗаЗадачей.Заголовок="Следить за задачей";
пКомандаСледитьЗаЗадачей.ИмяКоманды="КомандаСледитьЗаЗадачей";
пКомандаСледитьЗаЗадачей.Отображение = ОтображениеКнопки.КартинкаИТекст;
ИмяКомандыНеСледитьЗаЗадачей = ИмяКолонки + "_ТЧЗадачи_КомандаНеСледитьЗаЗадачей";
пКомандаНеСледитьЗаЗадачей = пЭлементыФормы.Добавить(ИмяКомандыНеСледитьЗаЗадачей, Тип("КнопкаФормы"), пЭлементТЧЗадачи.КонтекстноеМеню);
пКомандаНеСледитьЗаЗадачей = пЭлементыФормы.Добавить(ИменаЭлементов.ИмяКомандыНеСледитьЗаЗадачей, Тип("КнопкаФормы"), пЭлементТЧЗадачи.КонтекстноеМеню);
пКомандаНеСледитьЗаЗадачей.Заголовок="Не следить за задачей";
пКомандаНеСледитьЗаЗадачей.ИмяКоманды="КомандаНеСледитьЗаЗадачей";
пКомандаНеСледитьЗаЗадачей.Отображение = ОтображениеКнопки.КартинкаИТекст;
// ****** Группа формы "Карточка задачи" ***********
ИмяКарточкаЗадачи = ИмяКолонки + "_ТЧЗадачиКарточкаЗадачи";
пЭлементКарточкаЗадачи = пЭлементыФормы.Вставить(ИмяКарточкаЗадачи,Тип("ГруппаФормы"),пЭлементТЧЗадачи,Неопределено);
пЭлементКарточкаЗадачи = пЭлементыФормы.Вставить(ИменаЭлементов.ИмяКарточкаЗадачи,Тип("ГруппаФормы"),пЭлементТЧЗадачи,Неопределено);
пЭлементКарточкаЗадачи.Вид = ВидГруппыФормы.ГруппаКолонок;
пЭлементКарточкаЗадачи.Заголовок = "ТЧЗадачи "+ПредставлениеКолонки;
пЭлементКарточкаЗадачи.Подсказка = "ТЧЗадачи "+ПредставлениеКолонки;
// ****** Группа формы "Карточка задачи нижняя часть" ***********
ИмяКарточкаЗадачи_НижняяЧасть = ИмяКолонки + "_ТЧЗадачиКарточкаЗадачи_НижняяЧасть";
пЭлементКарточкаЗадачи_НижняяЧасть = пЭлементыФормы.Вставить(ИмяКарточкаЗадачи_НижняяЧасть,Тип("ГруппаФормы"),пЭлементКарточкаЗадачи,Неопределено);
пЭлементКарточкаЗадачи_НижняяЧасть = пЭлементыФормы.Вставить(ИменаЭлементов.ИмяКарточкаЗадачи_НижняяЧасть,Тип("ГруппаФормы"),пЭлементКарточкаЗадачи,Неопределено);
пЭлементКарточкаЗадачи_НижняяЧасть.Вид = ВидГруппыФормы.ГруппаКолонок;
пЭлементКарточкаЗадачи_НижняяЧасть.Заголовок = "ТЧЗадачи "+ПредставлениеКолонки;
пЭлементКарточкаЗадачи_НижняяЧасть.Подсказка = "ТЧЗадачи "+ПредставлениеКолонки;
пЭлементКарточкаЗадачи_НижняяЧасть.Группировка = ГруппировкаКолонок.Горизонтальная;
// ****** Поле формы "Задача в карточке задачи нижняя часть" ***********
ИмяПоляЗадачиВКарточкеЗадачи = ИмяКолонки + "_ТЧЗадачи_НижняяЧасть_Задача";
пЭлементПолеЗадачиВКарточкеЗадачи = пЭлементыФормы.Вставить(ИмяПоляЗадачиВКарточкеЗадачи,Тип("ПолеФормы"),пЭлементКарточкаЗадачи_НижняяЧасть,Неопределено);
пЭлементПолеЗадачиВКарточкеЗадачи = пЭлементыФормы.Вставить(ИменаЭлементов.ИмяПоляЗадачиВКарточкеЗадачи,Тип("ПолеФормы"),пЭлементКарточкаЗадачи_НижняяЧасть,Неопределено);
пЭлементПолеЗадачиВКарточкеЗадачи.Вид = ВидПоляФормы.ПолеВвода;
пЭлементПолеЗадачиВКарточкеЗадачи.ПутьКДанным = "Объект.ТЧЗадачи.Задача";
пЭлементПолеЗадачиВКарточкеЗадачи.КнопкаВыпадающегоСписка = Ложь;
@ -210,36 +202,83 @@
пЭлементПолеЗадачиВКарточкеЗадачи.Высота = 3;
// ****** Группа формы "Карточка задачи верхняя часть" ***********
ИмяКарточкаЗадачи_ВерхняяЧасть = ИмяКолонки +"_ТЧЗадачи_ВерхняяЧасть";
пЭлементКарточкаЗадачи_ВерхняяЧасть = пЭлементыФормы.Вставить(ИмяКарточкаЗадачи_ВерхняяЧасть,Тип("ГруппаФормы"),пЭлементКарточкаЗадачи,пЭлементКарточкаЗадачи_НижняяЧасть);
пЭлементКарточкаЗадачи_ВерхняяЧасть = пЭлементыФормы.Вставить(ИменаЭлементов.ИмяКарточкаЗадачи_ВерхняяЧасть,Тип("ГруппаФормы"),пЭлементКарточкаЗадачи,пЭлементКарточкаЗадачи_НижняяЧасть);
пЭлементКарточкаЗадачи_ВерхняяЧасть.Вид = ВидГруппыФормы.ГруппаКолонок;
пЭлементКарточкаЗадачи_ВерхняяЧасть.Заголовок = "ТЧЗадачи_ВерхняяЧасть"+ПредставлениеКолонки;
пЭлементКарточкаЗадачи_ВерхняяЧасть.Подсказка = "ТЧЗадачи_ВерхняяЧасть"+ПредставлениеКолонки;
пЭлементКарточкаЗадачи_ВерхняяЧасть.Группировка = ГруппировкаКолонок.ВЯчейке;
// ****** Поле формы "Короткое имя в карточке задачи верхняя часть" ***********
ИмяПоляКороткоеИмяВКарточкеЗадачи = ИмяКолонки + "_ТЧЗадачи_ВерхняяЧасть_КороткоеИмя";
пЭлементПолеКороткоеИмяВКарточкеЗадачи = пЭлементыФормы.Вставить(ИмяПоляКороткоеИмяВКарточкеЗадачи,Тип("ПолеФормы"),пЭлементКарточкаЗадачи_ВерхняяЧасть,Неопределено);
пЭлементПолеКороткоеИмяВКарточкеЗадачи = пЭлементыФормы.Вставить(ИменаЭлементов.ИмяПоляКороткоеИмяВКарточкеЗадачи,Тип("ПолеФормы"),пЭлементКарточкаЗадачи_ВерхняяЧасть,Неопределено);
пЭлементПолеКороткоеИмяВКарточкеЗадачи.Вид = ВидПоляФормы.ПолеВвода;
пЭлементПолеКороткоеИмяВКарточкеЗадачи.ПутьКДанным = "Объект.ТЧЗадачи.КороткоеИмя";
// ****** Поле формы "Основная задача в карточке задачи верхняя часть" ***********
ИмяПоляОсновнаяЗадачаПредставлениеИмяВКарточкеЗадачи = ИмяКолонки +"_ТЧЗадачи_ВерхняяЧасть_ОсновнаяЗадачаПредставление";
пЭлементПолеОсновнаяЗадачаПредставлениеВКарточкеЗадачи = пЭлементыФормы.Вставить(ИмяПоляОсновнаяЗадачаПредставлениеИмяВКарточкеЗадачи,Тип("ПолеФормы"),пЭлементКарточкаЗадачи_ВерхняяЧасть,пЭлементПолеКороткоеИмяВКарточкеЗадачи);
пЭлементПолеОсновнаяЗадачаПредставлениеВКарточкеЗадачи = пЭлементыФормы.Вставить(
ИменаЭлементов.ИмяПоляОсновнаяЗадачаПредставлениеВКарточкеЗадачи,
Тип("ПолеФормы"),
пЭлементКарточкаЗадачи_ВерхняяЧасть,
пЭлементПолеКороткоеИмяВКарточкеЗадачи);
пЭлементПолеОсновнаяЗадачаПредставлениеВКарточкеЗадачи.Вид = ВидПоляФормы.ПолеВвода;
пЭлементПолеОсновнаяЗадачаПредставлениеВКарточкеЗадачи.ПутьКДанным = "Объект.ТЧЗадачи.ОсновнаяЗадачаПредставление";
// ****** Поле формы "Номер задачи в карточке задачи верхняя часть" ***********
ИмяПоляНомерЗадачиПредставлениеПредставлениеИмяВКарточкеЗадачи = ИмяКолонки+"_ТЧЗадачи_ВерхняяЧасть_НомерЗадачиПредставление";
пЭлементПолеНомерЗадачиПредставлениеВКарточкеЗадачи = пЭлементыФормы.Вставить(ИмяПоляНомерЗадачиПредставлениеПредставлениеИмяВКарточкеЗадачи,Тип("ПолеФормы"),пЭлементКарточкаЗадачи_ВерхняяЧасть,пЭлементПолеОсновнаяЗадачаПредставлениеВКарточкеЗадачи);
пЭлементПолеНомерЗадачиПредставлениеВКарточкеЗадачи = пЭлементыФормы.Вставить(
ИменаЭлементов.ИмяПоляНомерЗадачиПредставлениеВКарточкеЗадачи,
Тип("ПолеФормы"),
пЭлементКарточкаЗадачи_ВерхняяЧасть,
пЭлементПолеОсновнаяЗадачаПредставлениеВКарточкеЗадачи);
пЭлементПолеНомерЗадачиПредставлениеВКарточкеЗадачи.Вид = ВидПоляФормы.ПолеВвода;
пЭлементПолеНомерЗадачиПредставлениеВКарточкеЗадачи.ПутьКДанным = "Объект.ТЧЗадачи.НомерЗадачиПредставление";
КонецПроцедуры
&НаСервере
Функция ПолучитьИменаЭлементовДляКолонки(пСтатус)
ИмяКолонки = ПолучитьИмяКолонки(пСтатус);
ПрефиксДляИмениЭлементовКолонок = ПолучитьПрефиксДляИмениЭлементовКолонок();
ИмяГруппыКолонки = ПрефиксДляИмениЭлементовКолонок + ИмяКолонки + "_Группа";
ИмяТЧЗадачи = ИмяКолонки + "_ТЧЗадачи";
ИмяКомандыДобавитьВСпринт = ИмяКолонки + "_ТЧЗадачи_КомандаДобавитьВСпринт";
ИмяКомандыУбратьИзСпринта = ИмяКолонки + "_ТЧЗадачи_КомандаУбратьИзСпринта";
ИмяКомандыСледитьЗаЗадачей = ИмяКолонки + "_ТЧЗадачи_КомандаСледитьЗаЗадачей";
ИмяКомандыНеСледитьЗаЗадачей = ИмяКолонки + "_ТЧЗадачи_КомандаНеСледитьЗаЗадачей";
ИмяКарточкаЗадачи = ИмяКолонки + "_ТЧЗадачиКарточкаЗадачи";
ИмяКарточкаЗадачи_НижняяЧасть = ИмяКолонки + "_ТЧЗадачиКарточкаЗадачи_НижняяЧасть";
ИмяПоляЗадачиВКарточкеЗадачи = ИмяКолонки + "_ТЧЗадачи_НижняяЧасть_Задача";
ИмяКарточкаЗадачи_ВерхняяЧасть = ИмяКолонки +"_ТЧЗадачи_ВерхняяЧасть";
ИмяПоляКороткоеИмяВКарточкеЗадачи = ИмяКолонки + "_ТЧЗадачи_ВерхняяЧасть_КороткоеИмя";
ИмяПоляОсновнаяЗадачаПредставлениеВКарточкеЗадачи = ИмяКолонки +"_ТЧЗадачи_ВерхняяЧасть_ОсновнаяЗадачаПредставление";
ИмяПоляНомерЗадачиПредставлениеВКарточкеЗадачи = ИмяКолонки+"_ТЧЗадачи_ВерхняяЧасть_НомерЗадачиПредставление";
РезультатФункции = Новый Структура();
РезультатФункции.Вставить("ИмяГруппыКолонки",ИмяГруппыКолонки);
РезультатФункции.Вставить("ИмяТЧЗадачи",ИмяТЧЗадачи);
РезультатФункции.Вставить("ИмяКомандыДобавитьВСпринт",ИмяКомандыДобавитьВСпринт);
РезультатФункции.Вставить("ИмяКомандыУбратьИзСпринта",ИмяКомандыУбратьИзСпринта);
РезультатФункции.Вставить("ИмяКомандыСледитьЗаЗадачей",ИмяКомандыСледитьЗаЗадачей);
РезультатФункции.Вставить("ИмяКомандыНеСледитьЗаЗадачей",ИмяКомандыНеСледитьЗаЗадачей);
РезультатФункции.Вставить("ИмяКарточкаЗадачи",ИмяКарточкаЗадачи);
РезультатФункции.Вставить("ИмяКарточкаЗадачи_НижняяЧасть",ИмяКарточкаЗадачи_НижняяЧасть);
РезультатФункции.Вставить("ИмяПоляЗадачиВКарточкеЗадачи",ИмяПоляЗадачиВКарточкеЗадачи);
РезультатФункции.Вставить("ИмяКарточкаЗадачи_ВерхняяЧасть",ИмяКарточкаЗадачи_ВерхняяЧасть);
РезультатФункции.Вставить("ИмяПоляКороткоеИмяВКарточкеЗадачи",ИмяПоляКороткоеИмяВКарточкеЗадачи);
РезультатФункции.Вставить("ИмяПоляОсновнаяЗадачаПредставлениеВКарточкеЗадачи",ИмяПоляОсновнаяЗадачаПредставлениеВКарточкеЗадачи);
РезультатФункции.Вставить("ИмяПоляНомерЗадачиПредставлениеВКарточкеЗадачи",ИмяПоляНомерЗадачиПредставлениеВКарточкеЗадачи);
Возврат РезультатФункции;
КонецФункции
&НаСервере
Функция ПолучитьИмяКолонки(пСтатус)
пИмяКолонки = "";
@ -267,6 +306,64 @@
Возврат пИмяКолонки;
КонецФункции
&НаСервере
Процедура УбратьИзКонтекстногоМенюЛишниеКнопкиНаСервере()
//Возврат;
МассивКоманд = Новый Массив();
МассивКоманд.Добавить("КонтекстноеМенюИзменить");
МассивКоманд.Добавить("КонтекстноеМенюКопироватьВБуферОбмена");
МассивКоманд.Добавить("КонтекстноеМенюСкопировать");
МассивКоманд.Добавить("КонтекстноеМенюУдалить");
ГруппаКопированиеИВыделение = "КонтекстноеМенюКопированиеИВыделение";
Команда_КонтекстноеМенюКопироватьВБуферОбмена = "КонтекстноеМенюКопироватьВБуферОбмена";
//Элементы.В_процессе_выполнения_ТЧЗадачи.КонтекстноеМеню.ПодчиненныеЭлементы
Для каждого СтрокаТЧНастройкиКолонок из Объект.ТЧНастройкиКолонок цикл
Если НЕ СтрокаТЧНастройкиКолонок.Видимость Тогда
Продолжить;
Конецесли;
пСтатус = СтрокаТЧНастройкиКолонок.Статус;
ИменаЭлементов = ПолучитьИменаЭлементовДляКолонки(пСтатус);
ИмяТЧЗадачи = ИменаЭлементов.ИмяТЧЗадачи;
пЭлементТЧЗадачи = Элементы[ИмяТЧЗадачи];
Для каждого пКоманда из пЭлементТЧЗадачи.КонтекстноеМеню.ПодчиненныеЭлементы цикл
ТипЗнчКоманда = ТипЗнч(пКоманда);
пИмяКоманды = пКоманда.Имя;
Если ТипЗнчКоманда = Тип("КнопкаФормы") Тогда
Для каждого ЭлМассивКоманд из МассивКоманд цикл
Если СтрНайти(пИмяКоманды,ЭлМассивКоманд) = 0 Тогда
Продолжить;
Конецесли;
пКоманда.Видимость = Ложь;
Прервать;
Конеццикла;
Конецесли;
Если ТипЗнчКоманда = Тип("ГруппаФормы")
И СтрНайти(пИмяКоманды,ГруппаКопированиеИВыделение) > 0 Тогда
Для каждого пКомандаКопированияИВыделения из пКоманда.ПодчиненныеЭлементы цикл
Если СтрНайти(пКомандаКопированияИВыделения.Имя,Команда_КонтекстноеМенюКопироватьВБуферОбмена) = 0 Тогда
Продолжить;
Конецесли;
пКомандаКопированияИВыделения.Видимость = Ложь;
Конеццикла;
Конецесли;
Конеццикла;
Конеццикла;
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
@ -377,15 +474,13 @@
&НаКлиенте
Процедура ОчиститьАктивизацииСтрок(ИсключитьИмяТЧ = Неопределено)
Для каждого НастройкаАктивации из НастройкиТЧДляАктивацииПервойСтроки цикл
ИмяТЧ = НастройкаАктивации.Ключ;
Если ИмяТЧ = ИсключитьИмяТЧ Тогда
Для каждого ЭлСтруктураТЧДляСнятияФокусаСЗадач из СтруктураТЧДляСнятияФокусаСЗадач цикл
ИмяТЧЗадачи = ЭлСтруктураТЧДляСнятияФокусаСЗадач.Ключ;
Если ИмяТЧЗадачи = ИсключитьИмяТЧ Тогда
Продолжить;
Конецесли;
//Если Элементы.Найти[ИмяТЧ] = Неопределено Тогда
// Продолжить;
//Конецесли;
Элементы[ИмяТЧ].ВыделенныеСтроки.Очистить();
Элементы[ИмяТЧЗадачи].ВыделенныеСтроки.Очистить();
Конеццикла;
КонецПроцедуры
@ -487,11 +582,13 @@
&НаКлиенте
Процедура ОбновитьКанбанДоску()
СтруктураТЧДляСнятияФокусаСЗадач.Очистить();
Объект.АдресВременногоХранилища = ПоместитьВоВременноеХранилище(КомпоновщикНастроекКомпоновкиДанных.Настройки,Новый УникальныйИдентификатор());
ЗаполнитьЗадачиНаСервере();
УстановитьВидимостьДоступность();
ОчиститьАктивизацииСтрок();
ОчиститьАктивизацииСтрок();
УбратьИзКонтекстногоМенюЛишниеКнопкиНаСервере();
//ОформлениеЦветаЗадачНаСервере();
КонецПроцедуры
@ -512,12 +609,12 @@
&НаКлиенте
Процедура ТЧЗадачиПриАктивизацииЯчейки(Элемент)
ИмяТЧ = Элемент.Имя;
ИмяАктивнойТЧ = ИмяТЧ;
ОчиститьАктивизацииСтрок(ИмяТЧ);
Если НЕ НастройкиТЧДляАктивацииПервойСтроки.Свойство(ИмяТЧ) Тогда
ИмяТЧЗадачи = Элемент.Имя;
ИмяАктивнойТЧ = ИмяТЧЗадачи;
ОчиститьАктивизацииСтрок(ИмяТЧЗадачи);
Если НЕ СтруктураТЧДляСнятияФокусаСЗадач.Свойство(ИмяТЧЗадачи) Тогда
Элемент.ВыделенныеСтроки.Очистить();
НастройкиТЧДляАктивацииПервойСтроки.Вставить(ИмяТЧ,"Истина");
СтруктураТЧДляСнятияФокусаСЗадач.Вставить(ИмяТЧЗадачи,"Истина");
Конецесли;
КонецПроцедуры
@ -736,11 +833,10 @@
//+ УЗ_Иванов А.Б. 2016-11-26
//ИмяТЧЗадачи = "ТЧЗадачи" + СтрокаЗадача.Статус.ИмяПредопределенныхДанных;
ИмяКолонки = ПолучитьИмяКолонки(СтрокаЗадача.Статус);
ИмяТЧЗадачи = ИмяКолонки + "_ТЧЗадачи";
ИменаЭлементов = ПолучитьИменаЭлементовДляКолонки(СтрокаЗадача.Статус);
ИмяТЧЗадачи = ИменаЭлементов.ИмяТЧЗадачи;
//- УЗ_Иванов А.Б. 2016-11-26
Если ТекЭлементФормы.Имя <> ИмяТЧЗадачи Тогда
Продолжить;
КонецЕсли;
@ -758,7 +854,8 @@
Поля = ОформлениеЗадачи.Поля.Элементы.Добавить();
Поля.Использование = ИСТИНА;
Поля.Поле = Новый ПолеКомпоновкиДанных(ИмяТЧЗадачи + "НомерЗадачиПредставление");
//Поля.Поле = Новый ПолеКомпоновкиДанных(ИмяТЧЗадачи + "НомерЗадачиПредставление");
Поля.Поле = Новый ПолеКомпоновкиДанных(ИменаЭлементов.ИмяПоляНомерЗадачиПредставлениеВКарточкеЗадачи);
ОформлениеЗадачи.Оформление.УстановитьЗначениеПараметра("ЦветФона", ТекЦвет);
КонецЕсли;
@ -856,14 +953,19 @@
Функция ПолучитьЦветЗадачиПоВидуПриоритета(СтрокаЗадача, ВидПриоритета)
НужныйЦвет = Неопределено;
Задача = СтрокаЗадача.Задача;
пВидыПриоритетаЦвета = ВидыПриоритетаЦвета();
Если ВидПриоритета = ВидыПриоритетаЦвета().Задача Тогда
НужныйЦвет = Задача.ЦветЗадачи.Получить();
ИначеЕсли ВидПриоритета = ВидыПриоритетаЦвета().Спринт Тогда
Если ВидПриоритета = пВидыПриоритетаЦвета.Задача Тогда
Сообщить("Не работает СтрокаЗадача.ИзмененЦветПоУмолчанию");
//Если СтрокаЗадача.ИзмененЦветПоУмолчанию Тогда
НужныйЦвет = Задача.ЦветЗадачи.Получить();
//Конецесли;
ИначеЕсли ВидПриоритета = пВидыПриоритетаЦвета.Спринт Тогда
НужныйЦвет = Задача.Спринт.ЦветСпринта.Получить();
ИначеЕсли ВидПриоритета = ВидыПриоритетаЦвета().ОсновнаяЗадача Тогда
ИначеЕсли ВидПриоритета = пВидыПриоритетаЦвета.ОсновнаяЗадача Тогда
НужныйЦвет = Задача.ОсновнаяЗадача.ЦветЗадачи.Получить();
ИначеЕсли ВидПриоритета = ВидыПриоритетаЦвета().Важность Тогда
ИначеЕсли ВидПриоритета = пВидыПриоритетаЦвета.Важность Тогда
НужныйЦвет = Задача.Важность.ЦветВажности.Получить();
КонецЕсли;

View File

@ -124,6 +124,10 @@
</v8:item>
</title>
</field>
<field xsi:type="DataSetFieldField">
<dataPath>ИзмененЦветПоУмолчанию</dataPath>
<field>ИзмененЦветПоУмолчанию</field>
</field>
<dataSource>ИсточникДанных1</dataSource>
<query>ВЫБРАТЬ
узНаблюдателиЗаЗадачами.Задача
@ -147,7 +151,7 @@
узЗадачи.РеквизитДопУпорядочивания КАК РеквизитДопУпорядочивания,
узЗадачи.Исполнитель,
узЗадачи.Исполнитель.узКороткоеИмя КАК КороткоеИмя,
ПОДСТРОКА(узЗадачи.ОсновнаяЗадача.Наименование,1,25) КАК ОсновнаяЗадачаПредставление,
ПОДСТРОКА(узЗадачи.ОсновнаяЗадача.Наименование, 1, 25) КАК ОсновнаяЗадачаПредставление,
узЗадачи.СрокИсполнения,
узЗадачи.Конфигурация,
узЗадачи.Спринт,
@ -166,7 +170,8 @@
КОГДА узЗадачи.Важность = ЗНАЧЕНИЕ(Справочник.узВариантыВажностиЗадачи.Низкая)
ТОГДА 3
ИНАЧЕ 2
КОНЕЦ КАК ВажностьЧисло
КОНЕЦ КАК ВажностьЧисло,
узЗадачи.ИзмененЦветПоУмолчанию
ИЗ
Справочник.узЗадачи КАК узЗадачи
ГДЕ
@ -180,7 +185,7 @@
ВТОтборЗадачПоНаблюдателю)
ИНАЧЕ ИСТИНА
КОНЕЦ
И узЗадачи.Статус В (&amp;МассивВыбранныхСтатусовКолонок) </query>
И узЗадачи.Статус В(&amp;МассивВыбранныхСтатусовКолонок)</query>
</dataSet>
<calculatedField>
<dataPath>НомерЗадачиПредставление</dataPath>
@ -302,11 +307,6 @@
<dcscor:value xsi:nil="true"/>
<dcsset:userSettingID>16655e8c-bf28-4bdf-9c46-8f88d2bccf2d</dcsset:userSettingID>
</dcscor:item>
<dcscor:item xsi:type="dcsset:SettingsParameterValue">
<dcscor:use>false</dcscor:use>
<dcscor:parameter>МассивВыбранныхСтатусовКолонок</dcscor:parameter>
<dcscor:value xsi:nil="true"/>
</dcscor:item>
</dcsset:dataParameters>
<dcsset:order>
<dcsset:item xsi:type="dcsset:OrderItemField">