1
0
mirror of https://github.com/BlizD/Tasks.git synced 2025-01-14 03:20:16 +02:00

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

This commit is contained in:
Anton Ivanov 2017-02-04 16:16:53 +03:00
parent 0055ae2b1a
commit 9b7cd098f2
18 changed files with 1368 additions and 19 deletions

View File

@ -95,9 +95,6 @@
</Type>
<MainAttribute>true</MainAttribute>
<SavedData>true</SavedData>
<UseAlways>
<Field>НаборКонстант.ПровайдерSMS.Ref</Field>
</UseAlways>
</Attribute>
<Attribute name="ЛогинДляОтправкиSMS" id="2">
<Title>

View File

@ -415,7 +415,6 @@
</Type>
<MainAttribute>true</MainAttribute>
<UseAlways>
<Field>НаборКонстант.ПровайдерSMS.Ref</Field>
<Field>НаборКонстант.ЗаголовокСистемы</Field>
</UseAlways>
</Attribute>

View File

@ -653,6 +653,7 @@
<Field>НаборКонстант.СписокРасширенийФайловOpenDocumentОбластиДанных</Field>
<Field>НаборКонстант.СписокРасширенийТекстовыхФайлов</Field>
<Field>НаборКонстант.СписокЗапрещенныхРасширенийОбластиДанных</Field>
<Field>НаборКонстант.ПровайдерSMS.Ref</Field>
<Field>НаборКонстант.ПрефиксУзлаРаспределеннойИнформационнойБазы</Field>
<Field>НаборКонстант.ОтправлятьПисьмаВФорматеHTML</Field>
<Field>НаборКонстант.ОграничиватьДоступНаУровнеЗаписей</Field>

View File

@ -742,6 +742,7 @@
<Field>НаборКонстант.СписокРасширенийФайловOpenDocumentОбластиДанных</Field>
<Field>НаборКонстант.СписокРасширенийТекстовыхФайлов</Field>
<Field>НаборКонстант.СписокЗапрещенныхРасширенийОбластиДанных</Field>
<Field>НаборКонстант.ПровайдерSMS.Ref</Field>
<Field>НаборКонстант.ПрефиксУзлаРаспределеннойИнформационнойБазы</Field>
<Field>НаборКонстант.ОтправлятьПисьмаВФорматеHTML</Field>
<Field>НаборКонстант.ОграничиватьДоступНаУровнеЗаписей</Field>

View File

@ -432,6 +432,7 @@
<Field>НаборКонстант.СписокРасширенийФайловOpenDocumentОбластиДанных</Field>
<Field>НаборКонстант.СписокРасширенийТекстовыхФайлов</Field>
<Field>НаборКонстант.СписокЗапрещенныхРасширенийОбластиДанных</Field>
<Field>НаборКонстант.ПровайдерSMS.Ref</Field>
<Field>НаборКонстант.ПрефиксУзлаРаспределеннойИнформационнойБазы</Field>
<Field>НаборКонстант.ОтправлятьПисьмаВФорматеHTML</Field>
<Field>НаборКонстант.ОграничиватьДоступНаУровнеЗаписей</Field>

View File

@ -873,6 +873,7 @@
</Type>
<MainAttribute>true</MainAttribute>
<UseAlways>
<Field>НаборКонстант.ПровайдерSMS.Ref</Field>
<Field>НаборКонстант.ИспользоватьРазделениеПоОбластямДанных</Field>
</UseAlways>
</Attribute>

View File

@ -1037,6 +1037,7 @@
</Type>
<MainAttribute>true</MainAttribute>
<UseAlways>
<Field>НаборКонстант.ПровайдерSMS.Ref</Field>
<Field>НаборКонстант.ЗаголовокСистемы</Field>
<Field>НаборКонстант.АдресПубликацииИнформационнойБазыВИнтернете</Field>
</UseAlways>

View File

@ -400,6 +400,7 @@
</Type>
<MainAttribute>true</MainAttribute>
<UseAlways>
<Field>НаборКонстант.ПровайдерSMS.Ref</Field>
<Field>НаборКонстант.ЗаголовокСистемы</Field>
</UseAlways>
</Attribute>

View File

@ -2040,6 +2040,7 @@
</Type>
<MainAttribute>true</MainAttribute>
<UseAlways>
<Field>НаборКонстант.ПровайдерSMS.Ref</Field>
<Field>НаборКонстант.ИспользоватьРазделениеПоОбластямДанных</Field>
<Field>НаборКонстант.ИспользоватьПолнотекстовыйПоиск</Field>
<Field>НаборКонстант.ИспользоватьДополнительныеОтчетыИОбработки</Field>

View File

@ -293,6 +293,9 @@
<v8:Type>cfg:ConstantsSet</v8:Type>
</Type>
<MainAttribute>true</MainAttribute>
<UseAlways>
<Field>НаборКонстант.ПровайдерSMS.Ref</Field>
</UseAlways>
</Attribute>
<Attribute name="РежимРаботы" id="2">
<Title>

View File

@ -377,6 +377,7 @@
</Type>
<MainAttribute>true</MainAttribute>
<UseAlways>
<Field>НаборКонстант.ПровайдерSMS.Ref</Field>
<Field>НаборКонстант.ИспользоватьПолнотекстовыйПоиск</Field>
<Field>НаборКонстант.ИзвлекатьТекстыФайловНаСервере</Field>
</UseAlways>

View File

@ -634,6 +634,7 @@
</ChildObjects>
</TabularSection>
<Form>Форма</Form>
<Form>ФормаДинамическая</Form>
<Template>СхемаКомпоновкиДанных</Template>
<Command uuid="ab189899-73fe-4879-8f31-035adab3f53c">
<Properties>

View File

@ -1,4 +1,6 @@
Процедура ЗаполнитьЗадачи() Экспорт
#Область ПрограммныйИнтерфейс
Процедура ЗаполнитьЗадачи() Экспорт
пНастройкиКомпоновщика = ПолучитьИзВременногоХранилища(АдресВременногоХранилища);
ТЗЗадачи = ПолучитьТЗЗадачи(пНастройкиКомпоновщика);
@ -58,8 +60,7 @@
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
Возврат ТЗЗадачи;
КонецФункции //ПолучитьМакетКомпоновкиДанных()
КонецФункции
Процедура СменитьСтатусЗадачи(ДопПараметры) Экспорт
НовыйСтатус = ДопПараметры.НовыйСтатус;
@ -83,11 +84,15 @@
| узСтатусыЗадачи.ИмяПредопределенныхДанных
|ИЗ
| Справочник.узСтатусыЗадачи КАК узСтатусыЗадачи
|ГДЕ
| узСтатусыЗадачи.Предопределенный
//|ГДЕ
//| узСтатусыЗадачи.Предопределенный
|
|УПОРЯДОЧИТЬ ПО
| узСтатусыЗадачи.РеквизитДопУпорядочивания";
ТЧНастройкиКолонок.Загрузить(Запрос.Выполнить().Выгрузить());
КонецПроцедуры
#КонецОбласти

View File

@ -9,7 +9,11 @@
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
//{Код для декомпиляции управляемой формы
Если ЭтаФорма.Параметры.Свойство("ДекомпиляцияЭлементов") Тогда
ВнешниеОбработки.Создать(ЭтаФорма.Параметры.ДекомпиляцияЭлементов.ИмяПодключеннойОбработки,Ложь).ОпределитьВнутренниеСвойстваЭлементов(ЭтаФорма);
КонецЕсли;
//}Код для декомпиляции управляемой формы
пНастройкиКомпоновщика = Неопределено;
@ -472,11 +476,6 @@
Конецесли;
КонецПроцедуры
&НаКлиенте
Процедура ТЧЗадачиАнализПриАктивизацииЯчейки(Элемент)
КонецПроцедуры
&НаКлиенте
Процедура ТЧЗадачиВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;

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.2">
<Form uuid="336079e8-1e67-44db-b8ee-68a42c565b6a">
<Properties>
<Name>ФормаДинамическая</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Форма динамическая</v8:content>
</v8:item>
</Synonym>
<Comment/>
<FormType>Managed</FormType>
<IncludeHelpInContents>false</IncludeHelpInContents>
<UsePurposes>
<v8:Value xsi:type="app:ApplicationUsePurpose">PersonalComputer</v8:Value>
<v8:Value xsi:type="app:ApplicationUsePurpose">MobileDevice</v8:Value>
</UsePurposes>
<ExtendedPresentation/>
</Properties>
</Form>
</MetaDataObject>

View File

