1
0
mirror of https://github.com/BlizD/Tasks.git synced 2025-03-31 21:55:13 +02:00

#51 Новая команда "Открыть папку задачи на диске"

This commit is contained in:
pallid 2017-10-01 15:00:21 +03:00
parent 9ed5f93f65
commit b5ed0f7cda
6 changed files with 167 additions and 5 deletions

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.2"> <MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4">
<Catalog uuid="33ee2945-a302-44ac-a8b6-152205a57775"> <Catalog uuid="33ee2945-a302-44ac-a8b6-152205a57775">
<InternalInfo> <InternalInfo>
<xr:GeneratedType name="CatalogObject.узЗадачи" category="Object"> <xr:GeneratedType name="CatalogObject.узЗадачи" category="Object">
@ -3221,6 +3221,39 @@
<Shortcut>Ctrl+Shift+F</Shortcut> <Shortcut>Ctrl+Shift+F</Shortcut>
</Properties> </Properties>
</Command> </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> </ChildObjects>
</Catalog> </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

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<Form xmlns="http://v8.1c.ru/8.3/xcf/logform" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.2"> <Form xmlns="http://v8.1c.ru/8.3/xcf/logform" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4">
<ScalingMode>Compact</ScalingMode> <ScalingMode>Compact</ScalingMode>
<AutoCommandBar name="ФормаКоманднаяПанель" id="-1"> <AutoCommandBar name="ФормаКоманднаяПанель" id="-1">
<Autofill>false</Autofill> <Autofill>false</Autofill>
@ -539,5 +539,25 @@
<Action>КомандаСоздатьФайлДляЗадачиНаДиске</Action> <Action>КомандаСоздатьФайлДляЗадачиНаДиске</Action>
<Representation>TextPicture</Representation> <Representation>TextPicture</Representation>
</Command> </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> </Commands>
</Form> </Form>

View File

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

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<Rights xmlns="http://v8.1c.ru/8.2/roles" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="Rights" version="2.2"> <Rights xmlns="http://v8.1c.ru/8.2/roles" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="Rights" version="2.4">
<setForNewObjects>false</setForNewObjects> <setForNewObjects>false</setForNewObjects>
<setForAttributesByDefault>true</setForAttributesByDefault> <setForAttributesByDefault>true</setForAttributesByDefault>
<independentRightsOfChildObjects>false</independentRightsOfChildObjects> <independentRightsOfChildObjects>false</independentRightsOfChildObjects>
@ -84,6 +84,13 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>Catalog.узЗадачи.Command.КомандаОткрытьПапкуЗадачиНаДиске</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>InformationRegister.НаличиеПрисоединенныхФайлов</name> <name>InformationRegister.НаличиеПрисоединенныхФайлов</name>
<right> <right>