From 3eec4e055d11588376bfcdc00aed72a996ab41bf Mon Sep 17 00:00:00 2001 From: Anton Ivanov <iab@bk.ru> Date: Sat, 11 Jul 2020 10:15:37 +0300 Subject: [PATCH 01/13] =?UTF-8?q?#179=20@serg33rus=20=D0=A3=D0=B2=D0=B5?= =?UTF-8?q?=D0=B4=D0=BE=D0=BC=D0=BB=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=BF=D0=BE?= =?UTF-8?q?=20=D0=B2=D0=BE=D0=BF=D1=80=D0=BE=D1=81=D0=B0=D0=BC=20=D0=BE?= =?UTF-8?q?=D1=82=D0=B2=D0=B5=D1=82=D0=B0=D0=BC:=20=D0=9D=D0=BE=D0=B2?= =?UTF-8?q?=D1=8B=D0=B9=20=D0=B2=D0=BE=D0=BF=D1=80=D0=BE=D1=81,=20=D0=B8?= =?UTF-8?q?=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD=20=D0=BE=D1=82=D0=B2=D0=B5?= =?UTF-8?q?=D1=82,=20=D0=B7=D0=B0=D0=BA=D1=80=D1=8B=D1=82=20=D0=B2=D0=BE?= =?UTF-8?q?=D0=BF=D1=80=D0=BE=D1=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../узВопросыОтветы/Ext/ObjectModule.bsl | 182 ++++++++++++++++++ src/cf/Enums/узВидыСобытий.xml | 16 ++ .../Ext/ManagerModule.bsl | 2 + 3 files changed, 200 insertions(+) diff --git a/src/cf/Catalogs/узВопросыОтветы/Ext/ObjectModule.bsl b/src/cf/Catalogs/узВопросыОтветы/Ext/ObjectModule.bsl index c57b84dc9..4c3cecc37 100644 --- a/src/cf/Catalogs/узВопросыОтветы/Ext/ObjectModule.bsl +++ b/src/cf/Catalogs/узВопросыОтветы/Ext/ObjectModule.bsl @@ -33,9 +33,24 @@ СтрокаТЗСобытия.ВидСобытия = ПредопределенноеЗначение("Перечисление.узВидыСобытий.ЗакрытВопрос"); Конецесли; + Если ИзмененОтвет() Тогда + СтрокаТЗСобытия = ТЗСобытия.Добавить(); + СтрокаТЗСобытия.ВидСобытия = ПредопределенноеЗначение("Перечисление.узВидыСобытий.ИзмененОтвет"); + КонецЕсли; + Возврат ТЗСобытия; КонецФункции +Функция ИзмененОтвет() + пИзмененОтвет = Ложь; + + Если Ссылка.Ответ <> Ответ Тогда + пИзмененОтвет = Истина; + КонецЕсли; + + Возврат пИзмененОтвет; +КонецФункции + Процедура ПриЗаписи(Отказ) Если ОбменДанными.Загрузка Тогда @@ -48,6 +63,10 @@ РегистрацияАктивностиПользователя(ДополнительныеСвойства.ТЗСобытия,Отказ); + // + #179 SZ 2020-06-07 + ОтправитьУведомлениеНаПочту(ДополнительныеСвойства.ТЗСобытия); + // - #179 SZ 2020-06-07 + ДополнительныеСвойства.Удалить("ТЗСобытия"); КонецПроцедуры @@ -56,3 +75,166 @@ ВТДопПараметры.Вставить("ТЗСобытия",ТЗСобытия); РегистрыСведений.узАктивностиПользователей.ДобавитьАктивностьПользователя(ЭтотОбъект,ВТДопПараметры,Отказ); КонецПроцедуры + +// + #179 SZ 2020-06-07 +Процедура ОтправитьУведомлениеНаПочту(СобытияВИстории) Экспорт + + ВсегоСобытий = СобытияВИстории.Количество(); + + Если ВсегоСобытий = 0 Тогда + Возврат; + КонецЕсли; + + Для Каждого СтрСобытияВИстории из СобытияВИстории Цикл + + ОтправитьУведомлениеНаПочтуПоВидуСобытия(СобытияВИстории, СтрСобытияВИстории.ВидСобытия); + + КонецЦикла; + +КонецПроцедуры // - #179 SZ 2020-06-07 + +// + #179 SZ 2020-06-07 +Процедура ОтправитьУведомлениеНаПочтуПоВидуСобытия(СобытияВИстории, ВидСобытия) + + ПараметрыПисьма = ПолучитьПараметрыПисьмаПоСобытию(ВидСобытия); + + ДопПараметры = Новый Структура(); + ДопПараметры.Вставить("ТекстПисьма",ПараметрыПисьма.ТекстПисьма); + ДопПараметры.Вставить("ТемаПисьма",ПараметрыПисьма.ТемаПисьма); + ДопПараметры.Вставить("ВажностьЗадачи",ПараметрыПисьма.ВажностьЗадачи); + + ТекПользователь = Пользователи.ТекущийПользователь(); + Исполнитель = Задача.Исполнитель; + + МассивПользователейКомуПредварительный = Новый Массив(); + МассивПользователейКомуПредварительный.Добавить(Автор); + МассивПользователейКомуПредварительный.Добавить(Исполнитель); + МассивПользователейКомуПредварительный.Добавить(КтоМожетОтветить); + + МассивПользователейКому = Новый Массив(); + + Для каждого пПользовательПредв из МассивПользователейКомуПредварительный Цикл + + Если НЕ ЗначениеЗаполнено(пПользовательПредв) Тогда + Продолжить; + КонецЕсли; + + Если пПользовательПредв.узНеОтправлятьУведомленияНаПочту Тогда + Продолжить; + КонецЕсли; + + Если пПользовательПредв = ТекПользователь + И НЕ пПользовательПредв.узОтправлятьУведомленияОДействияхПользователяЕмуНаПочту Тогда + Продолжить; + КонецЕсли; + + МассивПользователейКому.Добавить(пПользовательПредв); + КонецЦикла; + + ДопПараметры.Вставить("МассивПользователейКому",МассивПользователейКому); + + узОбщийМодульСервер.ОтправитьПисьмо(ДопПараметры); + +КонецПроцедуры // - #179 SZ 2020-06-07 + +Функция ПолучитьПараметрыПисьмаПоСобытию(ВидСобытия) + + ТемаПисьма = ""; + ТекстПисьма = ""; + ВажностьЗадачи = ПредопределенноеЗначение("Справочник.узВариантыВажностиЗадачи.Обычная"); + + ПараметрыПисьма = Новый Структура(); + ПараметрыПисьма.Вставить("ТемаПисьма",ТемаПисьма); + ПараметрыПисьма.Вставить("ТекстПисьма",ТекстПисьма); + ПараметрыПисьма.Вставить("ВажностьЗадачи",ВажностьЗадачи); + + ЗаполненаЗадача = Ложь; + Если ЗначениеЗаполнено(Задача) Тогда + ЗаполненаЗадача = Истина; + ВажностьЗадачи = Задача.Важность; + НомерЗадачи = ""+Формат(Задача.Код,"ЧГ=0"); + КонецЕсли; + + ТемаПисьма = "Изменения по вопросу"; + ТекстПисьма = "Изменения по вопросу "; + ДобавитьВТекстПисьмаВопрос(ТекстПисьма); + ДобавитьВТекстПисьмаОтвет(ТекстПисьма); + + Если ВидСобытия = Перечисления.узВидыСобытий.ДобавленВопрос Тогда + + ТемаПисьма = "Новый вопрос "; + + ТекстПисьма = "" + Автор + " задал вопрос к " + КтоМожетОтветить; + ДобавитьВТекстПисьмаВопрос(ТекстПисьма); + + Если ЗаполненаЗадача Тогда + + ТемаПисьма = "Новый вопрос к задаче #" + НомерЗадачи; + + ТекстПисьма = "К задаче #" + НомерЗадачи + " " + Автор + " задал вопрос " + КтоМожетОтветить; + ДобавитьВТекстПисьмаВопрос(ТекстПисьма); + + КонецЕсли + + ИначеЕсли ВидСобытия = Перечисления.узВидыСобытий.ИзмененОтвет Тогда + + ТемаПисьма = "Изменен ответ "; + + ТекстПисьма = "Изменен ответ "; + ДобавитьВТекстПисьмаВопрос(ТекстПисьма); + ДобавитьВТекстПисьмаОтвет(ТекстПисьма); + + Если ЗаполненаЗадача Тогда + + ТемаПисьма = "Изменен ответ по вопросу к задаче #" + НомерЗадачи; + + ТекстПисьма = "Изменен ответ по вопросу к задаче #" + НомерЗадачи; + ДобавитьВТекстПисьмаВопрос(ТекстПисьма); + ДобавитьВТекстПисьмаОтвет(ТекстПисьма); + + КонецЕсли + + ИначеЕсли ВидСобытия = Перечисления.узВидыСобытий.ЗакрытВопрос Тогда + + ТемаПисьма = "Вопрос закрыт"; + + ТекстПисьма = "Вопрос закрыт"; + ДобавитьВТекстПисьмаВопрос(ТекстПисьма); + ДобавитьВТекстПисьмаОтвет(ТекстПисьма); + + Если ЗаполненаЗадача Тогда + + ТемаПисьма = "Вопрос закрыт к задаче #" + НомерЗадачи; + ТекстПисьма = "Вопрос закрыт к задаче #" + НомерЗадачи; + + ДобавитьВТекстПисьмаВопрос(ТекстПисьма); + ДобавитьВТекстПисьмаОтвет(ТекстПисьма); + + КонецЕсли + + Иначе + ТекстОшибки = "Ошибка! нет алгоритма для " + ВидСобытия; + ВызватьИсключение ТекстОшибки; + КонецЕсли; + + ПараметрыПисьма.ТемаПисьма = ТемаПисьма; + ПараметрыПисьма.ТекстПисьма = ТекстПисьма; + ПараметрыПисьма.ВажностьЗадачи = ВажностьЗадачи; + + Возврат ПараметрыПисьма; +КонецФункции + +Процедура ДобавитьВТекстПисьмаВопрос(ТекстПисьма) + + ТекстПисьма = ТекстПисьма + Символы.ПС + "Вопрос: " + + Символы.ПС + Вопрос + Символы.ПС; + +КонецПроцедуры + +Процедура ДобавитьВТекстПисьмаОтвет(ТекстПисьма) + + ТекстПисьма = ТекстПисьма + Символы.ПС + "Ответ: " + + Символы.ПС + Ответ + Символы.ПС; + +КонецПроцедуры + diff --git a/src/cf/Enums/узВидыСобытий.xml b/src/cf/Enums/узВидыСобытий.xml index b1f7ff6db..7d07f2b80 100644 --- a/src/cf/Enums/узВидыСобытий.xml +++ b/src/cf/Enums/узВидыСобытий.xml @@ -282,6 +282,22 @@ <Comment/> </Properties> </EnumValue> + <EnumValue uuid="143f2600-1803-4f6d-a8fd-cd27d38321df"> + <Properties> + <Name>ИзмененОтвет</Name> + <Synonym> + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Изменен ответ</v8:content> + </v8:item> + <v8:item> + <v8:lang>en</v8:lang> + <v8:content>Add question</v8:content> + </v8:item> + </Synonym> + <Comment/> + </Properties> + </EnumValue> </ChildObjects> </Enum> </MetaDataObject> \ No newline at end of file diff --git a/src/cf/InformationRegisters/узАктивностиПользователей/Ext/ManagerModule.bsl b/src/cf/InformationRegisters/узАктивностиПользователей/Ext/ManagerModule.bsl index d707b10e9..3de0b71a6 100644 --- a/src/cf/InformationRegisters/узАктивностиПользователей/Ext/ManagerModule.bsl +++ b/src/cf/InformationRegisters/узАктивностиПользователей/Ext/ManagerModule.bsl @@ -132,10 +132,12 @@ ВидыСобытий_ДобавленВопрос = ПредопределенноеЗначение("Перечисление.узВидыСобытий.ДобавленВопрос"); ВидыСобытий_ЗакрытВопрос = ПредопределенноеЗначение("Перечисление.узВидыСобытий.ЗакрытВопрос"); + ВидыСобытий_ИзмененОтвет = ПредопределенноеЗначение("Перечисление.узВидыСобытий.ИзмененОтвет"); МассивВидовСобытияДляРегистрацииАктивности = Новый Массив(); МассивВидовСобытияДляРегистрацииАктивности.Добавить(ВидыСобытий_ДобавленВопрос); МассивВидовСобытияДляРегистрацииАктивности.Добавить(ВидыСобытий_ЗакрытВопрос); + МассивВидовСобытияДляРегистрацииАктивности.Добавить(ВидыСобытий_ИзмененОтвет); Для каждого СтрокаТЗСобытия из ТЗСобытия цикл пВидСобытия = СтрокаТЗСобытия.ВидСобытия; From 616cbdf5ab298ee39c668e8f4d43614cb121d9cc Mon Sep 17 00:00:00 2001 From: Anton Ivanov <iab@bk.ru> Date: Sat, 11 Jul 2020 10:34:17 +0300 Subject: [PATCH 02/13] =?UTF-8?q?#232=20@RomanUpworksTeam=20=D0=98=D0=B7?= =?UTF-8?q?=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=B8=D1=81=D0=BF?= =?UTF-8?q?=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D1=8F=20?= =?UTF-8?q?=D0=BF=D1=80=D0=BE=D0=BA=D1=81=D0=B8=20=D0=B4=D0=BB=D1=8F=20?= =?UTF-8?q?=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D1=8B=20=D1=81=20=D1=82=D0=B5?= =?UTF-8?q?=D0=BB=D0=B5=D0=B3=D1=80=D0=B0=D0=BC=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../узРаботаСТелеграм/Ext/ObjectModule.bsl | 57 ++++++++++++++----- 1 file changed, 43 insertions(+), 14 deletions(-) diff --git a/src/cf/DataProcessors/узРаботаСТелеграм/Ext/ObjectModule.bsl b/src/cf/DataProcessors/узРаботаСТелеграм/Ext/ObjectModule.bsl index 861cdfbef..a2a3d262f 100644 --- a/src/cf/DataProcessors/узРаботаСТелеграм/Ext/ObjectModule.bsl +++ b/src/cf/DataProcessors/узРаботаСТелеграм/Ext/ObjectModule.bsl @@ -18,9 +18,11 @@ пМассивНастроекПроксиСерверов = РегистрыСведений.узПроксиСерверы.ПолучитьМассивНастроекПроксиСерверов(); пМассивНастроекПроксиСерверовКоличество = пМассивНастроекПроксиСерверов.Количество(); - Если пМассивНастроекПроксиСерверовКоличество = 0 Тогда - пВсеНастройкиПолучены = Ложь; - КонецЕсли; + // + #232 Ruflex @RomanUpworksTeam + //Если пМассивНастроекПроксиСерверовКоличество = 0 Тогда + // пВсеНастройкиПолучены = Ложь; + //КонецЕсли; + // - #232 Ruflex @RomanUpworksTeam пНастройкиДляРаботыСТелеграм.Вставить("ТокенТелеграмБота", пТокенТелеграмБота); пНастройкиДляРаботыСТелеграм.Вставить("МассивНастроекПроксиСерверов", пМассивНастроекПроксиСерверов); @@ -265,16 +267,32 @@ Процедура ВыполнитьЗапросHTTP_Telegram(Ответ, ЗапросHTTP, МассивНастроекПроксиСерверов, НомерТекущейНастройкиПрокси, ВОтветОжидаемJSON = Ложь) Ответ = Неопределено; - Если НомерТекущейНастройкиПрокси >= МассивНастроекПроксиСерверов.Количество() Тогда - Возврат; + + // + #232 Ruflex @RomanUpworksTeam + ///+Ruflex + ///-Ruflex + //Если (НомерТекущейНастройкиПрокси >= МассивНастроекПроксиСерверов.Количество()) ) Тогда + // Возврат; + //КонецЕсли; + + Если (МассивНастроекПроксиСерверов.Количество()>0) Тогда + + Если (НомерТекущейНастройкиПрокси >= МассивНастроекПроксиСерверов.Количество()) Тогда + Возврат; + КонецЕсли; + + НастройкиПрокси = МассивНастроекПроксиСерверов[НомерТекущейНастройкиПрокси]; + ИнтернетПрокси = Новый ИнтернетПрокси(Ложь); + ИнтернетПрокси.Установить("https",НастройкиПрокси.Адрес,НастройкиПрокси.Порт,НастройкиПрокси.Логин,НастройкиПрокси.Пароль,Ложь); + Соединение = Новый HTTPСоединение("api.telegram.org", 443,,,ИнтернетПрокси,,Новый ЗащищенноеСоединениеOpenSSL()); + + Иначе + + Соединение = Новый HTTPСоединение("api.telegram.org", 443,,,,,Новый ЗащищенноеСоединениеOpenSSL()); + КонецЕсли; - - НастройкиПрокси = МассивНастроекПроксиСерверов[НомерТекущейНастройкиПрокси]; - ИнтернетПрокси = Новый ИнтернетПрокси(Ложь); - ИнтернетПрокси.Установить("https",НастройкиПрокси.Адрес,НастройкиПрокси.Порт,НастройкиПрокси.Логин,НастройкиПрокси.Пароль,Ложь); + // + #232 Ruflex @RomanUpworksTeam - Соединение = Новый HTTPСоединение("api.telegram.org", 443,,,ИнтернетПрокси,,Новый ЗащищенноеСоединениеOpenSSL()); - Попытка Ответ = Соединение.ОтправитьДляОбработки(ЗапросHTTP); @@ -305,9 +323,20 @@ КонецЕсли; Исключение - НомерТекущейНастройкиПрокси = НомерТекущейНастройкиПрокси + 1; - РегистрыСведений.узПроксиСерверы.ИзменитьОценкуРаботоспособностиПроксиСервера(НастройкиПрокси.Адрес, НастройкиПрокси.Порт, -1); - ВыполнитьЗапросHTTP_Telegram(Ответ, ЗапросHTTP, МассивНастроекПроксиСерверов, НомерТекущейНастройкиПрокси, ВОтветОжидаемJSON); + + // + #232 Ruflex @RomanUpworksTeam + //НомерТекущейНастройкиПрокси = НомерТекущейНастройкиПрокси + 1; + //РегистрыСведений.узПроксиСерверы.ИзменитьОценкуРаботоспособностиПроксиСервера(НастройкиПрокси.Адрес, НастройкиПрокси.Порт, -1); + //ВыполнитьЗапросHTTP_Telegram(Ответ, ЗапросHTTP, МассивНастроекПроксиСерверов, НомерТекущейНастройкиПрокси, ВОтветОжидаемJSON); + + Если (МассивНастроекПроксиСерверов.Количество()>0) Тогда + + НомерТекущейНастройкиПрокси = НомерТекущейНастройкиПрокси + 1; + РегистрыСведений.узПроксиСерверы.ИзменитьОценкуРаботоспособностиПроксиСервера(НастройкиПрокси.Адрес, НастройкиПрокси.Порт, -1); + ВыполнитьЗапросHTTP_Telegram(Ответ, ЗапросHTTP, МассивНастроекПроксиСерверов, НомерТекущейНастройкиПрокси, ВОтветОжидаемJSON); + + Конецесли; + // - #232 Ruflex @RomanUpworksTeam КонецПопытки КонецПроцедуры From c4be6b31f6eb84513402ccc1f15d4d6ef58767e6 Mon Sep 17 00:00:00 2001 From: Anton Ivanov <iab@bk.ru> Date: Sat, 11 Jul 2020 12:25:43 +0300 Subject: [PATCH 03/13] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D0=BB=20=D1=82=D0=B0=D0=B9=D0=BC=D0=B0=D1=83=D1=82=20=D0=BF?= =?UTF-8?q?=D1=80=D0=B8=20=D0=B2=D1=8B=D0=B7=D0=BE=D0=B2=D0=B5=20HTTP?= =?UTF-8?q?=D0=A1=D0=BE=D0=B5=D0=B4=D0=B8=D0=BD=D0=B5=D0=BD=D0=B8=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/cf/DataProcessors/узРаботаСТелеграм/Ext/ObjectModule.bsl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/cf/DataProcessors/узРаботаСТелеграм/Ext/ObjectModule.bsl b/src/cf/DataProcessors/узРаботаСТелеграм/Ext/ObjectModule.bsl index a2a3d262f..1bb99c4f7 100644 --- a/src/cf/DataProcessors/узРаботаСТелеграм/Ext/ObjectModule.bsl +++ b/src/cf/DataProcessors/узРаботаСТелеграм/Ext/ObjectModule.bsl @@ -284,11 +284,11 @@ НастройкиПрокси = МассивНастроекПроксиСерверов[НомерТекущейНастройкиПрокси]; ИнтернетПрокси = Новый ИнтернетПрокси(Ложь); ИнтернетПрокси.Установить("https",НастройкиПрокси.Адрес,НастройкиПрокси.Порт,НастройкиПрокси.Логин,НастройкиПрокси.Пароль,Ложь); - Соединение = Новый HTTPСоединение("api.telegram.org", 443,,,ИнтернетПрокси,,Новый ЗащищенноеСоединениеOpenSSL()); + Соединение = Новый HTTPСоединение("api.telegram.org", 443,,,ИнтернетПрокси,30,Новый ЗащищенноеСоединениеOpenSSL()); Иначе - Соединение = Новый HTTPСоединение("api.telegram.org", 443,,,,,Новый ЗащищенноеСоединениеOpenSSL()); + Соединение = Новый HTTPСоединение("api.telegram.org", 443,,,,30,Новый ЗащищенноеСоединениеOpenSSL()); КонецЕсли; // + #232 Ruflex @RomanUpworksTeam From ea001a5439be1f74e6aa9f706321b74375f6d8d4 Mon Sep 17 00:00:00 2001 From: Anton Ivanov <iab@bk.ru> Date: Sat, 11 Jul 2020 12:31:38 +0300 Subject: [PATCH 04/13] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BE?= =?UTF-8?q?=D0=BA=20=D1=84=D1=83=D0=BD=D0=BA=D1=86=D0=B8=D1=8F=20=D0=B4?= =?UTF-8?q?=D0=BE=D0=BB=D0=B6=D0=BD=D0=B0=20=D1=81=D0=BE=D0=B4=D0=B5=D1=80?= =?UTF-8?q?=D0=B6=D0=B0=D1=82=D1=8C=20=D0=92=D0=BE=D0=B7=D0=B2=D1=80=D0=B0?= =?UTF-8?q?=D1=82=20=D0=BF=D1=80=D0=BE=D0=B2=D0=B5=D1=80=D0=BA=D0=B0=20?= =?UTF-8?q?=D0=BF=D0=BE=20Sonar?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../узКонстанты/Ext/ManagerModule.bsl | 4 +- .../Forms/ФормаЭлемента/Ext/Form/Module.bsl | 40 - .../узОбщийМодульКлиент/Ext/Module.bsl | 9 +- .../Ext/ObjectModule.bsl | 2 + .../Forms/Удалить_Форма/Ext/Form/Module.bsl | 1254 ++++++++--------- .../Forms/ФормаДинамическая/Ext/Form/Module.bsl | 48 +- .../Ext/ObjectModule.bsl | 4 +- 7 files changed, 636 insertions(+), 725 deletions(-) diff --git a/src/cf/Catalogs/узКонстанты/Ext/ManagerModule.bsl b/src/cf/Catalogs/узКонстанты/Ext/ManagerModule.bsl index 806136bb0..f27366d20 100644 --- a/src/cf/Catalogs/узКонстанты/Ext/ManagerModule.bsl +++ b/src/cf/Catalogs/узКонстанты/Ext/ManagerModule.bsl @@ -86,11 +86,11 @@ Возврат мЗначениеКонстанты; КонецФункции //ПолучитьЗначениеКонстанты(ИмяКонстанты,ТипКонстанты) -Функция УстановитьЗначениеКонстанты(ИмяКонстанты,ЗначениеКонстанты) Экспорт +Процедура УстановитьЗначениеКонстанты(ИмяКонстанты,ЗначениеКонстанты) Экспорт пКонстанта = ПредопределенноеЗначение("Справочник.узКонстанты."+ИмяКонстанты); пКонстантаОбъект = пКонстанта.ПолучитьОбъект(); пКонстантаОбъект.Значение = ЗначениеКонстанты; пКонстантаОбъект.Записать(); -КонецФункции \ No newline at end of file +КонецПроцедуры \ 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 9cc0b4a69..8ca101902 100644 --- a/src/cf/Catalogs/узКонфигурации/Forms/ФормаЭлемента/Ext/Form/Module.bsl +++ b/src/cf/Catalogs/узКонфигурации/Forms/ФормаЭлемента/Ext/Form/Module.bsl @@ -160,46 +160,6 @@ ДиалогВыбораФайла.Показать (Оповещение); КонецПроцедуры -&НаКлиенте -Процедура КомандаСоздатьVBSФайлДляПланировщикаЗаданий(Команда) - //Если НЕ ЗначениеЗаполнено(Объект.КаталогДляЗагрузкиИзмененийИзХранилща) Тогда - // Сообщение = Новый СообщениеПользователю; - // Сообщение.Текст = "Ошибка! Необходимо заполнить реквизит КаталогДляЗагрузкиИзмененийИзХранилща"; - // Сообщение.Поле = "Объект.КаталогДляЗагрузкиИзмененийИзХранилща"; - // Сообщение.Сообщить(); - // Возврат; - //Конецесли; - //Если Объект.Ссылка.Пустая() Тогда - // Сообщение = Новый СообщениеПользователю; - // Сообщение.Текст = "Ошибка! необходиом сначала записать элемент"; - // Сообщение.Сообщить(); - // Возврат; - //Конецесли; - // - //ТекстКоманды = ПолучитьТекстКомандыНаСервере(); - //VBSФайл = Новый ТекстовыйДокумент(); - //VBSФайл.УстановитьТекст( - //" - //|Set WshShell = CreateObject(""WScript.Shell"") - //| - //|TekDate = date - //|TekTime = Time - //|FileName = ""StorageHistory_"" & Replace(TekDate,""."","""") & ""_"" & Replace(TekTime,"":"","""") & "".mxl"" - // | - //|WshShell.Run """ + ТекстКоманды + ",0,0 - //|"); - //ИмяСкриптФайла = Объект.КаталогДляЗагрузкиИзмененийИзХранилща + "DumpStorage.vbs"; - //VBSФайл.Записать(ИмяСкриптФайла,КодировкаТекста.ANSI); -КонецПроцедуры - -&НаСервере -Функция ПолучитьТекстКомандыНаСервере() - //ОбрОбъект = Обработки.узЗагрузкаИзмененийИзХранилища.Создать(); - //ОбрОбъект.Конфигурация = Объект.Ссылка; - //ФайлВыгрузкиИзменений = ""+Объект.КаталогДляЗагрузкиИзмененийИзХранилща + "\"" & FileName &"; - //РезультатФункции = ОбрОбъект.ПолучитьНастройкиЗапускаКонфигуратора(ФайлВыгрузкиИзменений); - //Возврат РезультатФункции.ТекстКоманды; -КонецФункции &НаКлиенте Процедура ИспользоватьАльтернативнуюЗагрузкуДанныхИзХранилищаПриИзменении(Элемент) diff --git a/src/cf/CommonModules/узОбщийМодульКлиент/Ext/Module.bsl b/src/cf/CommonModules/узОбщийМодульКлиент/Ext/Module.bsl index 207a23249..8219355a4 100644 --- a/src/cf/CommonModules/узОбщийМодульКлиент/Ext/Module.bsl +++ b/src/cf/CommonModules/узОбщийМодульКлиент/Ext/Module.bsl @@ -1,11 +1,4 @@ -Функция Удалить_ПолучитьТекстHTMLMarkdown(ТекстСодержания) Экспорт - - //РезультатФункции = узОбщийМодульСервер.ПолучитьМакетыMardown(ТекстСодержания); - // - //ТекстHTMLМакет = РезультатФункции.ТекстHTMLМакет; - //Возврат ТекстHTMLМакет; -КонецФункции - + Функция УстановитьТекстВБуферОбмена(ТекстДляКопирования) Экспорт пОбъект = Новый COMОбъект("htmlfile"); пОбъект.ParentWindow.ClipboardData.Setdata("Text", ТекстДляКопирования); diff --git a/src/cf/DataProcessors/узЗагрузкаИзмененийИзХранилища/Ext/ObjectModule.bsl b/src/cf/DataProcessors/узЗагрузкаИзмененийИзХранилища/Ext/ObjectModule.bsl index 58af70913..331bfc283 100644 --- a/src/cf/DataProcessors/узЗагрузкаИзмененийИзХранилища/Ext/ObjectModule.bsl +++ b/src/cf/DataProcessors/узЗагрузкаИзмененийИзХранилища/Ext/ObjectModule.bsl @@ -750,6 +750,8 @@ НастройкиЗапускаКонфигуратора = ПолучитьНастройкиЗапускаКонфигуратора(); ТекстКоманды = НастройкиЗапускаКонфигуратора.ТекстКоманды; Сообщить(ТекстКоманды); + + Возврат ТекстКоманды; Конецфункции diff --git a/src/cf/DataProcessors/узКанбанДоска/Forms/Удалить_Форма/Ext/Form/Module.bsl b/src/cf/DataProcessors/узКанбанДоска/Forms/Удалить_Форма/Ext/Form/Module.bsl index 5b61ce4d4..8397fa4e8 100644 --- a/src/cf/DataProcessors/узКанбанДоска/Forms/Удалить_Форма/Ext/Form/Module.bsl +++ b/src/cf/DataProcessors/узКанбанДоска/Forms/Удалить_Форма/Ext/Form/Module.bsl @@ -1,679 +1,679 @@ -&НаКлиенте -Процедура ТЧЗадачиПередНачаломИзменения(Элемент, Отказ) - Отказ = Ложь; - //ПоказатьЗначение(,Элемент.ТекущиеДанные.Задача); - ////Элемент.ЗакончитьРедактированиеСтроки(Истина); - //Элементы.ТЧЗадачиЗарегистрирована.ЗакончитьРедактированиеСтроки(Ложь); -КонецПроцедуры +//&НаКлиенте +//Процедура ТЧЗадачиПередНачаломИзменения(Элемент, Отказ) +// Отказ = Ложь; +// //ПоказатьЗначение(,Элемент.ТекущиеДанные.Задача); +// ////Элемент.ЗакончитьРедактированиеСтроки(Истина); +// //Элементы.ТЧЗадачиЗарегистрирована.ЗакончитьРедактированиеСтроки(Ложь); +//КонецПроцедуры -&НаСервере -Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) - // + Иванов А.Б. 2020-06-28 - ////{Код для декомпиляции управляемой формы - //Если ЭтаФорма.Параметры.Свойство("ДекомпиляцияЭлементов") Тогда - // ВнешниеОбработки.Создать(ЭтаФорма.Параметры.ДекомпиляцияЭлементов.ИмяПодключеннойОбработки,Ложь).ОпределитьВнутренниеСвойстваЭлементов(ЭтаФорма); - //КонецЕсли; - ////}Код для декомпиляции управляемой формы - // - Иванов А.Б. 2020-06-28 - - пНастройкиКомпоновщика = Неопределено; - - ЗагрузитьСохраненныеНастройки(пНастройкиКомпоновщика); - - НастройкиТЧДляАктивацииПервойСтроки = Новый Структура(); - - ОпределитьОтборНаСервере(пНастройкиКомпоновщика); - Попытка - ЗаполнитьЗадачиНаСервере(); - Исключение - УстановитьСтандартныеНастройкиНаСервере(); - ЗаполнитьЗадачиНаСервере(); - КонецПопытки; - - УстановитьВидимостьДоступность(); - УстановитьОтборТЧ(); - - ОформлениеЦветаЗадачНаСервере(); - -КонецПроцедуры +//&НаСервере +//Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) +// // + Иванов А.Б. 2020-06-28 +// ////{Код для декомпиляции управляемой формы +// //Если ЭтаФорма.Параметры.Свойство("ДекомпиляцияЭлементов") Тогда +// // ВнешниеОбработки.Создать(ЭтаФорма.Параметры.ДекомпиляцияЭлементов.ИмяПодключеннойОбработки,Ложь).ОпределитьВнутренниеСвойстваЭлементов(ЭтаФорма); +// //КонецЕсли; +// ////}Код для декомпиляции управляемой формы +// // - Иванов А.Б. 2020-06-28 +// +// пНастройкиКомпоновщика = Неопределено; +// +// ЗагрузитьСохраненныеНастройки(пНастройкиКомпоновщика); +// +// НастройкиТЧДляАктивацииПервойСтроки = Новый Структура(); +// +// ОпределитьОтборНаСервере(пНастройкиКомпоновщика); +// Попытка +// ЗаполнитьЗадачиНаСервере(); +// Исключение +// УстановитьСтандартныеНастройкиНаСервере(); +// ЗаполнитьЗадачиНаСервере(); +// КонецПопытки; +// +// УстановитьВидимостьДоступность(); +// УстановитьОтборТЧ(); +// +// ОформлениеЦветаЗадачНаСервере(); +// +//КонецПроцедуры -&НаСервере -Процедура ЗагрузитьСохраненныеНастройки(пНастройкиКомпоновщика) - КлючНастроек = ПолучитьКлючНастроек(); - СохраненныеНастройки = ХранилищеОбщихНастроек.Загрузить(КлючНастроек,КлючНастроек); - - Если СохраненныеНастройки <> Неопределено Тогда - //ЗаполнитьТЧНастройкиКолонокНаСервере(); - Если СохраненныеНастройки.Свойство("ТЧНастройкиКолонок") Тогда - ЗаполнитьТЧНастройкиКолонокНаСервере(); - ТЧНастройкиКолонок = СохраненныеНастройки.ТЧНастройкиКолонок; - Для каждого СтрокаТЧНастройкиКолонок из Объект.ТЧНастройкиКолонок цикл - ПараметрыОтбора=Новый Структура(); - ПараметрыОтбора.Вставить("Статус",СтрокаТЧНастройкиКолонок.Статус); - НайденныеСтрокиСохраненныеНастройки = ТЧНастройкиКолонок.НайтиСтроки(ПараметрыОтбора); - Для каждого СтрокаНайденныеСтроки из НайденныеСтрокиСохраненныеНастройки цикл - СтрокаТЧНастройкиКолонок.Видимость = СтрокаНайденныеСтроки.Видимость; - Конеццикла; - Конеццикла; - Иначе - ЗаполнитьТЧНастройкиКолонокНаСервере(); - Конецесли; - Если СохраненныеНастройки.Свойство("НастройкиКомпоновщикаХранилище") Тогда - пНастройкиКомпоновщика = СохраненныеНастройки.НастройкиКомпоновщикаХранилище.Получить(); - Конецесли; - Иначе - ЗаполнитьТЧНастройкиКолонокНаСервере(); - Конецесли; -КонецПроцедуры +//&НаСервере +//Процедура ЗагрузитьСохраненныеНастройки(пНастройкиКомпоновщика) +// КлючНастроек = ПолучитьКлючНастроек(); +// СохраненныеНастройки = ХранилищеОбщихНастроек.Загрузить(КлючНастроек,КлючНастроек); +// +// Если СохраненныеНастройки <> Неопределено Тогда +// //ЗаполнитьТЧНастройкиКолонокНаСервере(); +// Если СохраненныеНастройки.Свойство("ТЧНастройкиКолонок") Тогда +// ЗаполнитьТЧНастройкиКолонокНаСервере(); +// ТЧНастройкиКолонок = СохраненныеНастройки.ТЧНастройкиКолонок; +// Для каждого СтрокаТЧНастройкиКолонок из Объект.ТЧНастройкиКолонок цикл +// ПараметрыОтбора=Новый Структура(); +// ПараметрыОтбора.Вставить("Статус",СтрокаТЧНастройкиКолонок.Статус); +// НайденныеСтрокиСохраненныеНастройки = ТЧНастройкиКолонок.НайтиСтроки(ПараметрыОтбора); +// Для каждого СтрокаНайденныеСтроки из НайденныеСтрокиСохраненныеНастройки цикл +// СтрокаТЧНастройкиКолонок.Видимость = СтрокаНайденныеСтроки.Видимость; +// Конеццикла; +// Конеццикла; +// Иначе +// ЗаполнитьТЧНастройкиКолонокНаСервере(); +// Конецесли; +// Если СохраненныеНастройки.Свойство("НастройкиКомпоновщикаХранилище") Тогда +// пНастройкиКомпоновщика = СохраненныеНастройки.НастройкиКомпоновщикаХранилище.Получить(); +// Конецесли; +// Иначе +// ЗаполнитьТЧНастройкиКолонокНаСервере(); +// Конецесли; +//КонецПроцедуры -&НаСервере -Функция ПолучитьКлючНастроек() - КлючНастроек = "Обработка.узКанбанДоска"; - Возврат КлючНастроек; -КонецФункции +//&НаСервере +//Функция ПолучитьКлючНастроек() +// КлючНастроек = "Обработка.узКанбанДоска"; +// Возврат КлючНастроек; +//КонецФункции -&НаСервере -Процедура ЗаполнитьТЧНастройкиКолонокНаСервере() - пОбъект = РеквизитФормыВЗначение("Объект"); - пОбъект.ЗаполнитьТЧНастройкиКолонок(); - ЗначениеВРеквизитФормы(пОбъект,"Объект"); -КонецПроцедуры +//&НаСервере +//Процедура ЗаполнитьТЧНастройкиКолонокНаСервере() +// пОбъект = РеквизитФормыВЗначение("Объект"); +// пОбъект.ЗаполнитьТЧНастройкиКолонок(); +// ЗначениеВРеквизитФормы(пОбъект,"Объект"); +//КонецПроцедуры -&НаСервере -Процедура УстановитьОтборТЧ() - - Элементы.ТЧЗадачиОтменена.ОтборСтрок = Новый ФиксированнаяСтруктура("Статус", ПредопределенноеЗначение("Справочник.узСтатусыЗадачи.Отменена")); - Элементы.ТЧЗадачиBacklog.ОтборСтрок = Новый ФиксированнаяСтруктура("Статус", ПредопределенноеЗначение("Справочник.узСтатусыЗадачи.Backlog")); - Элементы.ТЧЗадачиЗарегистрирована.ОтборСтрок = Новый ФиксированнаяСтруктура("Статус", ПредопределенноеЗначение("Справочник.узСтатусыЗадачи.Зарегистрирована")); - Элементы.ТЧЗадачиВПроцессеВыполнения.ОтборСтрок = Новый ФиксированнаяСтруктура("Статус", ПредопределенноеЗначение("Справочник.узСтатусыЗадачи.ВПроцессеВыполнения")); - Элементы.ТЧЗадачиОжидаетОтвета.ОтборСтрок = Новый ФиксированнаяСтруктура("Статус", ПредопределенноеЗначение("Справочник.узСтатусыЗадачи.ОжидаетОтвета")); - Элементы.ТЧЗадачиНаТестированииПоказПользователям.ОтборСтрок = Новый ФиксированнаяСтруктура("Статус", ПредопределенноеЗначение("Справочник.узСтатусыЗадачи.НаТестированииПоказПользователям")); - Элементы.ТЧЗадачиЗапросНаДобавление.ОтборСтрок = Новый ФиксированнаяСтруктура("Статус", ПредопределенноеЗначение("Справочник.узСтатусыЗадачи.ЗапросНаДобавление")); - Элементы.ТЧЗадачиКПереносуВРабочую.ОтборСтрок = Новый ФиксированнаяСтруктура("Статус", ПредопределенноеЗначение("Справочник.узСтатусыЗадачи.КПереносуВРабочую")); - Элементы.ТЧЗадачиОтложена.ОтборСтрок = Новый ФиксированнаяСтруктура("Статус", ПредопределенноеЗначение("Справочник.узСтатусыЗадачи.Отложена")); - Элементы.ТЧЗадачиГотово.ОтборСтрок = Новый ФиксированнаяСтруктура("Статус", ПредопределенноеЗначение("Справочник.узСтатусыЗадачи.Готово")); - Элементы.ТЧЗадачиАрхив.ОтборСтрок = Новый ФиксированнаяСтруктура("Статус", ПредопределенноеЗначение("Справочник.узСтатусыЗадачи.Архив")); +//&НаСервере +//Процедура УстановитьОтборТЧ() +// +// Элементы.ТЧЗадачиОтменена.ОтборСтрок = Новый ФиксированнаяСтруктура("Статус", ПредопределенноеЗначение("Справочник.узСтатусыЗадачи.Отменена")); +// Элементы.ТЧЗадачиBacklog.ОтборСтрок = Новый ФиксированнаяСтруктура("Статус", ПредопределенноеЗначение("Справочник.узСтатусыЗадачи.Backlog")); +// Элементы.ТЧЗадачиЗарегистрирована.ОтборСтрок = Новый ФиксированнаяСтруктура("Статус", ПредопределенноеЗначение("Справочник.узСтатусыЗадачи.Зарегистрирована")); +// Элементы.ТЧЗадачиВПроцессеВыполнения.ОтборСтрок = Новый ФиксированнаяСтруктура("Статус", ПредопределенноеЗначение("Справочник.узСтатусыЗадачи.ВПроцессеВыполнения")); +// Элементы.ТЧЗадачиОжидаетОтвета.ОтборСтрок = Новый ФиксированнаяСтруктура("Статус", ПредопределенноеЗначение("Справочник.узСтатусыЗадачи.ОжидаетОтвета")); +// Элементы.ТЧЗадачиНаТестированииПоказПользователям.ОтборСтрок = Новый ФиксированнаяСтруктура("Статус", ПредопределенноеЗначение("Справочник.узСтатусыЗадачи.НаТестированииПоказПользователям")); +// Элементы.ТЧЗадачиЗапросНаДобавление.ОтборСтрок = Новый ФиксированнаяСтруктура("Статус", ПредопределенноеЗначение("Справочник.узСтатусыЗадачи.ЗапросНаДобавление")); +// Элементы.ТЧЗадачиКПереносуВРабочую.ОтборСтрок = Новый ФиксированнаяСтруктура("Статус", ПредопределенноеЗначение("Справочник.узСтатусыЗадачи.КПереносуВРабочую")); +// Элементы.ТЧЗадачиОтложена.ОтборСтрок = Новый ФиксированнаяСтруктура("Статус", ПредопределенноеЗначение("Справочник.узСтатусыЗадачи.Отложена")); +// Элементы.ТЧЗадачиГотово.ОтборСтрок = Новый ФиксированнаяСтруктура("Статус", ПредопределенноеЗначение("Справочник.узСтатусыЗадачи.Готово")); +// Элементы.ТЧЗадачиАрхив.ОтборСтрок = Новый ФиксированнаяСтруктура("Статус", ПредопределенноеЗначение("Справочник.узСтатусыЗадачи.Архив")); -КонецПроцедуры +//КонецПроцедуры -&НаСервере -Процедура УстановитьВидимостьДоступность() - Для каждого СтрокаТЧНастройкиКолонок из Объект.ТЧНастройкиКолонок цикл - ИмяГруппы = "Группа"+СтрокаТЧНастройкиКолонок.ИмяПредопределенныхДанных; - Элементы[ИмяГруппы].Видимость = СтрокаТЧНастройкиКолонок.Видимость; - Конеццикла; -КонецПроцедуры +//&НаСервере +//Процедура УстановитьВидимостьДоступность() +// Для каждого СтрокаТЧНастройкиКолонок из Объект.ТЧНастройкиКолонок цикл +// ИмяГруппы = "Группа"+СтрокаТЧНастройкиКолонок.ИмяПредопределенныхДанных; +// Элементы[ИмяГруппы].Видимость = СтрокаТЧНастройкиКолонок.Видимость; +// Конеццикла; +//КонецПроцедуры -&НаСервере -Процедура ЗаполнитьЗадачиНаСервере() - Объект.АдресВременногоХранилища = ПоместитьВоВременноеХранилище(КомпоновщикНастроекКомпоновкиДанных.Настройки,Новый УникальныйИдентификатор()); - - пОбъект = РеквизитФормыВЗначение("Объект"); - пОбъект.ЗаполнитьЗадачи(); - ЗначениеВРеквизитФормы(пОбъект,"Объект"); -КонецПроцедуры +//&НаСервере +//Процедура ЗаполнитьЗадачиНаСервере() +// Объект.АдресВременногоХранилища = ПоместитьВоВременноеХранилище(КомпоновщикНастроекКомпоновкиДанных.Настройки,Новый УникальныйИдентификатор()); +// +// пОбъект = РеквизитФормыВЗначение("Объект"); +// пОбъект.ЗаполнитьЗадачи(); +// ЗначениеВРеквизитФормы(пОбъект,"Объект"); +//КонецПроцедуры -&НаКлиенте -Процедура ТЧЗадачиПеретаскивание(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка, Строка, Поле) - СменитьСтатусЗадачиНаКлиенте(Элемент,ПараметрыПеретаскивания); - ОформлениеЦветаЗадачНаСервере(); -КонецПроцедуры +//&НаКлиенте +//Процедура ТЧЗадачиПеретаскивание(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка, Строка, Поле) +// СменитьСтатусЗадачиНаКлиенте(Элемент,ПараметрыПеретаскивания); +// ОформлениеЦветаЗадачНаСервере(); +//КонецПроцедуры -&НаКлиенте -Процедура СменитьСтатусЗадачиНаКлиенте(Элемент,ПараметрыПеретаскивания) - //ИмяТЧ = Элемент.Имя; - //пОтборСтрок = Элементы[ИмяТЧ].ОтборСтрок; - НовыйСтатус = Элемент.ОтборСтрок.Статус; - ДанныеИсточник = ПараметрыПеретаскивания.Значение; - - МассивЗадач = Новый Массив(); - Для каждого ДанныеИсточник из ПараметрыПеретаскивания.Значение цикл - ЗадачаСсылка = ДанныеИсточник.Задача; - МассивЗадач.Добавить(ЗадачаСсылка); - Конеццикла; - - ДопПараметры = Новый Структура(); - ДопПараметры.Вставить("НовыйСтатус",НовыйСтатус); - ДопПараметры.Вставить("МассивЗадач",МассивЗадач); - СменитьСтатусЗадачиНаСервере(ДопПараметры); -КонецПроцедуры +//&НаКлиенте +//Процедура СменитьСтатусЗадачиНаКлиенте(Элемент,ПараметрыПеретаскивания) +// //ИмяТЧ = Элемент.Имя; +// //пОтборСтрок = Элементы[ИмяТЧ].ОтборСтрок; +// НовыйСтатус = Элемент.ОтборСтрок.Статус; +// ДанныеИсточник = ПараметрыПеретаскивания.Значение; +// +// МассивЗадач = Новый Массив(); +// Для каждого ДанныеИсточник из ПараметрыПеретаскивания.Значение цикл +// ЗадачаСсылка = ДанныеИсточник.Задача; +// МассивЗадач.Добавить(ЗадачаСсылка); +// Конеццикла; +// +// ДопПараметры = Новый Структура(); +// ДопПараметры.Вставить("НовыйСтатус",НовыйСтатус); +// ДопПараметры.Вставить("МассивЗадач",МассивЗадач); +// СменитьСтатусЗадачиНаСервере(ДопПараметры); +//КонецПроцедуры -&НаСервере -Процедура СменитьСтатусЗадачиНаСервере(ДопПараметры) - пОбъект = РеквизитФормыВЗначение("Объект"); - пОбъект.СменитьСтатусЗадачи(ДопПараметры); - ЗначениеВРеквизитФормы(пОбъект,"Объект"); -КонецПроцедуры +//&НаСервере +//Процедура СменитьСтатусЗадачиНаСервере(ДопПараметры) +// пОбъект = РеквизитФормыВЗначение("Объект"); +// пОбъект.СменитьСтатусЗадачи(ДопПараметры); +// ЗначениеВРеквизитФормы(пОбъект,"Объект"); +//КонецПроцедуры -&НаКлиенте -Процедура ТЧЗадачиПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа, Параметр) - Отказ = Истина; - ДобавитьНовуюЗадачу(Элемент); -КонецПроцедуры +//&НаКлиенте +//Процедура ТЧЗадачиПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа, Параметр) +// Отказ = Истина; +// ДобавитьНовуюЗадачу(Элемент); +//КонецПроцедуры -&НаКлиенте -Процедура ДобавитьНовуюЗадачу(Элемент) - пСтатус = Элемент.ОтборСтрок.Статус; - ПараметрыНовойЗадачи = Новый Структура(); - ПараметрыНовойЗадачи.Вставить("Статус",пСтатус); - ЭлементыОтбора = КомпоновщикНастроекКомпоновкиДанных.Настройки.Отбор.Элементы; - Для каждого ЭлементОтбора из ЭлементыОтбора цикл - Если НЕ ЭлементОтбора.Использование Тогда - Продолжить; - Конецесли; - Если ЭлементОтбора.ВидСравнения <> ВидСравненияКомпоновкиДанных.Равно Тогда - Продолжить; - Конецесли; - Если СтрНайти(ЭлементОтбора.ЛевоеЗначение,".") > 0 Тогда - Продолжить; - Конецесли; - Если ТипЗнч(ЭлементОтбора) = Тип("ЭлементОтбораКомпоновкиДанных") Тогда - ПараметрыНовойЗадачи.Вставить("" + ЭлементОтбора.ЛевоеЗначение,ЭлементОтбора.ПравоеЗначение); - Конецесли; - Конеццикла; - ДопПараметры = Новый Структура(); - ДопПараметры.Вставить("ТребоватьЗаполнитьРодителя",Истина); - ДопПараметры.Вставить("ПараметрыНовойЗадачи",ПараметрыНовойЗадачи); - ОткрытьФорму("Справочник.узЗадачи.Форма.ФормаЭлемента",ДопПараметры); -КонецПроцедуры +//&НаКлиенте +//Процедура ДобавитьНовуюЗадачу(Элемент) +// пСтатус = Элемент.ОтборСтрок.Статус; +// ПараметрыНовойЗадачи = Новый Структура(); +// ПараметрыНовойЗадачи.Вставить("Статус",пСтатус); +// ЭлементыОтбора = КомпоновщикНастроекКомпоновкиДанных.Настройки.Отбор.Элементы; +// Для каждого ЭлементОтбора из ЭлементыОтбора цикл +// Если НЕ ЭлементОтбора.Использование Тогда +// Продолжить; +// Конецесли; +// Если ЭлементОтбора.ВидСравнения <> ВидСравненияКомпоновкиДанных.Равно Тогда +// Продолжить; +// Конецесли; +// Если СтрНайти(ЭлементОтбора.ЛевоеЗначение,".") > 0 Тогда +// Продолжить; +// Конецесли; +// Если ТипЗнч(ЭлементОтбора) = Тип("ЭлементОтбораКомпоновкиДанных") Тогда +// ПараметрыНовойЗадачи.Вставить("" + ЭлементОтбора.ЛевоеЗначение,ЭлементОтбора.ПравоеЗначение); +// Конецесли; +// Конеццикла; +// ДопПараметры = Новый Структура(); +// ДопПараметры.Вставить("ТребоватьЗаполнитьРодителя",Истина); +// ДопПараметры.Вставить("ПараметрыНовойЗадачи",ПараметрыНовойЗадачи); +// ОткрытьФорму("Справочник.узЗадачи.Форма.ФормаЭлемента",ДопПараметры); +//КонецПроцедуры -&НаКлиенте -Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) - Если ИмяСобытия = "СправочникЗадачаЗаписана" - ИЛИ ИмяСобытия = "ДобавленУбранНаблюдатель" - ИЛИ ИмяСобытия = "СправочникВариантВажностиЗаписан" - ИЛИ ИмяСобытия = "СправочникСпринтЗаписан" - Тогда - ЗаполнитьЗадачиНаСервере(); - Конецесли; - - ОбновитьКанбанДоску(); -КонецПроцедуры +//&НаКлиенте +//Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) +// Если ИмяСобытия = "СправочникЗадачаЗаписана" +// ИЛИ ИмяСобытия = "ДобавленУбранНаблюдатель" +// ИЛИ ИмяСобытия = "СправочникВариантВажностиЗаписан" +// ИЛИ ИмяСобытия = "СправочникСпринтЗаписан" +// Тогда +// ЗаполнитьЗадачиНаСервере(); +// Конецесли; +// +// ОбновитьКанбанДоску(); +//КонецПроцедуры -&НаКлиенте -Процедура КомандаНастройки(Команда) - -КонецПроцедуры +//&НаКлиенте +//Процедура КомандаНастройки(Команда) +// +//КонецПроцедуры -&НаКлиенте -Процедура ПриЗакрытии() - ОтключитьОбработчикОжидания("ЗаполнитьЗадачиНаКлиенте"); - ПриЗакрытииНаСервере(); -КонецПроцедуры +//&НаКлиенте +//Процедура ПриЗакрытии() +// ОтключитьОбработчикОжидания("ЗаполнитьЗадачиНаКлиенте"); +// ПриЗакрытииНаСервере(); +//КонецПроцедуры -&НаСервере -Процедура ПриЗакрытииНаСервере() - СохранитьНастройки(); -КонецПроцедуры +//&НаСервере +//Процедура ПриЗакрытииНаСервере() +// СохранитьНастройки(); +//КонецПроцедуры -&НаСервере -Процедура СохранитьНастройки() - НастройкиКомпоновщикаХранилище = Новый ХранилищеЗначения(КомпоновщикНастроекКомпоновкиДанных.Настройки); - - КлючНастроек = ПолучитьКлючНастроек(); - ДопПараметры = Новый Структура(); - ДопПараметры.Вставить("ТЧНастройкиКолонок",Объект.ТЧНастройкиКолонок.Выгрузить()); - ДопПараметры.Вставить("НастройкиКомпоновщикаХранилище",НастройкиКомпоновщикаХранилище); - - ХранилищеОбщихНастроек.Сохранить(КлючНастроек,КлючНастроек,ДопПараметры); -КонецПроцедуры +//&НаСервере +//Процедура СохранитьНастройки() +// НастройкиКомпоновщикаХранилище = Новый ХранилищеЗначения(КомпоновщикНастроекКомпоновкиДанных.Настройки); +// +// КлючНастроек = ПолучитьКлючНастроек(); +// ДопПараметры = Новый Структура(); +// ДопПараметры.Вставить("ТЧНастройкиКолонок",Объект.ТЧНастройкиКолонок.Выгрузить()); +// ДопПараметры.Вставить("НастройкиКомпоновщикаХранилище",НастройкиКомпоновщикаХранилище); +// +// ХранилищеОбщихНастроек.Сохранить(КлючНастроек,КлючНастроек,ДопПараметры); +//КонецПроцедуры -&НаКлиенте -Процедура ГруппаСтраницыПриСменеСтраницы(Элемент, ТекущаяСтраница) - ВыполнитьДействиеДляАктивнойСтраницы(); -КонецПроцедуры +//&НаКлиенте +//Процедура ГруппаСтраницыПриСменеСтраницы(Элемент, ТекущаяСтраница) +// ВыполнитьДействиеДляАктивнойСтраницы(); +//КонецПроцедуры -&НаКлиенте -Процедура ВыполнитьДействиеДляАктивнойСтраницы() - пТекущаяСтраница = Элементы.ГруппаСтраницы.ТекущаяСтраница; - Если пТекущаяСтраница = Элементы.ГруппаКанбанДоска Тогда - ОбновитьКанбанДоску(); - Конецесли; -КонецПроцедуры +//&НаКлиенте +//Процедура ВыполнитьДействиеДляАктивнойСтраницы() +// пТекущаяСтраница = Элементы.ГруппаСтраницы.ТекущаяСтраница; +// Если пТекущаяСтраница = Элементы.ГруппаКанбанДоска Тогда +// ОбновитьКанбанДоску(); +// Конецесли; +//КонецПроцедуры -&НаКлиенте -Процедура ОбновитьКанбанДоску() - Объект.АдресВременногоХранилища = ПоместитьВоВременноеХранилище(КомпоновщикНастроекКомпоновкиДанных.Настройки,Новый УникальныйИдентификатор()); - ЗаполнитьЗадачиНаСервере(); - УстановитьВидимостьДоступность(); - ОчиститьАктивизацииСтрок(); - - ОформлениеЦветаЗадачНаСервере(); -КонецПроцедуры +//&НаКлиенте +//Процедура ОбновитьКанбанДоску() +// Объект.АдресВременногоХранилища = ПоместитьВоВременноеХранилище(КомпоновщикНастроекКомпоновкиДанных.Настройки,Новый УникальныйИдентификатор()); +// ЗаполнитьЗадачиНаСервере(); +// УстановитьВидимостьДоступность(); +// ОчиститьАктивизацииСтрок(); +// +// ОформлениеЦветаЗадачНаСервере(); +//КонецПроцедуры -&НаКлиенте -Процедура ОчиститьАктивизацииСтрок(ИсключитьИмяТЧ = Неопределено) - Для каждого НастройкаАктивации из НастройкиТЧДляАктивацииПервойСтроки цикл - ИмяТЧ = НастройкаАктивации.Ключ; - Если ИмяТЧ = ИсключитьИмяТЧ Тогда - Продолжить; - Конецесли; - Элементы[ИмяТЧ].ВыделенныеСтроки.Очистить(); - Конеццикла; -КонецПроцедуры +//&НаКлиенте +//Процедура ОчиститьАктивизацииСтрок(ИсключитьИмяТЧ = Неопределено) +// Для каждого НастройкаАктивации из НастройкиТЧДляАктивацииПервойСтроки цикл +// ИмяТЧ = НастройкаАктивации.Ключ; +// Если ИмяТЧ = ИсключитьИмяТЧ Тогда +// Продолжить; +// Конецесли; +// Элементы[ИмяТЧ].ВыделенныеСтроки.Очистить(); +// Конеццикла; +//КонецПроцедуры -&НаСервере -Функция ОпределитьОтборНаСервере(пНастройкиКомпоновщика = Неопределено) Экспорт - пОбъект = РеквизитФормыВЗначение("Объект"); - МакетСКД = пОбъект.ПолучитьМакет("СхемаКомпоновкиДанных"); - - АдресВременногоХранилищаМакетаСКД = ПоместитьВоВременноеХранилище(МакетСКД,Новый УникальныйИдентификатор()); - - ИсточникНастроек = Новый ИсточникДоступныхНастроекКомпоновкиДанных(АдресВременногоХранилищаМакетаСКД); - КомпоновщикНастроекКомпоновкиДанных.Инициализировать(ИсточникНастроек); - - Если пНастройкиКомпоновщика = Неопределено Тогда - КомпоновщикНастроекКомпоновкиДанных.ЗагрузитьНастройки(МакетСКД.НастройкиПоУмолчанию); - Иначе - КомпоновщикНастроекКомпоновкиДанных.ЗагрузитьНастройки(пНастройкиКомпоновщика); - Конецесли; - //ЗначениеВРеквизитФормы(КомпоновщикНастроекКомпоновкиДанных,"КомпоновщикНастроекКомпоновкиДанных"); - //ЗначениеВРеквизитФормы(СправочникОбъект,"Объект"); -КонецФункции +//&НаСервере +//Функция ОпределитьОтборНаСервере(пНастройкиКомпоновщика = Неопределено) Экспорт +// пОбъект = РеквизитФормыВЗначение("Объект"); +// МакетСКД = пОбъект.ПолучитьМакет("СхемаКомпоновкиДанных"); +// +// АдресВременногоХранилищаМакетаСКД = ПоместитьВоВременноеХранилище(МакетСКД,Новый УникальныйИдентификатор()); +// +// ИсточникНастроек = Новый ИсточникДоступныхНастроекКомпоновкиДанных(АдресВременногоХранилищаМакетаСКД); +// КомпоновщикНастроекКомпоновкиДанных.Инициализировать(ИсточникНастроек); +// +// Если пНастройкиКомпоновщика = Неопределено Тогда +// КомпоновщикНастроекКомпоновкиДанных.ЗагрузитьНастройки(МакетСКД.НастройкиПоУмолчанию); +// Иначе +// КомпоновщикНастроекКомпоновкиДанных.ЗагрузитьНастройки(пНастройкиКомпоновщика); +// Конецесли; +// //ЗначениеВРеквизитФормы(КомпоновщикНастроекКомпоновкиДанных,"КомпоновщикНастроекКомпоновкиДанных"); +// //ЗначениеВРеквизитФормы(СправочникОбъект,"Объект"); +//КонецФункции -&НаКлиенте -Процедура ПриОткрытии(Отказ) - //Элементы.ТЧЗадачиЗарегистрирована.ТекущаяСтрока = -1; - ////Элементы.ТЧЗадачиЗарегистрирована.ТекущиеДанные = Неопределено; - //Элементы.ТЧЗадачиЗарегистрирована.ТекущийЭлемент = -1; - Элементы.ТЧЗадачиЗарегистрирована.ВыделенныеСтроки.Очистить(); - ПодключитьОбработчикОжидания("ЗаполнитьЗадачиНаКлиенте", 180); -КонецПроцедуры +//&НаКлиенте +//Процедура ПриОткрытии(Отказ) +// //Элементы.ТЧЗадачиЗарегистрирована.ТекущаяСтрока = -1; +// ////Элементы.ТЧЗадачиЗарегистрирована.ТекущиеДанные = Неопределено; +// //Элементы.ТЧЗадачиЗарегистрирована.ТекущийЭлемент = -1; +// Элементы.ТЧЗадачиЗарегистрирована.ВыделенныеСтроки.Очистить(); +// ПодключитьОбработчикОжидания("ЗаполнитьЗадачиНаКлиенте", 180); +//КонецПроцедуры -&НаСервере -Процедура УстановитьБазовоеОформлениеЗадачНаСервере() - УсловноеОформление.Элементы.Очистить(); - - ОформлениеЗадачи = УсловноеОформление.Элементы.Добавить(); - Отбор = ОформлениеЗадачи.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); - Отбор.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; - Отбор.Использование = ИСТИНА; - Отбор.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ТЧЗадачи.ВажностьЧисло"); - Отбор.ПравоеЗначение = 1; - - ЗаполнитьПоляОформленияЗадачНаСервере(ОформлениеЗадачи); - ОформлениеЗадачи.Оформление.УстановитьЗначениеПараметра("ЦветФона", Новый Цвет(255,102,102)); - - ОформлениеЗадачи = УсловноеОформление.Элементы.Добавить(); - ОтборГруппа = ОформлениеЗадачи.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных")); - ОтборГруппа.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли; - ОтборЭлементы = ОтборГруппа.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); - ОтборЭлементы.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; - ОтборЭлементы.Использование = ИСТИНА; - ОтборЭлементы.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ТЧЗадачи.ВажностьЧисло"); - ОтборЭлементы.ПравоеЗначение = 2; - - ОтборЭлементы = ОтборГруппа.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); - ОтборЭлементы.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено; - ОтборЭлементы.Использование = ИСТИНА; - ОтборЭлементы.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ТЧЗадачи.ВажностьЧисло"); - - ЗаполнитьПоляОформленияЗадачНаСервере(ОформлениеЗадачи); - ОформлениеЗадачи.Оформление.УстановитьЗначениеПараметра("ЦветФона", Новый Цвет(153,204,0)); - - ОформлениеЗадачи = УсловноеОформление.Элементы.Добавить(); - Отбор = ОформлениеЗадачи.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); - Отбор.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; - Отбор.Использование = ИСТИНА; - Отбор.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ТЧЗадачи.ВажностьЧисло"); - Отбор.ПравоеЗначение = 3; - - ЗаполнитьПоляОформленияЗадачНаСервере(ОформлениеЗадачи); - ОформлениеЗадачи.Оформление.УстановитьЗначениеПараметра("ЦветФона", Новый Цвет(207,238,0)); - -КонецПроцедуры +//&НаСервере +//Процедура УстановитьБазовоеОформлениеЗадачНаСервере() +// УсловноеОформление.Элементы.Очистить(); +// +// ОформлениеЗадачи = УсловноеОформление.Элементы.Добавить(); +// Отбор = ОформлениеЗадачи.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); +// Отбор.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; +// Отбор.Использование = ИСТИНА; +// Отбор.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ТЧЗадачи.ВажностьЧисло"); +// Отбор.ПравоеЗначение = 1; +// +// ЗаполнитьПоляОформленияЗадачНаСервере(ОформлениеЗадачи); +// ОформлениеЗадачи.Оформление.УстановитьЗначениеПараметра("ЦветФона", Новый Цвет(255,102,102)); +// +// ОформлениеЗадачи = УсловноеОформление.Элементы.Добавить(); +// ОтборГруппа = ОформлениеЗадачи.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных")); +// ОтборГруппа.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли; +// ОтборЭлементы = ОтборГруппа.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); +// ОтборЭлементы.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; +// ОтборЭлементы.Использование = ИСТИНА; +// ОтборЭлементы.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ТЧЗадачи.ВажностьЧисло"); +// ОтборЭлементы.ПравоеЗначение = 2; +// +// ОтборЭлементы = ОтборГруппа.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); +// ОтборЭлементы.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено; +// ОтборЭлементы.Использование = ИСТИНА; +// ОтборЭлементы.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ТЧЗадачи.ВажностьЧисло"); +// +// ЗаполнитьПоляОформленияЗадачНаСервере(ОформлениеЗадачи); +// ОформлениеЗадачи.Оформление.УстановитьЗначениеПараметра("ЦветФона", Новый Цвет(153,204,0)); +// +// ОформлениеЗадачи = УсловноеОформление.Элементы.Добавить(); +// Отбор = ОформлениеЗадачи.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); +// Отбор.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; +// Отбор.Использование = ИСТИНА; +// Отбор.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ТЧЗадачи.ВажностьЧисло"); +// Отбор.ПравоеЗначение = 3; +// +// ЗаполнитьПоляОформленияЗадачНаСервере(ОформлениеЗадачи); +// ОформлениеЗадачи.Оформление.УстановитьЗначениеПараметра("ЦветФона", Новый Цвет(207,238,0)); +// +//КонецПроцедуры -&НаСервере -Процедура ЗаполнитьПоляОформленияЗадачНаСервере(ОформлениеЗадачи) - Для Каждого ТекЭлементФормы Из Элементы Цикл - Если ТипЗнч(ТекЭлементФормы) = Тип("ТаблицаФормы") И ТекЭлементФормы.ПутьКДанным = "Объект.ТЧЗадачи" Тогда - ИмяТЧЗадачи = ТекЭлементФормы.Имя; - - Если ТекЭлементФормы.Имя <> ИмяТЧЗадачи Тогда - Продолжить; - КонецЕсли; - - Поля = ОформлениеЗадачи.Поля.Элементы.Добавить(); - Поля.Использование = ИСТИНА; - Поля.Поле = Новый ПолеКомпоновкиДанных(ИмяТЧЗадачи + "НомерЗадачиПредставление"); - КонецЕсли; - КонецЦикла; -КонецПроцедуры +//&НаСервере +//Процедура ЗаполнитьПоляОформленияЗадачНаСервере(ОформлениеЗадачи) +// Для Каждого ТекЭлементФормы Из Элементы Цикл +// Если ТипЗнч(ТекЭлементФормы) = Тип("ТаблицаФормы") И ТекЭлементФормы.ПутьКДанным = "Объект.ТЧЗадачи" Тогда +// ИмяТЧЗадачи = ТекЭлементФормы.Имя; +// +// Если ТекЭлементФормы.Имя <> ИмяТЧЗадачи Тогда +// Продолжить; +// КонецЕсли; +// +// Поля = ОформлениеЗадачи.Поля.Элементы.Добавить(); +// Поля.Использование = ИСТИНА; +// Поля.Поле = Новый ПолеКомпоновкиДанных(ИмяТЧЗадачи + "НомерЗадачиПредставление"); +// КонецЕсли; +// КонецЦикла; +//КонецПроцедуры -&НаСервере -Процедура ОформлениеЦветаЗадачНаСервере() - УсловноеОформление.Элементы.Очистить(); - - УстановитьБазовоеОформлениеЗадачНаСервере(); - - Для Каждого ТекЭлементФормы Из Элементы Цикл - Если ТипЗнч(ТекЭлементФормы) = Тип("ТаблицаФормы") И ТекЭлементФормы.ПутьКДанным = "Объект.ТЧЗадачи" Тогда - Для Каждого СтрокаЗадача Из Объект.ТЧЗадачи Цикл - ТекЗадача = СтрокаЗадача.Задача; - - ИмяТЧЗадачи = "ТЧЗадачи" + СтрокаЗадача.Статус.ИмяПредопределенныхДанных; - - Если ТекЭлементФормы.Имя <> ИмяТЧЗадачи Тогда - Продолжить; - КонецЕсли; - - ТекЦвет = ПолучитьПриоритетныйЦветЗадачиНаСервере(СтрокаЗадача); - ЦветЗаполнен = ПроверитьЗаполнениеЦвета(ТекЦвет); - - Если ЦветЗаполнен Тогда - ОформлениеЗадачи = УсловноеОформление.Элементы.Добавить(); - Отбор = ОформлениеЗадачи.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); - Отбор.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; - Отбор.Использование = ИСТИНА; - Отбор.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ТЧЗадачи.Задача"); - Отбор.ПравоеЗначение = ТекЗадача; - - Поля = ОформлениеЗадачи.Поля.Элементы.Добавить(); - Поля.Использование = ИСТИНА; - Поля.Поле = Новый ПолеКомпоновкиДанных(ИмяТЧЗадачи + "НомерЗадачиПредставление"); - - ОформлениеЗадачи.Оформление.УстановитьЗначениеПараметра("ЦветФона", ТекЦвет); - КонецЕсли; - КонецЦикла; - КонецЕсли; - КонецЦикла; -КонецПроцедуры +//&НаСервере +//Процедура ОформлениеЦветаЗадачНаСервере() +// УсловноеОформление.Элементы.Очистить(); +// +// УстановитьБазовоеОформлениеЗадачНаСервере(); +// +// Для Каждого ТекЭлементФормы Из Элементы Цикл +// Если ТипЗнч(ТекЭлементФормы) = Тип("ТаблицаФормы") И ТекЭлементФормы.ПутьКДанным = "Объект.ТЧЗадачи" Тогда +// Для Каждого СтрокаЗадача Из Объект.ТЧЗадачи Цикл +// ТекЗадача = СтрокаЗадача.Задача; +// +// ИмяТЧЗадачи = "ТЧЗадачи" + СтрокаЗадача.Статус.ИмяПредопределенныхДанных; +// +// Если ТекЭлементФормы.Имя <> ИмяТЧЗадачи Тогда +// Продолжить; +// КонецЕсли; +// +// ТекЦвет = ПолучитьПриоритетныйЦветЗадачиНаСервере(СтрокаЗадача); +// ЦветЗаполнен = ПроверитьЗаполнениеЦвета(ТекЦвет); +// +// Если ЦветЗаполнен Тогда +// ОформлениеЗадачи = УсловноеОформление.Элементы.Добавить(); +// Отбор = ОформлениеЗадачи.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); +// Отбор.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; +// Отбор.Использование = ИСТИНА; +// Отбор.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ТЧЗадачи.Задача"); +// Отбор.ПравоеЗначение = ТекЗадача; +// +// Поля = ОформлениеЗадачи.Поля.Элементы.Добавить(); +// Поля.Использование = ИСТИНА; +// Поля.Поле = Новый ПолеКомпоновкиДанных(ИмяТЧЗадачи + "НомерЗадачиПредставление"); +// +// ОформлениеЗадачи.Оформление.УстановитьЗначениеПараметра("ЦветФона", ТекЦвет); +// КонецЕсли; +// КонецЦикла; +// КонецЕсли; +// КонецЦикла; +//КонецПроцедуры -&НаКлиентеНаСервереБезКонтекста -Функция ПроверитьЗаполнениеЦвета(ТекЦвет) - Если ТекЦвет = Неопределено ИЛИ ТекЦвет = Новый Цвет(0,0,0) Тогда - Возврат ЛОЖЬ; - Иначе - Возврат ИСТИНА; - КонецЕсли; -КонецФункции +//&НаКлиентеНаСервереБезКонтекста +//Функция ПроверитьЗаполнениеЦвета(ТекЦвет) +// Если ТекЦвет = Неопределено ИЛИ ТекЦвет = Новый Цвет(0,0,0) Тогда +// Возврат ЛОЖЬ; +// Иначе +// Возврат ИСТИНА; +// КонецЕсли; +//КонецФункции -&НаСервере -Функция ПолучитьПриоритетныйЦветЗадачиНаСервере(СтрокаЗадача) - Для Каждого ВидПриоритета Из ПолучитьМассивПриоритетовЦветаЗадач() Цикл - ТекЦвет = ПолучитьЦветЗадачиПоВидуПриоритета(СтрокаЗадача, ВидПриоритета); - ЦветЗаполнен = ПроверитьЗаполнениеЦвета(ТекЦвет); - Если ЦветЗаполнен Тогда - Прервать; - КонецЕсли; - КонецЦикла; - - Возврат ТекЦвет; -КонецФункции +//&НаСервере +//Функция ПолучитьПриоритетныйЦветЗадачиНаСервере(СтрокаЗадача) +// Для Каждого ВидПриоритета Из ПолучитьМассивПриоритетовЦветаЗадач() Цикл +// ТекЦвет = ПолучитьЦветЗадачиПоВидуПриоритета(СтрокаЗадача, ВидПриоритета); +// ЦветЗаполнен = ПроверитьЗаполнениеЦвета(ТекЦвет); +// Если ЦветЗаполнен Тогда +// Прервать; +// КонецЕсли; +// КонецЦикла; +// +// Возврат ТекЦвет; +//КонецФункции -&НаСервере -Функция ПолучитьЦветЗадачиПоВидуПриоритета(СтрокаЗадача, ВидПриоритета) - НужныйЦвет = Неопределено; - Задача = СтрокаЗадача.Задача; - - Если ВидПриоритета = ВидыПриоритетаЦвета().Задача Тогда - НужныйЦвет = Задача.ЦветЗадачи.Получить(); - ИначеЕсли ВидПриоритета = ВидыПриоритетаЦвета().Спринт Тогда - НужныйЦвет = Задача.Спринт.ЦветСпринта.Получить(); - ИначеЕсли ВидПриоритета = ВидыПриоритетаЦвета().ОсновнаяЗадача Тогда - НужныйЦвет = Задача.ОсновнаяЗадача.ЦветЗадачи.Получить(); - ИначеЕсли ВидПриоритета = ВидыПриоритетаЦвета().Важность Тогда - НужныйЦвет = Задача.Важность.ЦветВажности.Получить(); - КонецЕсли; - - Возврат НужныйЦвет; -КонецФункции +//&НаСервере +//Функция ПолучитьЦветЗадачиПоВидуПриоритета(СтрокаЗадача, ВидПриоритета) +// НужныйЦвет = Неопределено; +// Задача = СтрокаЗадача.Задача; +// +// Если ВидПриоритета = ВидыПриоритетаЦвета().Задача Тогда +// НужныйЦвет = Задача.ЦветЗадачи.Получить(); +// ИначеЕсли ВидПриоритета = ВидыПриоритетаЦвета().Спринт Тогда +// НужныйЦвет = Задача.Спринт.ЦветСпринта.Получить(); +// ИначеЕсли ВидПриоритета = ВидыПриоритетаЦвета().ОсновнаяЗадача Тогда +// НужныйЦвет = Задача.ОсновнаяЗадача.ЦветЗадачи.Получить(); +// ИначеЕсли ВидПриоритета = ВидыПриоритетаЦвета().Важность Тогда +// НужныйЦвет = Задача.Важность.ЦветВажности.Получить(); +// КонецЕсли; +// +// Возврат НужныйЦвет; +//КонецФункции -&НаКлиентеНаСервереБезКонтекста -Функция ПолучитьМассивПриоритетовЦветаЗадач() - Приоритеты = Новый Массив; - Приоритеты.Добавить(ВидыПриоритетаЦвета().Задача); - Приоритеты.Добавить(ВидыПриоритетаЦвета().Спринт); - Приоритеты.Добавить(ВидыПриоритетаЦвета().ОсновнаяЗадача); - Приоритеты.Добавить(ВидыПриоритетаЦвета().Важность); - - Возврат Новый ФиксированныйМассив(Приоритеты); -КонецФункции +//&НаКлиентеНаСервереБезКонтекста +//Функция ПолучитьМассивПриоритетовЦветаЗадач() +// Приоритеты = Новый Массив; +// Приоритеты.Добавить(ВидыПриоритетаЦвета().Задача); +// Приоритеты.Добавить(ВидыПриоритетаЦвета().Спринт); +// Приоритеты.Добавить(ВидыПриоритетаЦвета().ОсновнаяЗадача); +// Приоритеты.Добавить(ВидыПриоритетаЦвета().Важность); +// +// Возврат Новый ФиксированныйМассив(Приоритеты); +//КонецФункции -&НаКлиентеНаСервереБезКонтекста -Функция ВидыПриоритетаЦвета() - Виды = Новый Структура(); - Виды.Вставить("Важность" , "Важность"); - Виды.Вставить("ОсновнаяЗадача", "ОсновнаяЗадача"); - Виды.Вставить("Спринт" , "Спринт"); - Виды.Вставить("Задача" , "Задача"); - - Возврат Новый ФиксированнаяСтруктура(Виды); -КонецФункции +//&НаКлиентеНаСервереБезКонтекста +//Функция ВидыПриоритетаЦвета() +// Виды = Новый Структура(); +// Виды.Вставить("Важность" , "Важность"); +// Виды.Вставить("ОсновнаяЗадача", "ОсновнаяЗадача"); +// Виды.Вставить("Спринт" , "Спринт"); +// Виды.Вставить("Задача" , "Задача"); +// +// Возврат Новый ФиксированнаяСтруктура(Виды); +//КонецФункции -&НаКлиенте -Процедура ЗаполнитьЗадачиНаКлиенте() - ОбновитьКанбанДоску(); -КонецПроцедуры +//&НаКлиенте +//Процедура ЗаполнитьЗадачиНаКлиенте() +// ОбновитьКанбанДоску(); +//КонецПроцедуры -&НаКлиенте -Процедура КомандаОбновить(Команда) - Элементы.ГруппаСтраницы.ТекущаяСтраница = Элементы.ГруппаКанбанДоска; - ЗаполнитьЗадачиНаКлиенте(); -КонецПроцедуры +//&НаКлиенте +//Процедура КомандаОбновить(Команда) +// Элементы.ГруппаСтраницы.ТекущаяСтраница = Элементы.ГруппаКанбанДоска; +// ЗаполнитьЗадачиНаКлиенте(); +//КонецПроцедуры -&НаКлиенте -Процедура КомандаУстановитьСтандартныеНастройки(Команда) - УстановитьСтандартныеНастройкиНаСервере(); -КонецПроцедуры +//&НаКлиенте +//Процедура КомандаУстановитьСтандартныеНастройки(Команда) +// УстановитьСтандартныеНастройкиНаСервере(); +//КонецПроцедуры -&НаСервере -Процедура УстановитьСтандартныеНастройкиНаСервере() - КлючНастроек = ПолучитьКлючНастроек(); - ХранилищеОбщихНастроек.Сохранить(КлючНастроек,КлючНастроек,Неопределено); - пНастройкиКомпоновщика = Неопределено; - ЗагрузитьСохраненныеНастройки(пНастройкиКомпоновщика); - ОпределитьОтборНаСервере(пНастройкиКомпоновщика); -КонецПроцедуры +//&НаСервере +//Процедура УстановитьСтандартныеНастройкиНаСервере() +// КлючНастроек = ПолучитьКлючНастроек(); +// ХранилищеОбщихНастроек.Сохранить(КлючНастроек,КлючНастроек,Неопределено); +// пНастройкиКомпоновщика = Неопределено; +// ЗагрузитьСохраненныеНастройки(пНастройкиКомпоновщика); +// ОпределитьОтборНаСервере(пНастройкиКомпоновщика); +//КонецПроцедуры -&НаКлиенте -Процедура ТЧЗадачиПриАктивизацииЯчейки(Элемент) - ИмяТЧ = Элемент.Имя; - ИмяАктивнойТЧ = ИмяТЧ; - ОчиститьАктивизацииСтрок(ИмяТЧ); - Если НЕ НастройкиТЧДляАктивацииПервойСтроки.Свойство(ИмяТЧ) Тогда - Элемент.ВыделенныеСтроки.Очистить(); - НастройкиТЧДляАктивацииПервойСтроки.Вставить(ИмяТЧ,"Истина"); - Конецесли; -КонецПроцедуры +//&НаКлиенте +//Процедура ТЧЗадачиПриАктивизацииЯчейки(Элемент) +// ИмяТЧ = Элемент.Имя; +// ИмяАктивнойТЧ = ИмяТЧ; +// ОчиститьАктивизацииСтрок(ИмяТЧ); +// Если НЕ НастройкиТЧДляАктивацииПервойСтроки.Свойство(ИмяТЧ) Тогда +// Элемент.ВыделенныеСтроки.Очистить(); +// НастройкиТЧДляАктивацииПервойСтроки.Вставить(ИмяТЧ,"Истина"); +// Конецесли; +//КонецПроцедуры -&НаКлиенте -Процедура ТЧЗадачиВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) - СтандартнаяОбработка = Ложь; - ПоказатьЗначение(,Элемент.ТекущиеДанные.Задача); -КонецПроцедуры +//&НаКлиенте +//Процедура ТЧЗадачиВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) +// СтандартнаяОбработка = Ложь; +// ПоказатьЗначение(,Элемент.ТекущиеДанные.Задача); +//КонецПроцедуры -&НаКлиенте -Процедура КомандаДобавитьВСпринт(Команда) - ДобавитьУбратьВСпринтНаКлиенте(1); -КонецПроцедуры +//&НаКлиенте +//Процедура КомандаДобавитьВСпринт(Команда) +// ДобавитьУбратьВСпринтНаКлиенте(1); +//КонецПроцедуры -&НаКлиенте -Процедура ДобавитьУбратьВСпринтНаКлиенте(КодОперации) - СтрокаТЧ = Элементы[ИмяАктивнойТЧ].ТекущиеДанные; - Если СтрокаТЧ = Неопределено тогда - Сообщить("Выберите задачи, которые хотите добавить в спринт"); - Возврат; - Конецесли; - МассивВыделенныхСтрок = Элементы[ИмяАктивнойТЧ].ВыделенныеСтроки; - Если МассивВыделенныхСтрок.Количество() = 0 Тогда - Сообщить("Выберите задачи, которые хотите добавить в спринт"); - Возврат; - Конецесли; - РезультатФункции = ДобавитьУбратьВСпринтНаСервере(КодОперации,МассивВыделенныхСтрок); - КомандаДобавитьУбратьВыполнена = РезультатФункции.КомандаДобавитьУбратьВыполнена; - Если НЕ КомандаДобавитьУбратьВыполнена Тогда - Если РезультатФункции.Свойство("НеобходимоВыбратьСпринт") Тогда - ДополнительныеПараметры = Новый Структура(); - ДополнительныеПараметры.Вставить("МассивВыделенныхСтрок",МассивВыделенныхСтрок); - ОповещениеОЗакрытии = Новый ОписаниеОповещения("ОбработатьВыборСпринта", ЭтаФорма, ДополнительныеПараметры); - - пОтбор = Новый Структура("СпринтЗавершен", Ложь); - ПараметрыОткрытияФормы = Новый Структура("Отбор", пОтбор); - ОткрытьФорму("Справочник.узСпринты.Форма.ФормаВыбора",ПараметрыОткрытияФормы,,,,,ОповещениеОЗакрытии); - Конецесли; - Конецесли; - ДобавитьУбратьВСпринтНаКлиентеОбработатьРезультатФункции(РезультатФункции); -КонецПроцедуры +//&НаКлиенте +//Процедура ДобавитьУбратьВСпринтНаКлиенте(КодОперации) +// СтрокаТЧ = Элементы[ИмяАктивнойТЧ].ТекущиеДанные; +// Если СтрокаТЧ = Неопределено тогда +// Сообщить("Выберите задачи, которые хотите добавить в спринт"); +// Возврат; +// Конецесли; +// МассивВыделенныхСтрок = Элементы[ИмяАктивнойТЧ].ВыделенныеСтроки; +// Если МассивВыделенныхСтрок.Количество() = 0 Тогда +// Сообщить("Выберите задачи, которые хотите добавить в спринт"); +// Возврат; +// Конецесли; +// РезультатФункции = ДобавитьУбратьВСпринтНаСервере(КодОперации,МассивВыделенныхСтрок); +// КомандаДобавитьУбратьВыполнена = РезультатФункции.КомандаДобавитьУбратьВыполнена; +// Если НЕ КомандаДобавитьУбратьВыполнена Тогда +// Если РезультатФункции.Свойство("НеобходимоВыбратьСпринт") Тогда +// ДополнительныеПараметры = Новый Структура(); +// ДополнительныеПараметры.Вставить("МассивВыделенныхСтрок",МассивВыделенныхСтрок); +// ОповещениеОЗакрытии = Новый ОписаниеОповещения("ОбработатьВыборСпринта", ЭтаФорма, ДополнительныеПараметры); +// +// пОтбор = Новый Структура("СпринтЗавершен", Ложь); +// ПараметрыОткрытияФормы = Новый Структура("Отбор", пОтбор); +// ОткрытьФорму("Справочник.узСпринты.Форма.ФормаВыбора",ПараметрыОткрытияФормы,,,,,ОповещениеОЗакрытии); +// Конецесли; +// Конецесли; +// ДобавитьУбратьВСпринтНаКлиентеОбработатьРезультатФункции(РезультатФункции); +//КонецПроцедуры -&НаКлиенте -Процедура ДобавитьУбратьВСпринтНаКлиентеОбработатьРезультатФункции(РезультатФункции) - Если РезультатФункции.Свойство("МассивСообщений") Тогда - МассивСообщений = РезультатФункции.МассивСообщений; - Для каждого ЭлМассиваСообщения из МассивСообщений цикл - Сообщить(ЭлМассиваСообщения); - Конеццикла; - Конецесли; - ЗаполнитьЗадачиНаСервере(); -КонецПроцедуры +//&НаКлиенте +//Процедура ДобавитьУбратьВСпринтНаКлиентеОбработатьРезультатФункции(РезультатФункции) +// Если РезультатФункции.Свойство("МассивСообщений") Тогда +// МассивСообщений = РезультатФункции.МассивСообщений; +// Для каждого ЭлМассиваСообщения из МассивСообщений цикл +// Сообщить(ЭлМассиваСообщения); +// Конеццикла; +// Конецесли; +// ЗаполнитьЗадачиНаСервере(); +//КонецПроцедуры -&НаКлиенте -Процедура ОбработатьВыборСпринта(РезультатЗакрытия, ДопПараметры) Экспорт - Если РезультатЗакрытия = Неопределено Тогда - Возврат; - Конецесли; - пСпринт = РезультатЗакрытия; - МассивВыделенныхСтрок = ДопПараметры.МассивВыделенныхСтрок; - РезультатФункции = ДобавитьУбратьВСпринтНаСервере(1,МассивВыделенныхСтрок,пСпринт); - ДобавитьУбратьВСпринтНаКлиентеОбработатьРезультатФункции(РезультатФункции); -КонецПроцедуры +//&НаКлиенте +//Процедура ОбработатьВыборСпринта(РезультатЗакрытия, ДопПараметры) Экспорт +// Если РезультатЗакрытия = Неопределено Тогда +// Возврат; +// Конецесли; +// пСпринт = РезультатЗакрытия; +// МассивВыделенныхСтрок = ДопПараметры.МассивВыделенныхСтрок; +// РезультатФункции = ДобавитьУбратьВСпринтНаСервере(1,МассивВыделенныхСтрок,пСпринт); +// ДобавитьУбратьВСпринтНаКлиентеОбработатьРезультатФункции(РезультатФункции); +//КонецПроцедуры -&НаСервере -Функция ДобавитьУбратьВСпринтНаСервере(КодОперации,МассивВыделенныхСтрок,пСпринт = Неопределено) - МассивЗадач = ПолучитьМассивЗадачПоВыделеннымСтрокам(МассивВыделенныхСтрок); - РезультатФункцииТекущийСпринт = Справочники.узСпринты.ПолучитьТекущийСпринт(); - ТекстОшибки = РезультатФункцииТекущийСпринт.ТекстОшибки; - Если ЗначениеЗаполнено(ТекстОшибки) Тогда - МассивСообщений = Новый Массив(); - МассивСообщений.Добавить(ТекстОшибки); - - РезультатФункции = Новый Структура(); - РезультатФункции.Вставить("КомандаДобавитьУбратьВыполнена",Ложь); - РезультатФункции.Вставить("МассивСообщений",МассивСообщений); - Возврат РезультатФункции; - Конецесли; - - Если КодОперации = -1 Тогда - РезультатФункции = ДобавитьУбратьВСпринтЗадачи(КодОперации,Неопределено,МассивЗадач); - Возврат РезультатФункции; - Конецесли; - - Если ЗначениеЗаполнено(пСпринт) Тогда - РезультатФункции = ДобавитьУбратьВСпринтЗадачи(КодОперации,пСпринт,МассивЗадач); - Возврат РезультатФункции; - Конецесли;; - - Только1АктивныйСпринт = РезультатФункцииТекущийСпринт.Только1АктивныйСпринт; - Если Только1АктивныйСпринт Тогда - пСпринт = РезультатФункцииТекущийСпринт.Спринт; - РезультатФункции = ДобавитьУбратьВСпринтЗадачи(КодОперации,пСпринт,МассивЗадач); - Возврат РезультатФункции; - Конецесли; - - РезультатФункции = Новый Структура(); - РезультатФункции.Вставить("КомандаДобавитьУбратьВыполнена",Ложь); - РезультатФункции.Вставить("НеобходимоВыбратьСпринт",Истина); - Возврат РезультатФункции; - -КонецФункции +//&НаСервере +//Функция ДобавитьУбратьВСпринтНаСервере(КодОперации,МассивВыделенныхСтрок,пСпринт = Неопределено) +// МассивЗадач = ПолучитьМассивЗадачПоВыделеннымСтрокам(МассивВыделенныхСтрок); +// РезультатФункцииТекущийСпринт = Справочники.узСпринты.ПолучитьТекущийСпринт(); +// ТекстОшибки = РезультатФункцииТекущийСпринт.ТекстОшибки; +// Если ЗначениеЗаполнено(ТекстОшибки) Тогда +// МассивСообщений = Новый Массив(); +// МассивСообщений.Добавить(ТекстОшибки); +// +// РезультатФункции = Новый Структура(); +// РезультатФункции.Вставить("КомандаДобавитьУбратьВыполнена",Ложь); +// РезультатФункции.Вставить("МассивСообщений",МассивСообщений); +// Возврат РезультатФункции; +// Конецесли; +// +// Если КодОперации = -1 Тогда +// РезультатФункции = ДобавитьУбратьВСпринтЗадачи(КодОперации,Неопределено,МассивЗадач); +// Возврат РезультатФункции; +// Конецесли; +// +// Если ЗначениеЗаполнено(пСпринт) Тогда +// РезультатФункции = ДобавитьУбратьВСпринтЗадачи(КодОперации,пСпринт,МассивЗадач); +// Возврат РезультатФункции; +// Конецесли;; +// +// Только1АктивныйСпринт = РезультатФункцииТекущийСпринт.Только1АктивныйСпринт; +// Если Только1АктивныйСпринт Тогда +// пСпринт = РезультатФункцииТекущийСпринт.Спринт; +// РезультатФункции = ДобавитьУбратьВСпринтЗадачи(КодОперации,пСпринт,МассивЗадач); +// Возврат РезультатФункции; +// Конецесли; +// +// РезультатФункции = Новый Структура(); +// РезультатФункции.Вставить("КомандаДобавитьУбратьВыполнена",Ложь); +// РезультатФункции.Вставить("НеобходимоВыбратьСпринт",Истина); +// Возврат РезультатФункции; +// +//КонецФункции -&НаСервере -Функция ПолучитьМассивЗадачПоВыделеннымСтрокам(МассивВыделенныхСтрок) - МассивЗадач = Новый Массив(); - Для каждого ЭлМассиваВыделенныхСтрок из МассивВыделенныхСтрок цикл - ИдентификаторСтроки = ЭлМассиваВыделенныхСтрок; - СтрокаТЧЗадачи = Объект.ТЧЗадачи.НайтиПоИдентификатору(ИдентификаторСтроки); - МассивЗадач.Добавить(СтрокаТЧЗадачи.Задача); - Конеццикла; - Возврат МассивЗадач; -КонецФункции +//&НаСервере +//Функция ПолучитьМассивЗадачПоВыделеннымСтрокам(МассивВыделенныхСтрок) +// МассивЗадач = Новый Массив(); +// Для каждого ЭлМассиваВыделенныхСтрок из МассивВыделенныхСтрок цикл +// ИдентификаторСтроки = ЭлМассиваВыделенныхСтрок; +// СтрокаТЧЗадачи = Объект.ТЧЗадачи.НайтиПоИдентификатору(ИдентификаторСтроки); +// МассивЗадач.Добавить(СтрокаТЧЗадачи.Задача); +// Конеццикла; +// Возврат МассивЗадач; +//КонецФункции -&НаСервере -Функция ДобавитьУбратьВСпринтЗадачи(КодОперации,пСпринт,МассивЗадач) - ЭтоДобавление = КодОперации = 1; - ЭтоУдаление = КодОперации = -1; - - РезультатФункции = Новый Структура(); - МассивСообщений = Новый Массив(); - Для каждого ЭлМассиваЗадач из МассивЗадач цикл - пЗадачаСсылка = ЭлМассиваЗадач; - Если ЭтоДобавление Тогда - Если пЗадачаСсылка.Спринт <> пСпринт Тогда - ЗадачаОбъект = пЗадачаСсылка.ПолучитьОбъект(); - ЗадачаОбъект.Спринт = пСпринт; - ЗадачаОбъект.Записать(); - МассивСообщений.Добавить("Добавлена" - +" в спринт ["+пСпринт+"] " - +" задача [#"+пЗадачаСсылка.Код+" "+пЗадачаСсылка+"]"); - Иначе - МассивСообщений.Добавить("Уже указана" - +" в спринте ["+пСпринт+"] " - +" задача [#"+пЗадачаСсылка.Код+" "+пЗадачаСсылка+"]"); - Конецесли; - ИначеЕсли ЭтоУдаление Тогда - пСпринт = пЗадачаСсылка.Спринт; - Если ЗначениеЗаполнено(пСпринт) Тогда - ЗадачаОбъект = пЗадачаСсылка.ПолучитьОбъект(); - ЗадачаОбъект.Спринт = Неопределено; - ЗадачаОбъект.Записать(); - МассивСообщений.Добавить("Убрана" - +" из спринта ["+пСпринт+"] " - +" задача [#"+пЗадачаСсылка.Код+" "+пЗадачаСсылка+"]"); - Иначе - МассивСообщений.Добавить("Не указана в спринте" - +" задача [#"+пЗадачаСсылка.Код+" "+пЗадачаСсылка+"]"); - Конецесли; - Иначе - ВызватьИсключение "Неизвестный код операции " + КодОперации; - КонецЕсли; - Конеццикла; - РезультатФункции.Вставить("МассивСообщений",МассивСообщений); - РезультатФункции.Вставить("КомандаДобавитьУбратьВыполнена",Истина); - Возврат РезультатФункции; -КонецФункции +//&НаСервере +//Функция ДобавитьУбратьВСпринтЗадачи(КодОперации,пСпринт,МассивЗадач) +// ЭтоДобавление = КодОперации = 1; +// ЭтоУдаление = КодОперации = -1; +// +// РезультатФункции = Новый Структура(); +// МассивСообщений = Новый Массив(); +// Для каждого ЭлМассиваЗадач из МассивЗадач цикл +// пЗадачаСсылка = ЭлМассиваЗадач; +// Если ЭтоДобавление Тогда +// Если пЗадачаСсылка.Спринт <> пСпринт Тогда +// ЗадачаОбъект = пЗадачаСсылка.ПолучитьОбъект(); +// ЗадачаОбъект.Спринт = пСпринт; +// ЗадачаОбъект.Записать(); +// МассивСообщений.Добавить("Добавлена" +// +" в спринт ["+пСпринт+"] " +// +" задача [#"+пЗадачаСсылка.Код+" "+пЗадачаСсылка+"]"); +// Иначе +// МассивСообщений.Добавить("Уже указана" +// +" в спринте ["+пСпринт+"] " +// +" задача [#"+пЗадачаСсылка.Код+" "+пЗадачаСсылка+"]"); +// Конецесли; +// ИначеЕсли ЭтоУдаление Тогда +// пСпринт = пЗадачаСсылка.Спринт; +// Если ЗначениеЗаполнено(пСпринт) Тогда +// ЗадачаОбъект = пЗадачаСсылка.ПолучитьОбъект(); +// ЗадачаОбъект.Спринт = Неопределено; +// ЗадачаОбъект.Записать(); +// МассивСообщений.Добавить("Убрана" +// +" из спринта ["+пСпринт+"] " +// +" задача [#"+пЗадачаСсылка.Код+" "+пЗадачаСсылка+"]"); +// Иначе +// МассивСообщений.Добавить("Не указана в спринте" +// +" задача [#"+пЗадачаСсылка.Код+" "+пЗадачаСсылка+"]"); +// Конецесли; +// Иначе +// ВызватьИсключение "Неизвестный код операции " + КодОперации; +// КонецЕсли; +// Конеццикла; +// РезультатФункции.Вставить("МассивСообщений",МассивСообщений); +// РезультатФункции.Вставить("КомандаДобавитьУбратьВыполнена",Истина); +// Возврат РезультатФункции; +//КонецФункции -&НаКлиенте -Процедура КомандаУбратьИзСпринта(Команда) - ДобавитьУбратьВСпринтНаКлиенте(-1); -КонецПроцедуры +//&НаКлиенте +//Процедура КомандаУбратьИзСпринта(Команда) +// ДобавитьУбратьВСпринтНаКлиенте(-1); +//КонецПроцедуры -&НаКлиенте -Процедура КомандаСледитьЗаЗадачей(Команда) - ДобавитьУбратьНаблюдателяЗаЗадачейНаКлиенте(Истина); -КонецПроцедуры +//&НаКлиенте +//Процедура КомандаСледитьЗаЗадачей(Команда) +// ДобавитьУбратьНаблюдателяЗаЗадачейНаКлиенте(Истина); +//КонецПроцедуры -&НаКлиенте -Процедура ДобавитьУбратьНаблюдателяЗаЗадачейНаКлиенте(ЭтоДобавлениеНаблюдателя) - СтрокаТЧ = Элементы[ИмяАктивнойТЧ].ТекущиеДанные; - Если СтрокаТЧ = Неопределено тогда - Сообщить("Выберите задачи, которые за которыми хотите следить"); - Возврат; - Конецесли; - МассивВыделенныхСтрок = Элементы[ИмяАктивнойТЧ].ВыделенныеСтроки; - Если МассивВыделенныхСтрок.Количество() = 0 Тогда - Сообщить("Выберите задачи, которые за которыми хотите следить"); - Возврат; - Конецесли; - ДобавитьУбратьНаблюдателяЗаЗадачейНаСервере(МассивВыделенныхСтрок,ЭтоДобавлениеНаблюдателя); - Оповестить("ДобавленУбранНаблюдатель"); -КонецПроцедуры +//&НаКлиенте +//Процедура ДобавитьУбратьНаблюдателяЗаЗадачейНаКлиенте(ЭтоДобавлениеНаблюдателя) +// СтрокаТЧ = Элементы[ИмяАктивнойТЧ].ТекущиеДанные; +// Если СтрокаТЧ = Неопределено тогда +// Сообщить("Выберите задачи, которые за которыми хотите следить"); +// Возврат; +// Конецесли; +// МассивВыделенныхСтрок = Элементы[ИмяАктивнойТЧ].ВыделенныеСтроки; +// Если МассивВыделенныхСтрок.Количество() = 0 Тогда +// Сообщить("Выберите задачи, которые за которыми хотите следить"); +// Возврат; +// Конецесли; +// ДобавитьУбратьНаблюдателяЗаЗадачейНаСервере(МассивВыделенныхСтрок,ЭтоДобавлениеНаблюдателя); +// Оповестить("ДобавленУбранНаблюдатель"); +//КонецПроцедуры -&НаСервере -Процедура ДобавитьУбратьНаблюдателяЗаЗадачейНаСервере(МассивВыделенныхСтрок,ЭтоДобавлениеНаблюдателя) - МассивЗадач = ПолучитьМассивЗадачПоВыделеннымСтрокам(МассивВыделенныхСтрок); - ДопПараметры = Новый Структура(); - ДопПараметры.Вставить("Пользователь",Пользователи.ТекущийПользователь()); - ДопПараметры.Вставить("МассивЗадач",МассивЗадач); - Если ЭтоДобавлениеНаблюдателя Тогда - РегистрыСведений.узНаблюдателиЗаЗадачами.СледитьЗаЗадачей(ДопПараметры); - Иначе - РегистрыСведений.узНаблюдателиЗаЗадачами.ПерестатьСледитьЗаЗадачей(ДопПараметры); - Конецесли; -КонецПроцедуры +//&НаСервере +//Процедура ДобавитьУбратьНаблюдателяЗаЗадачейНаСервере(МассивВыделенныхСтрок,ЭтоДобавлениеНаблюдателя) +// МассивЗадач = ПолучитьМассивЗадачПоВыделеннымСтрокам(МассивВыделенныхСтрок); +// ДопПараметры = Новый Структура(); +// ДопПараметры.Вставить("Пользователь",Пользователи.ТекущийПользователь()); +// ДопПараметры.Вставить("МассивЗадач",МассивЗадач); +// Если ЭтоДобавлениеНаблюдателя Тогда +// РегистрыСведений.узНаблюдателиЗаЗадачами.СледитьЗаЗадачей(ДопПараметры); +// Иначе +// РегистрыСведений.узНаблюдателиЗаЗадачами.ПерестатьСледитьЗаЗадачей(ДопПараметры); +// Конецесли; +//КонецПроцедуры -&НаКлиенте -Процедура КомандаНеСледитьЗаЗадачей(Команда) - ДобавитьУбратьНаблюдателяЗаЗадачейНаКлиенте(Ложь); -КонецПроцедуры +//&НаКлиенте +//Процедура КомандаНеСледитьЗаЗадачей(Команда) +// ДобавитьУбратьНаблюдателяЗаЗадачейНаКлиенте(Ложь); +//КонецПроцедуры diff --git a/src/cf/DataProcessors/узКанбанДоска/Forms/ФормаДинамическая/Ext/Form/Module.bsl b/src/cf/DataProcessors/узКанбанДоска/Forms/ФормаДинамическая/Ext/Form/Module.bsl index 135ed2b81..0b94c17b5 100644 --- a/src/cf/DataProcessors/узКанбанДоска/Forms/ФормаДинамическая/Ext/Form/Module.bsl +++ b/src/cf/DataProcessors/узКанбанДоска/Forms/ФормаДинамическая/Ext/Form/Module.bsl @@ -784,7 +784,7 @@ КонецПроцедуры &НаСервере -Функция ОпределитьОтборНаСервере(пНастройкиКомпоновщика = Неопределено) Экспорт +Процедура ОпределитьОтборНаСервере(пНастройкиКомпоновщика = Неопределено) Экспорт пОбъект = РеквизитФормыВЗначение("Объект"); МакетСКД = пОбъект.ПолучитьМакет("СхемаКомпоновкиДанных"); @@ -798,7 +798,7 @@ Иначе КомпоновщикНастроекКомпоновкиДанных.ЗагрузитьНастройки(пНастройкиКомпоновщика); Конецесли; -КонецФункции +КонецПроцедуры &НаСервере Процедура ЗаполнитьТЧНастройкиКолонокНаСервере() @@ -1543,50 +1543,6 @@ СгенирироватьФормуЗаново = Истина; КонецПроцедуры -&НаСервере -Функция Удалить_ДобавитьУбратьВСпринтЗадачи(КодОперации,пСпринт,МассивЗадач) - //ЭтоДобавление = КодОперации = 1; - //ЭтоУдаление = КодОперации = -1; - // - //РезультатФункции = Новый Структура(); - //МассивСообщений = Новый Массив(); - //Для каждого ЭлМассиваЗадач из МассивЗадач цикл - // пЗадачаСсылка = ЭлМассиваЗадач; - // НомерЗадачи = Формат(пЗадачаСсылка.Код,"ЧГ=0"); - // Если ЭтоДобавление Тогда - // Если пЗадачаСсылка.Удалить_Спринт <> пСпринт Тогда - // ЗадачаОбъект = пЗадачаСсылка.ПолучитьОбъект(); - // ЗадачаОбъект.Удалить_Спринт = пСпринт; - // ЗадачаОбъект.Записать(); - // МассивСообщений.Добавить("Добавлена" - // +" в спринт ["+пСпринт+"] " - // +" задача [#"+НомерЗадачи+" "+пЗадачаСсылка+"]"); - // Иначе - // МассивСообщений.Добавить("Уже указана" - // +" в спринте ["+пСпринт+"] " - // +" задача [#"+НомерЗадачи+" "+пЗадачаСсылка+"]"); - // Конецесли; - // ИначеЕсли ЭтоУдаление Тогда - // пСпринт = пЗадачаСсылка.Удалить_Спринт; - // Если ЗначениеЗаполнено(пСпринт) Тогда - // ЗадачаОбъект = пЗадачаСсылка.ПолучитьОбъект(); - // ЗадачаОбъект.Удалить_Спринт = Неопределено; - // ЗадачаОбъект.Записать(); - // МассивСообщений.Добавить("Убрана" - // +" из спринта ["+пСпринт+"] " - // +" задача [#"+НомерЗадачи+" "+пЗадачаСсылка+"]"); - // Иначе - // МассивСообщений.Добавить("Не указана в спринте" - // +" задача [#"+НомерЗадачи+" "+пЗадачаСсылка+"]"); - // Конецесли; - // Иначе - // ВызватьИсключение "Неизвестный код операции " + КодОперации; - // КонецЕсли; - //Конеццикла; - //РезультатФункции.Вставить("МассивСообщений",МассивСообщений); - //РезультатФункции.Вставить("КомандаДобавитьУбратьВыполнена",Истина); - //Возврат РезультатФункции; -КонецФункции &НаСервере Процедура УбратьЗадачуИзСпринта(пЗадачаСсылка,ТЗТекущиеСпринтыДляЗадач,МассивСообщений) diff --git a/src/cf/DataProcessors/узПросмотрИсторииХранилища/Ext/ObjectModule.bsl b/src/cf/DataProcessors/узПросмотрИсторииХранилища/Ext/ObjectModule.bsl index 7bc3cbe8e..9260d5056 100644 --- a/src/cf/DataProcessors/узПросмотрИсторииХранилища/Ext/ObjectModule.bsl +++ b/src/cf/DataProcessors/узПросмотрИсторииХранилища/Ext/ObjectModule.bsl @@ -123,7 +123,7 @@ УдалитьВременныеФайлы(РезультатВыгрузки); КонецПроцедуры -Функция ЗаполнитьТЧОбработки() +Процедура ЗаполнитьТЧОбработки() ИсторияХранилища.Очистить(); ИзмененныеОбъекты.Очистить(); @@ -176,7 +176,7 @@ Конеццикла; ИсторияХранилища.Сортировать("Версия"); -КонецФункции +КонецПроцедуры Функция ПолучитьПолноеИмяМетаданных(ПолноеИмяМетаданных,СтрокамТЗHistory) ИмяОбъекта = СтрокамТЗHistory.OBJNAME; From b781300ebe9a59bcb96cf72139a6ee5cecc8295b Mon Sep 17 00:00:00 2001 From: Anton Ivanov <iab@bk.ru> Date: Sat, 11 Jul 2020 12:54:15 +0300 Subject: [PATCH 05/13] =?UTF-8?q?=D0=A3=D0=B1=D1=80=D0=B0=D0=BB=20=D0=BB?= =?UTF-8?q?=D0=B8=D1=88=D0=BD=D1=8E=D1=8E=20=D0=B4=D0=B8=D1=80=D0=B5=D0=BA?= =?UTF-8?q?=D1=82=D0=B8=D0=B2=D1=83=20=D0=BA=D0=BE=D0=BC=D0=BF=D0=B8=D0=BB?= =?UTF-8?q?=D1=8F=D1=86=D0=B8=D0=B8=20&=D0=9D=D0=B0=D0=A1=D0=B5=D1=80?= =?UTF-8?q?=D0=B2=D0=B5=D1=80=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../узВопросыОтветы/Forms/ФормаЭлемента/Ext/Form/Module.bsl | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/cf/Catalogs/узВопросыОтветы/Forms/ФормаЭлемента/Ext/Form/Module.bsl b/src/cf/Catalogs/узВопросыОтветы/Forms/ФормаЭлемента/Ext/Form/Module.bsl index e8743d6d6..2048fe0d9 100644 --- a/src/cf/Catalogs/узВопросыОтветы/Forms/ФормаЭлемента/Ext/Form/Module.bsl +++ b/src/cf/Catalogs/узВопросыОтветы/Forms/ФормаЭлемента/Ext/Form/Module.bsl @@ -27,8 +27,6 @@ // Объект.Наименование = Объект.Вопрос; //КонецПроцедуры //}milanse 31.05.2020 20:46:11 - -&НаСервере //+ #201 Иванов А.Б. 2020-05-23 Изменения от Дениса Урянского @d-hurricane &НаСервере Процедура ПриЧтенииНаСервере(ТекущийОбъект) From 7f543d331aba7715eee9d2ecc1faf484fb3a0209 Mon Sep 17 00:00:00 2001 From: Anton Ivanov <iab@bk.ru> Date: Sat, 11 Jul 2020 12:54:35 +0300 Subject: [PATCH 06/13] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D0=BB=20=D1=83=D0=B4=D0=B0=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20?= =?UTF-8?q?=D0=B2=D1=80=D0=B5=D0=BC=D0=B5=D0=BD=D0=BD=D0=BE=D0=B3=D0=BE=20?= =?UTF-8?q?=D1=84=D0=B0=D0=B9=D0=BB=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Catalogs/узШаблоны/Forms/ФормаЭлемента/Ext/Form/Module.bsl | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/cf/Catalogs/узШаблоны/Forms/ФормаЭлемента/Ext/Form/Module.bsl b/src/cf/Catalogs/узШаблоны/Forms/ФормаЭлемента/Ext/Form/Module.bsl index 6f1c56995..fe124f282 100644 --- a/src/cf/Catalogs/узШаблоны/Forms/ФормаЭлемента/Ext/Form/Module.bsl +++ b/src/cf/Catalogs/узШаблоны/Forms/ФормаЭлемента/Ext/Form/Module.bsl @@ -48,6 +48,8 @@ ДвоичныеДанные = Новый ДвоичныеДанные(АдресНаСервере); ТекущийОбъект.ФайлШаблонаХранилищеЗначений = Новый ХранилищеЗначения(ДвоичныеДанные, Новый СжатиеДанных(9)); + УдалитьФайлы(АдресНаСервере); + КонецПроцедуры &НаКлиенте From 87fca3e207ad4face431f49d1c8058835c214e0b Mon Sep 17 00:00:00 2001 From: Anton Ivanov <iab@bk.ru> Date: Sat, 11 Jul 2020 12:55:02 +0300 Subject: [PATCH 07/13] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B5=D0=BD=D0=B5?= =?UTF-8?q?=D1=81=20=D1=82=D0=B8=D0=BF=D0=BE=D0=B2=D0=BE=D0=B9=20=D0=BA?= =?UTF-8?q?=D0=BE=D0=B4=20=D0=B2=20=D0=B7=D0=B0=D0=BA=D0=BE=D0=BC=D0=BC?= =?UTF-8?q?=D0=B5=D0=BD=D1=82=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=D0=BD?= =?UTF-8?q?=D1=8B=D0=B9=20=D0=B1=D0=BB=D0=BE=D0=BA.=20=D0=A3=D0=B1=D1=80?= =?UTF-8?q?=D0=B0=D0=BB=20=D0=BD=D0=B5=D0=B4=D0=BE=D1=81=D1=82=D0=B8=D0=B6?= =?UTF-8?q?=D0=B8=D0=BC=D1=8B=D0=B9=20=D0=BA=D0=BE=D0=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../узПрисоединенныеФайлыПисемПоЗадаче/Ext/Form/Module.bsl | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/cf/CommonForms/узПрисоединенныеФайлыПисемПоЗадаче/Ext/Form/Module.bsl b/src/cf/CommonForms/узПрисоединенныеФайлыПисемПоЗадаче/Ext/Form/Module.bsl index 67a79996b..fe702db52 100644 --- a/src/cf/CommonForms/узПрисоединенныеФайлыПисемПоЗадаче/Ext/Form/Module.bsl +++ b/src/cf/CommonForms/узПрисоединенныеФайлыПисемПоЗадаче/Ext/Form/Module.bsl @@ -1754,8 +1754,9 @@ &НаСервере Процедура ПриИзмененииИспользованияПодписанияИлиШифрованияНаСервере() - //++ УправлениеЗадачами: типовой код приводит к ошибке, т.к. опирается на основную таблицу списка. + //++ УправлениеЗадачами: типовой код приводит к ошибке, т.к. опирается на основную таблицу списка. // Основной таблицы у нас нет, поэтому всегда прячем все поля, связанные с криптографией. + //РаботаСФайламиСлужебный.КриптографияПриСозданииФормыНаСервере(ЭтотОбъект); Элементы.СписокНомерКартинкиПодписанЗашифрован.Видимость = Ложь; Элементы.ФормаГруппаКомандЭлектроннаяПодписьИШифрование.Видимость = Ложь; Элементы.СписокКонтекстноеМенюГруппаКомандЭлектроннаяПодписьИШифрование.Видимость = Ложь; @@ -1763,7 +1764,7 @@ Возврат; //-- УправлениеЗадачами - РаботаСФайламиСлужебный.КриптографияПриСозданииФормыНаСервере(ЭтотОбъект); + КонецПроцедуры From ef930f3fc41e27562fb364e1b88903fece4a557e Mon Sep 17 00:00:00 2001 From: Anton Ivanov <iab@bk.ru> Date: Sat, 11 Jul 2020 12:55:24 +0300 Subject: [PATCH 08/13] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D0=BB=20=D1=82=D0=B0=D0=B9=D0=BC=D0=B0=D1=83=D1=82=20=D0=BF?= =?UTF-8?q?=D1=80=D0=B8=20=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=B5=20=D1=81=20?= =?UTF-8?q?HTTP=20=D1=81=D0=BE=D0=B5=D0=B4=D0=B8=D0=BD=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D0=B5=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/cf/CommonModules/узТелеграммСервер/Ext/Module.bsl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cf/CommonModules/узТелеграммСервер/Ext/Module.bsl b/src/cf/CommonModules/узТелеграммСервер/Ext/Module.bsl index f70d5bbe9..675902fce 100644 --- a/src/cf/CommonModules/узТелеграммСервер/Ext/Module.bsl +++ b/src/cf/CommonModules/узТелеграммСервер/Ext/Module.bsl @@ -95,7 +95,7 @@ Ресурс = "bot" + ТокенБота + "/sendMessage?chat_id=" + Формат(элемПолучатель.ИД, "ЧГ=") + "&text=" + ТекстПисьма+"&parse_mode=Markdown&disable_web_page_preview=true"; //Ресурс = "bot" + ТокенБота + "/sendMessage?chat_id=" + Формат(элемПолучатель.ИД, "ЧГ=") + "&text=" + ТекстПисьма+"&disable_web_page_preview=true"; - Соединение = Новый HTTPСоединение("api.telegram.org", 443,,,,,Новый ЗащищенноеСоединениеOpenSSL()); + Соединение = Новый HTTPСоединение("api.telegram.org", 443,,,,30,Новый ЗащищенноеСоединениеOpenSSL()); ЗапросHTTP = Новый HTTPЗапрос(Ресурс); Ответ = Соединение.Получить(ЗапросHTTP); From 02d78bcf6f01f739ca80d41ff5853bb80129df52 Mon Sep 17 00:00:00 2001 From: Anton Ivanov <iab@bk.ru> Date: Sat, 11 Jul 2020 12:55:55 +0300 Subject: [PATCH 09/13] =?UTF-8?q?=D0=A3=D0=B1=D1=80=D0=B0=D0=BB=20=D0=B8?= =?UTF-8?q?=D1=81=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=20=D0=B7=D0=B0=D0=BF=D1=80=D0=BE=D1=81=D0=B0=20?= =?UTF-8?q?=D0=B2=20=D1=86=D0=B8=D0=BA=D0=BB=D0=B5.=20=D0=A0=D0=B0=D0=B1?= =?UTF-8?q?=D0=BE=D1=82=D0=B0=20=D1=81=20=D1=82=D0=B5=D0=BB=D0=B5=D0=B3?= =?UTF-8?q?=D1=80=D0=B0=D0=BC=D0=BC.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../узРаботаСТелеграм/Ext/ObjectModule.bsl | 109 ++++++++++++++---- 1 file changed, 84 insertions(+), 25 deletions(-) diff --git a/src/cf/DataProcessors/узРаботаСТелеграм/Ext/ObjectModule.bsl b/src/cf/DataProcessors/узРаботаСТелеграм/Ext/ObjectModule.bsl index 1bb99c4f7..1ef0a942e 100644 --- a/src/cf/DataProcessors/узРаботаСТелеграм/Ext/ObjectModule.bsl +++ b/src/cf/DataProcessors/узРаботаСТелеграм/Ext/ObjectModule.bsl @@ -87,6 +87,8 @@ МассивResult = ОтветСоответсвие["result"]; ИДПоследнегоПринятогоСообщения = Неопределено; + ТЗПользователиТелеграмм = ПолучитьТЗПользователиТелеграмм(); + Для Каждого СоответсвиеMessange Из МассивResult Цикл ИДПоследнегоПринятогоСообщения = Формат(СоответсвиеMessange["update_id"] + 1, "ЧГ="); @@ -102,32 +104,69 @@ Если СоответсвиеMessange_message.Получить("text") <> Неопределено Тогда MessageText = СоответсвиеMessange_message.Получить("text"); - Если Найти(MessageText, "/addwork") <> 0 Тогда - Запрос = Новый Запрос; - Запрос.Текст = - "ВЫБРАТЬ ПЕРВЫЕ 1 - | Пользователи.Ссылка КАК Пользователь - |ИЗ - | Справочник.Пользователи КАК Пользователи - |ГДЕ - | Пользователи.узИДПользователяТелеграмм = &узИДПользователяТелеграмм"; - - Запрос.УстановитьПараметр("узИДПользователяТелеграмм", Число(пСhatИД)); - - РезультатЗапроса = Запрос.Выполнить(); - Если РезультатЗапроса.Пустой() Тогда - Продолжить; - КонецЕсли; - - Выборка = РезультатЗапроса.Выбрать(); - Пока Выборка.Следующий() Цикл - ТекущиеДелаОбъект = Справочники.узТекущиеДела.СоздатьЭлемент(); - ТекущиеДелаОбъект.Автор = Выборка.Пользователь; - ТекущиеДелаОбъект.ТекстСодержания = СтрЗаменить(MessageText, "/addwork", ""); - ТекущиеДелаОбъект.Записать(); - КонецЦикла; - + // + Иванов А.Б. 2020-07-11 + // Если Найти(MessageText, "/addwork") <> 0 Тогда + // Запрос = Новый Запрос; + // Запрос.Текст = + // "ВЫБРАТЬ ПЕРВЫЕ 1 + // | Пользователи.Ссылка КАК Пользователь + // |ИЗ + // | Справочник.Пользователи КАК Пользователи + // |ГДЕ + // | Пользователи.узИДПользователяТелеграмм = &узИДПользователяТелеграмм"; + // + // Запрос.УстановитьПараметр("узИДПользователяТелеграмм", Число(пСhatИД)); + // + // РезультатЗапроса = Запрос.Выполнить(); + // Если РезультатЗапроса.Пустой() Тогда + // Продолжить; + // КонецЕсли; + // + // Выборка = РезультатЗапроса.Выбрать(); + // Пока Выборка.Следующий() Цикл + // ТекущиеДелаОбъект = Справочники.узТекущиеДела.СоздатьЭлемент(); + // ТекущиеДелаОбъект.Автор = Выборка.Пользователь; + // ТекущиеДелаОбъект.ТекстСодержания = СтрЗаменить(MessageText, "/addwork", ""); + // ТекущиеДелаОбъект.Записать(); + // КонецЦикла; + // + // КонецЕсли; + + Если Найти(MessageText, "/addwork") = 0 Тогда + Продолжить; КонецЕсли; + + пузИДПользователяТелеграмм = Число(пСhatИД); + + ПараметрыОтбора=Новый Структура(); + ПараметрыОтбора.Вставить("узИДПользователяТелеграмм",пузИДПользователяТелеграмм); + НайденныеСтроки = ТЗПользователиТелеграмм.НайтиСтроки(ПараметрыОтбора); + ВсегоНайденныеСтроки = НайденныеСтроки.Количество(); + ТекстОшибки = ""; + Если ВсегоНайденныеСтроки = 1 тогда + СтрокаТЗПользователиТелеграмм = НайденныеСтроки[0]; + ИначеЕсли ВсегоНайденныеСтроки > 1 Тогда + ТекстОшибки = "Ошибка! Найдено более 1 строки"; + Иначе + ТекстОшибки = "Ошибка! Не найдена строка"; + Конецесли; + + Если ЗначениеЗаполнено(ТекстОшибки) Тогда + ТекстОшибки = ТекстОшибки + +" в ""ТЗПользователиТелеграмм"" для "; + Для каждого ЭлементОтбора из ПараметрыОтбора цикл + ТекстОшибки = ТекстОшибки + +" "+ ЭлементОтбора.Ключ + " = ["+ЭлементОтбора.Значение+"]"; + Конеццикла; + ВызватьИсключение ТекстОшибки; + Конецесли; + + ТекущиеДелаОбъект = Справочники.узТекущиеДела.СоздатьЭлемент(); + ТекущиеДелаОбъект.Автор = СтрокаТЗПользователиТелеграмм.Пользователь; + ТекущиеДелаОбъект.ТекстСодержания = СтрЗаменить(MessageText, "/addwork", ""); + ТекущиеДелаОбъект.Записать(); + // - Иванов А.Б. 2020-07-11 + ИначеЕсли СоответсвиеMessange_message.Получить("photo") <> Неопределено Тогда @@ -143,6 +182,26 @@ КонецПроцедуры +Функция ПолучитьТЗПользователиТелеграмм() + + Запрос = Новый Запрос; + Запрос.Текст = "ВЫБРАТЬ + | МАКСИМУМ(Пользователи.Ссылка) КАК Пользователь, + | Пользователи.узИДПользователяТелеграмм КАК узИДПользователяТелеграмм + |ИЗ + | Справочник.Пользователи КАК Пользователи + |ГДЕ + | Пользователи.узИДПользователяТелеграмм <> 0 + | + |СГРУППИРОВАТЬ ПО + | Пользователи.узИДПользователяТелеграмм"; + + ТЗПользователиТелеграмм = Запрос.Выполнить().Выгрузить(); + + Возврат ТЗПользователиТелеграмм; + +КонецФункции + Процедура ОтправитьСообщениеTelegram(ТекстСообщения, МассивПользователейДляОтправки, УведомлятьОРезультате = Ложь) Экспорт Если МассивПользователейДляОтправки.Количество() = 0 Тогда From a537e168bc8fe735588e85677ad58c16a6cad9a3 Mon Sep 17 00:00:00 2001 From: Anton Ivanov <iab@bk.ru> Date: Sat, 11 Jul 2020 12:56:23 +0300 Subject: [PATCH 10/13] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D0=BB=20=D0=B2=20=D1=84=D0=B0=D0=B9=D0=BB=20=D0=B2=D0=B5=D1=80?= =?UTF-8?q?=D1=81=D0=B8=D0=B8=20=D0=BF=D1=80=D0=B5=D0=B4=D0=B2=D0=B0=D1=80?= =?UTF-8?q?=D0=B8=D1=82=D0=B5=D0=BB=D1=8C=D0=BD=D1=8B=D0=B9=20=D1=82=D0=B5?= =?UTF-8?q?=D0=BA=D1=81=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- VERSIONS.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/VERSIONS.md b/VERSIONS.md index e1918409d..6383d4c52 100644 --- a/VERSIONS.md +++ b/VERSIONS.md @@ -18,6 +18,14 @@ https://user-images.githubusercontent.com/34754769/86134719-a1f10280-baf2-11ea-8 Wiki изменения: * [Как настроить загрузку изменений из хранилища по TCP и загрузку изменений по расширениям](https://github.com/BlizD/Tasks/wiki/Как-настроить-загрузку-изменений-из-хранилища-по-TCP-и-загрузку-изменений-по-расширениям) * [Кейс: как можно настроить уведомления о задаче пришедшей из почты](https://github.com/BlizD/Tasks/wiki/Кейс:-как-можно-настроить-уведомления-о-задаче-пришедшей-из-почты.) +* [Новые уведомления для вопросов/ответов](https://github.com/BlizD/Tasks/wiki/Уведомления) +Сейчас отправляется вот так: + +| Вид события| Отправка исполнителю| Отправка наблюдателям | Отправка старому исполнителю| Отправка заказчику| Автор вопроса| Кто может решить вопрос| +| ------------- |:-------------:| :-------------:|:-------------:|:-------------:|:-------------:|:-------------:| +| Добавлен вопрос| V | X |X|X|V|V| +| Изменен ответ| V | X |X|X|V|V| +| Вопрос закрыт| V | X |X|X|V|V| **Выпущена версия 1.0.5.001 (Обновление от 02.05.2020)** From 22f0e4b45a06ee4b088526272c4e36b9169c9829 Mon Sep 17 00:00:00 2001 From: Anton Ivanov <iab@bk.ru> Date: Sat, 11 Jul 2020 13:04:00 +0300 Subject: [PATCH 11/13] =?UTF-8?q?=D0=92=D1=8B=D0=BF=D1=83=D1=81=D0=BA=20?= =?UTF-8?q?=D0=BF=D1=80=D0=BE=D0=BC=D0=B5=D0=B6=D1=83=D1=82=D0=BE=D1=87?= =?UTF-8?q?=D0=BD=D0=BE=D0=B3=D0=BE=20=D1=80=D0=B5=D0=BB=D0=B8=D0=B7=D0=B0?= =?UTF-8?q?=201.0.5.004?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- VERSIONS.md | 1 + sonar-project.properties | 2 +- .../CommonModules/узОбновлениеИнформационнойБазы/Ext/Module.bsl | 2 +- src/cf/Configuration.xml | 2 +- 4 files changed, 4 insertions(+), 3 deletions(-) diff --git a/VERSIONS.md b/VERSIONS.md index 6383d4c52..6a0b3bfe4 100644 --- a/VERSIONS.md +++ b/VERSIONS.md @@ -1,6 +1,7 @@ **Выпущена версия 1.0.5.xxx (Обновление от xx.xx.xxxx)** * Вставить инфу что теперь проект проверяется Sonar +* Вставить инфу, что отработанны ошибки найденные по Sonar теперь ошибок равно 0 * Обновить в файле настроек сонара новую версию релиза sonar.projectVersion=1.0.5.001 Вставка картинки из буфера diff --git a/sonar-project.properties b/sonar-project.properties index 0cffea112..f34104d45 100644 --- a/sonar-project.properties +++ b/sonar-project.properties @@ -8,4 +8,4 @@ sonar.inclusions=**/*.bsl sonar.scm.enabled=true sonar.scm.provider=git -sonar.projectVersion=1.0.5.003 +sonar.projectVersion=1.0.5.004 diff --git a/src/cf/CommonModules/узОбновлениеИнформационнойБазы/Ext/Module.bsl b/src/cf/CommonModules/узОбновлениеИнформационнойБазы/Ext/Module.bsl index 0772cf1ee..d259c37af 100644 --- a/src/cf/CommonModules/узОбновлениеИнформационнойБазы/Ext/Module.bsl +++ b/src/cf/CommonModules/узОбновлениеИнформационнойБазы/Ext/Module.bsl @@ -1,6 +1,6 @@ Процедура ПриДобавленииПодсистемы(Описание) Экспорт Описание.Имя = "УправлениеЗадачами"; - Описание.Версия = "1.0.5.003"; + Описание.Версия = "1.0.5.004"; //+ УрянскийД 2020-06-22 (начало) Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно"; diff --git a/src/cf/Configuration.xml b/src/cf/Configuration.xml index 1b0d8f009..75b882086 100644 --- a/src/cf/Configuration.xml +++ b/src/cf/Configuration.xml @@ -49,7 +49,7 @@ <xr:Item xsi:type="xr:MDObjectRef">Role.ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок</xr:Item> </DefaultRoles> <Vendor>Управление задачами</Vendor> - <Version>1.0.5.003</Version> + <Version>1.0.5.004</Version> <UpdateCatalogAddress/> <IncludeHelpInContents>false</IncludeHelpInContents> <UseManagedFormInOrdinaryApplication>true</UseManagedFormInOrdinaryApplication> From 2346e30c483f1f732f2b2787eb4f21dfcb9a4c8b Mon Sep 17 00:00:00 2001 From: Anton Ivanov <iab@bk.ru> Date: Sun, 19 Jul 2020 10:56:59 +0300 Subject: [PATCH 12/13] =?UTF-8?q?#179=20=D0=9F=D0=BE=D0=B4=D0=BA=D0=BB?= =?UTF-8?q?=D1=8E=D1=87=D0=B8=D1=82=D1=8C=20=D0=B2=D0=BE=D0=BF=D1=80=D0=BE?= =?UTF-8?q?=D1=81=D1=8B-=D0=BE=D1=82=D0=B2=D0=B5=D1=82=D1=8B=20=D0=BA=20?= =?UTF-8?q?=D1=83=D0=B2=D0=B5=D0=B4=D0=BE=D0=BC=D0=BB=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D1=8E=20=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20=D0=B5?= =?UTF-8?q?=D1=89=D0=B5=20=D1=81=D0=BE=D0=B1=D1=8B=D1=82=D0=B8=D0=B5=20"?= =?UTF-8?q?=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD=20=D0=B2=D0=BE=D0=BF?= =?UTF-8?q?=D1=80=D0=BE=D1=81".=20=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D0=BB=20=D0=BE=D1=82=D0=BF=D1=80=D0=B0=D0=B2=D0=BA=D1=83=20?= =?UTF-8?q?=D0=BD=D0=B0=D0=B1=D0=BB=D1=8E=D0=B4=D0=B0=D1=82=D0=B5=D0=BB?= =?UTF-8?q?=D1=8F=D0=BC=20=D0=BF=D0=BE=20=D0=B7=D0=B0=D0=B4=D0=B0=D1=87?= =?UTF-8?q?=D0=B5.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- VERSIONS.md | 9 +- .../узВопросыОтветы/Ext/ObjectModule.bsl | 61 ++++++- src/cf/Catalogs/узЗадачи/Ext/ObjectModule.bsl | 169 +++++++++--------- src/cf/Enums/узВидыСобытий.xml | 16 ++ .../Ext/ManagerModule.bsl | 2 + .../Ext/ManagerModule.bsl | 70 +++++++- 6 files changed, 232 insertions(+), 95 deletions(-) diff --git a/VERSIONS.md b/VERSIONS.md index 6a0b3bfe4..852d9c213 100644 --- a/VERSIONS.md +++ b/VERSIONS.md @@ -2,6 +2,8 @@ * Вставить инфу что теперь проект проверяется Sonar * Вставить инфу, что отработанны ошибки найденные по Sonar теперь ошибок равно 0 + + * Обновить в файле настроек сонара новую версию релиза sonar.projectVersion=1.0.5.001 Вставка картинки из буфера @@ -24,9 +26,10 @@ Wiki изменения: | Вид события| Отправка исполнителю| Отправка наблюдателям | Отправка старому исполнителю| Отправка заказчику| Автор вопроса| Кто может решить вопрос| | ------------- |:-------------:| :-------------:|:-------------:|:-------------:|:-------------:|:-------------:| -| Добавлен вопрос| V | X |X|X|V|V| -| Изменен ответ| V | X |X|X|V|V| -| Вопрос закрыт| V | X |X|X|V|V| +| Добавлен вопрос| V | V |X|X|V|V| +| Изменен вопрос| V | V |X|X|V|V| +| Изменен ответ| V | V |X|X|V|V| +| Вопрос закрыт| V | V |X|X|V|V| **Выпущена версия 1.0.5.001 (Обновление от 02.05.2020)** diff --git a/src/cf/Catalogs/узВопросыОтветы/Ext/ObjectModule.bsl b/src/cf/Catalogs/узВопросыОтветы/Ext/ObjectModule.bsl index 4c3cecc37..a4f7faa87 100644 --- a/src/cf/Catalogs/узВопросыОтветы/Ext/ObjectModule.bsl +++ b/src/cf/Catalogs/узВопросыОтветы/Ext/ObjectModule.bsl @@ -38,6 +38,11 @@ СтрокаТЗСобытия.ВидСобытия = ПредопределенноеЗначение("Перечисление.узВидыСобытий.ИзмененОтвет"); КонецЕсли; + Если ИзмененВопрос() Тогда + СтрокаТЗСобытия = ТЗСобытия.Добавить(); + СтрокаТЗСобытия.ВидСобытия = ПредопределенноеЗначение("Перечисление.узВидыСобытий.ИзмененВопрос"); + КонецЕсли; + Возврат ТЗСобытия; КонецФункции @@ -51,6 +56,16 @@ Возврат пИзмененОтвет; КонецФункции +Функция ИзмененВопрос() + пИзмененВопрос = Ложь; + + Если Ссылка.Вопрос <> Вопрос Тогда + пИзмененВопрос = Истина; + КонецЕсли; + + Возврат пИзмененВопрос; +КонецФункции + Процедура ПриЗаписи(Отказ) Если ОбменДанными.Загрузка Тогда @@ -104,12 +119,21 @@ ДопПараметры.Вставить("ВажностьЗадачи",ПараметрыПисьма.ВажностьЗадачи); ТекПользователь = Пользователи.ТекущийПользователь(); - Исполнитель = Задача.Исполнитель; + Исполнитель = ПредопределенноеЗначение("Справочник.Пользователи.ПустаяСсылка"); + + МассивНаблюдателей = Новый Массив(); + Если ЗначениеЗаполнено(Задача) Тогда + МассивНаблюдателей = РегистрыСведений.узНаблюдателиЗаЗадачами.ПолучитьМассивНаблюдателей(Задача); + Исполнитель = Задача.Исполнитель; + КонецЕсли; МассивПользователейКомуПредварительный = Новый Массив(); МассивПользователейКомуПредварительный.Добавить(Автор); МассивПользователейКомуПредварительный.Добавить(Исполнитель); МассивПользователейКомуПредварительный.Добавить(КтоМожетОтветить); + Для каждого пНаблюдатель из МассивНаблюдателей Цикл + МассивПользователейКомуПредварительный.Добавить(пНаблюдатель); + КонецЦикла; МассивПользователейКому = Новый Массив(); @@ -149,10 +173,13 @@ ПараметрыПисьма.Вставить("ВажностьЗадачи",ВажностьЗадачи); ЗаполненаЗадача = Ложь; + НомерЗадачи = ""; + ПредставлениеЗадачи = ""; Если ЗначениеЗаполнено(Задача) Тогда ЗаполненаЗадача = Истина; ВажностьЗадачи = Задача.Важность; НомерЗадачи = ""+Формат(Задача.Код,"ЧГ=0"); + ПредставлениеЗадачи = "#" + НомерЗадачи + " " + Задача.Наименование; КонецЕсли; ТемаПисьма = "Изменения по вопросу"; @@ -169,9 +196,9 @@ Если ЗаполненаЗадача Тогда - ТемаПисьма = "Новый вопрос к задаче #" + НомерЗадачи; + ТемаПисьма = "Новый вопрос к задаче " + ПредставлениеЗадачи; - ТекстПисьма = "К задаче #" + НомерЗадачи + " " + Автор + " задал вопрос " + КтоМожетОтветить; + ТекстПисьма = "К задаче " + ПредставлениеЗадачи + " " + Автор + " задал вопрос " + КтоМожетОтветить; ДобавитьВТекстПисьмаВопрос(ТекстПисьма); КонецЕсли @@ -186,13 +213,31 @@ Если ЗаполненаЗадача Тогда - ТемаПисьма = "Изменен ответ по вопросу к задаче #" + НомерЗадачи; + ТемаПисьма = "Изменен ответ по вопросу к задаче " + ПредставлениеЗадачи; - ТекстПисьма = "Изменен ответ по вопросу к задаче #" + НомерЗадачи; + ТекстПисьма = "Изменен ответ по вопросу к задаче " + ПредставлениеЗадачи; ДобавитьВТекстПисьмаВопрос(ТекстПисьма); ДобавитьВТекстПисьмаОтвет(ТекстПисьма); - КонецЕсли + КонецЕсли + + ИначеЕсли ВидСобытия = Перечисления.узВидыСобытий.ИзмененВопрос Тогда + + ТемаПисьма = "Изменен вопрос "; + + ТекстПисьма = "Изменен вопрос "; + ДобавитьВТекстПисьмаВопрос(ТекстПисьма); + ДобавитьВТекстПисьмаОтвет(ТекстПисьма); + + Если ЗаполненаЗадача Тогда + + ТемаПисьма = "Изменен вопрос к задаче " + ПредставлениеЗадачи; + + ТекстПисьма = "Изменен вопрос к задаче " + ПредставлениеЗадачи; + ДобавитьВТекстПисьмаВопрос(ТекстПисьма); + ДобавитьВТекстПисьмаОтвет(ТекстПисьма); + + КонецЕсли ИначеЕсли ВидСобытия = Перечисления.узВидыСобытий.ЗакрытВопрос Тогда @@ -204,8 +249,8 @@ Если ЗаполненаЗадача Тогда - ТемаПисьма = "Вопрос закрыт к задаче #" + НомерЗадачи; - ТекстПисьма = "Вопрос закрыт к задаче #" + НомерЗадачи; + ТемаПисьма = "Вопрос закрыт к задаче " + ПредставлениеЗадачи; + ТекстПисьма = "Вопрос закрыт к задаче " + ПредставлениеЗадачи; ДобавитьВТекстПисьмаВопрос(ТекстПисьма); ДобавитьВТекстПисьмаОтвет(ТекстПисьма); diff --git a/src/cf/Catalogs/узЗадачи/Ext/ObjectModule.bsl b/src/cf/Catalogs/узЗадачи/Ext/ObjectModule.bsl index ec885c116..8f42fb5bc 100644 --- a/src/cf/Catalogs/узЗадачи/Ext/ObjectModule.bsl +++ b/src/cf/Catalogs/узЗадачи/Ext/ObjectModule.bsl @@ -693,95 +693,98 @@ КонецФункции Функция ПолучитьМассивНаблюдателей() - пЗадача = Ссылка; - МассивНаблюдателей = Новый Массив(); + Возврат РегистрыСведений.узНаблюдателиЗаЗадачами.ПолучитьМассивНаблюдателей(Ссылка); - Запрос = Новый Запрос; - Запрос.Текст = - "ВЫБРАТЬ - | узНаблюдателиЗаЗадачами.Пользователь - |ИЗ - | РегистрСведений.узНаблюдателиЗаЗадачами КАК узНаблюдателиЗаЗадачами - |ГДЕ - | узНаблюдателиЗаЗадачами.Задача = &Задача - | И узНаблюдателиЗаЗадачами.Пользователь.узНеОтправлятьУведомленияНаПочту = ЛОЖЬ - | И узНаблюдателиЗаЗадачами.Пользователь <> &Исполнитель"; - - - //+ #190 SZ 16.03.2020 - // Убираем из запроса проверку на Текущего пользователя. - // Проверку сделаем в обработке результата запроса + //пЗадача = Ссылка; // - // | И узНаблюдателиЗаЗадачами.Пользователь <> &ТекущийПользователь + //МассивНаблюдателей = Новый Массив(); // - //- #190 SZ 16.03.2020 - - - ТекущийПользователь = Пользователи.ТекущийПользователь(); - //+ #190 SZ 16.03.2020 - // Убираем из запроса проверку на Текущего пользователя. + //Запрос = Новый Запрос; + //Запрос.Текст = + //"ВЫБРАТЬ + //| узНаблюдателиЗаЗадачами.Пользователь + //|ИЗ + //| РегистрСведений.узНаблюдателиЗаЗадачами КАК узНаблюдателиЗаЗадачами + //|ГДЕ + //| узНаблюдателиЗаЗадачами.Задача = &Задача + //| И узНаблюдателиЗаЗадачами.Пользователь.узНеОтправлятьУведомленияНаПочту = ЛОЖЬ + //| И узНаблюдателиЗаЗадачами.Пользователь <> &Исполнитель"; // - //Запрос.УстановитьПараметр("ТекущийПользователь", ТекущийПользователь); // - // Проверку сделаем в обработке результата запроса - //- #190 SZ 16.03.2020 - - Запрос.УстановитьПараметр("Исполнитель", Исполнитель); - Запрос.УстановитьПараметр("Задача", пЗадача); - - РезультатЗапроса = Запрос.Выполнить(); - Если НЕ РезультатЗапроса.Пустой() Тогда - Выборка = РезультатЗапроса.Выбрать(); - Пока Выборка.Следующий() Цикл - МассивНаблюдателей.Добавить(Выборка.Пользователь); - КонецЦикла; - Конецесли; - - Для каждого СтрокаНаблюдатели из Статус.Наблюдатели цикл - Если МассивНаблюдателей.Найти(СтрокаНаблюдатели.Пользователь) <> Неопределено Тогда - Продолжить; - Конецесли; - - //+ #190 SZ 16.03.2020 - //Если СтрокаНаблюдатели.Пользователь = Пользователи.ТекущийПользователь() Тогда - // Продолжить; - //Конецесли; - Если СтрокаНаблюдатели.Пользователь = ТекущийПользователь - И НЕ СтрокаНаблюдатели.Пользователь.узОтправлятьУведомленияОДействияхПользователяЕмуНаПочту Тогда - Продолжить; - Конецесли; - //- #190 SZ 16.03.2020 - - //Павлюков - отсеем ненужных наблюдателей, у которых явно задано, за кем наблюдать - Если Не СтрокаНаблюдатели.Контрагент.Пустая() - И Не пЗадача.Контрагент.Пустая() - И Не СтрокаНаблюдатели.Контрагент = пЗадача.Контрагент Тогда - Продолжить; - КонецЕсли; - МассивНаблюдателей.Добавить(СтрокаНаблюдатели.Пользователь); - Конеццикла; - - пНаблюдателиЗаОснЗадачей = пЗадача.ОсновнаяЗадача.НаблюдателиЗаОсновнойЗадачей; - Для каждого СтрокапНаблюдателиЗаОснЗадачей из пНаблюдателиЗаОснЗадачей цикл - пНаблюдатель = СтрокапНаблюдателиЗаОснЗадачей.Пользователь; - Если МассивНаблюдателей.Найти(пНаблюдатель) <> Неопределено Тогда - Продолжить; - Конецесли; - //+ #190 SZ 16.03.2020 - //Если пНаблюдатель = Пользователи.ТекущийПользователь() Тогда - // Продолжить; - //Конецесли; - Если пНаблюдатель = ТекущийПользователь - И НЕ пНаблюдатель.узОтправлятьУведомленияОДействияхПользователяЕмуНаПочту Тогда - Продолжить; - Конецесли; - //- #190 SZ 16.03.2020 - - МассивНаблюдателей.Добавить(пНаблюдатель); - Конеццикла; - - Возврат МассивНаблюдателей; + ////+ #190 SZ 16.03.2020 + //// Убираем из запроса проверку на Текущего пользователя. + //// Проверку сделаем в обработке результата запроса + //// + //// | И узНаблюдателиЗаЗадачами.Пользователь <> &ТекущийПользователь + //// + ////- #190 SZ 16.03.2020 + // + // + //ТекущийПользователь = Пользователи.ТекущийПользователь(); + ////+ #190 SZ 16.03.2020 + //// Убираем из запроса проверку на Текущего пользователя. + //// + ////Запрос.УстановитьПараметр("ТекущийПользователь", ТекущийПользователь); + //// + //// Проверку сделаем в обработке результата запроса + ////- #190 SZ 16.03.2020 + // + //Запрос.УстановитьПараметр("Исполнитель", Исполнитель); + //Запрос.УстановитьПараметр("Задача", пЗадача); + // + //РезультатЗапроса = Запрос.Выполнить(); + //Если НЕ РезультатЗапроса.Пустой() Тогда + // Выборка = РезультатЗапроса.Выбрать(); + // Пока Выборка.Следующий() Цикл + // МассивНаблюдателей.Добавить(Выборка.Пользователь); + // КонецЦикла; + //Конецесли; + // + //Для каждого СтрокаНаблюдатели из Статус.Наблюдатели цикл + // Если МассивНаблюдателей.Найти(СтрокаНаблюдатели.Пользователь) <> Неопределено Тогда + // Продолжить; + // Конецесли; + // + // //+ #190 SZ 16.03.2020 + // //Если СтрокаНаблюдатели.Пользователь = Пользователи.ТекущийПользователь() Тогда + // // Продолжить; + // //Конецесли; + // Если СтрокаНаблюдатели.Пользователь = ТекущийПользователь + // И НЕ СтрокаНаблюдатели.Пользователь.узОтправлятьУведомленияОДействияхПользователяЕмуНаПочту Тогда + // Продолжить; + // Конецесли; + // //- #190 SZ 16.03.2020 + // + // //Павлюков - отсеем ненужных наблюдателей, у которых явно задано, за кем наблюдать + // Если Не СтрокаНаблюдатели.Контрагент.Пустая() + // И Не пЗадача.Контрагент.Пустая() + // И Не СтрокаНаблюдатели.Контрагент = пЗадача.Контрагент Тогда + // Продолжить; + // КонецЕсли; + // МассивНаблюдателей.Добавить(СтрокаНаблюдатели.Пользователь); + //Конеццикла; + // + //пНаблюдателиЗаОснЗадачей = пЗадача.ОсновнаяЗадача.НаблюдателиЗаОсновнойЗадачей; + //Для каждого СтрокапНаблюдателиЗаОснЗадачей из пНаблюдателиЗаОснЗадачей цикл + // пНаблюдатель = СтрокапНаблюдателиЗаОснЗадачей.Пользователь; + // Если МассивНаблюдателей.Найти(пНаблюдатель) <> Неопределено Тогда + // Продолжить; + // Конецесли; + // //+ #190 SZ 16.03.2020 + // //Если пНаблюдатель = Пользователи.ТекущийПользователь() Тогда + // // Продолжить; + // //Конецесли; + // Если пНаблюдатель = ТекущийПользователь + // И НЕ пНаблюдатель.узОтправлятьУведомленияОДействияхПользователяЕмуНаПочту Тогда + // Продолжить; + // Конецесли; + // //- #190 SZ 16.03.2020 + // + // МассивНаблюдателей.Добавить(пНаблюдатель); + //Конеццикла; + // + //Возврат МассивНаблюдателей; КонецФункции Функция ПолучитьТемаПисьмаСобытие(ДопПараметры,СобытияВИстории) diff --git a/src/cf/Enums/узВидыСобытий.xml b/src/cf/Enums/узВидыСобытий.xml index 7d07f2b80..106d81ace 100644 --- a/src/cf/Enums/узВидыСобытий.xml +++ b/src/cf/Enums/узВидыСобытий.xml @@ -298,6 +298,22 @@ <Comment/> </Properties> </EnumValue> + <EnumValue uuid="5a3fab7e-5452-4a8e-8b30-9d531fa9839b"> + <Properties> + <Name>ИзмененВопрос</Name> + <Synonym> + <v8:item> + <v8:lang>ru</v8:lang> + <v8:content>Изменен вопрос</v8:content> + </v8:item> + <v8:item> + <v8:lang>en</v8:lang> + <v8:content>Add question</v8:content> + </v8:item> + </Synonym> + <Comment/> + </Properties> + </EnumValue> </ChildObjects> </Enum> </MetaDataObject> \ No newline at end of file diff --git a/src/cf/InformationRegisters/узАктивностиПользователей/Ext/ManagerModule.bsl b/src/cf/InformationRegisters/узАктивностиПользователей/Ext/ManagerModule.bsl index 3de0b71a6..fa975a7fc 100644 --- a/src/cf/InformationRegisters/узАктивностиПользователей/Ext/ManagerModule.bsl +++ b/src/cf/InformationRegisters/узАктивностиПользователей/Ext/ManagerModule.bsl @@ -133,11 +133,13 @@ ВидыСобытий_ДобавленВопрос = ПредопределенноеЗначение("Перечисление.узВидыСобытий.ДобавленВопрос"); ВидыСобытий_ЗакрытВопрос = ПредопределенноеЗначение("Перечисление.узВидыСобытий.ЗакрытВопрос"); ВидыСобытий_ИзмененОтвет = ПредопределенноеЗначение("Перечисление.узВидыСобытий.ИзмененОтвет"); + ВидыСобытий_ИзмененВопрос = ПредопределенноеЗначение("Перечисление.узВидыСобытий.ИзмененВопрос"); МассивВидовСобытияДляРегистрацииАктивности = Новый Массив(); МассивВидовСобытияДляРегистрацииАктивности.Добавить(ВидыСобытий_ДобавленВопрос); МассивВидовСобытияДляРегистрацииАктивности.Добавить(ВидыСобытий_ЗакрытВопрос); МассивВидовСобытияДляРегистрацииАктивности.Добавить(ВидыСобытий_ИзмененОтвет); + МассивВидовСобытияДляРегистрацииАктивности.Добавить(ВидыСобытий_ИзмененВопрос); Для каждого СтрокаТЗСобытия из ТЗСобытия цикл пВидСобытия = СтрокаТЗСобытия.ВидСобытия; diff --git a/src/cf/InformationRegisters/узНаблюдателиЗаЗадачами/Ext/ManagerModule.bsl b/src/cf/InformationRegisters/узНаблюдателиЗаЗадачами/Ext/ManagerModule.bsl index b794351af..11620b901 100644 --- a/src/cf/InformationRegisters/узНаблюдателиЗаЗадачами/Ext/ManagerModule.bsl +++ b/src/cf/InformationRegisters/узНаблюдателиЗаЗадачами/Ext/ManagerModule.bsl @@ -69,4 +69,72 @@ Функция ЕстьЛиСлежениеЗаЗадачейУТекущегоПользователя(Задача) Экспорт Возврат ЕстьЛиСлежениеЗаЗадачейУПользователя(Задача, Пользователи.ТекущийПользователь()); -КонецФункции \ No newline at end of file +КонецФункции + +Функция ПолучитьМассивНаблюдателей(Задача) Экспорт + + МассивНаблюдателей = Новый Массив(); + + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ + | узНаблюдателиЗаЗадачами.Пользователь + |ИЗ + | РегистрСведений.узНаблюдателиЗаЗадачами КАК узНаблюдателиЗаЗадачами + |ГДЕ + | узНаблюдателиЗаЗадачами.Задача = &Задача + | И узНаблюдателиЗаЗадачами.Пользователь.узНеОтправлятьУведомленияНаПочту = ЛОЖЬ + | И узНаблюдателиЗаЗадачами.Пользователь <> &Исполнитель"; + + + ТекущийПользователь = Пользователи.ТекущийПользователь(); + + Запрос.УстановитьПараметр("Исполнитель", Задача.Исполнитель); + Запрос.УстановитьПараметр("Задача", Задача); + + РезультатЗапроса = Запрос.Выполнить(); + Если НЕ РезультатЗапроса.Пустой() Тогда + Выборка = РезультатЗапроса.Выбрать(); + Пока Выборка.Следующий() Цикл + МассивНаблюдателей.Добавить(Выборка.Пользователь); + КонецЦикла; + КонецЕсли; + + ТЧСтатусНаблюдатели = Задача.Статус.Наблюдатели; + + Для каждого СтрокаНаблюдатели из ТЧСтатусНаблюдатели цикл + Если МассивНаблюдателей.Найти(СтрокаНаблюдатели.Пользователь) <> Неопределено Тогда + Продолжить; + КонецЕсли; + + Если СтрокаНаблюдатели.Пользователь = ТекущийПользователь + И НЕ СтрокаНаблюдатели.Пользователь.узОтправлятьУведомленияОДействияхПользователяЕмуНаПочту Тогда + Продолжить; + КонецЕсли; + + Если НЕ СтрокаНаблюдатели.Контрагент.Пустая() + И НЕ Задача.Контрагент.Пустая() + И НЕ СтрокаНаблюдатели.Контрагент = Задача.Контрагент Тогда + Продолжить; + КонецЕсли; + МассивНаблюдателей.Добавить(СтрокаНаблюдатели.Пользователь); + КонецЦикла; + + пНаблюдателиЗаОснЗадачей = Задача.ОсновнаяЗадача.НаблюдателиЗаОсновнойЗадачей; + Для каждого СтрокапНаблюдателиЗаОснЗадачей из пНаблюдателиЗаОснЗадачей цикл + пНаблюдатель = СтрокапНаблюдателиЗаОснЗадачей.Пользователь; + Если МассивНаблюдателей.Найти(пНаблюдатель) <> Неопределено Тогда + Продолжить; + КонецЕсли; + + Если пНаблюдатель = ТекущийПользователь + И НЕ пНаблюдатель.узОтправлятьУведомленияОДействияхПользователяЕмуНаПочту Тогда + Продолжить; + КонецЕсли; + + МассивНаблюдателей.Добавить(пНаблюдатель); + КонецЦикла; + + Возврат МассивНаблюдателей; + +КонецФункции \ No newline at end of file From 4a7977ee658e6f56c92cb7e43bb4f991b0c7295b Mon Sep 17 00:00:00 2001 From: Anton Ivanov <iab@bk.ru> Date: Sun, 19 Jul 2020 11:12:08 +0300 Subject: [PATCH 13/13] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D0=BB=20=D1=88=D0=B8=D0=BB=D0=B4=D0=B8=D0=BA=20=D1=81=20=D0=BA?= =?UTF-8?q?=D0=BE=D0=BB=D0=B8=D1=87=D0=B5=D1=81=D1=82=D0=B2=D0=BE=D0=BC=20?= =?UTF-8?q?=D0=BE=D1=88=D0=B8=D0=B1=D0=BE=D0=BA=20=D0=B2=20=D1=81=D0=BE?= =?UTF-8?q?=D0=BD=D0=B0=D1=80=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6b86f6153..739633835 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,7 @@ [](http://1clancer.ru/catalog/2764) []() [](https://sonar.openbsl.ru/dashboard?id=tasks) +[](https://sonar.openbsl.ru/dashboard?id=tasks) [](https://t.me/mtasks) [](https://t.me/joinchat/KbD_hhM1tJGb3B3gz6QIvA)