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

#38 Добавлена команду "Создать иерархию задач на диске" на форму списка Задачи

This commit is contained in:
pallid 2017-08-12 19:44:21 +03:00
parent 65dad1e297
commit af7790fb63
3 changed files with 110 additions and 1 deletions

View File

@ -49,4 +49,42 @@
+ " " + Формат(ТекущаяДата(),"ДФ=yyyy-MM-dd");
Возврат пКомментарииВКоде;
КонецФункции
КонецФункции
Функция ПолучитьПолныйПутьЗадачи(Задача) Экспорт
Массив = Новый Массив;
ЗаполнитьМассивИерархии(Задача, Массив);
Разделитель = ПолучитьРазделительПутиКлиента();
Путь = "";
Для Каждого СтрокаМассива ИЗ Массив Цикл
Путь = СтрокаМассива + Разделитель + Путь;
КонецЦикла;
Возврат Путь;
КонецФункции
Процедура ЗаполнитьМассивИерархии(Задача, Массив)
НазваниеДляПапки = СобратьНазваниеДляПапки(Задача.Наименование, Задача.Код);
Массив.Добавить(НазваниеДляПапки);
Если ЗначениеЗаполнено(Задача.Родитель) Тогда
ЗаполнитьМассивИерархии(Задача.Родитель, Массив);
КонецЕсли;
КонецПроцедуры
Функция СобратьНазваниеДляПапки(Наименование, Код)
Шаблон = "#%1 %2";
СокращенноеНаименование = Лев(Наименование, 30);
Результат = СтрШаблон(Шаблон, Код, СокращенноеНаименование);
Возврат Результат;
КонецФункции

View File

@ -41,6 +41,12 @@
<CommandName>Form.Command.КомандаПоказатьСкрытьЗадачи</CommandName>
<ExtendedTooltip name="ФормаКомандаПоказатьСкрытьЗадачиРасширеннаяПодсказка" id="91"/>
</Button>
<Button name="ФормаСоздатьИерархиюЗадачНаДиске" id="95">
<Type>CommandBarButton</Type>
<OnlyInAllActions>false</OnlyInAllActions>
<CommandName>Form.Command.СоздатьИерархиюЗадачНаДиске</CommandName>
<ExtendedTooltip name="ФормаСоздатьИерархиюЗадачНаДискеРасширеннаяПодсказка" id="96"/>
</Button>
</ChildItems>
</AutoCommandBar>
<Events>
@ -487,5 +493,20 @@
</ToolTip>
<Action>КомандаПоказатьСкрытьЗадачи</Action>
</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>
<Action>СоздатьИерархиюЗадачНаДиске</Action>
</Command>
</Commands>
</Form>

View File

@ -67,3 +67,53 @@
ПараметрКомпоновки = Список_Параметры.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("СкрыватьЗадачиСОпределеннымСтатусом"));
Список_Параметры.УстановитьЗначениеПараметра("СкрыватьЗадачиСОпределеннымСтатусом",НЕ ПараметрКомпоновки.Значение);
КонецПроцедуры
&НаСервере
Функция ПолучитьПолныйПутьЗадачи(ЗадачаСсылка)
ПолныйПутьЗадачи = Справочники.узЗадачи.ПолучитьПолныйПутьЗадачи(ЗадачаСсылка);
Возврат ПолныйПутьЗадачи;
КонецФункции
&НаКлиенте
Процедура СоздатьИерархиюЗадачНаДиске(Команда)
Каталог = ВыбратьКаталог(РежимДиалогаВыбораФайла.ВыборКаталога, "Выберите каталог");
Если Каталог = Неопределено тогда
Возврат;
КонецЕсли;
ПолныйПутьЗадачи = ПолучитьПолныйПутьЗадачи(Элементы.Список.ТекущиеДанные.Ссылка);
Если НЕ ЗначениеЗаполнено(ПолныйПутьЗадачи) Тогда
Сообщить("Не удалось получить путь для задачи");
Возврат;
КонецЕсли;
ОбъедененныйПуть = Каталог + ПолучитьРазделительПутиКлиента() + ПолныйПутьЗадачи;
ОписаниеОповещения = Новый ОписаниеОповещения("СоздатьИерархиюЗадачНаДиске_Продолжение", ЭтотОбъект);
НачатьСозданиеКаталога(ОписаниеОповещения, ОбъедененныйПуть);
КонецПроцедуры
Процедура СоздатьИерархиюЗадачНаДиске_Продолжение(ИмяКаталога, ДополнительныеПараметры) Экспорт
Сообщить("Создан каталог "+ИмяКаталога);
КонецПроцедуры
&НаКлиенте
Функция ВыбратьКаталог(Режим, Заголовок)
Диалог = Новый ДиалогВыбораФайла(Режим);
Диалог.Заголовок = Заголовок;
Диалог.ПредварительныйПросмотр = Ложь;
Если Диалог.Выбрать() Тогда
Возврат Диалог.Каталог;
КонецЕсли;
КонецФункции