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
+
+
+
+ ru
+ Открыть папку задачи на диске
+
+
+
+
+ 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
+
-
\ No newline at end of file
+