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

Merge pull request #59 from pallid/develope

#51 Новая команда "Открыть папку задачи на диске"
This commit is contained in:
Anton Ivanov 2017-10-01 18:57:13 +03:00 committed by GitHub
commit fbf48c720a
6 changed files with 167 additions and 5 deletions

View File

@ -3221,6 +3221,39 @@
<Shortcut>Ctrl+Shift+F</Shortcut>
</Properties>
</Command>
<Command uuid="055e7596-bb91-4c07-8a20-cb27e6375617">
<Properties>
<Name>КомандаОткрытьПапкуЗадачиНаДиске</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Открыть папку задачи на диске</v8:content>
</v8:item>
<v8:item>
<v8:lang>en</v8:lang>
<v8:content>Create a file for the task on disk</v8:content>
</v8:item>
<v8:item>
<v8:lang>ro</v8:lang>
<v8:content>Create a file for the task on disk</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Group>CommandGroup.узДействияЗадачи</Group>
<CommandParameterType>
<v8:Type>cfg:CatalogRef.узЗадачи</v8:Type>
</CommandParameterType>
<ParameterUseMode>Multiple</ParameterUseMode>
<ModifiesData>false</ModifiesData>
<Representation>PictureAndText</Representation>
<ToolTip/>
<Picture>
<xr:Ref>CommonPicture.Папка</xr:Ref>
<xr:LoadTransparent>true</xr:LoadTransparent>
</Picture>
<Shortcut>Ctrl+Shift+O</Shortcut>
</Properties>
</Command>
</ChildObjects>
</Catalog>
</MetaDataObject>
</MetaDataObject>

View File

@ -0,0 +1,14 @@

&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
Если ТипЗнч(ПараметрКоманды) = Тип("СправочникСсылка.узЗадачи") Тогда
Массив = Новый Массив;
Массив.Добавить(ПараметрКоманды);
ИначеЕсли ТипЗнч(ПараметрКоманды) = Тип("Массив") Тогда
Массив = ПараметрКоманды;
КонецЕсли;
узОбщийМодульКлиент.ОткрытьПапкуЗадачиНаДиске(Массив);
КонецПроцедуры

View File

@ -20,7 +20,7 @@
Процедура СоздатьФайлДляЗадачиНаДиске(Массив) Экспорт
Пользователь = ПользователиКлиентСервер.ТекущийПользователь();
Каталог = узОбщийМодульСервер.ЗначениеРеквизитаОбъекта(Пользователь, "узКаталогПользователя");
Каталог = ПолучитьКаталогПользователя(Пользователь);
Если НЕ ЗначениеЗаполнено(Каталог) Тогда
Каталог = ВыбратьКаталог(РежимДиалогаВыбораФайла.ВыборКаталога, "Выберите каталог");
@ -90,3 +90,65 @@
КонецЕсли;
КонецФункции
Процедура ОткрытьПапкуЗадачиНаДиске(Массив) Экспорт
Пользователь = ПользователиКлиентСервер.ТекущийПользователь();
Каталог = ПолучитьКаталогПользователя(Пользователь);
Если НЕ ЗначениеЗаполнено(Каталог) Тогда
пТекстСообщения = узОбщийМодульСервер.ПолучитьТекстСообщения("ВНИМАНИЕ! Для открытия задачи на диске "
+"не указан реквизит [Каталог пользователя] в справочнике пользователи",97);
Сообщить(пТекстСообщения);
Возврат;
КонецЕсли;
Для Каждого СтрокаМассива Из Массив Цикл
КодЗадачи = узОбщийМодульСервер.ЗначениеРеквизитаОбъекта(СтрокаМассива, "Код");
Код = ""+Формат(КодЗадачи,"ЧГ=0");
Разделитель = ПолучитьРазделительПути();
Если НЕ СтрЗаканчиваетсяНа(Каталог, Разделитель) Тогда
Каталог = Каталог + Разделитель;
КонецЕсли;
МаскаПоиска = "*#"+Код+"*";
МассивФайлов = НайтиФайлы(Каталог, МаскаПоиска);
Если МассивФайлов.Количество() = 0 Тогда
пТекстСообщения = узОбщийМодульСервер.ПолучитьТекстСообщения("Не найдена папка с задачей #%1 в каталоге %2",98);
пТекстСообщения = СтрШаблон(пТекстСообщения, Код, Каталог);
Сообщить(пТекстСообщения);
Продолжить;
КонецЕсли;
Если МассивФайлов.Количество() > 1 Тогда
пТекстСообщения = узОбщийМодульСервер.ПолучитьТекстСообщения("Найдено более одной папки для задачи #%1 в каталоге %2",99);
пТекстСообщения = СтрШаблон(пТекстСообщения, Код, Каталог);
Сообщить(пТекстСообщения);
Продолжить;
КонецЕсли;
ОписаниеОповещения = Новый ОписаниеОповещения("ОткрытьПапкуЗадачиНаДиске_Продолжение", ЭтотОбъект);
ВыполнитьОбработкуОповещения(ОписаниеОповещения, МассивФайлов[0].ПолноеИмя);
КонецЦикла;
КонецПроцедуры
Процедура ОткрытьПапкуЗадачиНаДиске_Продолжение(Результат, ДополнительныеПараметры) Экспорт
ЗапуститьПриложение(Результат);
КонецПроцедуры
Функция ПолучитьКаталогПользователя(Пользователь)
Возврат узОбщийМодульСервер.ЗначениеРеквизитаОбъекта(Пользователь, "узКаталогПользователя");
КонецФункции

