1
0
mirror of https://github.com/BlizD/Tasks.git synced 2025-04-23 12:08:57 +02:00

#304 Добавить Метки (Ярлыки) Labels в задачи (новый механизм 1с "Множественные характеристики")

This commit is contained in:
Anton Ivanov 2022-12-29 12:09:52 +03:00
parent 9348efab7d
commit 23704efa16
16 changed files with 892 additions and 46 deletions

View File

@ -3991,7 +3991,6 @@
<Form>ФормаВыбораМножественный</Form>
<Form>ФормаПолноэкранныйРежим</Form>
<Form>ФормаТаблицаПолноэкранныйРежим</Form>
<Form>ФормаМетки</Form>
<Template>КонсольКода_src</Template>
<Command uuid="d49b1992-4273-4e37-9c1f-9d3aea548430">
<Properties>

View File

@ -326,21 +326,26 @@
<ExtendedTooltip name="ГруппаСвязанныеЗадачиРасширеннаяПодсказка" id="524"/>
</UsualGroup>
<Button name="КомандаМетки" id="774">
<Type>Hyperlink</Type>
<Type>UsualButton</Type>
<CommandName>Form.Command.КомандаМетки</CommandName>
<Shape>Oval</Shape>
<ExtendedTooltip name="КомандаМеткиРасширеннаяПодсказка" id="775"/>
</Button>
<LabelField name="МеткиФорматированнаяСтрока" id="771">
<DataPath>МеткиФорматированнаяСтрока</DataPath>
<TitleLocation>None</TitleLocation>
<ContextMenu name="МеткиФорматированнаяСтрокаКонтекстноеМеню" id="772"/>
<ExtendedTooltip name="МеткиФорматированнаяСтрокаРасширеннаяПодсказка" id="773"/>
<Events>
<Event name="OnChange">МеткиФорматированнаяСтрокаПриИзменении</Event>
<Event name="URLProcessing">МеткиФорматированнаяСтрокаОбработкаНавигационнойСсылки</Event>
<Event name="Click">МеткиФорматированнаяСтрокаНажатие</Event>
</Events>
</LabelField>
<CommandBar name="ГруппаМетки" id="776">
<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="777"/>
</CommandBar>
</ChildItems>
</UsualGroup>
<Pages name="ГруппаСтраницыОформлениеСодержания" id="438">
@ -2883,6 +2888,7 @@
</ChildItems>
</Page>
<Page name="ГруппаСтраницаДопРеквизитыМножественные" id="744">
<Visible>false</Visible>
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
@ -3895,6 +3901,7 @@
</v8:item>
</ToolTip>
<Action>КомандаМетки</Action>
<ModifiesSavedData>true</ModifiesSavedData>
</Command>
</Commands>
<CommandInterface>

View File

