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 - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Командная панель редактирования</v8:content> - </v8:item> - - - - ru - Командная панель редактирования - - - Item.Содержание - - + + Horizontal + None + false + + + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Командная панель редактирования</v8:content> + </v8:item> + + + + ru + Командная панель редактирования + + + Item.Содержание + + + + ФорматированныйТекст @@ -279,6 +292,7 @@ <v8:content>Содержание</v8:content> </v8:item> + None false @@ -310,69 +324,81 @@ - - - <v8:item> - <v8:lang>ru</v8:lang> - <v8:content>Группа командная панель markdown</v8:content> - </v8:item> - - - - ru - Группа командная панель markdown - - - + + None + false + - - - - - - - - + + + ru + Группа командная панель markdown + + + + + + + + + + + + + + - + Объект.ТекстСодержания @@ -381,6 +407,7 @@ <v8:content>Содержание</v8:content> </v8:item> + None false false true @@ -2265,5 +2292,33 @@ Picture true + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Открыть задачу</v8:content> + </v8:item> + + + + ru + Открыть задачи из выделенного текста + + + en + To open a task from selected text + + + ro + To open a task from selected text + + + + StdPicture.ShowData + true + + КомандаОткрытьЗадачу + 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 + +