View File

@ -539,5 +539,25 @@
<Action>КомандаСоздатьФайлДляЗадачиНаДиске</Action>
<Representation>TextPicture</Representation>
</Command>
<Command name="КомандаОткрытьПапкуЗадачиНаДиске" id="10">
<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>
<Shortcut>Ctrl+Shift+O</Shortcut>
<Picture>
<xr:Ref>CommonPicture.Папка</xr:Ref>
<xr:LoadTransparent>true</xr:LoadTransparent>
</Picture>
<Action>КомандаОткрытьПапкуЗадачиНаДиске</Action>
</Command>
</Commands>
</Form>
</Form>

View File

@ -226,6 +226,8 @@
МассивКодовСообщений.Добавить(81);//Добавить в текущие дела
МассивКодовСообщений.Добавить(83);//Скопировать комментарий в коде Copy the comment in the code
МассивКодовСообщений.Добавить(96);//Создать файл для задачи на диске
МассивКодовСообщений.Добавить(101);//Открыть папку задачи на диске
СтруктураСообщений = РегистрыСведений.узСловарь.ПолучитьСтруктуруСообщений(МассивКодовСообщений);
@ -242,7 +244,12 @@
пКомандаСоздатьФайлДляЗадачиНаДиске = пЭлементыФормы.Добавить(ИменаЭлементов.ИмяКомандыСоздатьФайлДляЗадачиНаДиске, Тип("КнопкаФормы"), пЭлементТЧЗадачи.КонтекстноеМеню);
пКомандаСоздатьФайлДляЗадачиНаДиске.Заголовок=СтруктураСообщений.Текст96;
пКомандаСоздатьФайлДляЗадачиНаДиске.ИмяКоманды="КомандаСоздатьФайлДляЗадачиНаДиске";
пКомандаСоздатьФайлДляЗадачиНаДиске.Отображение = ОтображениеКнопки.КартинкаИТекст;
пКомандаСоздатьФайлДляЗадачиНаДиске.Отображение = ОтображениеКнопки.КартинкаИТекст;
пКомандаОткрытьПапкуЗадачиНаДиске = пЭлементыФормы.Добавить(ИменаЭлементов.ИмяКомандыОткрытьПапкуЗадачиНаДиске, Тип("КнопкаФормы"), пЭлементТЧЗадачи.КонтекстноеМеню);
пКомандаОткрытьПапкуЗадачиНаДиске.Заголовок=СтруктураСообщений.Текст101;
пКомандаОткрытьПапкуЗадачиНаДиске.ИмяКоманды="КомандаОткрытьПапкуЗадачиНаДиске";
пКомандаОткрытьПапкуЗадачиНаДиске.Отображение = ОтображениеКнопки.КартинкаИТекст;
пКомандаДобавитьВСпринт = пЭлементыФормы.Добавить(ИменаЭлементов.ИмяКомандыДобавитьВСпринт, Тип("КнопкаФормы"), пЭлементТЧЗадачи.КонтекстноеМеню);
пКомандаДобавитьВСпринт.Заголовок=СтруктураСообщений.Текст71;
@ -342,6 +349,7 @@
ИмяКомандыДобавитьВТекущиеДела = ИмяКолонки + "_ТЧЗадачи_КомандаДобавитьВТекущиеДела";
ИмяКомандыСкопироватьКомментарийВКоде = ИмяКолонки + "_ТЧЗадачи_КомандаСкопироватьКомментарийВКоде";
ИмяКомандыСоздатьФайлДляЗадачиНаДиске = ИмяКолонки + "_ТЧЗадачи_СоздатьФайлДляЗадачиНаДиске";
ИмяКомандыОткрытьПапкуЗадачиНаДиске = ИмяКолонки + "_ТЧЗадачи_ОткрытьПапкуЗадачиНаДиске";
ИмяКарточкаЗадачи = ИмяКолонки + "_ТЧЗадачиКарточкаЗадачи";
ИмяКарточкаЗадачи_НижняяЧасть = ИмяКолонки + "_ТЧЗадачиКарточкаЗадачи_НижняяЧасть";
@ -362,6 +370,7 @@
РезультатФункции.Вставить("ИмяКомандыДобавитьВТекущиеДела",ИмяКомандыДобавитьВТекущиеДела);
РезультатФункции.Вставить("ИмяКомандыСкопироватьКомментарийВКоде",ИмяКомандыСкопироватьКомментарийВКоде);
РезультатФункции.Вставить("ИмяКомандыСоздатьФайлДляЗадачиНаДиске",ИмяКомандыСоздатьФайлДляЗадачиНаДиске);
РезультатФункции.Вставить("ИмяКомандыОткрытьПапкуЗадачиНаДиске",ИмяКомандыОткрытьПапкуЗадачиНаДиске);
РезультатФункции.Вставить("ИмяКарточкаЗадачи",ИмяКарточкаЗадачи);
РезультатФункции.Вставить("ИмяКарточкаЗадачи_НижняяЧасть",ИмяКарточкаЗадачи_НижняяЧасть);
@ -997,6 +1006,23 @@
Оповестить("КомандаСоздатьИерархиюЗадачНаДиске");
КонецПроцедуры
&НаКлиенте
Процедура КомандаОткрытьПапкуЗадачиНаДиске(Команда)
СтрокаТЧ = Элементы[ИмяАктивнойТЧ].ТекущиеДанные;
Если СтрокаТЧ = Неопределено тогда
узОбщийМодульСервер.узСообщить("Выберите задачи, для которых хотите открыть папки на диске",100);
Возврат;
Конецесли;
МассивВыделенныхСтрок = Элементы[ИмяАктивнойТЧ].ВыделенныеСтроки;
Если МассивВыделенныхСтрок.Количество() = 0 Тогда
узОбщийМодульСервер.узСообщить("Выберите задачи, для которых хотите открыть папки на диске",100);
Возврат;
Конецесли;
Массив = ПолучитьМассивЗадачПоВыделеннымСтрокам(МассивВыделенныхСтрок);
узОбщийМодульКлиент.ОткрытьПапкуЗадачиНаДиске(Массив);
Оповестить("КомандаОткрытьПапкуЗадачиНаДиске");
КонецПроцедуры
#КонецОбласти
#Область ОформлениеКанбанДоски

View File

@ -84,6 +84,13 @@
<value>true</value>
</right>
</object>
<object>
<name>Catalog.узЗадачи.Command.КомандаОткрытьПапкуЗадачиНаДиске</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object>
<name>InformationRegister.НаличиеПрисоединенныхФайлов</name>
<right>
@ -6177,4 +6184,4 @@
<value>true</value>
</right>
</object>
</Rights>
</Rights>