@ -62,6 +62,9 @@
УстановитьПараметрОтбораПоУчетуЗадач();
//- #104 Дзеса Ігор (capitoshko) 08.10.2018
ДобавитьМеткиНаФорму();
ОбновитьОтображениеМетокЗадачи();
//+ #287 Пихоцкий Юрий (pihy86) 01.06.2021
ТабличныйДокумент = Объект.Ссылка.ТабличноеОписание.Получить();
//- #287 Пихоцкий Юрий (pihy86) 01.06.2021
@ -175,8 +178,6 @@
ЦветЗадачиНаФорме = ТекущийОбъект.ЦветЗадачи.Получить();
ОбновитьОтображениеМетокЗадачи();
//+ #201 Иванов А.Б. 2020-05-23 Изменения от Дениса Урянского @d-hurricane
// СтандартныеПодсистемы.УправлениеДоступом
УправлениеДоступом.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
@ -482,6 +483,7 @@
Элементы.Содержание.ТолькоПросмотр = Истина;
// -SZ #277 16.01.2021
Если Объект.ОформлениеТекста = ПредопределенноеЗначение("Перечисление.узОформлениеТекста.ФорматированныйТекст") Тогда
Элементы.ГруппаСтраницаФорматированныйТекст.Видимость = Истина;
ИначеЕсли Объект.ОформлениеТекста = ПредопределенноеЗначение("Перечисление.узОформлениеТекста.Markdown") Тогда
@ -551,6 +553,24 @@
//- #104 Дзеса Ігор (capitoshko) 08.10.2018
ОбновитьЗаголовокПоказатьСкрытьКомментарии();
ОбновитьВидимостьКомандаМетки();
КонецПроцедуры
&НаСервере
Процедура ОбновитьВидимостьКомандаМетки()
Элементы.КомандаМетки.Видимость = Ложь;
МеткиЗадач = ПолучитьВыбранныеМеткиЗадачи();
Если МеткиЗадач.Количество() = 0 Тогда
Элементы.КомандаМетки.Видимость = Истина;
КонецЕсли;
КонецПроцедуры
&НаСервереБезКонтекста
@ -587,7 +607,6 @@
Элементы.КомандаПоказатьСкрытьКомментарии.Заголовок = пТекстЗаголовок;
КонецПроцедуры
&НаСервере
Функция ПолучитьСодержаниеТекстИзФорматированногоТекста()
ТекстHTML = "";
@ -741,25 +760,62 @@
// }milanse 07.06.2020 0:06:35
&НаСервере
Процедура ОбновитьОтображениеМетокЗадачи()
Процедура ДобавитьМеткиНаФорму()
ВсеМеткиСтрокой = Новый Массив;
НомерМетки = 1;
ДействиеКоманды = "КомандаМетки";
ЭлементРодитель = Элементы.ГруппаМетки;
Для Каждого СтрокаДопРеквизитыМножественные Из Объект.ДопРеквизитыМножественные Цикл
ВсеМеткиЗадач = Справочники.узМеткиЗадач.ПолучитьВсеМеткиЗадач();
ВыбранныеМеткиЗадач = ПолучитьВыбранныеМеткиЗадачи();
МеткаСсылка = СтрокаДопРеквизитыМножественные.Значение;
Для Каждого МеткаСсылка Из ВсеМеткиЗадач Цикл
МеткаСтрока = Новый ФорматированнаяСтрока(
" " + МеткаСсылка + " ", , , МеткаСсылка.ЦветМетки.Получить());
ИмяКоманды = "КомандаМетка" + НомерМетки;
ВсеМеткиСтрокой.Добавить(МеткаСтрока);
Команда = Команды.Добавить(ИмяКоманды);
Команда.Действие = ДействиеКоманды;
Команда.Заголовок = "" + МеткаСсылка;
ВсеМеткиСтрокой.Добавить(
Новый ФорматированнаяСтрока(" "));
КнопкаФормы = Элементы.Добавить(ИмяКоманды, Тип("КнопкаФормы"), ЭлементРодитель);
КнопкаФормы.ИмяКоманды = ИмяКоманды;
КнопкаФормы.Фигура = ФигураКнопки.Овал;
КнопкаФормы.АвтоМаксимальнаяШирина = Истина;
КнопкаФормы.ЦветФона = МеткаСсылка.ЦветФонаМетки.Получить();
КнопкаФормы.ЦветТекста = МеткаСсылка.ЦветТекстаМетки.Получить();
КнопкаФормы.Шрифт = Новый Шрифт("@Arial Unicode MS", 8, Ложь);
КнопкаФормы.Видимость = Ложь;
Если ВыбранныеМеткиЗадач.Найти(МеткаСсылка) <> Неопределено Тогда
КнопкаФормы.Видимость = Истина;
КонецЕсли;
НомерМетки = НомерМетки + 1;
КонецЦикла;
МеткиФорматированнаяСтрока = Новый ФорматированнаяСтрока(ВсеМеткиСтрокой);
КонецПроцедуры
&НаСервере
Процедура ОбновитьОтображениеМетокЗадачи()
ВсеМеткиЗадач = Справочники.узМеткиЗадач.ПолучитьВсеМеткиЗадач();
ВыбранныеМеткиЗадач = ПолучитьВыбранныеМеткиЗадачи();
НомерМетки = 1;
Для Каждого МеткаСсылка Из ВсеМеткиЗадач Цикл
ИмяКоманды = "КомандаМетка" + НомерМетки;
КнопкаФормы = Элементы[ИмяКоманды];
КнопкаФормы.Видимость = Ложь;
Если ВыбранныеМеткиЗадач.Найти(МеткаСсылка) <> Неопределено Тогда
КнопкаФормы.Видимость = Истина;
КонецЕсли;
НомерМетки = НомерМетки + 1;
КонецЦикла;
КонецПроцедуры
@ -767,7 +823,6 @@
#Область ОбработчикиСобытийЭлементовШапкиФормы
&НаКлиенте
Процедура КомментарииВКодеОткрытие(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
@ -1965,14 +2020,42 @@
&НаКлиенте
Процедура КомандаМетки(Команда)
МеткиЗадачи = Новый Массив();
Для Каждого СтрокаДопРеквизитыМножественные Из Объект.ДопРеквизитыМножественные Цикл
МеткиЗадачи.Добавить(СтрокаДопРеквизитыМножественные.Значение);
КонецЦикла;
ОповещениеОЗакрытии = Новый ОписаниеОповещения("КомандыМеткиПриЗавершении", ЭтотОбъект);
ПараметрыФормы = Новый Структура();
ПараметрыФормы.Вставить("МеткиЗадачи", МеткиЗадачи);
ОткрытьФорму("Справочник.узЗадачи.Форма.ФормаМетки", ПараметрыФормы, ЭтотОбъект);
ПараметрыФормы.Вставить("МеткиЗадачи", ПолучитьВыбранныеМеткиЗадачи());
ОткрытьФорму("Справочник.узМеткиЗадач.Форма.ФормаМетки", ПараметрыФормы, ЭтотОбъект, , , , ОповещениеОЗакрытии);
КонецПроцедуры
&НаСервере
Функция ПолучитьВыбранныеМеткиЗадачи()
МеткиЗадачи = Новый Массив();
Для Каждого СтрокаДопРеквизитыМножественные Из Объект.ДопРеквизитыМножественные Цикл
МеткиЗадачи.Добавить(СтрокаДопРеквизитыМножественные.Значение);
КонецЦикла;
Возврат МеткиЗадачи;
КонецФункции
&НаКлиенте
Процедура КомандыМеткиПриЗавершении(РезультатЗакрытия, ДопПараметры) Экспорт
Если РезультатЗакрытия = Неопределено Тогда
Возврат;
Конецесли;
ОбновитьВидимостьКомандаМетки();
ОбновитьОтображениеМетокЗадачи();
Модифицированность = Истина;
КонецПроцедуры
#КонецОбласти

View File

@ -113,6 +113,7 @@
<v8:Type>cfg:CatalogRef.узЗадачи</v8:Type>
<v8:Type>xs:boolean</v8:Type>
<v8:Type>cfg:CatalogRef.узСтатусыЗадачи</v8:Type>
<v8:Type>cfg:ChartOfCharacteristicTypesRef.узДопРеквизитыЗадачМножественные</v8:Type>
<v8:Type>xs:string</v8:Type>
<v8:Type>xs:dateTime</v8:Type>
<v8:Type>xs:decimal</v8:Type>

View File

@ -18,6 +18,12 @@
<Description>Отключить возможность создание регламентных текущих дел</Description>
<IsFolder>false</IsFolder>
</Item>
<Item id="500186e6-0437-4b23-ad6f-ee1a99dec0f4">
<Name>Свойство_МеткаЗадачи</Name>
<Code>000000011</Code>
<Description>Свойство метка задачи</Description>
<IsFolder>false</IsFolder>
</Item>
<Item id="ae4a846f-f623-4b56-830a-0f93a7e258e7">
<Name>СписокПользователейКомуОтправлятьСистемныеУведомления</Name>
<Code>000000001</Code>

View File

@ -62,7 +62,7 @@
<ChoiceDataGetModeOnInputByString>Directly</ChoiceDataGetModeOnInputByString>
<DefaultObjectForm>Catalog.узМеткиЗадач.Form.ФормаЭлемента</DefaultObjectForm>
<DefaultFolderForm/>
<DefaultListForm/>
<DefaultListForm>Catalog.узМеткиЗадач.Form.ФормаСписка</DefaultListForm>
<DefaultChoiceForm/>
<DefaultFolderChoiceForm/>
<AuxiliaryObjectForm/>
@ -89,11 +89,11 @@
<ChildObjects>
<Attribute uuid="52c846f6-8ab3-48d2-a49c-d6dbec7068be">
<Properties>
<Name>ЦветМетки</Name>
<Name>ЦветФонаМетки</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Цвет метки</v8:content>
<v8:content>Цвет фона метки</v8:content>
</v8:item>
<v8:item>
<v8:lang>en</v8:lang>
@ -135,7 +135,115 @@
<DataHistory>Use</DataHistory>
</Properties>
</Attribute>
<Attribute uuid="c1296602-7e04-45fe-a8b3-bb44c14294c1">
<Properties>
<Name>ЦветТекстаМетки</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Цвет текста метки</v8:content>
</v8:item>
<v8:item>
<v8:lang>en</v8:lang>
<v8:content>Task Color</v8:content>
</v8:item>
<v8:item>
<v8:lang>ro</v8:lang>
<v8:content>Culor Sarcinii</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Type>
<v8:Type>v8:ValueStorage</v8:Type>
</Type>
<PasswordMode>false</PasswordMode>
<Format/>
<EditFormat/>
<ToolTip/>
<MarkNegatives>false</MarkNegatives>
<Mask/>
<MultiLine>false</MultiLine>
<ExtendedEdit>false</ExtendedEdit>
<MinValue xsi:nil="true"/>
<MaxValue xsi:nil="true"/>
<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>
<Use>ForItem</Use>
<Indexing>DontIndex</Indexing>
<FullTextSearch>Use</FullTextSearch>
<DataHistory>Use</DataHistory>
</Properties>
</Attribute>
<Attribute uuid="6543b9fa-09f1-4c8f-a7ea-572e021f9ef3">
<Properties>
<Name>РеквизитДопУпорядочивания</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Порядок</v8:content>
</v8:item>
<v8:item>
<v8:lang>en</v8:lang>
<v8:content>Order</v8:content>
</v8:item>
<v8:item>
<v8:lang>ro</v8:lang>
<v8:content>Ordine</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Type>
<v8:Type>xs:decimal</v8:Type>
<v8:NumberQualifiers>
<v8:Digits>6</v8:Digits>
<v8:FractionDigits>0</v8:FractionDigits>
<v8:AllowedSign>Any</v8:AllowedSign>
</v8:NumberQualifiers>
</Type>
<PasswordMode>false</PasswordMode>
<Format/>
<EditFormat/>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Используется для упорядочивания (служебный)</v8:content>
</v8:item>
</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>
<Use>ForItem</Use>
<Indexing>IndexWithAdditionalOrder</Indexing>
<FullTextSearch>DontUse</FullTextSearch>
<DataHistory>Use</DataHistory>
</Properties>
</Attribute>
<Form>ФормаЭлемента</Form>
<Form>ФормаМетки</Form>
<Form>ФормаСписка</Form>
</ChildObjects>
</Catalog>
</MetaDataObject>

View File

@ -0,0 +1,37 @@
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область ПрограммныйИнтерфейс
&НаСервере
Функция ПолучитьВсеМеткиЗадач() Экспорт
ВсеМеткиЗадач = Новый Массив();
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| узМеткиЗадач.Ссылка КАК Ссылка
|ИЗ
| Справочник.узМеткиЗадач КАК узМеткиЗадач
|ГДЕ
| НЕ узМеткиЗадач.ПометкаУдаления
|
|УПОРЯДОЧИТЬ ПО
| узМеткиЗадач.РеквизитДопУпорядочивания";
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
ВсеМеткиЗадач.Добавить(Выборка.Ссылка);
КонецЦикла;
Возврат ВсеМеткиЗадач;
КонецФункции
#КонецОбласти
#КонецЕсли

View File

@ -0,0 +1,21 @@
<?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="d2e1a5bf-1625-4e1b-8e7c-18f6a9d9abeb">
<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">PlatformApplication</v8:Value>
<v8:Value xsi:type="app:ApplicationUsePurpose">MobilePlatformApplication</v8:Value>
</UsePurposes>
</Properties>
</Form>
</MetaDataObject>

View File

@ -0,0 +1,181 @@
<?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>
<WindowOpeningMode>LockOwnerWindow</WindowOpeningMode>
<AutoTitle>false</AutoTitle>
<AutoCommandBar name="ФормаКоманднаяПанель" id="-1">
<Autofill>false</Autofill>
<ChildItems>
<Button name="ФормаКомандаОК" id="8">
<Type>CommandBarButton</Type>
<CommandName>Form.Command.КомандаОК</CommandName>
<ExtendedTooltip name="ФормаКомандаОКРасширеннаяПодсказка" id="9"/>
</Button>
<Button name="ФормаКомандаЗакрыть" id="10">
<Type>CommandBarButton</Type>
<CommandName>Form.Command.КомандаЗакрыть</CommandName>
<ExtendedTooltip name="ФормаКомандаЗакрытьРасширеннаяПодсказка" id="11"/>
</Button>
</ChildItems>
</AutoCommandBar>
<Events>
<Event name="OnCreateAtServer">ПриСозданииНаСервере</Event>
</Events>
<ChildItems>
<CommandBar 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"/>
</CommandBar>
<LabelDecoration name="ДекорацияДоступные" id="5">
<Title formatted="false">
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Доступные</v8:content>
</v8:item>
</Title>
<ContextMenu name="ДекорацияДоступныеКонтекстноеМеню" id="6"/>
<ExtendedTooltip name="ДекорацияДоступныеРасширеннаяПодсказка" id="7"/>
</LabelDecoration>
<CommandBar 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>
<ExtendedTooltip name="ГруппаМеткиДоступныеРасширеннаяПодсказка" id="4"/>
</CommandBar>
</ChildItems>
<Attributes>
<Attribute name="Метки" id="2">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Метки</v8:content>
</v8:item>
</Title>
<Type>
<v8:Type>v8:ValueTable</v8:Type>
</Type>
<Columns>
<Column name="Пометка" id="1">
<Type>
<v8:Type>xs:boolean</v8:Type>
</Type>
</Column>
<Column name="Метка" id="2">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Метка</v8:content>
</v8:item>
</Title>
<Type>
<v8:Type>cfg:CatalogRef.узМеткиЗадач</v8:Type>
</Type>
</Column>
<Column name="ЦветМетки" id="3">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Цвет метки</v8:content>
</v8:item>
</Title>
<Type>
<v8:Type>v8ui:Color</v8:Type>
</Type>
</Column>
</Columns>
</Attribute>
<Attribute name="ЗадачаОбъект" id="1">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Задача объект</v8:content>
</v8:item>
</Title>
<Type>
<v8:Type>cfg:CatalogObject.узЗадачи</v8:Type>
</Type>
</Attribute>
<Attribute name="МеткиСписок" id="3">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Метки список</v8:content>
</v8:item>
</Title>
<Type>
<v8:Type>v8:ValueListType</v8:Type>
</Type>
<Settings xsi:type="v8:TypeDescription">
<v8:Type>cfg:CatalogRef.узМеткиЗадач</v8:Type>
</Settings>
</Attribute>
<Attribute name="Свойство_МеткаЗадачи" id="4">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Свойство метка задачи</v8:content>
</v8:item>
</Title>
<Type>
<v8:Type>cfg:ChartOfCharacteristicTypesRef.узДопРеквизитыЗадачМножественные</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>
<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>
<Action>КомандаЗакрыть</Action>
</Command>
</Commands>
</Form>

View File

@ -0,0 +1,177 @@

#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Свойство_МеткаЗадачи = Справочники.узКонстанты.ПолучитьЗначениеКонстанты(
"Свойство_МеткаЗадачи",
Тип("ПланВидовХарактеристикСсылка.узДопРеквизитыЗадачМножественные"), , Истина, Истина);
ДобавитьМеткиНаФорму();
УстановитьВидимостьДоступность();
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы
&НаКлиенте
Процедура КомандаМетки(Команда) Экспорт
ЭлементФормы = Элементы[Команда.Имя];
ЭлементФормы.Пометка = НЕ ЭлементФормы.Пометка;
МеткаЗаголовок = ЭлементФормы.Заголовок;
ПереместитьКнопкуМетки(Команда.Имя, МеткаЗаголовок);
КонецПроцедуры
&НаКлиенте
Процедура КомандаОК(Команда)
ОбъектФормыВладельца = ЭтотОбъект.ВладелецФормы.Объект;
СтрокиКУдалению = Новый Массив();
Для Каждого ЭлСпискаМетки Из МеткиСписок Цикл
МеткаСсылка = ЭлСпискаМетки.Значение;
ЕстьМеткаВОбъекте = Ложь;
Для Каждого СтрокаДопРеквизитыМножественные Из ОбъектФормыВладельца.ДопРеквизитыМножественные Цикл
МеткаВОбъекте = СтрокаДопРеквизитыМножественные.Значение;
Если МеткаВОбъекте <> МеткаСсылка Тогда
Продолжить;
КонецЕсли;
ЕстьМеткаВОбъекте = Истина;
Если НЕ ЭлСпискаМетки.Пометка Тогда
СтрокиКУдалению.Добавить(СтрокаДопРеквизитыМножественные);
КонецЕсли;
КонецЦикла;
Если ЭлСпискаМетки.Пометка
И НЕ ЕстьМеткаВОбъекте Тогда
СтрокаДопРеквизитыМножественные = ОбъектФормыВладельца.ДопРеквизитыМножественные.Добавить();
СтрокаДопРеквизитыМножественные.Свойство = Свойство_МеткаЗадачи;
СтрокаДопРеквизитыМножественные.КлючСтроки = "" + Новый УникальныйИдентификатор;
СтрокаДопРеквизитыМножественные.Значение = МеткаСсылка;
КонецЕсли;
КонецЦикла;
Для Каждого СтрокаКУдалению Из СтрокиКУдалению Цикл
ОбъектФормыВладельца.ДопРеквизитыМножественные.Удалить(СтрокаКУдалению);
КонецЦикла;
Закрыть(Истина);
КонецПроцедуры
&НаКлиенте
Процедура КомандаЗакрыть(Команда)
Закрыть();
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаСервере
Процедура ДобавитьМеткиНаФорму()
МеткиЗадачи = Параметры.МеткиЗадачи;
ВсеМеткиЗадач = Справочники.узМеткиЗадач.ПолучитьВсеМеткиЗадач();
НомерМетки = 1;
ДействиеКоманды = "КомандаМетки";
ЭлементГруппаМеткиВыбранные = Элементы.ГруппаМеткиВыбранные;
ЭлементГруппаМеткиДоступные = Элементы.ГруппаМеткиДоступные;
Для Каждого МеткаСсылка Из ВсеМеткиЗадач Цикл
МеткаВыбрана = Ложь;
ЭлементРодитель = ЭлементГруппаМеткиДоступные;
Если МеткиЗадачи.Найти(МеткаСсылка) <> Неопределено Тогда
МеткаВыбрана = Истина;
ЭлементРодитель = ЭлементГруппаМеткиВыбранные;
КонецЕсли;
МеткиСписок.Добавить(МеткаСсылка, , МеткаВыбрана);
ИмяКоманды = "КомандаМетка" + НомерМетки;
ЗаголовокМетки = "" + МеткаСсылка;
Команда = Команды.Добавить(ИмяКоманды);
Команда.Действие = ДействиеКоманды;
Команда.Заголовок = ЗаголовокМетки;
КнопкаФормы = Элементы.Добавить(ИмяКоманды, Тип("КнопкаФормы"), ЭлементРодитель);
КнопкаФормы.Заголовок = ЗаголовокМетки;
КнопкаФормы.ИмяКоманды = ИмяКоманды;
КнопкаФормы.Фигура = ФигураКнопки.Овал;
КнопкаФормы.АвтоМаксимальнаяШирина = Истина;
КнопкаФормы.ЦветФона = МеткаСсылка.ЦветФонаМетки.Получить();
КнопкаФормы.ЦветТекста = МеткаСсылка.ЦветТекстаМетки.Получить();
КнопкаФормы.Шрифт = Новый Шрифт("@Arial Unicode MS", 8, Ложь);
КнопкаФормы.Пометка = Ложь;
Если МеткаВыбрана Тогда
КнопкаФормы.Пометка = Истина;
КонецЕсли;
НомерМетки = НомерМетки + 1;
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура УстановитьВидимостьДоступность()
Элементы.ДекорацияДоступные.Видимость = Ложь;
Если Элементы.ГруппаМеткиДоступные.ПодчиненныеЭлементы.Количество() > 0 Тогда
Элементы.ДекорацияДоступные.Видимость = Истина;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПереместитьКнопкуМетки(ИмяЭлемента, МеткаЗаголовок)
ЭлементФормы = Элементы[ИмяЭлемента];
Если ЭлементФормы.Пометка Тогда
Элементы.Переместить(ЭлементФормы, Элементы.ГруппаМеткиВыбранные);
Иначе
Элементы.Переместить(ЭлементФормы, Элементы.ГруппаМеткиДоступные);
КонецЕсли;
МеткаСсылка = Справочники.узМеткиЗадач.НайтиПоНаименованию(МеткаЗаголовок, Истина);
ЭлСписка = МеткиСписок.НайтиПоЗначению(МеткаСсылка);
ЭлСписка.Пометка = ЭлементФормы.Пометка;
УстановитьВидимостьДоступность();
КонецПроцедуры
#КонецОбласти

