1
0
mirror of https://github.com/BlizD/Tasks.git synced 2025-03-25 21:28:57 +02:00

#164 @etnety Cделать кнопку "Заполнить наблюдателями из вышестоящей основной задачей"?

This commit is contained in:
Anton Ivanov 2019-03-10 09:22:10 +03:00
parent bc9241e6ab
commit 30829ef38e
2 changed files with 94 additions and 1 deletions

View File

@ -1955,7 +1955,15 @@
<DataPath>Объект.НаблюдателиЗаОсновнойЗадачей</DataPath>
<RowFilter xsi:nil="true"/>
<ContextMenu name="НаблюдателиЗаОсновнойЗадачейКонтекстноеМеню" id="505"/>
<AutoCommandBar name="НаблюдателиЗаОсновнойЗадачейКоманднаяПанель" id="506"/>
<AutoCommandBar name="НаблюдателиЗаОсновнойЗадачейКоманднаяПанель" id="506">
<ChildItems>
<Button name="НаблюдателиЗаОсновнойЗадачейКомандаЗаполнитьНаблюдателямиИзВышестоящейОсновнойЗадачи" id="584">
<Type>CommandBarButton</Type>
<CommandName>Form.Command.КомандаЗаполнитьНаблюдателямиИзВышестоящейОсновнойЗадачи</CommandName>
<ExtendedTooltip name="НаблюдателиЗаОсновнойЗадачейКомандаЗаполнитьНаблюдателямиИзВышестоящейОсновнойЗадачиРасширеннаяПодсказка" id="585"/>
</Button>
</ChildItems>
</AutoCommandBar>
<ExtendedTooltip name="НаблюдателиЗаОсновнойЗадачейРасширеннаяПодсказка" id="507"/>
<SearchStringAddition name="НаблюдателиЗаОсновнойЗадачейСтрокаПоиска" id="508">
<AdditionSource>
@ -2690,6 +2698,21 @@
</ToolTip>
<Action>КомандаДобавитьФактРабот</Action>
</Command>
<Command name="КомандаЗаполнитьНаблюдателямиИзВышестоящейОсновнойЗадачи" id="16">
<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>
<CommandInterface>
<NavigationPanel>

View File

@ -1188,5 +1188,75 @@
КонецПроцедуры
//- #104 Дзеса Ігор (capitoshko) 08.10.2018
&НаКлиенте
Процедура КомандаЗаполнитьНаблюдателямиИзВышестоящейОсновнойЗадачи(Команда)
КомандаЗаполнитьНаблюдателямиИзВышестоящейОсновнойЗадачиНаСервере();
КонецПроцедуры
&НаСервере
Процедура КомандаЗаполнитьНаблюдателямиИзВышестоящейОсновнойЗадачиНаСервере()
Если НЕ ЗначениеЗаполнено(Объект.Родитель) Тогда
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = НСтр("ru = 'Не выбран родитель'");
Сообщение.Поле = "Объект.Родитель";
Сообщение.Сообщить();
Возврат;
КонецЕсли;
пОсновнаяЗадачаРодитель = НайтиОсновногоРодителя(Объект.Родитель);
Если пОсновнаяЗадачаРодитель = Неопределено Тогда
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = НСтр("ru = 'Не найдена основная задача'");
Сообщение.Поле = "Объект.Родитель";
Сообщение.Сообщить();
Возврат;
КонецЕсли;
Для каждого СтрокаНаблюдателиРодитель Из пОсновнаяЗадачаРодитель.НаблюдателиЗаОсновнойЗадачей Цикл
пПользователь = СтрокаНаблюдателиРодитель.Пользователь;
Если НЕ ЗначениеЗаполнено(пПользователь) Тогда
Продолжить;
КонецЕсли;
ВТДопПараметры = Новый Структура("Пользователь", пПользователь);
НайденныеСтроки = Объект.НаблюдателиЗаОсновнойЗадачей.НайтиСтроки(ВТДопПараметры);
Если НайденныеСтроки.Количество() = 0 Тогда
СтрокаНаблюдателиЗаОсновнойЗадачей = Объект.НаблюдателиЗаОсновнойЗадачей.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаНаблюдателиЗаОсновнойЗадачей, СтрокаНаблюдателиРодитель);
КонецЕсли;
КонецЦикла;
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Наблюдатели добавлены";
Сообщение.Сообщить();
КонецПроцедуры
&НаСервере
Функция НайтиОсновногоРодителя(Ссылка)
Если НЕ ЗначениеЗаполнено(Ссылка) Тогда
Возврат Неопределено;
КонецЕсли;
РеквизитыЗадачи = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Ссылка, "Родитель, ЭтоОсновнаяЗадача");
Если РеквизитыЗадачи.ЭтоОсновнаяЗадача Тогда
Возврат Ссылка;
КонецЕсли;
Возврат НайтиОсновногоРодителя(РеквизитыЗадачи.Родитель);
КонецФункции
#КонецОбласти