@ -0,0 +1,416 @@
<?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.2">
<ScalingMode>Compact</ScalingMode>
<AutoCommandBar name="ФормаКоманднаяПанель" id="-1">
<Autofill>false</Autofill>
</AutoCommandBar>
<Events>
<Event name="NotificationProcessing">ОбработкаОповещения</Event>
<Event name="OnOpen">ПриОткрытии</Event>
<Event name="OnCreateAtServer">ПриСозданииНаСервере</Event>
</Events>
<ChildItems>
<Pages 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>
<ExtendedTooltip name="ГруппаСтраницыРасширеннаяПодсказка" id="2"/>
<Events>
<Event name="OnCurrentPageChange">ГруппаСтраницыПриСменеСтраницы</Event>
</Events>
<ChildItems>
<Page 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>
<Group>Horizontal</Group>
<ExtendedTooltip name="ГруппаКанбанДоскаРасширеннаяПодсказка" id="4"/>
</Page>
<Page name="ГруппаНастройки" id="456">
<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>
<ExtendedTooltip name="ГруппаНастройкиРасширеннаяПодсказка" id="457"/>
<ChildItems>
<UsualGroup name="Группа3" id="458">
<Representation>None</Representation>
<ShowTitle>false</ShowTitle>
<ExtendedTooltip name="Группа3РасширеннаяПодсказка" id="459"/>
<ChildItems>
<Button name="КомандаОбновить" id="507">
<Type>UsualButton</Type>
<CommandName>Form.Command.КомандаОбновить</CommandName>
<ExtendedTooltip name="КомандаОбновитьРасширеннаяПодсказка" id="508"/>
</Button>
<UsualGroup name="Группа2" id="462">
<Group>Horizontal</Group>
<Representation>None</Representation>
<ShowTitle>false</ShowTitle>
<ExtendedTooltip name="Группа2РасширеннаяПодсказка" id="463"/>
<ChildItems>
<Button name="КомандаУстановитьСтандартныеНастройки" id="509">
<Type>UsualButton</Type>
<CommandName>Form.Command.КомандаУстановитьСтандартныеНастройки</CommandName>
<ExtendedTooltip name="КомандаУстановитьСтандартныеНастройкиРасширеннаяПодсказка" id="510"/>
</Button>
</ChildItems>
</UsualGroup>
</ChildItems>
</UsualGroup>
<InputField name="Наблюдатель" id="466">
<DataPath>Объект.Наблюдатель</DataPath>
<ClearButton>true</ClearButton>
<ContextMenu name="НаблюдательКонтекстноеМеню" id="467"/>
<ExtendedTooltip name="НаблюдательРасширеннаяПодсказка" id="468"/>
</InputField>
<UsualGroup name="Группа1" id="469">
<Group>Horizontal</Group>
<Representation>None</Representation>
<ShowTitle>false</ShowTitle>
<ExtendedTooltip name="Группа1РасширеннаяПодсказка" id="470"/>
<ChildItems>
<UsualGroup name="ГруппаОтборы" id="471">
<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>
<ExtendedTooltip name="ГруппаОтборыРасширеннаяПодсказка" id="472"/>
<ChildItems>
<Table name="КомпоновщикНастроекКомпоновкиДанныхНастройкиОтбор" id="473">
<Representation>Tree</Representation>
<Autofill>true</Autofill>
<InitialTreeView>ExpandAllLevels</InitialTreeView>
<VerticalStretch>false</VerticalStretch>
<EnableStartDrag>true</EnableStartDrag>
<EnableDrag>true</EnableDrag>
<DataPath>КомпоновщикНастроекКомпоновкиДанных.Settings.Filter</DataPath>
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Отборы</v8:content>
</v8:item>
</Title>
<ViewMode>All</ViewMode>
<SettingsNamedItemDetailedRepresentation>false</SettingsNamedItemDetailedRepresentation>
<ContextMenu name="КомпоновщикНастроекКомпоновкиДанныхНастройкиОтборКонтекстноеМеню" id="474"/>
<AutoCommandBar name="КомпоновщикНастроекКомпоновкиДанныхНастройкиОтборКоманднаяПанель" id="475"/>
<ExtendedTooltip name="КомпоновщикНастроекКомпоновкиДанныхНастройкиОтборРасширеннаяПодсказка" id="476"/>
<SearchStringAddition name="КомпоновщикНастроекКомпоновкиДанныхНастройкиОтборСтрокаПоиска" id="477">
<AdditionSource>
<Item>КомпоновщикНастроекКомпоновкиДанныхНастройкиОтбор</Item>
<Type>SearchStringRepresentation</Type>
</AdditionSource>
<ContextMenu name="КомпоновщикНастроекКомпоновкиДанныхНастройкиОтборСтрокаПоискаКонтекстноеМеню" id="478"/>
<ExtendedTooltip name="КомпоновщикНастроекКомпоновкиДанныхНастройкиОтборСтрокаПоискаРасширеннаяПодсказка" id="479"/>
</SearchStringAddition>
<ViewStatusAddition name="КомпоновщикНастроекКомпоновкиДанныхНастройкиОтборСостояниеПросмотра" id="480">
<AdditionSource>
<Item>КомпоновщикНастроекКомпоновкиДанныхНастройкиОтбор</Item>
<Type>ViewStatusRepresentation</Type>
</AdditionSource>
<ContextMenu name="КомпоновщикНастроекКомпоновкиДанныхНастройкиОтборСостояниеПросмотраКонтекстноеМеню" id="481"/>
<ExtendedTooltip name="КомпоновщикНастроекКомпоновкиДанныхНастройкиОтборСостояниеПросмотраРасширеннаяПодсказка" id="482"/>
</ViewStatusAddition>
<SearchControlAddition name="КомпоновщикНастроекКомпоновкиДанныхНастройкиОтборУправлениеПоиском" id="483">
<AdditionSource>
<Item>КомпоновщикНастроекКомпоновкиДанныхНастройкиОтбор</Item>
<Type>SearchControl</Type>
</AdditionSource>
<ContextMenu name="КомпоновщикНастроекКомпоновкиДанныхНастройкиОтборУправлениеПоискомКонтекстноеМеню" id="484"/>
<ExtendedTooltip name="КомпоновщикНастроекКомпоновкиДанныхНастройкиОтборУправлениеПоискомРасширеннаяПодсказка" id="485"/>
</SearchControlAddition>
</Table>
</ChildItems>
</UsualGroup>
<UsualGroup name="ГруппаВидимостьКолонок" id="486">
<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>
<ExtendedTooltip name="ГруппаВидимостьКолонокРасширеннаяПодсказка" id="487"/>
<ChildItems>
<Table name="ТЧНастройкиКолонок" id="488">
<ChangeRowSet>false</ChangeRowSet>
<ChangeRowOrder>false</ChangeRowOrder>
<MaxWidth>3</MaxWidth>
<MaxHeight>4</MaxHeight>
<AutoInsertNewRow>true</AutoInsertNewRow>
<HorizontalStretch>false</HorizontalStretch>
<VerticalStretch>false</VerticalStretch>
<EnableStartDrag>true</EnableStartDrag>
<EnableDrag>true</EnableDrag>
<DataPath>Объект.ТЧНастройкиКолонок</DataPath>
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Видимость колонок</v8:content>
</v8:item>
</Title>
<RowFilter xsi:nil="true"/>
<ContextMenu name="ТЧНастройкиКолонокКонтекстноеМеню" id="489"/>
<AutoCommandBar name="ТЧНастройкиКолонокКоманднаяПанель" id="490"/>
<ExtendedTooltip name="ТЧНастройкиКолонокРасширеннаяПодсказка" id="491"/>
<SearchStringAddition name="ТЧНастройкиКолонокСтрокаПоиска" id="492">
<AdditionSource>
<Item>ТЧНастройкиКолонок</Item>
<Type>SearchStringRepresentation</Type>
</AdditionSource>
<ContextMenu name="ТЧНастройкиКолонокСтрокаПоискаКонтекстноеМеню" id="493"/>
<ExtendedTooltip name="ТЧНастройкиКолонокСтрокаПоискаРасширеннаяПодсказка" id="494"/>
</SearchStringAddition>
<ViewStatusAddition name="ТЧНастройкиКолонокСостояниеПросмотра" id="495">
<AdditionSource>
<Item>ТЧНастройкиКолонок</Item>
<Type>ViewStatusRepresentation</Type>
</AdditionSource>
<ContextMenu name="ТЧНастройкиКолонокСостояниеПросмотраКонтекстноеМеню" id="496"/>
<ExtendedTooltip name="ТЧНастройкиКолонокСостояниеПросмотраРасширеннаяПодсказка" id="497"/>
</ViewStatusAddition>
<SearchControlAddition name="ТЧНастройкиКолонокУправлениеПоиском" id="498">
<AdditionSource>
<Item>ТЧНастройкиКолонок</Item>
<Type>SearchControl</Type>
</AdditionSource>
<ContextMenu name="ТЧНастройкиКолонокУправлениеПоискомКонтекстноеМеню" id="499"/>
<ExtendedTooltip name="ТЧНастройкиКолонокУправлениеПоискомРасширеннаяПодсказка" id="500"/>
</SearchControlAddition>
<Events>
<Event name="OnChange">ТЧНастройкиКолонокПриИзменении</Event>
</Events>
<ChildItems>
<InputField name="ТЧНастройкиКолонокСтатус" id="501">
<DataPath>Объект.ТЧНастройкиКолонок.Статус</DataPath>
<ReadOnly>true</ReadOnly>
<EditMode>EnterOnInput</EditMode>
<ContextMenu name="ТЧНастройкиКолонокСтатусКонтекстноеМеню" id="502"/>
<ExtendedTooltip name="ТЧНастройкиКолонокСтатусРасширеннаяПодсказка" id="503"/>
</InputField>
<CheckBoxField name="ТЧНастройкиКолонокВидимость" id="504">
<DataPath>Объект.ТЧНастройкиКолонок.Видимость</DataPath>
<EditMode>EnterOnInput</EditMode>
<CheckBoxType>Auto</CheckBoxType>
<ContextMenu name="ТЧНастройкиКолонокВидимостьКонтекстноеМеню" id="505"/>
<ExtendedTooltip name="ТЧНастройкиКолонокВидимостьРасширеннаяПодсказка" id="506"/>
</CheckBoxField>
</ChildItems>
</Table>
</ChildItems>
</UsualGroup>
</ChildItems>
</UsualGroup>
</ChildItems>
</Page>
</ChildItems>
</Pages>
</ChildItems>
<Attributes>
<Attribute name="Объект" id="1">
<Type>
<v8:Type>cfg:DataProcessorObject.узКанбанДоска</v8:Type>
</Type>
<MainAttribute>true</MainAttribute>
</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>dcsset:SettingsComposer</v8:Type>
</Type>
</Attribute>
<Attribute name="НастройкиТЧДляАктивацииПервойСтроки" id="4">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Настройки ТЧДля активации первой строки</v8:content>
</v8:item>
</Title>
<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:boolean</v8:Type>
</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>CommonPicture.узСпринт</xr:Ref>
<xr:LoadTransparent>true</xr:LoadTransparent>
</Picture>
<Action>КомандаДобавитьВСпринт</Action>
<Representation>TextPicture</Representation>
</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>
<Shortcut>F5</Shortcut>
<Picture>
<xr:Ref>StdPicture.Refresh</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>
<Command name="КомандаНеСледитьЗаЗадачей" id="4">
<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>
<Action>КомандаНеСледитьЗаЗадачей</Action>
<Representation>TextPicture</Representation>
</Command>
<Command name="КомандаСледитьЗаЗадачей" id="5">
<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>
<Action>КомандаСледитьЗаЗадачей</Action>
<Representation>TextPicture</Representation>
</Command>
<Command name="КомандаУбратьИзСпринта" id="6">
<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,899 @@

