diff --git a/src/cf/Catalogs/узЗадачи/Forms/ФормаЭлемента/Ext/Form.xml b/src/cf/Catalogs/узЗадачи/Forms/ФормаЭлемента/Ext/Form.xml
index 54a767a06..b9d4e6351 100644
--- a/src/cf/Catalogs/узЗадачи/Forms/ФормаЭлемента/Ext/Form.xml
+++ b/src/cf/Catalogs/узЗадачи/Forms/ФормаЭлемента/Ext/Form.xml
@@ -255,22 +255,35 @@
false
-
-
-
- ru
- Командная панель редактирования
-
-
-
-
- ru
- Командная панель редактирования
-
-
- Item.Содержание
-
-
+
+ Horizontal
+ None
+ false
+
+
+
+
+
+
+ ru
+ Командная панель редактирования
+
+
+
+
+ ru
+ Командная панель редактирования
+
+
+ Item.Содержание
+
+
+
+
ФорматированныйТекст
@@ -279,6 +292,7 @@
Содержание
+ None
false
@@ -310,69 +324,81 @@
-
-
-
- ru
- Группа командная панель markdown
-
-
-
-
- ru
- Группа командная панель markdown
-
-
-
+
+ None
+ false
+
-
-
+
Объект.ТекстСодержания
@@ -381,6 +407,7 @@
Содержание
+ None
false
false
true
@@ -2265,5 +2292,33 @@
Picture
true
+
+
+
+ ru
+ Открыть задачу
+
+
+
+
+ ru
+ Открыть задачи из выделенного текста
+
+
+ en
+ To open a task from selected text
+
+
+ ro
+ To open a task from selected text
+
+
+
+ КомандаОткрытьЗадачу
+ Picture
+
\ No newline at end of file
diff --git a/src/cf/Catalogs/узЗадачи/Forms/ФормаЭлемента/Ext/Form/Module.bsl b/src/cf/Catalogs/узЗадачи/Forms/ФормаЭлемента/Ext/Form/Module.bsl
index d5ee73f71..f87a590f1 100644
--- a/src/cf/Catalogs/узЗадачи/Forms/ФормаЭлемента/Ext/Form/Module.bsl
+++ b/src/cf/Catalogs/узЗадачи/Forms/ФормаЭлемента/Ext/Form/Module.bsl
@@ -60,8 +60,8 @@
&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
- Если Объект.ОформлениеТекста = ПредопределенноеЗначение("Перечисление.узОформлениеТекста.ФорматированныйТекст") Тогда
- ФорматированныйТекст = ТекущийОбъект.Содержание.Получить();
+ Если Объект.ОформлениеТекста = ПредопределенноеЗначение("Перечисление.узОформлениеТекста.ФорматированныйТекст") Тогда
+ ЗагрузитьИзСодержанияВФорматированныйТекст(ТекущийОбъект);
Конецесли;
ЦветЗадачиНаФорме = ТекущийОбъект.ЦветЗадачи.Получить();
@@ -71,6 +71,84 @@
// Конец СтандартныеПодсистемы.Свойства
КонецПроцедуры
+&НаСервере
+Процедура ЗагрузитьИзСодержанияВФорматированныйТекст(ТекущийОбъект)
+ СохраненноеСодержание = ТекущийОбъект.Содержание.Получить();
+ //#Если Тромбон тогда
+ // СохраненноеСодержание = Новый ФорматированныйДокумент;
+ //#Конецесли
+ //ТекстHTML = "";
+ //Вложения = Новый Структура;
+ //СохраненноеСодержание.ПолучитьHTML(ТекстHTML, Вложения);
+ //
+ //РезультатФункции = ПроставитьНавигационныеСсылкиДляЗадачУказанныхВСодержании(ТекстHTML);
+ //Если РезультатФункции.ЗаменитьТекстHTML Тогда
+ // СохраненноеСодержание.УстановитьHTML(РезультатФункции.НовыйТекстHTML,Вложения);
+ //Конецесли;
+
+ ФорматированныйТекст = СохраненноеСодержание;
+КонецПроцедуры
+
+&НаСервере
+Функция ПроставитьНавигационныеСсылкиДляЗадачУказанныхВСодержании(ТекстHTML)
+ ЗаменитьТекстHTML = Ложь;
+ пНовыйТекстHTML = Неопределено;
+
+ РезультатФункции = Новый Структура();
+ РезультатФункции.Вставить("ЗаменитьТекстHTML",ЗаменитьТекстHTML);
+ РезультатФункции.Вставить("НовыйТекстHTML",пНовыйТекстHTML);
+
+ ЧислоУказанныхЗадач = СтрЧислоВхождений(ТекстHTML, "#");
+ Если ЧислоУказанныхЗадач = 0 Тогда
+ Возврат РезультатФункции;
+ Конецесли;
+
+ ТЗДляЗамены = Новый ТаблицаЗначений();
+ ТЗДляЗамены.Колонки.Добавить("ПодстрокаПоиска");
+ ТЗДляЗамены.Колонки.Добавить("ПодстрокаЗамены");
+
+ пНовыйТекстHTML = ТекстHTML;
+ Для НомерВхождения = 1 По ЧислоУказанныхЗадач Цикл
+
+ ПозРешетка = СтрНайти(пНовыйТекстHTML, "#",,,НомерВхождения);
+ ТекстНомерЗадачи = "#";
+ НомерЗадачи = "";
+
+ НомерСимвола = ПозРешетка + 1;
+ Символ = Сред(пНовыйТекстHTML,НомерСимвола,1);
+ Пока 48<= КодСимвола(Символ)
+ И КодСимвола(Символ) <= 57 Цикл
+
+ НомерЗадачи = НомерЗадачи + Символ;
+ НомерСимвола = НомерСимвола + 1;
+ Символ = Сред(пНовыйТекстHTML,НомерСимвола,1);
+ Конеццикла;
+ ТекстНомерЗадачи = "#"+НомерЗадачи;
+ НомерЗадачи = Число(НомерЗадачи);
+
+ СсылкаНаЗадачу = Справочники.узЗадачи.НайтиПоКоду(НомерЗадачи);
+ Если НЕ ЗначениеЗаполнено(СсылкаНаЗадачу) Тогда
+ Продолжить;
+ Конецесли;
+ ЗаменитьТекстHTML = Истина;
+
+ НавигационнаяСсылка = ПолучитьНавигационнуюСсылку(СсылкаНаЗадачу);
+
+ ТекстСсылка = ""+ТекстНомерЗадачи+"";
+
+ СтрокаТЗДляЗамены = ТЗДляЗамены.Добавить();
+ СтрокаТЗДляЗамены.ПодстрокаПоиска = ТекстНомерЗадачи;
+ СтрокаТЗДляЗамены.ПодстрокаЗамены = ТекстСсылка;
+ КонецЦикла;
+
+ Для каждого СтрокаТЗДляЗамены из ТЗДляЗамены цикл
+ пНовыйТекстHTML = СтрЗаменить(пНовыйТекстHTML, СтрокаТЗДляЗамены.ПодстрокаПоиска, СтрокаТЗДляЗамены.ПодстрокаЗамены);
+ Конеццикла;
+
+ РезультатФункции.Вставить("ЗаменитьТекстHTML",ЗаменитьТекстHTML);
+ РезультатФункции.Вставить("НовыйТекстHTML",пНовыйТекстHTML);
+ Возврат РезультатФункции;
+КонецФункции
&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
@@ -551,9 +629,79 @@
Объект.ПоказыватьВОтчетахИКанбанДоске = Истина;
КонецПроцедуры
+&НаКлиенте
+Процедура КомандаОткрытьЗадачу(Команда)
+
+ Если Элементы.ГруппаСтраницыОформлениеСодержания.ТекущаяСтраница = Элементы.ГруппаСтраницаФорматированныйТекст Тогда
+ ТекстВыделенный = СокрЛП(Элементы.Содержание.ВыделенныйТекст);
+ Если НЕ ЗначениеЗаполнено(ТекстВыделенный) Тогда
+ ТекстВыделенный = ПолучитьСодержаниеТекстИзФорматированногоТекста();
+ Конецесли;
+ ИначеЕсли Элементы.ГруппаСтраницыОформлениеСодержания.ТекущаяСтраница = Элементы.ГруппаСтраницаТекст Тогда
+ ТекстВыделенный = СокрЛП(Элементы.ТекстСодержания.ВыделенныйТекст);
+ Если НЕ ЗначениеЗаполнено(ТекстВыделенный) Тогда
+ ТекстВыделенный = Объект.ТекстСодержания;
+ Конецесли;
+ //ИначеЕсли Элементы.ГруппаСтраницыОформлениеСодержания.ТекущаяСтраница = Элементы.ГруппаСтраницаПросмотр Тогда
+ // ТекстВыделенный = Объект.ТекстСодержания;
+ //Иначе
+ // ВызватьИсключение "Ошибка! нет алгоритма для выбранной страницы "+Элементы.ГруппаСтраницыОформлениеСодержания.ТекущаяСтраница;
+ Конецесли;
+
+
+ МассивЗадач = ПолучитьМассивЗадачПоВыбранномуТексту(ТекстВыделенный);
+ Если МассивЗадач.Количество() = 0 Тогда
+ узОбщийМодульСервер.узСообщить("В выделенном тексте нет задач",75);
+ Возврат;
+ Конецесли;
+
+ Для каждого СсылкаНаЗадачу из МассивЗадач цикл
+ ПараметрыФормы = Новый Структура();
+ ПараметрыФормы.Вставить("Ключ",СсылкаНаЗадачу);
+ ОткрытьФорму("Справочник.узЗадачи.Форма.ФормаЭлемента",ПараметрыФормы);
+ Конеццикла;
+КонецПроцедуры
// Конец СтандартныеПодсистемы.Свойства
+&НаСервереБезКонтекста
+Функция ПолучитьМассивЗадачПоВыбранномуТексту(ТекстВыделенный)
+ МассивЗадач = Новый Массив();
+
+ ЧислоУказанныхЗадач = СтрЧислоВхождений(ТекстВыделенный, "#");
+ Если ЧислоУказанныхЗадач = 0 Тогда
+ Возврат МассивЗадач;
+ Конецесли;
+
+ Для НомерВхождения = 1 По ЧислоУказанныхЗадач Цикл
+
+ ПозРешетка = СтрНайти(ТекстВыделенный, "#",,,НомерВхождения);
+ ТекстНомерЗадачи = "#";
+ НомерЗадачи = "";
+
+ НомерСимвола = ПозРешетка + 1;
+ Символ = Сред(ТекстВыделенный,НомерСимвола,1);
+ Пока 48<= КодСимвола(Символ)
+ И КодСимвола(Символ) <= 57 Цикл
+
+ НомерЗадачи = НомерЗадачи + Символ;
+ НомерСимвола = НомерСимвола + 1;
+ Символ = Сред(ТекстВыделенный,НомерСимвола,1);
+ Конеццикла;
+
+ НомерЗадачи = Число(НомерЗадачи);
+
+ СсылкаНаЗадачу = Справочники.узЗадачи.НайтиПоКоду(НомерЗадачи);
+ Если НЕ ЗначениеЗаполнено(СсылкаНаЗадачу) Тогда
+ Продолжить;
+ Конецесли;
+
+ МассивЗадач.Добавить(СсылкаНаЗадачу);
+ КонецЦикла;
+
+ Возврат МассивЗадач;
+КонецФункции
+
#КонецОбласти
#Область Учет_времени
@@ -805,23 +953,7 @@
КонецПроцедуры
+
+
#КонецОбласти
-//&НаКлиенте
-//Процедура ЦветЗадачиНаФормеПриИзменении(Элемент)
-//
-// Объект.ИзмененЦветПоУмолчанию = ПолучитьИзмененЦветПоУмолчаниюНаКлиенте();
-//
-//КонецПроцедуры
-
-//&НаКлиенте
-//Функция ПолучитьИзмененЦветПоУмолчаниюНаКлиенте()
-// ИзмененЦветПоУмолчанию = Ложь;
-//
-// ЦветПоУмолчанию = Новый Цвет(0,0,0);
-// Если ЦветЗадачиНаФорме <> ЦветПоУмолчанию Тогда
-// ИзмененЦветПоУмолчанию = Истина;
-// Конецесли;
-//
-// Возврат ИзмененЦветПоУмолчанию;
-//КонецФункции
diff --git a/src/cf/CommonTemplates/узСловарьПоУмолчанию/Ext/Template.xml b/src/cf/CommonTemplates/узСловарьПоУмолчанию/Ext/Template.xml
index ab87774a3..ac065b9d0 100644
--- a/src/cf/CommonTemplates/узСловарьПоУмолчанию/Ext/Template.xml
+++ b/src/cf/CommonTemplates/узСловарьПоУмолчанию/Ext/Template.xml
@@ -4726,17 +4726,35 @@
- 8
+ 9
+
+
+ ru
+ Справочник.узЗадачи.ФормаЭлемента
+
+
8
+
+
+ ru
+ В выделенном тексте нет задач
+
+
8
+
+
+ ru
+ The selected text no task
+
+