View File

@ -0,0 +1,21 @@
<?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="e817ffe2-0eec-47f0-b46d-de58d37dddf6">
<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">PlatformApplication</v8:Value>
<v8:Value xsi:type="app:ApplicationUsePurpose">MobilePlatformApplication</v8:Value>
</UsePurposes>
</Properties>
</Form>
</MetaDataObject>

View File

@ -0,0 +1,133 @@
<?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">
<AutoCommandBar name="ФормаКоманднаяПанель" id="-1"/>
<Events>
<Event name="OnCreateAtServer">ПриСозданииНаСервере</Event>
</Events>
<ChildItems>
<UsualGroup name="СписокКомпоновщикНастроекПользовательскиеНастройки" id="1">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Группа пользовательских настроек</v8:content>
</v8:item>
</Title>
<VerticalStretch>false</VerticalStretch>
<Group>Vertical</Group>
<Behavior>Usual</Behavior>
<ShowTitle>false</ShowTitle>
<ExtendedTooltip name="СписокКомпоновщикНастроекПользовательскиеНастройкиРасширеннаяПодсказка" id="2"/>
</UsualGroup>
<Table name="Список" id="3">
<CommandBarLocation>None</CommandBarLocation>
<DefaultItem>true</DefaultItem>
<UseAlternationRowColor>true</UseAlternationRowColor>
<InitialTreeView>ExpandTopLevel</InitialTreeView>
<EnableStartDrag>true</EnableStartDrag>
<EnableDrag>true</EnableDrag>
<DataPath>Список</DataPath>
<RowPictureDataPath>Список.DefaultPicture</RowPictureDataPath>
<AutoRefresh>false</AutoRefresh>
<AutoRefreshPeriod>60</AutoRefreshPeriod>
<Period>
<v8:variant xsi:type="v8:StandardPeriodVariant">Custom</v8:variant>
<v8:startDate>0001-01-01T00:00:00</v8:startDate>
<v8:endDate>0001-01-01T00:00:00</v8:endDate>
</Period>
<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
<RestoreCurrentRow>false</RestoreCurrentRow>
<TopLevelParent xsi:nil="true"/>
<ShowRoot>true</ShowRoot>
<AllowRootChoice>false</AllowRootChoice>
<UpdateOnDataChange>Auto</UpdateOnDataChange>
<UserSettingsGroup>СписокКомпоновщикНастроекПользовательскиеНастройки</UserSettingsGroup>
<AllowGettingCurrentRowURL>true</AllowGettingCurrentRowURL>
<ContextMenu name="СписокКонтекстноеМеню" id="4"/>
<AutoCommandBar name="СписокКоманднаяПанель" id="5">
<Autofill>false</Autofill>
</AutoCommandBar>
<ExtendedTooltip name="СписокРасширеннаяПодсказка" id="6"/>
<SearchStringAddition name="СписокСтрокаПоиска" id="7">
<AdditionSource>
<Item>Список</Item>
<Type>SearchStringRepresentation</Type>
</AdditionSource>
<ContextMenu name="СписокСтрокаПоискаКонтекстноеМеню" id="8"/>
<ExtendedTooltip name="СписокСтрокаПоискаРасширеннаяПодсказка" id="9"/>
</SearchStringAddition>
<ViewStatusAddition name="СписокСостояниеПросмотра" id="10">
<AdditionSource>
<Item>Список</Item>
<Type>ViewStatusRepresentation</Type>
</AdditionSource>
<ContextMenu name="СписокСостояниеПросмотраКонтекстноеМеню" id="11"/>
<ExtendedTooltip name="СписокСостояниеПросмотраРасширеннаяПодсказка" id="12"/>
</ViewStatusAddition>
<SearchControlAddition name="СписокУправлениеПоиском" id="13">
<AdditionSource>
<Item>Список</Item>
<Type>SearchControl</Type>
</AdditionSource>
<ContextMenu name="СписокУправлениеПоискомКонтекстноеМеню" id="14"/>
<ExtendedTooltip name="СписокУправлениеПоискомРасширеннаяПодсказка" id="15"/>
</SearchControlAddition>
<Events>
<Event name="OnActivateRow">СписокПриАктивизацииСтроки</Event>
</Events>
<ChildItems>
<LabelField name="Код" id="19">
<DataPath>Список.Code</DataPath>
<ContextMenu name="КодКонтекстноеМеню" id="20"/>
<ExtendedTooltip name="КодРасширеннаяПодсказка" id="21"/>
</LabelField>
<LabelField name="Наименование" id="16">
<DataPath>Список.Description</DataPath>
<DefaultItem>true</DefaultItem>
<ContextMenu name="НаименованиеКонтекстноеМеню" id="17"/>
<ExtendedTooltip name="НаименованиеРасширеннаяПодсказка" id="18"/>
</LabelField>
<LabelField name="Ссылка" id="22">
<DataPath>Список.Ref</DataPath>
<ContextMenu name="СсылкаКонтекстноеМеню" id="23"/>
<ExtendedTooltip name="СсылкаРасширеннаяПодсказка" id="24"/>
</LabelField>
</ChildItems>
</Table>
</ChildItems>
<Attributes>
<Attribute name="Список" id="1">
<Type>
<v8:Type>cfg:DynamicList</v8:Type>
</Type>
<MainAttribute>true</MainAttribute>
<UseAlways>
<Field>Список.Ref</Field>
</UseAlways>
<Settings xsi:type="DynamicList">
<ManualQuery>false</ManualQuery>
<DynamicDataRead>true</DynamicDataRead>
<MainTable>Catalog.узМеткиЗадач</MainTable>
<ListSettings>
<dcsset:filter>
<dcsset:viewMode>Normal</dcsset:viewMode>
<dcsset:userSettingID>dfcece9d-5077-440b-b6b3-45a5cb4538eb</dcsset:userSettingID>
</dcsset:filter>
<dcsset:order>
<dcsset:item xsi:type="dcsset:OrderItemField">
<dcsset:field>РеквизитДопУпорядочивания</dcsset:field>
<dcsset:orderType>Asc</dcsset:orderType>
</dcsset:item>
<dcsset:viewMode>Normal</dcsset:viewMode>
<dcsset:userSettingID>88619765-ccb3-46c6-ac52-38e9c992ebd4</dcsset:userSettingID>
</dcsset:order>
<dcsset:conditionalAppearance>
<dcsset:viewMode>Normal</dcsset:viewMode>
<dcsset:userSettingID>b75fecce-942b-4aed-abc9-e6a02e460fb3</dcsset:userSettingID>
</dcsset:conditionalAppearance>
<dcsset:itemsViewMode>Normal</dcsset:itemsViewMode>
<dcsset:itemsUserSettingID>911b6018-f537-43e8-a417-da56b22f9aec</dcsset:itemsUserSettingID>
</ListSettings>
</Settings>
</Attribute>
</Attributes>
</Form>

