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

```1c
    Бронь = Событие.Источник;
    ТекстСообщения = "Бронирование";
    Регион = Справочники.ГрафикиРаботы.НайтипоКоду("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", "Создана бронь");
    НовоеУведомление.Пользователь = Справочники.Пользователи.НайтиПоНаименованию(Результат.Пользователь,Истина);
    НовоеУведомление.Записать();

    КонецЦикла;

    //Выполнить запись в календаре водителя
    РаботаСРабочимКалендаремКлиент.СоздатьЗаписьКалендаря(Бронь, Бронь.ДатаНачала, Бронь.ДатаОкончания, Бронь.ВесьДень, ТекстСообщения, Бронь.Помещение.ОтветственныйХозяйственноеОбеспечение);
```
---
Одна ошибка найдена. Вместо ролей исполнителей используются полные роли. Но, вопрос все еще актуален...

```1c
    РольИсполнителя = Справочники.ПолныеРоли.НайтиСоздатьПолнуюРоль(Справочники.РолиИсполнителей.НайтиПоНаименованию("ОХО"));
```
---
Вторая ошибка. Без явного получения источника события, его реквизиты оказываются недоступными и обращение к ним вызывает сбой.

```1c
    Бронь = Событие.Источник.ПолучитьОбъект();
```
---
Одна ошибка найдена. Вместо ролей исполнителей используются полные роли. Но, вопрос все еще актуален...

```1c
    РольИсполнителя = Справочники.ПолныеРоли.НайтиСоздатьПолнуюРоль(Справочники.РолиИсполнителей.НайтиПоНаименованию("ОХО"));
```
---
Вторая ошибка. Без явного получения источника события, его реквизиты оказываются недоступными и обращение к ним вызывает сбой.

```1c
    Бронь = Событие.Источник.ПолучитьОбъект();
```