Skip to content

Commit

Permalink
Merge pull request #48 from pallid/develope
Browse files Browse the repository at this point in the history
#38 Добавлена команду "Создать иерархию задач на диске" на форму списка Задачи
  • Loading branch information
BlizD committed Aug 13, 2017
2 parents 31d8789 + 7840adc commit 3161dbd
Show file tree
Hide file tree
Showing 3 changed files with 110 additions and 1 deletion.
40 changes: 39 additions & 1 deletion src/cf/Catalogs/узЗадачи/Ext/ManagerModule.bsl
Original file line number Diff line number Diff line change
Expand Up @@ -49,4 +49,42 @@
+ " " + Формат(ТекущаяДата(),"ДФ=yyyy-MM-dd");

Возврат пКомментарииВКоде;
КонецФункции
КонецФункции

Функция ПолучитьПолныйПутьЗадачи(Задача) Экспорт

Массив = Новый Массив;

ЗаполнитьМассивИерархии(Задача, Массив);

Разделитель = ПолучитьРазделительПутиКлиента();
Путь = "";

Для Каждого СтрокаМассива ИЗ Массив Цикл
Путь = СтрокаМассива + Разделитель + Путь;
КонецЦикла;

Возврат Путь;

КонецФункции

Процедура ЗаполнитьМассивИерархии(Задача, Массив)

НазваниеДляПапки = СобратьНазваниеДляПапки(Задача.Наименование, Задача.Код);
Массив.Добавить(НазваниеДляПапки);

Если ЗначениеЗаполнено(Задача.Родитель) Тогда
ЗаполнитьМассивИерархии(Задача.Родитель, Массив);
КонецЕсли;

КонецПроцедуры

Функция СобратьНазваниеДляПапки(Наименование, Код)

Шаблон = "#%1 %2";
СокращенноеНаименование = Лев(Наименование, 30);
Результат = СтрШаблон(Шаблон, Код, СокращенноеНаименование);

Возврат Результат;

КонецФункции
Original file line number Diff line number Diff line change
Expand Up @@ -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>
Expand Down Expand Up @@ -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>
Original file line number Diff line number Diff line change
Expand Up @@ -67,3 +67,53 @@
ПараметрКомпоновки = Список_Параметры.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("СкрыватьЗадачиСОпределеннымСтатусом"));
Список_Параметры.УстановитьЗначениеПараметра("СкрыватьЗадачиСОпределеннымСтатусом",НЕ ПараметрКомпоновки.Значение);
КонецПроцедуры

&НаСервере
Функция ПолучитьПолныйПутьЗадачи(ЗадачаСсылка)

ПолныйПутьЗадачи = Справочники.узЗадачи.ПолучитьПолныйПутьЗадачи(ЗадачаСсылка);
Возврат ПолныйПутьЗадачи;

КонецФункции

&НаКлиенте
Процедура СоздатьИерархиюЗадачНаДиске(Команда)

Каталог = ВыбратьКаталог(РежимДиалогаВыбораФайла.ВыборКаталога, "Выберите каталог");

This comment has been minimized.

Copy link
@BlizD

BlizD Aug 13, 2017

Author Owner

@pallid
Может быть есть смысл код который сейчас расположен в модуле формы списка перенести в общий модуль "узОбщийМодульКлиент" и "узОбщийМодульСервер"


Если Каталог = Неопределено тогда
Возврат;
КонецЕсли;

ПолныйПутьЗадачи = ПолучитьПолныйПутьЗадачи(Элементы.Список.ТекущиеДанные.Ссылка);

Если НЕ ЗначениеЗаполнено(ПолныйПутьЗадачи) Тогда
Сообщить("Не удалось получить путь для задачи");
Возврат;
КонецЕсли;

ОбъедененныйПуть = Каталог + ПолучитьРазделительПутиКлиента() + ПолныйПутьЗадачи;

ОписаниеОповещения = Новый ОписаниеОповещения("СоздатьИерархиюЗадачНаДиске_Продолжение", ЭтотОбъект);
НачатьСозданиеКаталога(ОписаниеОповещения, ОбъедененныйПуть);

КонецПроцедуры

Процедура СоздатьИерархиюЗадачНаДиске_Продолжение(ИмяКаталога, ДополнительныеПараметры) Экспорт

Сообщить("Создан каталог "+ИмяКаталога);

КонецПроцедуры

&НаКлиенте
Функция ВыбратьКаталог(Режим, Заголовок)

Диалог = Новый ДиалогВыбораФайла(Режим);
Диалог.Заголовок = Заголовок;
Диалог.ПредварительныйПросмотр = Ложь;

Если Диалог.Выбрать() Тогда
Возврат Диалог.Каталог;
КонецЕсли;

КонецФункции

0 comments on commit 3161dbd

Please sign in to comment.