#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
СгенирироватьФормуЗаново = Истина;
пНастройкиКомпоновщика = Неопределено;
ЗагрузитьСохраненныеНастройки(пНастройкиКомпоновщика);
НастройкиТЧДляАктивацииПервойСтроки = Новый Структура();
ОпределитьОтборНаСервере(пНастройкиКомпоновщика);
Попытка
ЗаполнитьЗадачиНаСервере();
Исключение
Сообщить("ОписаниеОшибки "+ОписаниеОшибки());
УстановитьСтандартныеНастройкиНаСервере();
ЗаполнитьЗадачиНаСервере();
КонецПопытки;
УстановитьВидимостьДоступность();
//ОформлениеЦветаЗадачНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура ТЧНастройкиКолонокПриИзменении(Элемент)
СгенирироватьФормуЗаново = Истина;
КонецПроцедуры
&НаКлиенте
Процедура ГруппаСтраницыПриСменеСтраницы(Элемент, ТекущаяСтраница)
ВыполнитьДействиеДляАктивнойСтраницы();
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
Если ИмяСобытия = "СправочникЗадачаЗаписана"
ИЛИ ИмяСобытия = "ДобавленУбранНаблюдатель"
ИЛИ ИмяСобытия = "СправочникВариантВажностиЗаписан"
ИЛИ ИмяСобытия = "СправочникСпринтЗаписан"
Тогда
ЗаполнитьЗадачиНаСервере();
Конецесли;
ОбновитьКанбанДоску();
КонецПроцедуры
&НаКлиенте
Процедура ПриЗакрытии()
ОтключитьОбработчикОжидания("ЗаполнитьЗадачиНаКлиенте");
ПриЗакрытииНаСервере();
КонецПроцедуры
&НаСервере
Процедура ПриЗакрытииНаСервере()
СохранитьНастройки();
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
ПодключитьОбработчикОжидания("ЗаполнитьЗадачиНаКлиенте", 180);
КонецПроцедуры
#КонецОбласти
#Область ГенерацияФормыДляВыбранныхСтатусов
&НаСервере
Процедура СгенерироватьФорму()
УдалитьДинамическиеЭлементы();
///// РЕКВИЗИТЫ //////////
МассивДобавляемыхРеквизитов = Новый Массив;
ЭтаФорма.ИзменитьРеквизиты(МассивДобавляемыхРеквизитов);
///// КОМАНДЫ //////////
///// ЭЛЕМЕНТЫ //////////
Для каждого СтрокаТЧНастройкиКолонок из Объект.ТЧНастройкиКолонок цикл
Если НЕ СтрокаТЧНастройкиКолонок.Видимость Тогда
Продолжить;
Конецесли;
пСтатус = СтрокаТЧНастройкиКолонок.Статус;
ДобавитьНаКанбанДоскуКолонку(пСтатус);
Конеццикла;
СгенирироватьФормуЗаново = Ложь;
КонецПроцедуры
&НаСервере
Процедура УдалитьДинамическиеЭлементы()
пЭлементыФормы = Этаформа.Элементы;
ПрефиксДляИмениЭлементовКолонок = ПолучитьПрефиксДляИмениЭлементовКолонок();
ЭлементыКУдалению = Новый Массив();
Для каждого пЭлементФормы из пЭлементыФормы цикл
Если СтрНайти(пЭлементФормы.Имя,ПрефиксДляИмениЭлементовКолонок) = 0 Тогда
Продолжить;
Конецесли;
Если ТипЗнч(пЭлементФормы) <> ТИп("ГруппаФормы") Тогда
Продолжить;
Конецесли;
ЭлементыКУдалению.Добавить(пЭлементФормы);
Конеццикла;
Для каждого пЭлементФормы из ЭлементыКУдалению цикл
пЭлементыФормы.Удалить(пЭлементФормы);
Конеццикла;
КонецПроцедуры
&НаСервере
Функция ПолучитьПрефиксДляИмениЭлементовКолонок()
Возврат "Динамич_";
КонецФункции
&НаСервере
Процедура ДобавитьНаКанбанДоскуКолонку(пСтатус)
ИмяКолонки = ПолучитьИмяКолонки(пСтатус);
ПредставлениеКолонки = пСтатус.Наименование;
пЭлементыФормы = Этаформа.Элементы;
ПрефиксДляИмениЭлементовКолонок = ПолучитьПрефиксДляИмениЭлементовКолонок();
// ****** Группа формы "Группа для колонки статуса" ***********
ИмяГруппыКолонки = ПрефиксДляИмениЭлементовКолонок + ИмяКолонки + "_Группа";
пЭлементГруппаКолонка = пЭлементыФормы.Вставить(ИмяГруппыКолонки,Тип("ГруппаФормы"),пЭлементыФормы.ГруппаКанбанДоска);
пЭлементГруппаКолонка.Вид = ВидГруппыФормы.ОбычнаяГруппа;
пЭлементГруппаКолонка.Заголовок = ПредставлениеКолонки;
пЭлементГруппаКолонка.Подсказка = ПредставлениеКолонки;
пЭлементГруппаКолонка.Отображение = ОтображениеОбычнойГруппы.СлабоеВыделение;
// ****** Таблица формы "ТЧЗадачи" для статуса ***********
ИмяТЧЗадачи = ИмяКолонки + "_ТЧЗадачи";
пЭлементТЧЗадачи = пЭлементыФормы.Вставить(ИмяТЧЗадачи,Тип("ТаблицаФормы"),пЭлементГруппаКолонка,Неопределено);
пЭлементТЧЗадачи.ПутьКДанным = "Объект.ТЧЗадачи";
пЭлементТЧЗадачи.АвтоВводНовойСтроки = Истина;
пЭлементТЧЗадачи.ГоризонтальнаяПолосаПрокрутки = ИспользованиеПолосыПрокрутки.НеИспользовать;
пЭлементТЧЗадачи.ИзменятьПорядокСтрок = Ложь;
пЭлементТЧЗадачи.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Нет;
пЭлементТЧЗадачи.РежимВыделения = РежимВыделенияТаблицы.Множественный;
пЭлементТЧЗадачи.РежимВыделенияСтроки = РежимВыделенияСтрокиТаблицы.Строка;
пЭлементТЧЗадачи.Шапка = Ложь;
пЭлементТЧЗадачи.УстановитьДействие("Выбор","ТЧЗадачиВыбор");
пЭлементТЧЗадачи.УстановитьДействие("ПриАктивизацииЯчейки","ТЧЗадачиПриАктивизацииЯчейки");
пЭлементТЧЗадачи.УстановитьДействие("ПередНачаломДобавления","ТЧЗадачиПередНачаломДобавления");
пЭлементТЧЗадачи.УстановитьДействие("Перетаскивание","ТЧЗадачиПеретаскивание");
пЭлементТЧЗадачи.КоманднаяПанель.Видимость = Ложь;
// ****** Команды из контекстного меню "ТЧЗадачи" ***********
ИмяКомандыДобавитьВСпринт = ИмяКолонки + "_ТЧЗадачи_КомандаДобавитьВСпринт";
пКомандаДобавитьВСпринт = пЭлементыФормы.Добавить(ИмяКомандыДобавитьВСпринт, Тип("КнопкаФормы"), пЭлементТЧЗадачи.КонтекстноеМеню);
пКомандаДобавитьВСпринт.Заголовок="Добавить в спринт";
пКомандаДобавитьВСпринт.ИмяКоманды="КомандаДобавитьВСпринт";
пКомандаДобавитьВСпринт.Отображение = ОтображениеКнопки.КартинкаИТекст;
ИмяКомандыУбратьИзСпринта = ИмяКолонки + "_ТЧЗадачи_КомандаУбратьИзСпринта";
пКомандаУбратьИзСпринта = пЭлементыФормы.Добавить(ИмяКомандыУбратьИзСпринта, Тип("КнопкаФормы"), пЭлементТЧЗадачи.КонтекстноеМеню);
пКомандаУбратьИзСпринта.Заголовок="Убрать из спринта";
пКомандаУбратьИзСпринта.ИмяКоманды="КомандаУбратьИзСпринта";
пКомандаУбратьИзСпринта.Отображение = ОтображениеКнопки.КартинкаИТекст;
ИмяКомандыСледитьЗаЗадачей = ИмяКолонки + "_ТЧЗадачи_КомандаСледитьЗаЗадачей";
пКомандаСледитьЗаЗадачей = пЭлементыФормы.Добавить(ИмяКомандыСледитьЗаЗадачей, Тип("КнопкаФормы"), пЭлементТЧЗадачи.КонтекстноеМеню);
пКомандаСледитьЗаЗадачей.Заголовок="Следить за задачей";
пКомандаСледитьЗаЗадачей.ИмяКоманды="КомандаСледитьЗаЗадачей";
пКомандаСледитьЗаЗадачей.Отображение = ОтображениеКнопки.КартинкаИТекст;
ИмяКомандыНеСледитьЗаЗадачей = ИмяКолонки + "_ТЧЗадачи_КомандаНеСледитьЗаЗадачей";
пКомандаНеСледитьЗаЗадачей = пЭлементыФормы.Добавить(ИмяКомандыНеСледитьЗаЗадачей, Тип("КнопкаФормы"), пЭлементТЧЗадачи.КонтекстноеМеню);
пКомандаНеСледитьЗаЗадачей.Заголовок="Не следить за задачей";
пКомандаНеСледитьЗаЗадачей.ИмяКоманды="КомандаНеСледитьЗаЗадачей";
пКомандаНеСледитьЗаЗадачей.Отображение = ОтображениеКнопки.КартинкаИТекст;
// ****** Группа формы "Карточка задачи" ***********
ИмяКарточкаЗадачи = ИмяКолонки + "_ТЧЗадачиКарточкаЗадачи";
пЭлементКарточкаЗадачи = пЭлементыФормы.Вставить(ИмяКарточкаЗадачи,Тип("ГруппаФормы"),пЭлементТЧЗадачи,Неопределено);
пЭлементКарточкаЗадачи.Вид = ВидГруппыФормы.ГруппаКолонок;
пЭлементКарточкаЗадачи.Заголовок = "ТЧЗадачи "+ПредставлениеКолонки;
пЭлементКарточкаЗадачи.Подсказка = "ТЧЗадачи "+ПредставлениеКолонки;
// ****** Группа формы "Карточка задачи нижняя часть" ***********
ИмяКарточкаЗадачи_НижняяЧасть = ИмяКолонки + "_ТЧЗадачиКарточкаЗадачи_НижняяЧасть";
пЭлементКарточкаЗадачи_НижняяЧасть = пЭлементыФормы.Вставить(ИмяКарточкаЗадачи_НижняяЧасть,Тип("ГруппаФормы"),пЭлементКарточкаЗадачи,Неопределено);
пЭлементКарточкаЗадачи_НижняяЧасть.Вид = ВидГруппыФормы.ГруппаКолонок;
пЭлементКарточкаЗадачи_НижняяЧасть.Заголовок = "ТЧЗадачи "+ПредставлениеКолонки;
пЭлементКарточкаЗадачи_НижняяЧасть.Подсказка = "ТЧЗадачи "+ПредставлениеКолонки;
пЭлементКарточкаЗадачи_НижняяЧасть.Группировка = ГруппировкаКолонок.Горизонтальная;
// ****** Поле формы "Задача в карточке задачи нижняя часть" ***********
ИмяПоляЗадачиВКарточкеЗадачи = ИмяКолонки + "_ТЧЗадачи_НижняяЧасть_Задача";
пЭлементПолеЗадачиВКарточкеЗадачи = пЭлементыФормы.Вставить(ИмяПоляЗадачиВКарточкеЗадачи,Тип("ПолеФормы"),пЭлементКарточкаЗадачи_НижняяЧасть,Неопределено);
пЭлементПолеЗадачиВКарточкеЗадачи.Вид = ВидПоляФормы.ПолеВвода;
пЭлементПолеЗадачиВКарточкеЗадачи.ПутьКДанным = "Объект.ТЧЗадачи.Задача";
пЭлементПолеЗадачиВКарточкеЗадачи.КнопкаВыпадающегоСписка = Ложь;
пЭлементПолеЗадачиВКарточкеЗадачи.КнопкаОткрытия = Ложь;
пЭлементПолеЗадачиВКарточкеЗадачи.Высота = 3;
// ****** Группа формы "Карточка задачи верхняя часть" ***********
ИмяКарточкаЗадачи_ВерхняяЧасть = ИмяКолонки +"_ТЧЗадачи_ВерхняяЧасть";
пЭлементКарточкаЗадачи_ВерхняяЧасть = пЭлементыФормы.Вставить(ИмяКарточкаЗадачи_ВерхняяЧасть,Тип("ГруппаФормы"),пЭлементКарточкаЗадачи,пЭлементКарточкаЗадачи_НижняяЧасть);
пЭлементКарточкаЗадачи_ВерхняяЧасть.Вид = ВидГруппыФормы.ГруппаКолонок;
пЭлементКарточкаЗадачи_ВерхняяЧасть.Заголовок = "ТЧЗадачи_ВерхняяЧасть"+ПредставлениеКолонки;
пЭлементКарточкаЗадачи_ВерхняяЧасть.Подсказка = "ТЧЗадачи_ВерхняяЧасть"+ПредставлениеКолонки;
пЭлементКарточкаЗадачи_ВерхняяЧасть.Группировка = ГруппировкаКолонок.ВЯчейке;
// ****** Поле формы "Короткое имя в карточке задачи верхняя часть" ***********
ИмяПоляКороткоеИмяВКарточкеЗадачи = ИмяКолонки + "_ТЧЗадачи_ВерхняяЧасть_КороткоеИмя";
пЭлементПолеКороткоеИмяВКарточкеЗадачи = пЭлементыФормы.Вставить(ИмяПоляКороткоеИмяВКарточкеЗадачи,Тип("ПолеФормы"),пЭлементКарточкаЗадачи_ВерхняяЧасть,Неопределено);
пЭлементПолеКороткоеИмяВКарточкеЗадачи.Вид = ВидПоляФормы.ПолеВвода;
пЭлементПолеКороткоеИмяВКарточкеЗадачи.ПутьКДанным = "Объект.ТЧЗадачи.КороткоеИмя";
// ****** Поле формы "Основная задача в карточке задачи верхняя часть" ***********
ИмяПоляОсновнаяЗадачаПредставлениеИмяВКарточкеЗадачи = ИмяКолонки +"_ТЧЗадачи_ВерхняяЧасть_ОсновнаяЗадачаПредставление";
пЭлементПолеОсновнаяЗадачаПредставлениеВКарточкеЗадачи = пЭлементыФормы.Вставить(ИмяПоляОсновнаяЗадачаПредставлениеИмяВКарточкеЗадачи,Тип("ПолеФормы"),пЭлементКарточкаЗадачи_ВерхняяЧасть,пЭлементПолеКороткоеИмяВКарточкеЗадачи);
пЭлементПолеОсновнаяЗадачаПредставлениеВКарточкеЗадачи.Вид = ВидПоляФормы.ПолеВвода;
пЭлементПолеОсновнаяЗадачаПредставлениеВКарточкеЗадачи.ПутьКДанным = "Объект.ТЧЗадачи.ОсновнаяЗадачаПредставление";
// ****** Поле формы "Номер задачи в карточке задачи верхняя часть" ***********
ИмяПоляНомерЗадачиПредставлениеПредставлениеИмяВКарточкеЗадачи = ИмяКолонки+"_ТЧЗадачи_ВерхняяЧасть_НомерЗадачиПредставление";
пЭлементПолеНомерЗадачиПредставлениеВКарточкеЗадачи = пЭлементыФормы.Вставить(ИмяПоляНомерЗадачиПредставлениеПредставлениеИмяВКарточкеЗадачи,Тип("ПолеФормы"),пЭлементКарточкаЗадачи_ВерхняяЧасть,пЭлементПолеОсновнаяЗадачаПредставлениеВКарточкеЗадачи);
пЭлементПолеНомерЗадачиПредставлениеВКарточкеЗадачи.Вид = ВидПоляФормы.ПолеВвода;
пЭлементПолеНомерЗадачиПредставлениеВКарточкеЗадачи.ПутьКДанным = "Объект.ТЧЗадачи.НомерЗадачиПредставление";
КонецПроцедуры
&НаСервере
Функция ПолучитьИмяКолонки(пСтатус)
пИмяКолонки = "";
НаименованиеСтатуса = пСтатус.Наименование;
НомерСимвола = 1;
ДлинаСтроки = СтрДлина(НаименованиеСтатуса);
Пока НомерСимвола <= ДлинаСтроки Цикл
пСимвол = Сред(НаименованиеСтатуса,НомерСимвола,1);
пКодСимвола = КодСимвола(пСимвол);
//Сообщить("пСимвол " + пСимвол + " пКодСимвола - " + пКодСимвола);
Если (65 <= пКодСимвола И пКодСимвола <= 90)
ИЛИ (97 <= пКодСимвола И пКодСимвола <= 122)
ИЛИ (1072 <= пКодСимвола И пКодСимвола <= 1103)
ИЛИ (1040 <= пКодСимвола И пКодСимвола <= 1071)
Тогда
пИмяКолонки = пИмяКолонки + пСимвол;
Конецесли;
Если пКодСимвола = 32 Тогда
пИмяКолонки = пИмяКолонки + "_";
Конецесли;
НомерСимвола = НомерСимвола + 1;
Конеццикла;
Возврат пИмяКолонки;
КонецФункции
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаСервере
Процедура УстановитьОтборТЧ()
Для каждого СтрокаТЧНастройкиКолонок из Объект.ТЧНастройкиКолонок цикл
Если НЕ СтрокаТЧНастройкиКолонок.Видимость Тогда
Продолжить;
Конецесли;
пСтатус = СтрокаТЧНастройкиКолонок.Статус;
ИмяКолонки = ПолучитьИмяКолонки(пСтатус);
ИмяТЧЗадачиДляСтатуса = ИмяКолонки + "_ТЧЗадачи";
Элементы[ИмяТЧЗадачиДляСтатуса].ОтборСтрок = Новый ФиксированнаяСтруктура("Статус", пСтатус);
Конеццикла;
КонецПроцедуры
&НаСервере
Процедура УстановитьВидимостьДоступность()
//Для каждого СтрокаТЧНастройкиКолонок из Объект.ТЧНастройкиКолонок цикл
// ИмяГруппы = "Группа"+СтрокаТЧНастройкиКолонок.ИмяПредопределенныхДанных;
// Элементы[ИмяГруппы].Видимость = СтрокаТЧНастройкиКолонок.Видимость;
//Конеццикла;
КонецПроцедуры
&НаСервере
Процедура УстановитьСтандартныеНастройкиНаСервере()
КлючНастроек = ПолучитьКлючНастроек();
ХранилищеОбщихНастроек.Сохранить(КлючНастроек,КлючНастроек,Неопределено);
пНастройкиКомпоновщика = Неопределено;
ЗагрузитьСохраненныеНастройки(пНастройкиКомпоновщика);
ОпределитьОтборНаСервере(пНастройкиКомпоновщика);
КонецПроцедуры
&НаСервере
Функция ПолучитьКлючНастроек()
КлючНастроек = "Обработка.узКанбанДоска";
Возврат КлючНастроек;
КонецФункции
&НаСервере
Процедура ЗаполнитьЗадачиНаСервере()
Объект.АдресВременногоХранилища = ПоместитьВоВременноеХранилище(КомпоновщикНастроекКомпоновкиДанных.Настройки,Новый УникальныйИдентификатор());
пОбъект = РеквизитФормыВЗначение("Объект");
пОбъект.ЗаполнитьЗадачи();
ЗначениеВРеквизитФормы(пОбъект,"Объект");
Если СгенирироватьФормуЗаново Тогда
СгенерироватьФорму();
УстановитьОтборТЧ();
ОформлениеЦветаЗадачНаСервере();
Конецесли;
КонецПроцедуры
&НаСервере
Процедура ЗагрузитьСохраненныеНастройки(пНастройкиКомпоновщика)
КлючНастроек = ПолучитьКлючНастроек();
СохраненныеНастройки = ХранилищеОбщихНастроек.Загрузить(КлючНастроек,КлючНастроек);
Если СохраненныеНастройки <> Неопределено Тогда
Если СохраненныеНастройки.Свойство("ТЧНастройкиКолонок") Тогда
ЗаполнитьТЧНастройкиКолонокНаСервере();
ТЧНастройкиКолонок = СохраненныеНастройки.ТЧНастройкиКолонок;
Для каждого СтрокаТЧНастройкиКолонок из Объект.ТЧНастройкиКолонок цикл
ПараметрыОтбора=Новый Структура();
ПараметрыОтбора.Вставить("Статус",СтрокаТЧНастройкиКолонок.Статус);
НайденныеСтрокиСохраненныеНастройки = ТЧНастройкиКолонок.НайтиСтроки(ПараметрыОтбора);
Для каждого СтрокаНайденныеСтроки из НайденныеСтрокиСохраненныеНастройки цикл
СтрокаТЧНастройкиКолонок.Видимость = СтрокаНайденныеСтроки.Видимость;
Конеццикла;
Конеццикла;
Иначе
ЗаполнитьТЧНастройкиКолонокНаСервере();
Конецесли;
Если СохраненныеНастройки.Свойство("НастройкиКомпоновщикаХранилище") Тогда
пНастройкиКомпоновщика = СохраненныеНастройки.НастройкиКомпоновщикаХранилище.Получить();
Конецесли;
Иначе
ЗаполнитьТЧНастройкиКолонокНаСервере();
Конецесли;
КонецПроцедуры
&НаСервере
Функция ОпределитьОтборНаСервере(пНастройкиКомпоновщика = Неопределено) Экспорт
пОбъект = РеквизитФормыВЗначение("Объект");
МакетСКД = пОбъект.ПолучитьМакет("СхемаКомпоновкиДанных");
АдресВременногоХранилищаМакетаСКД = ПоместитьВоВременноеХранилище(МакетСКД,Новый УникальныйИдентификатор());
ИсточникНастроек = Новый ИсточникДоступныхНастроекКомпоновкиДанных(АдресВременногоХранилищаМакетаСКД);
КомпоновщикНастроекКомпоновкиДанных.Инициализировать(ИсточникНастроек);
Если пНастройкиКомпоновщика = Неопределено Тогда
КомпоновщикНастроекКомпоновкиДанных.ЗагрузитьНастройки(МакетСКД.НастройкиПоУмолчанию);
Иначе
КомпоновщикНастроекКомпоновкиДанных.ЗагрузитьНастройки(пНастройкиКомпоновщика);
Конецесли;
КонецФункции
&НаСервере
Процедура ЗаполнитьТЧНастройкиКолонокНаСервере()
пОбъект = РеквизитФормыВЗначение("Объект");
пОбъект.ЗаполнитьТЧНастройкиКолонок();
ЗначениеВРеквизитФормы(пОбъект,"Объект");
КонецПроцедуры
&НаКлиенте
Процедура ОчиститьАктивизацииСтрок(ИсключитьИмяТЧ = Неопределено)
Для каждого НастройкаАктивации из НастройкиТЧДляАктивацииПервойСтроки цикл
ИмяТЧ = НастройкаАктивации.Ключ;
Если ИмяТЧ = ИсключитьИмяТЧ Тогда
Продолжить;
Конецесли;
//Если Элементы.Найти[ИмяТЧ] = Неопределено Тогда
// Продолжить;
//Конецесли;
Элементы[ИмяТЧ].ВыделенныеСтроки.Очистить();
Конеццикла;
КонецПроцедуры
&НаКлиенте
Процедура СменитьСтатусЗадачиНаКлиенте(Элемент,ПараметрыПеретаскивания)
НовыйСтатус = Элемент.ОтборСтрок.Статус;
ДанныеИсточник = ПараметрыПеретаскивания.Значение;
МассивЗадач = Новый Массив();
Для каждого ДанныеИсточник из ПараметрыПеретаскивания.Значение цикл
ЗадачаСсылка = ДанныеИсточник.Задача;
МассивЗадач.Добавить(ЗадачаСсылка);
Конеццикла;
ДопПараметры = Новый Структура();
ДопПараметры.Вставить("НовыйСтатус",НовыйСтатус);
ДопПараметры.Вставить("МассивЗадач",МассивЗадач);
СменитьСтатусЗадачиНаСервере(ДопПараметры);
КонецПроцедуры
&НаСервере
Процедура СменитьСтатусЗадачиНаСервере(ДопПараметры)
пОбъект = РеквизитФормыВЗначение("Объект");
пОбъект.СменитьСтатусЗадачи(ДопПараметры);
ЗначениеВРеквизитФормы(пОбъект,"Объект");
КонецПроцедуры
&НаКлиенте
Процедура ДобавитьНовуюЗадачу(Элемент)
пСтатус = Элемент.ОтборСтрок.Статус;
ПараметрыНовойЗадачи = Новый Структура();
ПараметрыНовойЗадачи.Вставить("Статус",пСтатус);
ЭлементыОтбора = КомпоновщикНастроекКомпоновкиДанных.Настройки.Отбор.Элементы;
Для каждого ЭлементОтбора из ЭлементыОтбора цикл
Если НЕ ЭлементОтбора.Использование Тогда
Продолжить;
Конецесли;
Если ЭлементОтбора.ВидСравнения <> ВидСравненияКомпоновкиДанных.Равно Тогда
Продолжить;
Конецесли;
Если СтрНайти(ЭлементОтбора.ЛевоеЗначение,".") > 0 Тогда
Продолжить;
Конецесли;
Если ТипЗнч(ЭлементОтбора) = Тип("ЭлементОтбораКомпоновкиДанных") Тогда
ПараметрыНовойЗадачи.Вставить("" + ЭлементОтбора.ЛевоеЗначение,ЭлементОтбора.ПравоеЗначение);
Конецесли;
Конеццикла;
ДопПараметры = Новый Структура();
ДопПараметры.Вставить("ТребоватьЗаполнитьРодителя",Истина);
ДопПараметры.Вставить("ПараметрыНовойЗадачи",ПараметрыНовойЗадачи);
ОткрытьФорму("Справочник.узЗадачи.Форма.ФормаЭлемента",ДопПараметры);
КонецПроцедуры
&НаКлиенте
Процедура ВыполнитьДействиеДляАктивнойСтраницы()
пТекущаяСтраница = Элементы.ГруппаСтраницы.ТекущаяСтраница;
Если пТекущаяСтраница = Элементы.ГруппаКанбанДоска Тогда
ОбновитьКанбанДоску();
Конецесли;
КонецПроцедуры
&НаСервере
Функция ПолучитьМассивЗадачПоВыделеннымСтрокам(МассивВыделенныхСтрок)
МассивЗадач = Новый Массив();
Для каждого ЭлМассиваВыделенныхСтрок из МассивВыделенныхСтрок цикл
ИдентификаторСтроки = ЭлМассиваВыделенныхСтрок;
СтрокаТЧЗадачи = Объект.ТЧЗадачи.НайтиПоИдентификатору(ИдентификаторСтроки);
МассивЗадач.Добавить(СтрокаТЧЗадачи.Задача);
Конеццикла;
Возврат МассивЗадач;
КонецФункции
&НаСервере
Процедура СохранитьНастройки()
НастройкиКомпоновщикаХранилище = Новый ХранилищеЗначения(КомпоновщикНастроекКомпоновкиДанных.Настройки);
КлючНастроек = ПолучитьКлючНастроек();
ДопПараметры = Новый Структура();
ДопПараметры.Вставить("ТЧНастройкиКолонок",Объект.ТЧНастройкиКолонок.Выгрузить());
ДопПараметры.Вставить("НастройкиКомпоновщикаХранилище",НастройкиКомпоновщикаХранилище);
ХранилищеОбщихНастроек.Сохранить(КлючНастроек,КлючНастроек,ДопПараметры);
КонецПроцедуры
#КонецОбласти
#Область КомандыФормы
&НаКлиенте
Процедура КомандаОбновить(Команда)
Элементы.ГруппаСтраницы.ТекущаяСтраница = Элементы.ГруппаКанбанДоска;
ЗаполнитьЗадачиНаКлиенте();
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьЗадачиНаКлиенте()
ОбновитьКанбанДоску();
КонецПроцедуры
&НаКлиенте
Процедура ОбновитьКанбанДоску()
Объект.АдресВременногоХранилища = ПоместитьВоВременноеХранилище(КомпоновщикНастроекКомпоновкиДанных.Настройки,Новый УникальныйИдентификатор());
ЗаполнитьЗадачиНаСервере();
УстановитьВидимостьДоступность();
ОчиститьАктивизацииСтрок();
//ОформлениеЦветаЗадачНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура КомандаУстановитьСтандартныеНастройки(Команда)
УстановитьСтандартныеНастройкиНаСервере();
КонецПроцедуры
#КонецОбласти
#Область КомандыИСобытияТЧЗадачи
&НаКлиенте
Процедура ТЧЗадачиВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ПоказатьЗначение(,Элемент.ТекущиеДанные.Задача);
КонецПроцедуры
&НаКлиенте
Процедура ТЧЗадачиПриАктивизацииЯчейки(Элемент)
ИмяТЧ = Элемент.Имя;
ИмяАктивнойТЧ = ИмяТЧ;
ОчиститьАктивизацииСтрок(ИмяТЧ);
Если НЕ НастройкиТЧДляАктивацииПервойСтроки.Свойство(ИмяТЧ) Тогда
Элемент.ВыделенныеСтроки.Очистить();
НастройкиТЧДляАктивацииПервойСтроки.Вставить(ИмяТЧ,"Истина");
Конецесли;
КонецПроцедуры
&НаКлиенте
Процедура ТЧЗадачиПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа, Параметр)
Отказ = Истина;
ДобавитьНовуюЗадачу(Элемент);
КонецПроцедуры
&НаКлиенте
Процедура ТЧЗадачиПередНачаломИзменения(Элемент, Отказ)
Отказ = Ложь;
КонецПроцедуры
&НаКлиенте
Процедура ТЧЗадачиПеретаскивание(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка, Строка, Поле)
СменитьСтатусЗадачиНаКлиенте(Элемент,ПараметрыПеретаскивания);
ОформлениеЦветаЗадачНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура КомандаДобавитьВСпринт(Команда)
ДобавитьУбратьВСпринтНаКлиенте(1);
КонецПроцедуры
&НаКлиенте
Процедура КомандаУбратьИзСпринта(Команда)
ДобавитьУбратьВСпринтНаКлиенте(-1);
КонецПроцедуры
&НаСервере
Функция ДобавитьУбратьВСпринтЗадачи(КодОперации,пСпринт,МассивЗадач)
ЭтоДобавление = КодОперации = 1;
ЭтоУдаление = КодОперации = -1;
РезультатФункции = Новый Структура();
МассивСообщений = Новый Массив();
Для каждого ЭлМассиваЗадач из МассивЗадач цикл
пЗадачаСсылка = ЭлМассиваЗадач;
Если ЭтоДобавление Тогда
Если пЗадачаСсылка.Спринт <> пСпринт Тогда
ЗадачаОбъект = пЗадачаСсылка.ПолучитьОбъект();
ЗадачаОбъект.Спринт = пСпринт;
ЗадачаОбъект.Записать();
МассивСообщений.Добавить("Добавлена"
+" в спринт ["+пСпринт+"] "
+" задача [#"+пЗадачаСсылка.Код+" "+пЗадачаСсылка+"]");
Иначе
МассивСообщений.Добавить("Уже указана"
+" в спринте ["+пСпринт+"] "
+" задача [#"+пЗадачаСсылка.Код+" "+пЗадачаСсылка+"]");
Конецесли;
ИначеЕсли ЭтоУдаление Тогда
пСпринт = пЗадачаСсылка.Спринт;
Если ЗначениеЗаполнено(пСпринт) Тогда
ЗадачаОбъект = пЗадачаСсылка.ПолучитьОбъект();
ЗадачаОбъект.Спринт = Неопределено;
ЗадачаОбъект.Записать();
МассивСообщений.Добавить("Убрана"
+" из спринта ["+пСпринт+"] "
+" задача [#"+пЗадачаСсылка.Код+" "+пЗадачаСсылка+"]");
Иначе
МассивСообщений.Добавить("Не указана в спринте"
+" задача [#"+пЗадачаСсылка.Код+" "+пЗадачаСсылка+"]");
Конецесли;
Иначе
ВызватьИсключение "Неизвестный код операции " + КодОперации;
КонецЕсли;
Конеццикла;
РезультатФункции.Вставить("МассивСообщений",МассивСообщений);
РезультатФункции.Вставить("КомандаДобавитьУбратьВыполнена",Истина);
Возврат РезультатФункции;
КонецФункции
&НаКлиенте
Процедура ДобавитьУбратьВСпринтНаКлиенте(КодОперации)
СтрокаТЧ = Элементы[ИмяАктивнойТЧ].ТекущиеДанные;
Если СтрокаТЧ = Неопределено тогда
Сообщить("Выберите задачи, которые хотите добавить в спринт");
Возврат;
Конецесли;
МассивВыделенныхСтрок = Элементы[ИмяАктивнойТЧ].ВыделенныеСтроки;
Если МассивВыделенныхСтрок.Количество() = 0 Тогда
Сообщить("Выберите задачи, которые хотите добавить в спринт");
Возврат;
Конецесли;
РезультатФункции = ДобавитьУбратьВСпринтНаСервере(КодОперации,МассивВыделенныхСтрок);
КомандаДобавитьУбратьВыполнена = РезультатФункции.КомандаДобавитьУбратьВыполнена;
Если НЕ КомандаДобавитьУбратьВыполнена Тогда
Если РезультатФункции.Свойство("НеобходимоВыбратьСпринт") Тогда
ДополнительныеПараметры = Новый Структура();
ДополнительныеПараметры.Вставить("МассивВыделенныхСтрок",МассивВыделенныхСтрок);
ОповещениеОЗакрытии = Новый ОписаниеОповещения("ОбработатьВыборСпринта", ЭтаФорма, ДополнительныеПараметры);
пОтбор = Новый Структура("СпринтЗавершен", Ложь);
ПараметрыОткрытияФормы = Новый Структура("Отбор", пОтбор);
ОткрытьФорму("Справочник.узСпринты.Форма.ФормаВыбора",ПараметрыОткрытияФормы,,,,,ОповещениеОЗакрытии);
Конецесли;
Конецесли;
ДобавитьУбратьВСпринтНаКлиентеОбработатьРезультатФункции(РезультатФункции);
КонецПроцедуры
&НаКлиенте
Процедура ОбработатьВыборСпринта(РезультатЗакрытия, ДопПараметры) Экспорт
Если РезультатЗакрытия = Неопределено Тогда
Возврат;
Конецесли;
пСпринт = РезультатЗакрытия;
МассивВыделенныхСтрок = ДопПараметры.МассивВыделенныхСтрок;
РезультатФункции = ДобавитьУбратьВСпринтНаСервере(1,МассивВыделенныхСтрок,пСпринт);
ДобавитьУбратьВСпринтНаКлиентеОбработатьРезультатФункции(РезультатФункции);
КонецПроцедуры
&НаКлиенте
Процедура ДобавитьУбратьВСпринтНаКлиентеОбработатьРезультатФункции(РезультатФункции)
Если РезультатФункции.Свойство("МассивСообщений") Тогда
МассивСообщений = РезультатФункции.МассивСообщений;
Для каждого ЭлМассиваСообщения из МассивСообщений цикл
Сообщить(ЭлМассиваСообщения);
Конеццикла;
Конецесли;
ЗаполнитьЗадачиНаСервере();
КонецПроцедуры
&НаСервере
Функция ДобавитьУбратьВСпринтНаСервере(КодОперации,МассивВыделенныхСтрок,пСпринт = Неопределено)
МассивЗадач = ПолучитьМассивЗадачПоВыделеннымСтрокам(МассивВыделенныхСтрок);
РезультатФункцииТекущийСпринт = Справочники.узСпринты.ПолучитьТекущийСпринт();
ТекстОшибки = РезультатФункцииТекущийСпринт.ТекстОшибки;
Если ЗначениеЗаполнено(ТекстОшибки) Тогда
МассивСообщений = Новый Массив();
МассивСообщений.Добавить(ТекстОшибки);
РезультатФункции = Новый Структура();
РезультатФункции.Вставить("КомандаДобавитьУбратьВыполнена",Ложь);
РезультатФункции.Вставить("МассивСообщений",МассивСообщений);
Возврат РезультатФункции;
Конецесли;
Если КодОперации = -1 Тогда
РезультатФункции = ДобавитьУбратьВСпринтЗадачи(КодОперации,Неопределено,МассивЗадач);
Возврат РезультатФункции;
Конецесли;
Если ЗначениеЗаполнено(пСпринт) Тогда
РезультатФункции = ДобавитьУбратьВСпринтЗадачи(КодОперации,пСпринт,МассивЗадач);
Возврат РезультатФункции;
Конецесли;;
Только1АктивныйСпринт = РезультатФункцииТекущийСпринт.Только1АктивныйСпринт;
Если Только1АктивныйСпринт Тогда
пСпринт = РезультатФункцииТекущийСпринт.Спринт;
РезультатФункции = ДобавитьУбратьВСпринтЗадачи(КодОперации,пСпринт,МассивЗадач);
Возврат РезультатФункции;
Конецесли;
РезультатФункции = Новый Структура();
РезультатФункции.Вставить("КомандаДобавитьУбратьВыполнена",Ложь);
РезультатФункции.Вставить("НеобходимоВыбратьСпринт",Истина);
Возврат РезультатФункции;
КонецФункции
&НаКлиенте
Процедура КомандаНеСледитьЗаЗадачей(Команда)
ДобавитьУбратьНаблюдателяЗаЗадачейНаКлиенте(Ложь);
КонецПроцедуры
&НаКлиенте
Процедура КомандаСледитьЗаЗадачей(Команда)
ДобавитьУбратьНаблюдателяЗаЗадачейНаКлиенте(Истина);
КонецПроцедуры
&НаКлиенте
Процедура ДобавитьУбратьНаблюдателяЗаЗадачейНаКлиенте(ЭтоДобавлениеНаблюдателя)
СтрокаТЧ = Элементы[ИмяАктивнойТЧ].ТекущиеДанные;
Если СтрокаТЧ = Неопределено тогда
Сообщить("Выберите задачи, которые за которыми хотите следить");
Возврат;
Конецесли;
МассивВыделенныхСтрок = Элементы[ИмяАктивнойТЧ].ВыделенныеСтроки;
Если МассивВыделенныхСтрок.Количество() = 0 Тогда
Сообщить("Выберите задачи, которые за которыми хотите следить");
Возврат;
Конецесли;
ДобавитьУбратьНаблюдателяЗаЗадачейНаСервере(МассивВыделенныхСтрок,ЭтоДобавлениеНаблюдателя);
Оповестить("ДобавленУбранНаблюдатель");
КонецПроцедуры
&НаСервере
Процедура ДобавитьУбратьНаблюдателяЗаЗадачейНаСервере(МассивВыделенныхСтрок,ЭтоДобавлениеНаблюдателя)
МассивЗадач = ПолучитьМассивЗадачПоВыделеннымСтрокам(МассивВыделенныхСтрок);
ДопПараметры = Новый Структура();
ДопПараметры.Вставить("Пользователь",Пользователи.ТекущийПользователь());
ДопПараметры.Вставить("МассивЗадач",МассивЗадач);
Если ЭтоДобавлениеНаблюдателя Тогда
РегистрыСведений.узНаблюдателиЗаЗадачами.СледитьЗаЗадачей(ДопПараметры);
Иначе
РегистрыСведений.узНаблюдателиЗаЗадачами.ПерестатьСледитьЗаЗадачей(ДопПараметры);
Конецесли;
КонецПроцедуры
#КонецОбласти
#Область ОформлениеКанбанДоски
&НаСервере
Процедура ОформлениеЦветаЗадачНаСервере()
//Сообщить("ОформлениеЦветаЗадачНаСервере");
УстановитьБазовоеОформлениеЗадачНаСервере();
Для Каждого ТекЭлементФормы Из Элементы Цикл
Если ТипЗнч(ТекЭлементФормы) = Тип("ТаблицаФормы") И ТекЭлементФормы.ПутьКДанным = "Объект.ТЧЗадачи" Тогда
Для Каждого СтрокаЗадача Из Объект.ТЧЗадачи Цикл
ТекЗадача = СтрокаЗадача.Задача;
//+ УЗ_Иванов А.Б. 2016-11-26
//ИмяТЧЗадачи = "ТЧЗадачи" + СтрокаЗадача.Статус.ИмяПредопределенныхДанных;
ИмяКолонки = ПолучитьИмяКолонки(СтрокаЗадача.Статус);
ИмяТЧЗадачи = ИмяКолонки + "_ТЧЗадачи";
//- УЗ_Иванов А.Б. 2016-11-26
Если ТекЭлементФормы.Имя <> ИмяТЧЗадачи Тогда
Продолжить;
КонецЕсли;
ТекЦвет = ПолучитьПриоритетныйЦветЗадачиНаСервере(СтрокаЗадача);
ЦветЗаполнен = ПроверитьЗаполнениеЦвета(ТекЦвет);
Если ЦветЗаполнен Тогда
ОформлениеЗадачи = УсловноеОформление.Элементы.Добавить();
Отбор = ОформлениеЗадачи.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
Отбор.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
Отбор.Использование = ИСТИНА;
Отбор.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ТЧЗадачи.Задача");
Отбор.ПравоеЗначение = ТекЗадача;
Поля = ОформлениеЗадачи.Поля.Элементы.Добавить();
Поля.Использование = ИСТИНА;
Поля.Поле = Новый ПолеКомпоновкиДанных(ИмяТЧЗадачи + "НомерЗадачиПредставление");
ОформлениеЗадачи.Оформление.УстановитьЗначениеПараметра("ЦветФона", ТекЦвет);
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура УстановитьБазовоеОформлениеЗадачНаСервере()
УсловноеОформление.Элементы.Очистить();
ОформлениеЗадачи = УсловноеОформление.Элементы.Добавить();
Отбор = ОформлениеЗадачи.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
Отбор.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
Отбор.Использование = ИСТИНА;
Отбор.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ТЧЗадачи.ВажностьЧисло");
Отбор.ПравоеЗначение = 1;
ЗаполнитьПоляОформленияЗадачНаСервере(ОформлениеЗадачи);
ОформлениеЗадачи.Оформление.УстановитьЗначениеПараметра("ЦветФона", Новый Цвет(255,102,102));
ОформлениеЗадачи = УсловноеОформление.Элементы.Добавить();
ОтборГруппа = ОформлениеЗадачи.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ОтборГруппа.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли;
ОтборЭлементы = ОтборГруппа.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлементы.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлементы.Использование = ИСТИНА;
ОтборЭлементы.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ТЧЗадачи.ВажностьЧисло");
ОтборЭлементы.ПравоеЗначение = 2;
ОтборЭлементы = ОтборГруппа.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлементы.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
ОтборЭлементы.Использование = ИСТИНА;
ОтборЭлементы.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ТЧЗадачи.ВажностьЧисло");
ЗаполнитьПоляОформленияЗадачНаСервере(ОформлениеЗадачи);
ОформлениеЗадачи.Оформление.УстановитьЗначениеПараметра("ЦветФона", Новый Цвет(153,204,0));
ОформлениеЗадачи = УсловноеОформление.Элементы.Добавить();
Отбор = ОформлениеЗадачи.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
Отбор.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
Отбор.Использование = ИСТИНА;
Отбор.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ТЧЗадачи.ВажностьЧисло");
Отбор.ПравоеЗначение = 3;
ЗаполнитьПоляОформленияЗадачНаСервере(ОформлениеЗадачи);
ОформлениеЗадачи.Оформление.УстановитьЗначениеПараметра("ЦветФона", Новый Цвет(207,238,0));
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьПоляОформленияЗадачНаСервере(ОформлениеЗадачи)
Для Каждого ТекЭлементФормы Из Элементы Цикл
Если ТипЗнч(ТекЭлементФормы) = Тип("ТаблицаФормы") И ТекЭлементФормы.ПутьКДанным = "Объект.ТЧЗадачи" Тогда
ИмяТЧЗадачи = ТекЭлементФормы.Имя;
Если ТекЭлементФормы.Имя <> ИмяТЧЗадачи Тогда
Продолжить;
КонецЕсли;
Поля = ОформлениеЗадачи.Поля.Элементы.Добавить();
Поля.Использование = ИСТИНА;
Поля.Поле = Новый ПолеКомпоновкиДанных(ИмяТЧЗадачи + "_ВерхняяЧасть_НомерЗадачиПредставление");
//ТЧЗадачи_ВерхняяЧасть_НомерЗадачиПредставление_В_процессе_выполнения
//Элементы.В_процессе_выполнения_ТЧЗадачи_ВерхняяЧасть_НомерЗадачиПредставление_
КонецЕсли;
КонецЦикла;
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Функция ПроверитьЗаполнениеЦвета(ТекЦвет)
Если ТекЦвет = Неопределено ИЛИ ТекЦвет = Новый Цвет(0,0,0) Тогда
Возврат ЛОЖЬ;
Иначе
Возврат ИСТИНА;
КонецЕсли;
КонецФункции
&НаСервере
Функция ПолучитьПриоритетныйЦветЗадачиНаСервере(СтрокаЗадача)
Для Каждого ВидПриоритета Из ПолучитьМассивПриоритетовЦветаЗадач() Цикл
ТекЦвет = ПолучитьЦветЗадачиПоВидуПриоритета(СтрокаЗадача, ВидПриоритета);
ЦветЗаполнен = ПроверитьЗаполнениеЦвета(ТекЦвет);
Если ЦветЗаполнен Тогда
Прервать;
КонецЕсли;
КонецЦикла;
Возврат ТекЦвет;
КонецФункции
&НаСервере
Функция ПолучитьЦветЗадачиПоВидуПриоритета(СтрокаЗадача, ВидПриоритета)
НужныйЦвет = Неопределено;
Задача = СтрокаЗадача.Задача;
Если ВидПриоритета = ВидыПриоритетаЦвета().Задача Тогда
НужныйЦвет = Задача.ЦветЗадачи.Получить();
ИначеЕсли ВидПриоритета = ВидыПриоритетаЦвета().Спринт Тогда
НужныйЦвет = Задача.Спринт.ЦветСпринта.Получить();
ИначеЕсли ВидПриоритета = ВидыПриоритетаЦвета().ОсновнаяЗадача Тогда
НужныйЦвет = Задача.ОсновнаяЗадача.ЦветЗадачи.Получить();
ИначеЕсли ВидПриоритета = ВидыПриоритетаЦвета().Важность Тогда
НужныйЦвет = Задача.Важность.ЦветВажности.Получить();
КонецЕсли;
Возврат НужныйЦвет;
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция ПолучитьМассивПриоритетовЦветаЗадач()
Приоритеты = Новый Массив;
Приоритеты.Добавить(ВидыПриоритетаЦвета().Задача);
Приоритеты.Добавить(ВидыПриоритетаЦвета().Спринт);
Приоритеты.Добавить(ВидыПриоритетаЦвета().ОсновнаяЗадача);
Приоритеты.Добавить(ВидыПриоритетаЦвета().Важность);
Возврат Новый ФиксированныйМассив(Приоритеты);
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция ВидыПриоритетаЦвета()
Виды = Новый Структура();
Виды.Вставить("Важность" , "Важность");
Виды.Вставить("ОсновнаяЗадача", "ОсновнаяЗадача");
Виды.Вставить("Спринт" , "Спринт");
Виды.Вставить("Задача" , "Задача");
Возврат Новый ФиксированнаяСтруктура(Виды);
КонецФункции
#КонецОбласти

View File

@ -2982,9 +2982,9 @@
<d3p1:fixedVariantMeasure>Day</d3p1:fixedVariantMeasure>
<d3p1:fixedVariantInterval>1</d3p1:fixedVariantInterval>
<d3p1:autoFullInterval>true</d3p1:autoFullInterval>
<d3p1:fullIntervalBegin>2016-09-05T08:00:00</d3p1:fullIntervalBegin>
<d3p1:fullIntervalEnd>2016-09-14T09:59:59</d3p1:fullIntervalEnd>
<d3p1:visualBegin>2016-09-05T08:00:00</d3p1:visualBegin>
<d3p1:fullIntervalBegin>2016-09-05T07:00:00</d3p1:fullIntervalBegin>
<d3p1:fullIntervalEnd>2016-09-14T08:59:59</d3p1:fullIntervalEnd>
<d3p1:visualBegin>2016-09-05T07:00:00</d3p1:visualBegin>
<d3p1:intervalDrawType>Gradient</d3p1:intervalDrawType>
<d3p1:noneVariantChars>3</d3p1:noneVariantChars>
<d3p1:noneVariantMeasure>Day</d3p1:noneVariantMeasure>