Дополнительные обработчики бизнес-событий

1. balaeva_nastasia 25.08.17 10:43 Сейчас в теме
Есть следующий обработчик, реагирующий на создание и изменение брони ("Бронирование помещений"). Он должен отправить определенной группе сотрудников уведомление и сделать запись в календаре ответственного сотрудника. Вроде ничего нового, но отрабатывать он не хочет... Подскажите, в чем может быть беда.

Бронь = Событие.Источник;
ТекстСообщения = "Бронирование";
Регион = Справочники.ГрафикиРаботы.НайтипоКоду("00-000001");
РольИсполнителя = Справочники.РолиИсполнителей.НайтиПоНаименованию("ОХО");

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

Запрос.УстановитьПараметр("РольИсполнителя", РольИсполнителя);
Запрос.УстановитьПараметр("Регион", Регион);

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

Пока Результат.Следующий() Цикл

    УстановитьПривилегированныйРежим(Истина);
		НовоеУведомление = Справочники.УведомленияПрограммы.СоздатьЭлемент();
		НовоеУведомление.ВидУведомления = Перечисления.ВидыУведомленийПрограммы.Информация;
		НовоеУведомление.Дата = ТекущаяДата();
		НовоеУведомление.КраткоеОписание = Строка(ТекстСообщения);
		//НовоеУведомление.Объект = Справочники.СообщенияОбсуждений.ПустаяСсылка();
		НовоеУведомление.Описание = "<ht ml> 
				|     <head> 
				|          <title>Оповещение пользователей</title>
				|     </head> 
				|     <body> 
				|          <H1>%3</H1> 
				|          <P>%1</P>
				|		   <P ALIGN=RIGHT>(%2)</P>
				|     </body> 
				|</html>";
		НовоеУведомление.Описание = СтрЗаменить(НовоеУведомление.Описание, "%1", СтрЗаменить(ТекстСообщения,Символы.ПС,""));
		НовоеУведомление.Описание = СтрЗаменить(НовоеУведомление.Описание, "%2", "Бронирование");
                НовоеУведомление.Описание = СтрЗаменить(НовоеУведомление.Описание, "%3", "Создана бронь");
		НовоеУведомление.Пользователь = Справочники.Пользователи.НайтиПоНаименованию(Результат.Пользователь,Истина);
		НовоеУведомление.Записать();

КонецЦикла;

//Выполнить запись в календаре водителя
РаботаСРабочимКалендаремКлиент.СоздатьЗаписьКалендаря(Бронь, Бронь.ДатаНачала, Бронь.ДатаОкончания, Бронь.ВесьДень, ТекстСообщения, Бронь.Помещение.ОтветственныйХозяйственноеОбеспечение);
Показать
По теме из базы знаний
Найденные решения
2. balaeva_nastasia 28.08.17 05:44 Сейчас в теме
Одна ошибка найдена. Вместо ролей исполнителей используются полные роли. Но, вопрос все еще актуален...
РольИсполнителя = Справочники.ПолныеРоли.НайтиСоздатьПолнуюРоль(Справочники.РолиИсполнителей.НайтиПоНаименованию("ОХО"));
3. balaeva_nastasia 29.08.17 03:11 Сейчас в теме
Вторая ошибка. Без явного получения источника события, его реквизиты оказываются недоступными и обращение к ним вызывает сбой.
Бронь = Событие.Источник.ПолучитьОбъект();
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. balaeva_nastasia 28.08.17 05:44 Сейчас в теме
Одна ошибка найдена. Вместо ролей исполнителей используются полные роли. Но, вопрос все еще актуален...
РольИсполнителя = Справочники.ПолныеРоли.НайтиСоздатьПолнуюРоль(Справочники.РолиИсполнителей.НайтиПоНаименованию("ОХО"));
3. balaeva_nastasia 29.08.17 03:11 Сейчас в теме
Вторая ошибка. Без явного получения источника события, его реквизиты оказываются недоступными и обращение к ним вызывает сбой.
Бронь = Событие.Источник.ПолучитьОбъект();
Оставьте свое сообщение

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