1С Документооборот: Точка маршрута "обработка".

1. pshik007 08.12.20 17:04 Сейчас в теме
Есть простенькая обработка которая отправляет Автору Предмета письмо:

УстановитьПривилегированныйРежим(Истина);

Ответственные	=	Новый ТаблицаЗначений;
КодОсновногоЯзыка = ОбщегоНазначенияКлиентСервер.КодОсновногоЯзыка();
Ответственные.Колонки.Добавить("Ответственный",Новый ОписаниеТипов("СправочникСсылка.Пользователи"));

НоваяСтрока	=	Ответственные.Добавить(); 

Запрос = Новый Запрос;
Запрос.Текст = 
	"ВЫБРАТЬ
	|ИсполнителиРолейИДелегаты.ИсполнительДелегат КАК ИсполнительДелегат
	|ИЗ
	|РегистрСведений.ИсполнителиРолейИДелегаты КАК ИсполнителиРолейИДелегаты
	|ГДЕ
	|ИсполнителиРолейИДелегаты.РольПользователь = &Ссылка";
	   
Запрос.УстановитьПараметр("Ссылка", Процесс.Предметы[0].Предмет.Подготовил);

РезультатЗапроса = Запрос.Выполнить();

ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
	НоваяСтрока	=	Ответственные.Добавить();
	НоваяСтрока.Ответственный	=	ВыборкаДетальныеЗаписи.ИсполнительДелегат;
КонецЦикла;	
	
Для Каждого Строка Из Ответственные Цикл
		
		Ответственный = Строка.Ответственный;
		ПочтовыйАдрес = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияОбъекта(Ответственный, Справочники.ВидыКонтактнойИнформации.EmailПользователя);
		
		Если ПустаяСтрока(ПочтовыйАдрес) Тогда
			ТекстСообщения = СтрШаблон(
				НСтр("ru='Уведомление менеджеру не было отправлено, так как у пользователя %1 не задан адрес электронной почты.';uk='Повідомлення менеджеру не було відправлено, тому що в користувача %1 не задана адреса електронної пошти.'",КодОсновногоЯзыка), 
				Строка(Ответственный));
			ЗаписьЖурналаРегистрации(НСтр("ru='Договор на приобритение. Уведомление менеджеру о появлении нового догвора с поставщиком.';uk='Договір постачання. Повідомлення менеджеру про появу нового договіру з постачальником'",КодОсновногоЯзыка),
				УровеньЖурналаРегистрации.Информация,,, ТекстСообщения);
			Продолжить;
		КонецЕсли;
		
		ПараметрыПисьма = Новый Структура;
		ПараметрыПисьма.Вставить("Кому", ПочтовыйАдрес);
		
		ТемаПисьма = 
		НСтр("ru='Ознакомтесь, пожалуйста, с новым договором поставщика:
        |
        |'
        |;uk='Ознайомтесь, будь ласка, з новим договором постачальника:
        |
        |'");
		
		ТелоПисьма = СтрШаблон(
			НСтр("ru='Договор: (%1)';uk='Договор: (%1)'"),
			""+Строка(Процесс.Предметы[0].Предмет)+"");
		ПараметрыПисьма.Вставить("Тема", ТемаПисьма);
		ПараметрыПисьма.Вставить("Текст", ТелоПисьма);
		ПараметрыПисьма.Вставить("ТипТекста", Перечисления.ТипыТекстовПочтовыхСообщений.HTML);
		
		ТекстСообщения = "";
		Попытка
			ЛегкаяПочтаСервер.ОтправитьИнтернетПочта(ПараметрыПисьма);
		Исключение
			ТекстСообщения = СтрШаблон(
				НСтр("ru='Ошибка при отправке уведомления менеджеру о появлении нового договора поставщика: %1.';uk='Помилка при відправленні повідомлення менеджеру про появу нового договору постачальника: %1.'",КодОсновногоЯзыка),
				ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
			УровеньВажностиСобытия = УровеньЖурналаРегистрации.Ошибка;
		КонецПопытки;
		
		Если ПустаяСтрока(ТекстСообщения) Тогда
			ТекстСообщения = СтрШаблон(
				НСтр("ru='Уведомление менеджеру про появление нового договора поставщика успешно отправлено на адрес %1.';uk='Повідомлення менеджеру про появу нового договору постачальника успішно відправлено на адресу %1.'",КодОсновногоЯзыка),
				ПочтовыйАдрес);
			УровеньВажностиСобытия = УровеньЖурналаРегистрации.Информация;
		КонецЕсли;
		
		ЗаписьЖурналаРегистрации(НСтр("ru='Договор на приобритение. Уведомление менеджеру про появление нового договора поставщика успешно отправлено';uk='Договір постачання. Повідомлення менеджеру про появу нового договору постачальника успішно відправлено'",КодОсновногоЯзыка),
			УровеньВажностиСобытия,,, ТекстСообщения);
		
	КонецЦикла; 
	
УстановитьПривилегированныйРежим(Ложь);
Показать



Так вот если поместить данный код во внешнюю обработку (соответственно добавив какой ни-будь реквизит где указывался б бизнес процесс) данный код работает на ура. Письмо отправляется. Когда же я помещаю этот код в схеме процесса в объект схемы "Обработка" он не выполняется ни в какую. Уважаемые знатоки Документооборота, в чем может быть причина, заранее благодарен.
По теме из базы знаний
Найденные решения
4. ilya.rudziak 34 08.12.20 18:00 Сейчас в теме
Я не об этом. В самой конфе указано что код выполняется в Безопасном режиме. Посмотрите когда там идет обработка кода. Это к конфигураторе
pshik007; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. ilya.rudziak 34 08.12.20 17:26 Сейчас в теме
Добрый день. На сколько помню данный код выполняется в БезопасномРежиме в обработчиках в ДО
pshik007; +1 Ответить
3. pshik007 08.12.20 17:34 Сейчас в теме
(2) Попробывал.
УстановитьБезопасныйРежим(Истина);
УстановитьПривилегированныйРежим(Истина);
.
.
.
.
.
.
.
УстановитьБезопасныйРежим(Ложь);
УстановитьПривилегированныйРежим(Ложь);
Показать


Тоже самое...
4. ilya.rudziak 34 08.12.20 18:00 Сейчас в теме
Я не об этом. В самой конфе указано что код выполняется в Безопасном режиме. Посмотрите когда там идет обработка кода. Это к конфигураторе
pshik007; +1 Ответить
5. pshik007 08.12.20 18:12 Сейчас в теме
(4) Понял, спасибо за наводку. В безопасном режиме действительно этот код не будет выполняться. Спасибо большое! Попробую отпишусь.
Оставьте свое сообщение

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