From 7a17a0369b020a10ca1906f4b53d2dd059ef7319 Mon Sep 17 00:00:00 2001 From: Anton Ivanov Date: Thu, 26 Jul 2018 13:46:48 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=BE=20=D0=BE=D1=82=D0=BE=D0=B1=D1=80=D0=B0=D0=B6=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D1=81=D0=B2=D1=8F=D0=B7=D0=B0=D0=BD=D0=BD?= =?UTF-8?q?=D1=8B=D1=85=20=D0=B7=D0=B0=D0=B4=D0=B0=D1=87=20=D0=BD=D0=B0=20?= =?UTF-8?q?=D1=84=D0=BE=D1=80=D0=BC=D0=B5=20=D1=8D=D0=BB=D0=B5=D0=BC=D0=B5?= =?UTF-8?q?=D0=BD=D1=82=D0=B0=20=D0=B7=D0=B0=D0=B4=D0=B0=D1=87=D0=B8.=20?= =?UTF-8?q?=D0=95=D1=81=D0=BB=D0=B8=20=D0=B2=20=D1=82=D0=B5=D0=BA=D1=81?= =?UTF-8?q?=D1=82=D0=B5=20=D0=B7=D0=B0=D0=B4=D0=B0=D1=87=D0=B8=20=D1=83?= =?UTF-8?q?=D0=BA=D0=B0=D0=B7=D0=B0=D0=BD=D0=B0=20=D0=B7=D0=B0=D0=B4=D0=B0?= =?UTF-8?q?=D1=87=D0=B0=20=D0=B2=20=D1=84=D0=BE=D1=80=D0=BC=D0=B5=D1=82?= =?UTF-8?q?=D0=B5=20#=D0=9D=D0=BE=D0=BC=D0=B5=D1=80=D0=97=D0=B0=D0=B4?= =?UTF-8?q?=D0=B0=D1=87=D0=B8,=20=D1=82=D0=BE=20=D0=B7=D0=B0=D0=B4=D0=B0?= =?UTF-8?q?=D1=87=D0=B8=20=D0=B1=D1=83=D0=B4=D1=83=D1=82=20=D1=81=D0=B2?= =?UTF-8?q?=D1=8F=D0=B7=D0=B0=D0=BD=D1=8B=20=D0=B8=20=D0=BD=D0=B0=20=D1=84?= =?UTF-8?q?=D0=BE=D1=80=D0=BC=D0=B5=20=D1=83=20=D0=BE=D0=B1=D0=BE=D0=B8?= =?UTF-8?q?=D1=85=20=D0=B7=D0=B0=D0=B4=D0=B0=D1=87=20=D0=B1=D1=83=D0=B4?= =?UTF-8?q?=D0=B5=D1=82=20=D1=8D=D1=82=D0=BE=20=D0=BE=D1=82=D0=BE=D0=B1?= =?UTF-8?q?=D1=80=D0=B0=D0=B6=D0=B0=D1=82=D1=8C=D1=81=D1=8F.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Catalogs/узЗадачи/Ext/ManagerModule.bsl | 80 ++++++ src/cf/Catalogs/узЗадачи/Ext/ObjectModule.bsl | 61 +++++ .../узЗадачи/Forms/ФормаЭлемента/Ext/Form.xml | 18 ++ .../Forms/ФормаЭлемента/Ext/Form/Module.bsl | 74 ++++++ .../узСвязанныеЗадачи.xml | 251 ++++++++++++++++++ .../узСвязанныеЗадачи/Forms/ФормаСписка.xml | 21 ++ .../Forms/ФормаСписка/Ext/Form.xml | 148 +++++++++++ src/cf/Roles/узПользователь/Ext/Rights.xml | 15 ++ src/cf/Subsystems/узУправлениеЗадачами.xml | 1 + 9 files changed, 669 insertions(+) create mode 100644 src/cf/InformationRegisters/узСвязанныеЗадачи.xml create mode 100644 src/cf/InformationRegisters/узСвязанныеЗадачи/Forms/ФормаСписка.xml create mode 100644 src/cf/InformationRegisters/узСвязанныеЗадачи/Forms/ФормаСписка/Ext/Form.xml diff --git a/src/cf/Catalogs/узЗадачи/Ext/ManagerModule.bsl b/src/cf/Catalogs/узЗадачи/Ext/ManagerModule.bsl index 8a0ed05f2..89ade85a5 100644 --- a/src/cf/Catalogs/узЗадачи/Ext/ManagerModule.bsl +++ b/src/cf/Catalogs/узЗадачи/Ext/ManagerModule.bsl @@ -181,3 +181,83 @@ Возврат РезультатФункции; КонецФункции + +Функция ЕстьЗаписиВРССвязанныеЗадачи(пЗадача, ОтбиратьЗаписиИПоСвязаннойЗадачи = Ложь) Экспорт + + пЕстьЗаписиВРССвязанныеЗадачи = Ложь; + + Если НЕ ЗначениеЗаполнено(пЗадача) Тогда + Возврат пЕстьЗаписиВРССвязанныеЗадачи; + Конецесли; + + Запрос = Новый Запрос; + Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1 + | узСвязанныеЗадачи.Задача, + | узСвязанныеЗадачи.СвязаннаяЗадача + |ИЗ + | РегистрСведений.узСвязанныеЗадачи КАК узСвязанныеЗадачи + |ГДЕ + | ВЫБОР + | КОГДА &ОтбиратьЗаписиИПоСвязаннойЗадачи + | ТОГДА узСвязанныеЗадачи.Задача = &Задача + | ИЛИ узСвязанныеЗадачи.СвязаннаяЗадача = &Задача + | ИНАЧЕ узСвязанныеЗадачи.Задача = &Задача + | КОНЕЦ"; + + Запрос.УстановитьПараметр("Задача",пЗадача); + РезультатЗапроса = Запрос.Выполнить(); + + Если НЕ РезультатЗапроса.Пустой() Тогда + пЕстьЗаписиВРССвязанныеЗадачи = Истина; + Конецесли; + + Возврат пЕстьЗаписиВРССвязанныеЗадачи; +КонецФункции + +Функция ПолучитьМассивНомеровСвязанныхЗадач(пЗадача) Экспорт + + МассивНомеровСвязанныхЗадач = Новый Массив; + + Запрос = Новый Запрос; + Запрос.Текст = "ВЫБРАТЬ + | узСвязанныеЗадачи.СвязаннаяЗадача + |ПОМЕСТИТЬ ВТРезультат + |ИЗ + | РегистрСведений.узСвязанныеЗадачи КАК узСвязанныеЗадачи + |ГДЕ + | узСвязанныеЗадачи.Задача = &Задача + | + |ОБЪЕДИНИТЬ + | + |ВЫБРАТЬ + | узСвязанныеЗадачи.Задача + |ИЗ + | РегистрСведений.узСвязанныеЗадачи КАК узСвязанныеЗадачи + |ГДЕ + | узСвязанныеЗадачи.СвязаннаяЗадача = &Задача + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |ВЫБРАТЬ + | ВТРезультат.СвязаннаяЗадача.Код КАК НомерЗадачи + |ИЗ + | ВТРезультат КАК ВТРезультат + |ГДЕ + | ВТРезультат.СвязаннаяЗадача <> &Задача"; + + Запрос.УстановитьПараметр("Задача",пЗадача); + + РезультатЗапроса = Запрос.Выполнить(); + + Если РезультатЗапроса.Пустой() Тогда + Возврат МассивНомеровСвязанныхЗадач; + Конецесли; + + Выборка = РезультатЗапроса.Выбрать(); + + Пока Выборка.Следующий() Цикл + МассивНомеровСвязанныхЗадач.Добавить(Выборка.НомерЗадачи); + КонецЦикла; + + Возврат МассивНомеровСвязанныхЗадач; +КонецФункции \ No newline at end of file diff --git a/src/cf/Catalogs/узЗадачи/Ext/ObjectModule.bsl b/src/cf/Catalogs/узЗадачи/Ext/ObjectModule.bsl index 24e92203e..6f47f7362 100644 --- a/src/cf/Catalogs/узЗадачи/Ext/ObjectModule.bsl +++ b/src/cf/Catalogs/узЗадачи/Ext/ObjectModule.bsl @@ -1068,8 +1068,69 @@ ОтправитьУведомлениеНаПочту(СобытияВИстории); ДополнительныеСвойства.Удалить("СобытияВИстории"); + + СформироватьЗаписиВРССвязанныеЗадачи(Отказ); КонецПроцедуры +Процедура СформироватьЗаписиВРССвязанныеЗадачи(Отказ) Экспорт + Если Отказ Тогда + Возврат; + Конецесли; + + пЗадача = Ссылка; + УдалитьЗаписиИзРССвязанныеЗадачи(пЗадача, Отказ); + + МассивЗадач = узОбщийМодульСервер.ПолучитьМассивЗадачИзТекста(ТекстСодержания); + Если МассивЗадач.Количество() = 0 Тогда + Возврат; + Конецесли; + + Для каждого СвязаннаяЗадача из МассивЗадач цикл + + МенеджерЗаписи = РегистрыСведений.узСвязанныеЗадачи.СоздатьМенеджерЗаписи(); + МенеджерЗаписи.Задача = пЗадача; + МенеджерЗаписи.СвязаннаяЗадача = СвязаннаяЗадача; + МенеджерЗаписи.Записать(); + + Конеццикла; + +КонецПроцедуры + +Процедура УдалитьЗаписиИзРССвязанныеЗадачи(пЗадача,Отказ) Экспорт + + Если Отказ Тогда + Возврат; + Конецесли; + + Запрос = Новый Запрос; + Запрос.Текст = "ВЫБРАТЬ + | узСвязанныеЗадачи.Задача, + | узСвязанныеЗадачи.СвязаннаяЗадача + |ИЗ + | РегистрСведений.узСвязанныеЗадачи КАК узСвязанныеЗадачи + |ГДЕ + | узСвязанныеЗадачи.Задача = &Задача"; + + Запрос.УстановитьПараметр("Задача",пЗадача); + РезультатЗапроса = Запрос.Выполнить(); + + Если РезультатЗапроса.Пустой() Тогда + Возврат; + Конецесли; + + Выборка = РезультатЗапроса.Выбрать(); + + Пока Выборка.Следующий() Цикл + + МенеджерЗаписи = РегистрыСведений.узСвязанныеЗадачи.СоздатьМенеджерЗаписи(); + МенеджерЗаписи.Задача = Выборка.Задача; + МенеджерЗаписи.СвязаннаяЗадача = Выборка.СвязаннаяЗадача; + МенеджерЗаписи.Удалить(); + + КонецЦикла; + +КонецПроцедуры + Процедура РегистрацияАктивностиПользователя(СобытияВИстории,Отказ) ВТДопПараметры = Новый Структура(); ВТДопПараметры.Вставить("СобытияВИстории",СобытияВИстории); diff --git a/src/cf/Catalogs/узЗадачи/Forms/ФормаЭлемента/Ext/Form.xml b/src/cf/Catalogs/узЗадачи/Forms/ФормаЭлемента/Ext/Form.xml index 74ddf37e9..b3bbd8709 100644 --- a/src/cf/Catalogs/узЗадачи/Forms/ФормаЭлемента/Ext/Form.xml +++ b/src/cf/Catalogs/узЗадачи/Forms/ФормаЭлемента/Ext/Form.xml @@ -242,6 +242,24 @@ ОформлениеТекстаПриИзменении + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа связанные задачи</v8:content> + </v8:item> + + + + ru + Группа связанные задачи + + + Horizontal + None + false + + diff --git a/src/cf/Catalogs/узЗадачи/Forms/ФормаЭлемента/Ext/Form/Module.bsl b/src/cf/Catalogs/узЗадачи/Forms/ФормаЭлемента/Ext/Form/Module.bsl index aae4ba52f..9d596a6b4 100644 --- a/src/cf/Catalogs/узЗадачи/Forms/ФормаЭлемента/Ext/Form/Module.bsl +++ b/src/cf/Catalogs/узЗадачи/Forms/ФормаЭлемента/Ext/Form/Module.bsl @@ -37,6 +37,8 @@ Конецесли; Конецесли; + ДобавитьСсылкиНаСвязанныеЗадачиНаСервере(); + ВыполнитьЛокализацию(); Элементы.КомандаПоказатьСкрытьКомментарии.Пометка = КомментарииПометка; УстановитьВидимостьДоступность(); @@ -157,6 +159,7 @@ &НаСервере Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи) УстановитьВидимостьДоступность(); + ДобавитьСсылкиНаСвязанныеЗадачиНаСервере(); КонецПроцедуры @@ -741,6 +744,77 @@ пОбъект = РеквизитФормыВЗначение("Объект"); ЗначениеВРеквизитФормы(пОбъект,"Объект"); КонецПроцедуры + +&НаСервере +Процедура ДобавитьСсылкиНаСвязанныеЗадачиНаСервере() + МассивНомеровСвязанныхЗадач = ПолучитьМассивНомеровСвязанныхЗадачНаСервере(Объект.Ссылка); + Если МассивНомеровСвязанныхЗадач.Количество() = 0 Тогда + УбратьЭлементыСвязанныеЗадачи(); + Возврат; + Конецесли; + + МассивЭлементовСвязанныхЗадач = Новый Массив(); + Для каждого НомерСвязаннойЗадачи из МассивНомеровСвязанныхЗадач цикл + ИмяЭлемента = "СвязаннаяЗадача"+НомерСвязаннойЗадачи; + + пЭлементСвязаннаяЗадача = Элементы.Найти(ИмяЭлемента); + Если пЭлементСвязаннаяЗадача <> Неопределено Тогда + МассивЭлементовСвязанныхЗадач.Добавить(пЭлементСвязаннаяЗадача); + Продолжить; + Конецесли; + + пЭлементСвязаннаяЗадача = Элементы.Вставить( + ИмяЭлемента, + Тип("ДекорацияФормы"),Элементы.ГруппаСвязанныеЗадачи); + + пЭлементСвязаннаяЗадача.Заголовок = "#"+Формат(НомерСвязаннойЗадачи,"ЧГ=0"); + пЭлементСвязаннаяЗадача.Гиперссылка = Истина; + пЭлементСвязаннаяЗадача.УстановитьДействие("Нажатие","ДекорацияСвязаннаяЗадачаНажатие"); + + МассивЭлементовСвязанныхЗадач.Добавить(пЭлементСвязаннаяЗадача); + Конеццикла; + + УбратьЭлементыСвязанныеЗадачи(МассивЭлементовСвязанныхЗадач); +КонецПроцедуры + +&НаСервере +Процедура УбратьЭлементыСвязанныеЗадачи(МассивЭлементовСвязанныхЗадач = Неопределено) + + Для каждого пЭлементСвязаннаяЗадача из Элементы.ГруппаСвязанныеЗадачи.ПодчиненныеЭлементы цикл + + Если МассивЭлементовСвязанныхЗадач <> Неопределено + И МассивЭлементовСвязанныхЗадач.Найти(пЭлементСвязаннаяЗадача) <> Неопределено Тогда + Продолжить; + Конецесли; + + Элементы.Удалить(пЭлементСвязаннаяЗадача); + Конеццикла; + +КонецПроцедуры + +&НаСервереБезКонтекста +Функция ПолучитьМассивНомеровСвязанныхЗадачНаСервере(пЗадача) + Возврат Справочники.узЗадачи.ПолучитьМассивНомеровСвязанныхЗадач(пЗадача); +КонецФункции + +&НаКлиенте +Процедура ДекорацияСвязаннаяЗадачаНажатие(Элемент) + НомерЗадачи = Сред(Элемент.Заголовок,2); + СсылкаНаЗадачу = ПолучитьЗадачуПоНомеруНаСервере(НомерЗадачи); + + ПараметрыФормы = Новый Структура(); + ПараметрыФормы.Вставить("Ключ",СсылкаНаЗадачу); + ОткрытьФорму("Справочник.узЗадачи.Форма.ФормаЭлемента",ПараметрыФормы); +КонецПроцедуры + + +&НаСервереБезКонтекста +Функция ПолучитьЗадачуПоНомеруНаСервере(НомерЗадачи) + + СсылкаНаЗадачу = Справочники.узЗадачи.НайтиПоКоду(НомерЗадачи); + + Возврат СсылкаНаЗадачу; +КонецФункции #КонецОбласти #Область Учет_времени diff --git a/src/cf/InformationRegisters/узСвязанныеЗадачи.xml b/src/cf/InformationRegisters/узСвязанныеЗадачи.xml new file mode 100644 index 000000000..9dc8b7f2a --- /dev/null +++ b/src/cf/InformationRegisters/узСвязанныеЗадачи.xml @@ -0,0 +1,251 @@ + + + + + + 5213a3f6-8f7a-4149-b9bc-1925aa94e729 + 26a618b3-d456-4b5c-86ef-69923b1889fb + + + c32ecb1c-7a49-4623-b86b-5b3667629b4f + daac7294-32c4-43d5-a0b1-b93d62803a9c + + + bced9650-097a-4b66-90a0-790789d31b0f + 63ff8a42-1671-4a6d-b2f9-f0eac420de1a + + + cb29e657-2509-43cc-98ec-4318893cf185 + b9c14efd-bf4b-4035-abe3-a380d9b66687 + + + ec157e55-5ade-4d85-b675-1c8cfb051baf + 54bbb33a-84c1-4588-8933-5546265dc307 + + + d096164f-9ef1-438f-9d3f-c622dee85a71 + db8dcc74-4915-469e-9939-4c32fa61f349 + + + a4a7beb7-f844-4589-9e6c-f941c48e11b4 + 6a6d6b8a-6926-4e1e-9896-c032fef45383 + + + + узСвязанныеЗадачи + + + ru + Cвязанные задачи + + + + true + InDialog + + InformationRegister.узСвязанныеЗадачи.Form.ФормаСписка + + + + + + DontCheck + false + false + Auto + + + false + + + Auto + Auto + + false + false + + + + Use + + + + + + + + DontCheck + false + false + Auto + + + false + + + Auto + Auto + + false + false + + + + Use + + + + + + + + DontCheck + false + false + Auto + + + false + + + Auto + Auto + + false + false + + + + Use + + + + + + + + ShowError + false + false + Auto + + + false + + + Auto + Auto + + false + false + + + + Use + + + + + + + Nonperiodical + Independent + false + false + Managed + DontUse + false + false + + + + + + + + + + Задача + + + ru + Задача + + + + + cfg:CatalogRef.узЗадачи + + false + + + + false + + false + false + + + false + + DontCheck + Items + + + Auto + Auto + + + Auto + false + true + false + DontIndex + Use + + + + + СвязаннаяЗадача + + + ru + Связанная задача + + + + + cfg:CatalogRef.узЗадачи + + false + + + + false + + false + false + + + false + + DontCheck + Items + + + Auto + Auto + + + Auto + false + true + false + DontIndex + Use + + +
ФормаСписка
+
+
+
\ No newline at end of file diff --git a/src/cf/InformationRegisters/узСвязанныеЗадачи/Forms/ФормаСписка.xml b/src/cf/InformationRegisters/узСвязанныеЗадачи/Forms/ФормаСписка.xml new file mode 100644 index 000000000..e2279a727 --- /dev/null +++ b/src/cf/InformationRegisters/узСвязанныеЗадачи/Forms/ФормаСписка.xml @@ -0,0 +1,21 @@ + + +
+ + ФормаСписка + + + ru + Форма списка + + + + Managed + false + + PersonalComputer + MobileDevice + + +
+
\ No newline at end of file diff --git a/src/cf/InformationRegisters/узСвязанныеЗадачи/Forms/ФормаСписка/Ext/Form.xml b/src/cf/InformationRegisters/узСвязанныеЗадачи/Forms/ФормаСписка/Ext/Form.xml new file mode 100644 index 000000000..9b55d92a1 --- /dev/null +++ b/src/cf/InformationRegisters/узСвязанныеЗадачи/Forms/ФормаСписка/Ext/Form.xml @@ -0,0 +1,148 @@ + +
+ + + + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Группа пользовательских настроек</v8:content> + </v8:item> + + false + Vertical + false + + + + List + None + true + true + ExpandTopLevel + true + Список + Список.DefaultPicture + false + 60 + + Custom + 0001-01-01T00:00:00 + 0001-01-01T00:00:00 + + Items + false + + true + false + Auto + СписокКомпоновщикНастроекПользовательскиеНастройки + + + false + + + + + Список + SearchStringRepresentation + + + + + + + Список + ViewStatusRepresentation + + + + + + + Список + SearchControl + + + + + + + Список.Задача.Code + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Номер задачи</v8:content> + </v8:item> + + + + ru + ЧГ=0 + + + + + + + Список.Задача + true + + + + + Список.СвязаннаяЗадача.Code + + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Номер связанной задачи</v8:content> + </v8:item> + + + + ru + ЧГ=0 + + + + + + + Список.СвязаннаяЗадача + true + + + + +
+
+ + + + cfg:DynamicList + + true + + false + true + InformationRegister.узСвязанныеЗадачи + + + Normal + dfcece9d-5077-440b-b6b3-45a5cb4538eb + + + Normal + 88619765-ccb3-46c6-ac52-38e9c992ebd4 + + + Normal + b75fecce-942b-4aed-abc9-e6a02e460fb3 + + Normal + 911b6018-f537-43e8-a417-da56b22f9aec + + + + + \ No newline at end of file diff --git a/src/cf/Roles/узПользователь/Ext/Rights.xml b/src/cf/Roles/узПользователь/Ext/Rights.xml index 7f13ff8ea..79df7bee4 100644 --- a/src/cf/Roles/узПользователь/Ext/Rights.xml +++ b/src/cf/Roles/узПользователь/Ext/Rights.xml @@ -4400,6 +4400,21 @@ true + + InformationRegister.узСвязанныеЗадачи + + Read + true + + + Update + true + + + View + true + + InformationRegister.узНастройкиДляСтатусов diff --git a/src/cf/Subsystems/узУправлениеЗадачами.xml b/src/cf/Subsystems/узУправлениеЗадачами.xml index b1f575875..6de8080b8 100644 --- a/src/cf/Subsystems/узУправлениеЗадачами.xml +++ b/src/cf/Subsystems/узУправлениеЗадачами.xml @@ -102,6 +102,7 @@ Catalog.узШаблоны Catalog.узКонтрагенты CommonModule.API + InformationRegister.узСвязанныеЗадачи