diff --git a/src/cf/Catalogs/узЗадачи.xml b/src/cf/Catalogs/узЗадачи.xml index d4d87846d..024aad4b4 100644 --- a/src/cf/Catalogs/узЗадачи.xml +++ b/src/cf/Catalogs/узЗадачи.xml @@ -3221,6 +3221,39 @@ Ctrl+Shift+F + + + КомандаОткрытьПапкуЗадачиНаДиске + + + ru + Открыть папку задачи на диске + + + en + Create a file for the task on disk + + + ro + Create a file for the task on disk + + + + CommandGroup.узДействияЗадачи + + cfg:CatalogRef.узЗадачи + + Multiple + false + PictureAndText + + + CommonPicture.Папка + true + + Ctrl+Shift+O + + - \ No newline at end of file + diff --git a/src/cf/Catalogs/узЗадачи/Commands/КомандаОткрытьПапкуЗадачиНаДиске/Ext/CommandModule.bsl b/src/cf/Catalogs/узЗадачи/Commands/КомандаОткрытьПапкуЗадачиНаДиске/Ext/CommandModule.bsl new file mode 100644 index 000000000..90e2f0209 --- /dev/null +++ b/src/cf/Catalogs/узЗадачи/Commands/КомандаОткрытьПапкуЗадачиНаДиске/Ext/CommandModule.bsl @@ -0,0 +1,14 @@ + +&НаКлиенте +Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды) + + Если ТипЗнч(ПараметрКоманды) = Тип("СправочникСсылка.узЗадачи") Тогда + Массив = Новый Массив; + Массив.Добавить(ПараметрКоманды); + ИначеЕсли ТипЗнч(ПараметрКоманды) = Тип("Массив") Тогда + Массив = ПараметрКоманды; + КонецЕсли; + + узОбщийМодульКлиент.ОткрытьПапкуЗадачиНаДиске(Массив); + +КонецПроцедуры diff --git a/src/cf/CommonModules/узОбщийМодульКлиент/Ext/Module.bsl b/src/cf/CommonModules/узОбщийМодульКлиент/Ext/Module.bsl index 8bb35d11d..b90f9b155 100644 --- a/src/cf/CommonModules/узОбщийМодульКлиент/Ext/Module.bsl +++ b/src/cf/CommonModules/узОбщийМодульКлиент/Ext/Module.bsl @@ -20,7 +20,7 @@ Процедура СоздатьФайлДляЗадачиНаДиске(Массив) Экспорт Пользователь = ПользователиКлиентСервер.ТекущийПользователь(); - Каталог = узОбщийМодульСервер.ЗначениеРеквизитаОбъекта(Пользователь, "узКаталогПользователя"); + Каталог = ПолучитьКаталогПользователя(Пользователь); Если НЕ ЗначениеЗаполнено(Каталог) Тогда Каталог = ВыбратьКаталог(РежимДиалогаВыбораФайла.ВыборКаталога, "Выберите каталог"); @@ -90,3 +90,65 @@ КонецЕсли; КонецФункции + +Процедура ОткрытьПапкуЗадачиНаДиске(Массив) Экспорт + + Пользователь = ПользователиКлиентСервер.ТекущийПользователь(); + Каталог = ПолучитьКаталогПользователя(Пользователь); + + Если НЕ ЗначениеЗаполнено(Каталог) Тогда + + пТекстСообщения = узОбщийМодульСервер.ПолучитьТекстСообщения("ВНИМАНИЕ! Для открытия задачи на диске " + +"не указан реквизит [Каталог пользователя] в справочнике пользователи",97); + Сообщить(пТекстСообщения); + + Возврат; + КонецЕсли; + + Для Каждого СтрокаМассива Из Массив Цикл + + КодЗадачи = узОбщийМодульСервер.ЗначениеРеквизитаОбъекта(СтрокаМассива, "Код"); + Код = ""+Формат(КодЗадачи,"ЧГ=0"); + + Разделитель = ПолучитьРазделительПути(); + + Если НЕ СтрЗаканчиваетсяНа(Каталог, Разделитель) Тогда + Каталог = Каталог + Разделитель; + КонецЕсли; + + МаскаПоиска = "*#"+Код+"*"; + МассивФайлов = НайтиФайлы(Каталог, МаскаПоиска); + + Если МассивФайлов.Количество() = 0 Тогда + пТекстСообщения = узОбщийМодульСервер.ПолучитьТекстСообщения("Не найдена папка с задачей #%1 в каталоге %2",98); + пТекстСообщения = СтрШаблон(пТекстСообщения, Код, Каталог); + Сообщить(пТекстСообщения); + + Продолжить; + КонецЕсли; + + Если МассивФайлов.Количество() > 1 Тогда + пТекстСообщения = узОбщийМодульСервер.ПолучитьТекстСообщения("Найдено более одной папки для задачи #%1 в каталоге %2",99); + пТекстСообщения = СтрШаблон(пТекстСообщения, Код, Каталог); + Сообщить(пТекстСообщения); + Продолжить; + КонецЕсли; + + ОписаниеОповещения = Новый ОписаниеОповещения("ОткрытьПапкуЗадачиНаДиске_Продолжение", ЭтотОбъект); + ВыполнитьОбработкуОповещения(ОписаниеОповещения, МассивФайлов[0].ПолноеИмя); + + КонецЦикла; + +КонецПроцедуры + +Процедура ОткрытьПапкуЗадачиНаДиске_Продолжение(Результат, ДополнительныеПараметры) Экспорт + + ЗапуститьПриложение(Результат); + +КонецПроцедуры + +Функция ПолучитьКаталогПользователя(Пользователь) + + Возврат узОбщийМодульСервер.ЗначениеРеквизитаОбъекта(Пользователь, "узКаталогПользователя"); + +КонецФункции \ No newline at end of file diff --git a/src/cf/DataProcessors/узКанбанДоска/Forms/ФормаДинамическая/Ext/Form.xml b/src/cf/DataProcessors/узКанбанДоска/Forms/ФормаДинамическая/Ext/Form.xml index cada9e292..792d21092 100644 --- a/src/cf/DataProcessors/узКанбанДоска/Forms/ФормаДинамическая/Ext/Form.xml +++ b/src/cf/DataProcessors/узКанбанДоска/Forms/ФормаДинамическая/Ext/Form.xml @@ -539,5 +539,25 @@ КомандаСоздатьФайлДляЗадачиНаДиске TextPicture + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Открыть папку задачи на диске</v8:content> + </v8:item> + + + + ru + Открыть папку задачи на диске + + + Ctrl+Shift+O + + CommonPicture.Папка + true + + КомандаОткрытьПапкуЗадачиНаДиске + - \ No newline at end of file + diff --git a/src/cf/DataProcessors/узКанбанДоска/Forms/ФормаДинамическая/Ext/Form/Module.bsl b/src/cf/DataProcessors/узКанбанДоска/Forms/ФормаДинамическая/Ext/Form/Module.bsl index 446438c2d..fabd691a4 100644 --- a/src/cf/DataProcessors/узКанбанДоска/Forms/ФормаДинамическая/Ext/Form/Module.bsl +++ b/src/cf/DataProcessors/узКанбанДоска/Forms/ФормаДинамическая/Ext/Form/Module.bsl @@ -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); + Возврат; + Конецесли; + Массив = ПолучитьМассивЗадачПоВыделеннымСтрокам(МассивВыделенныхСтрок); + узОбщийМодульКлиент.ОткрытьПапкуЗадачиНаДиске(Массив); + Оповестить("КомандаОткрытьПапкуЗадачиНаДиске"); +КонецПроцедуры + #КонецОбласти #Область ОформлениеКанбанДоски diff --git a/src/cf/Roles/узПользователь/Ext/Rights.xml b/src/cf/Roles/узПользователь/Ext/Rights.xml index 1448c3279..435f89b64 100644 --- a/src/cf/Roles/узПользователь/Ext/Rights.xml +++ b/src/cf/Roles/узПользователь/Ext/Rights.xml @@ -84,6 +84,13 @@ true + + Catalog.узЗадачи.Command.КомандаОткрытьПапкуЗадачиНаДиске + + View + true + + InformationRegister.НаличиеПрисоединенныхФайлов @@ -6177,4 +6184,4 @@ true - \ No newline at end of file +