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
+![Sonar0Issues](https://user-images.githubusercontent.com/10989306/87221808-8ea62880-c377-11ea-8238-79b39f3433df.png)
+
 * Обновить в файле настроек сонара новую версию релиза 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 @@
 [![1clancer.ru](https://img.shields.io/badge/1clancer.ru-downloads%20750-orange.svg)](http://1clancer.ru/catalog/2764)
 [![Github Releases](https://img.shields.io/github/downloads/BlizD/Tasks/latest/total.svg)]()
 [![Quality Gate Status](https://sonar.openbsl.ru/api/project_badges/measure?project=tasks&metric=alert_status)](https://sonar.openbsl.ru/dashboard?id=tasks)
+[![Sonar bugs](https://sonar.openbsl.ru/api/project_badges/measure?project=tasks&metric=bugs)](https://sonar.openbsl.ru/dashboard?id=tasks)
 [![telegram](https://img.shields.io/badge/telegram-channal-green.svg)](https://t.me/mtasks)
 [![telegram](https://img.shields.io/badge/telegram-chat-green.svg)](https://t.me/joinchat/KbD_hhM1tJGb3B3gz6QIvA)