From af7790fb635e33aa5884a1f91b7eb56c06b40cac Mon Sep 17 00:00:00 2001
From: pallid <1005220@mail.ru>
Date: Sat, 12 Aug 2017 19:44:21 +0300
Subject: [PATCH] =?UTF-8?q?#38=20=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?=
=?UTF-8?q?=D0=B5=D0=BD=D0=B0=20=D0=BA=D0=BE=D0=BC=D0=B0=D0=BD=D0=B4=D1=83?=
=?UTF-8?q?=20"=D0=A1=D0=BE=D0=B7=D0=B4=D0=B0=D1=82=D1=8C=20=D0=B8=D0=B5?=
=?UTF-8?q?=D1=80=D0=B0=D1=80=D1=85=D0=B8=D1=8E=20=D0=B7=D0=B0=D0=B4=D0=B0?=
=?UTF-8?q?=D1=87=20=D0=BD=D0=B0=20=D0=B4=D0=B8=D1=81=D0=BA=D0=B5"=20?=
=?UTF-8?q?=D0=BD=D0=B0=20=D1=84=D0=BE=D1=80=D0=BC=D1=83=20=D1=81=D0=BF?=
=?UTF-8?q?=D0=B8=D1=81=D0=BA=D0=B0=20=D0=97=D0=B0=D0=B4=D0=B0=D1=87=D0=B8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Catalogs/узЗадачи/Ext/ManagerModule.bsl | 40 ++++++++++++++-
.../узЗадачи/Forms/ФормаСписка/Ext/Form.xml | 21 ++++++++
.../Forms/ФормаСписка/Ext/Form/Module.bsl | 50 +++++++++++++++++++
3 files changed, 110 insertions(+), 1 deletion(-)
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 @@
КомандаПоказатьСкрытьЗадачи
+
+
+
+ ru
+ Создать иерархию задач на диске
+
+
+
+
+ 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 @@
ПараметрКомпоновки = Список_Параметры.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("СкрыватьЗадачиСОпределеннымСтатусом"));
Список_Параметры.УстановитьЗначениеПараметра("СкрыватьЗадачиСОпределеннымСтатусом",НЕ ПараметрКомпоновки.Значение);
КонецПроцедуры
+
+&НаСервере
+Функция ПолучитьПолныйПутьЗадачи(ЗадачаСсылка)
+
+ ПолныйПутьЗадачи = Справочники.узЗадачи.ПолучитьПолныйПутьЗадачи(ЗадачаСсылка);
+ Возврат ПолныйПутьЗадачи;
+
+КонецФункции
+
+&НаКлиенте
+Процедура СоздатьИерархиюЗадачНаДиске(Команда)
+
+ Каталог = ВыбратьКаталог(РежимДиалогаВыбораФайла.ВыборКаталога, "Выберите каталог");
+
+ Если Каталог = Неопределено тогда
+ Возврат;
+ КонецЕсли;
+
+ ПолныйПутьЗадачи = ПолучитьПолныйПутьЗадачи(Элементы.Список.ТекущиеДанные.Ссылка);
+
+ Если НЕ ЗначениеЗаполнено(ПолныйПутьЗадачи) Тогда
+ Сообщить("Не удалось получить путь для задачи");
+ Возврат;
+ КонецЕсли;
+
+ ОбъедененныйПуть = Каталог + ПолучитьРазделительПутиКлиента() + ПолныйПутьЗадачи;
+
+ ОписаниеОповещения = Новый ОписаниеОповещения("СоздатьИерархиюЗадачНаДиске_Продолжение", ЭтотОбъект);
+ НачатьСозданиеКаталога(ОписаниеОповещения, ОбъедененныйПуть);
+
+КонецПроцедуры
+
+Процедура СоздатьИерархиюЗадачНаДиске_Продолжение(ИмяКаталога, ДополнительныеПараметры) Экспорт
+
+ Сообщить("Создан каталог "+ИмяКаталога);
+
+КонецПроцедуры
+
+&НаКлиенте
+Функция ВыбратьКаталог(Режим, Заголовок)
+
+ Диалог = Новый ДиалогВыбораФайла(Режим);
+ Диалог.Заголовок = Заголовок;
+ Диалог.ПредварительныйПросмотр = Ложь;
+
+ Если Диалог.Выбрать() Тогда
+ Возврат Диалог.Каталог;
+ КонецЕсли;
+
+КонецФункции