View File

@ -0,0 +1,49 @@

#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// СтандартныеПодсистемы.ПодключаемыеКоманды
ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийСписка
&НаКлиенте
Процедура СписокПриАктивизацииСтроки(Элемент)
// СтандартныеПодсистемы.ПодключаемыеКоманды
ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
КонецПроцедуры
#КонецОбласти
#Область СтандартныеПодсистемы
// СтандартныеПодсистемы.ПодключаемыеКоманды
&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду(Команда)
ПодключаемыеКомандыКлиент.ВыполнитьКоманду(ЭтотОбъект, Команда, Элементы.Список);
КонецПроцедуры
&НаСервере
Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат)
ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, Контекст, Элементы.Список, Результат);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбновитьКоманды()
ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Элементы.Список);
КонецПроцедуры
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
#КонецОбласти

View File

@ -21,10 +21,15 @@
<ExtendedTooltip name="НаименованиеРасширеннаяПодсказка" id="6"/>
</InputField>
<InputField name="ЦветМеткиНаФорме" id="7">
<DataPath>ЦветМеткиНаФорме</DataPath>
<DataPath>ЦветФонаМеткиНаФорме</DataPath>
<ContextMenu name="ЦветМеткиНаФормеКонтекстноеМеню" id="8"/>
<ExtendedTooltip name="ЦветМеткиНаФормеРасширеннаяПодсказка" id="9"/>
</InputField>
<InputField name="ЦветТекстаМеткиНаФорме" id="10">
<DataPath>ЦветТекстаМеткиНаФорме</DataPath>
<ContextMenu name="ЦветТекстаМеткиНаФормеКонтекстноеМеню" id="11"/>
<ExtendedTooltip name="ЦветТекстаМеткиНаФормеРасширеннаяПодсказка" id="12"/>
</InputField>
</ChildItems>
<Attributes>
<Attribute name="Объект" id="1">
@ -34,11 +39,26 @@
<MainAttribute>true</MainAttribute>
<SavedData>true</SavedData>
</Attribute>
<Attribute name="ЦветМеткиНаФорме" id="2">
<Attribute name="ЦветФонаМеткиНаФорме" id="2">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Цвет метки</v8:content>
<v8:content>Цвет фона метки</v8:content>
</v8:item>
<v8:item>
<v8:lang>en</v8:lang>
<v8:content>Color task</v8:content>
</v8:item>
</Title>
<Type>
<v8:Type>v8ui:Color</v8:Type>
</Type>
</Attribute>
<Attribute name="ЦветТекстаМеткиНаФорме" id="3">
<Title>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Цвет текста метки</v8:content>
</v8:item>
<v8:item>
<v8:lang>en</v8:lang>

View File

@ -3,14 +3,16 @@
&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
ЦветМеткиНаФорме = ТекущийОбъект.ЦветМетки.Получить();
ЦветФонаМеткиНаФорме = ТекущийОбъект.ЦветФонаМетки.Получить();
ЦветТекстаМеткиНаФорме = ТекущийОбъект.ЦветТекстаМетки.Получить();
КонецПроцедуры
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
ТекущийОбъект.ЦветМетки = Новый ХранилищеЗначения(ЦветМеткиНаФорме);
ТекущийОбъект.ЦветФонаМетки = Новый ХранилищеЗначения(ЦветФонаМеткиНаФорме);
ТекущийОбъект.ЦветТекстаМетки = Новый ХранилищеЗначения(ЦветТекстаМеткиНаФорме);
КонецПроцедуры

View File

@ -17,6 +17,7 @@
</Synonym>
<Comment/>
<Type>
<v8:Type>cfg:CatalogObject.узМеткиЗадач</v8:Type>
<v8:Type>cfg:CatalogObject.узВидыСтатусов</v8:Type>
<v8:Type>cfg:CatalogObject.узЗадачи</v8:Type>
<v8:Type>cfg:CatalogObject.ПравилаОбработкиЭлектроннойПочты</v8:Type>