Рассылка уведомлений в документообороте. Падает запрос

1. user660224_laa 5 23.09.19 10:03 Сейчас в теме
Добрый день.

Написал расширение, которое при отправки уведомления присылает результаты предыдущих согласований на почту ( в виде переписки как в самом документообороте). Расширение заменяет функцию в модуле РаботаСУведомлениямиПредопределяемый.

При отработке на тестовой базе все отрабатывает, при запуске на рабочей базе рег задание уведомления падает на параметре документа, для которого мы запросом достаем переписку (ОбъектПодписки.БизнесПроцесс.ВедущаяЗадача.БизнесПроцесс;). Обе базы серверные, на 400 пользователей.

Подскажите, как можно поправить ситуацию?

&Вместо("СформироватьТекстУведомленияПоСобытиюПереопределяемый")
Функция УП_СформироватьТекстУведомленияПоСобытиюПереопределяемый(
	ОбъектПодписки,
	ВидСобытия,
	ОбъектУведомления,
	ПолучательУведомления,
	СпособУведомления,                                         
	ДополнительноеОписание)    
	
	ТекстУведомления = "";
	
	Попытка
		Если СпособУведомления = Перечисления.СпособыУведомления.ПоПочте Тогда
						
			ТекстСсылокВыполненияЗадачи = РаботаСУведомлениями.ПолучитьНавигационнуюСсылкуУведомления(ОбъектУведомления);
			ВключеноВыполнениеЗадачПоПочте = РегистрыСведений.НастройкиУведомлений.ПолучитьДополнительнуюНастройку(
			ПолучательУведомления,
			Перечисления.НастройкиУведомлений.ВыполнениеЗадачПоПочте);
			
			ВключеноВыполнениеЗадачПоПочте = РегистрыСведений.НастройкиУведомлений.ПолучитьДополнительнуюНастройку(
			ПолучательУведомления,
			Перечисления.НастройкиУведомлений.ВыполнениеЗадачПоПочте);
			
			Если ВключеноВыполнениеЗадачПоПочте Тогда
				Если ВидСобытия = Справочники.ВидыБизнесСобытий.СозданиеЗадачи
					Или ВидСобытия = Справочники.ВидыБизнесСобытий.ПеренаправлениеЗадачи
					Или	ВидСобытия = Справочники.ВидыБизнесСобытий.ПросроченаЗадача 
					Или	ВидСобытия = Справочники.ВидыБизнесСобытий.ПодошелСрокЗадачи Тогда
					НадписьВыполнениеЗадачПоПочте = ВыполнениеЗадачПоПочтеСервер.СформироватьТекстУведомленияПоЗадачеСВозможностьюВыполненияП­оПочте(
					ОбъектУведомления, ПолучательУведомления);
				Иначе
					НадписьВыполнениеЗадачПоПочте = РаботаСУведомлениями.СформироватьПредставлениеОбъекта(
					ОбъектУведомления,
					ВидСобытия,
					ПолучательУведомления,
					ДополнительноеОписание);
				КонецЕсли;
			КонецЕсли;
			
			Ссылка = ОбъектПодписки.БизнесПроцесс.ВедущаяЗадача.БизнесПроцесс;
			
			Запрос = Новый Запрос;
			Запрос.Текст = 			
			"ВЫБРАТЬ
			|	ИсторияВыполненияЗадач.БизнесПроцесс КАК БизнесПроцесс,
			|	ИсторияВыполненияЗадач.Описание КАК Описание
			|ИЗ
			|	БизнесПроцесс.КомплексныйПроцесс.Этапы КАК КомплексныйПроцессЭтапы
			|		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ИсторияВыполненияЗадач КАК ИсторияВыполненияЗадач
			|		ПО КомплексныйПроцессЭтапы.ЗапущенныйБизнесПроцесс = ИсторияВыполненияЗадач.БизнесПроцесс
			|ГДЕ
			|	КомплексныйПроцессЭтапы.Ссылка = &Ссылка
			|	И КомплексныйПроцессЭтапы.ЗадачаВыполнена = ИСТИНА";
			
			Запрос.УстановитьПараметр("Ссылка", Ссылка);
			
			РезультатЗапроса = Запрос.Выполнить();
			
			ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
			
			СписокСогласовавших= "";
			
			Если РезультатЗапроса.Пустой() Тогда
				
				ТекстУведомления = "";
				
				Возврат ТекстУведомления;
				
			КонецЕсли;
			
			Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
				
				СписокСогласовавших = СписокСогласовавших + Символы.ПС + ВыборкаДетальныеЗаписи.БизнесПроцесс + Символы.ПС + Символы.ПС + ВыборкаДетальныеЗаписи.Описание + Символы.ПС + Символы.ПС;
				
			КонецЦикла;
			
			УведомлениеКакВТиповой = Символы.ПС + НадписьВыполнениеЗадачПоПочте + Символы.ПС;
			
			
			ТекстУведомления = СтрШаблон("%1
			|
			|
			|Результат предыдущего согласования:
			|%2
			|",
			УведомлениеКакВТиповой,
			СписокСогласовавших);
			
		КонецЕсли;
	Исключение
		ТекстУведомления = "";
	КонецПопытки;
	
	
	Возврат ТекстУведомления;
	
	
КонецФункции
Показать
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. vnagapov 24.09.19 14:04 Сейчас в теме
Добрый день.
Я думаю дело в блокировках, которые вы накладываете на таблицы базы в конструкции ОбъектПодписки.БизнесПроцесс.ВедущаяЗадача.БизнесПроцесс
В тестовой у вас другая нагруженность. Поэтому такая конструкция "прокатывала". Разбейте получение необходимого реквизита на отдельные запросы или через стандартные ЗначениеРеквизитаОбъекта
user660224_laa; +1 Ответить
3. user660224_laa 5 24.09.19 19:40 Сейчас в теме
(2) Попробуем, как что то получится дам знать.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот