diff --git a/src/cf/Catalogs/узЗадачи/Ext/ManagerModule.bsl b/src/cf/Catalogs/узЗадачи/Ext/ManagerModule.bsl index 17fb2deeb..6f1c143a2 100644 --- a/src/cf/Catalogs/узЗадачи/Ext/ManagerModule.bsl +++ b/src/cf/Catalogs/узЗадачи/Ext/ManagerModule.bsl @@ -49,4 +49,42 @@ + " " + Формат(ТекущаяДата(),"ДФ=yyyy-MM-dd"); Возврат пКомментарииВКоде; -КонецФункции \ No newline at end of file +КонецФункции + +Функция ПолучитьПолныйПутьЗадачи(Задача) Экспорт + + Массив = Новый Массив; + + ЗаполнитьМассивИерархии(Задача, Массив); + + Разделитель = ПолучитьРазделительПутиКлиента(); + Путь = ""; + + Для Каждого СтрокаМассива ИЗ Массив Цикл + Путь = СтрокаМассива + Разделитель + Путь; + КонецЦикла; + + Возврат Путь; + +КонецФункции + +Процедура ЗаполнитьМассивИерархии(Задача, Массив) + + НазваниеДляПапки = СобратьНазваниеДляПапки(Задача.Наименование, Задача.Код); + Массив.Добавить(НазваниеДляПапки); + + Если ЗначениеЗаполнено(Задача.Родитель) Тогда + ЗаполнитьМассивИерархии(Задача.Родитель, Массив); + КонецЕсли; + +КонецПроцедуры + +Функция СобратьНазваниеДляПапки(Наименование, Код) + + Шаблон = "#%1 %2"; + СокращенноеНаименование = Лев(Наименование, 30); + Результат = СтрШаблон(Шаблон, Код, СокращенноеНаименование); + + Возврат Результат; + +КонецФункции \ No newline at end of file diff --git a/src/cf/Catalogs/узЗадачи/Forms/ФормаСписка/Ext/Form.xml b/src/cf/Catalogs/узЗадачи/Forms/ФормаСписка/Ext/Form.xml index 2149506cc..279202317 100644 --- a/src/cf/Catalogs/узЗадачи/Forms/ФормаСписка/Ext/Form.xml +++ b/src/cf/Catalogs/узЗадачи/Forms/ФормаСписка/Ext/Form.xml @@ -41,6 +41,12 @@ Form.Command.КомандаПоказатьСкрытьЗадачи + @@ -487,5 +493,20 @@ КомандаПоказатьСкрытьЗадачи + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Создать иерархию задач на диске</v8:content> + </v8:item> + + + + ru + Создать иерархию задач на диске + + + СоздатьИерархиюЗадачНаДиске + \ No newline at end of file diff --git a/src/cf/Catalogs/узЗадачи/Forms/ФормаСписка/Ext/Form/Module.bsl b/src/cf/Catalogs/узЗадачи/Forms/ФормаСписка/Ext/Form/Module.bsl index 920d559cd..5b5aa1a9b 100644 --- a/src/cf/Catalogs/узЗадачи/Forms/ФормаСписка/Ext/Form/Module.bsl +++ b/src/cf/Catalogs/узЗадачи/Forms/ФормаСписка/Ext/Form/Module.bsl @@ -67,3 +67,53 @@ ПараметрКомпоновки = Список_Параметры.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("СкрыватьЗадачиСОпределеннымСтатусом")); Список_Параметры.УстановитьЗначениеПараметра("СкрыватьЗадачиСОпределеннымСтатусом",НЕ ПараметрКомпоновки.Значение); КонецПроцедуры + +&НаСервере +Функция ПолучитьПолныйПутьЗадачи(ЗадачаСсылка) + + ПолныйПутьЗадачи = Справочники.узЗадачи.ПолучитьПолныйПутьЗадачи(ЗадачаСсылка); + Возврат ПолныйПутьЗадачи; + +КонецФункции + +&НаКлиенте +Процедура СоздатьИерархиюЗадачНаДиске(Команда) + + Каталог = ВыбратьКаталог(РежимДиалогаВыбораФайла.ВыборКаталога, "Выберите каталог"); + + Если Каталог = Неопределено тогда + Возврат; + КонецЕсли; + + ПолныйПутьЗадачи = ПолучитьПолныйПутьЗадачи(Элементы.Список.ТекущиеДанные.Ссылка); + + Если НЕ ЗначениеЗаполнено(ПолныйПутьЗадачи) Тогда + Сообщить("Не удалось получить путь для задачи"); + Возврат; + КонецЕсли; + + ОбъедененныйПуть = Каталог + ПолучитьРазделительПутиКлиента() + ПолныйПутьЗадачи; + + ОписаниеОповещения = Новый ОписаниеОповещения("СоздатьИерархиюЗадачНаДиске_Продолжение", ЭтотОбъект); + НачатьСозданиеКаталога(ОписаниеОповещения, ОбъедененныйПуть); + +КонецПроцедуры + +Процедура СоздатьИерархиюЗадачНаДиске_Продолжение(ИмяКаталога, ДополнительныеПараметры) Экспорт + + Сообщить("Создан каталог "+ИмяКаталога); + +КонецПроцедуры + +&НаКлиенте +Функция ВыбратьКаталог(Режим, Заголовок) + + Диалог = Новый ДиалогВыбораФайла(Режим); + Диалог.Заголовок = Заголовок; + Диалог.ПредварительныйПросмотр = Ложь; + + Если Диалог.Выбрать() Тогда + Возврат Диалог.Каталог; + КонецЕсли; + +КонецФункции