Добрый день,

помогите, пожалуйста, понять, что я делаю не так.

Хочу сделать доп. обработчик, который бы автоматически запускал процесс ознакомления после согласования документа и подставлял в него дополнительных адресатов из доп. реквизитов документа. Возникла проблема в получении доп. реквизитов.

У вида документа "_Служебная записка" есть 4 доп. реквизита (Адресат 2, Адресат 3, Адресат 4, Адресат 5) с составным типом данных: Пользователь, Подразделение, Рабочая группа.

Пытаюсь получить доп. реквизиты через запрос:

```1c
    БизнесПроцесс = Событие.Источник;

    Если ТипЗнч(БизнесПроцесс) = Тип("БизнесПроцессСсылка.Согласование")
    И (БизнесПроцесс.РезультатСогласования = Перечисления.РезультатыСогласования.Согласовано
    ИЛИ БизнесПроцесс.РезультатСогласования = Перечисления.РезультатыСогласования.СогласованоСЗамечаниями) Тогда

    ТипыДокументов = Новый Массив;
    ТипыДокументов.Добавить(Тип("СправочникСсылка.ВнутренниеДокументы"));

    ВидыДокументов = Новый Массив;
    ВидыДокументов.Добавить(Справочники.ВидыВнутреннихДокументов.НайтиПоНаименованию("_Служебная записка"));

    ОсновныеПредметы = МультипредметностьКлиентСервер.ПолучитьМассивПредметовОбъекта(БизнесПроцесс, ТипыДокументов, Истина);

    Для Каждого Предмет ИЗ ОсновныеПредметы Цикл

    Если ВидыДокументов.Найти(Предмет.ВидДокумента) <> Неопределено Тогда

    ШаблонПроцесса = Справочники.ШаблоныОзнакомления.НайтиПоНаименованию("Ознакомление адресата");
    Если ШаблонПроцесса <> Неопределено Тогда

    Процесс = БизнесПроцессы.Ознакомление.СоздатьБизнесПроцесс();
    Процесс.Заполнить(Новый Структура("Предметы, Шаблон", Предмет, ШаблонПроцесса));
    Процесс.Автор = Предмет.Подготовил;

    Запрос = Новый Запрос;
    Запрос.Текст = "
    |ВЫБРАТЬ
    | ВнутренниеДокументыДополнительныеРеквизиты.Свойство КАК Свойство,
    | ВнутренниеДокументыДополнительныеРеквизиты.Значение КАК Значение
    |ИЗ
    | Справочник.ВнутренниеДокументы.ДополнительныеРеквизиты КАК ВнутренниеДокументыДополнительныеРеквизиты
    |ГДЕ
    | ВнутренниеДокументы.Ссылка = &ВладелецФайла
    | И (ВнутренниеДокументыДополнительныеРеквизиты.Свойство = &ДопАдресат2
    | ИЛИ ВнутренниеДокументыДополнительныеРеквизиты.Свойство = &ДопАдресат3
    | ИЛИ ВнутренниеДокументыДополнительныеРеквизиты.Свойство = &ДопАдресат4
    | ИЛИ ВнутренниеДокументыДополнительныеРеквизиты.Свойство = &ДопАдресат5)";
    Запрос.УстановитьПараметр("ВладелецФайла", Предмет.Ссылка);
    Запрос.УстановитьПараметр("ДопАдресат2", ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Адресат 2"));
    Запрос.УстановитьПараметр("ДопАдресат3", ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Адресат 3"));
    Запрос.УстановитьПараметр("ДопАдресат4", ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Адресат 4"));
    Запрос.УстановитьПараметр("ДопАдресат5", ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Адресат 5"));

    РезультатВыборки = Запрос.Выполнить().Выбрать();
    Пока РезультатВыборки.Следующий() Цикл
    Если ТипЗнч(РезультатВыборки.Значение) = Тип("СправочникСсылка.Пользователи") Тогда
    Строка = Процесс.Исполнители.Добавить();
    Строка.Исполнитель = Справочники.Пользователи.НайтиПоНаименованию(РезультатВыборки.Значение);
    ИначеЕсли ТипЗнч(РезультатВыборки.Значение) = Тип("СправочникСсылка.СтруктураПредприятия") Тогда
    Строка = Процесс.Исполнители.Добавить();
    Строка.Исполнитель = Справочники.СтруктураПредприятия.НайтиПоНаименованию(РезультатВыборки.Значение);
    ИначеЕсли ТипЗнч(РезультатВыборки.Значение) = Тип("СправочникСсылка.РабочиеГруппы") Тогда
    Строка = Процесс.Исполнители.Добавить();
    Строка.Исполнитель = Справочники.РабочиеГруппы.НайтиПоНаименованию(РезультатВыборки.Значение);
    КонецЕсли;
    КонецЦикла;

    Процесс.Дата = ТекущаяДата();
    Процесс.Записать();
    Процесс.Старт();

    КонецЕсли;

    КонецЕсли;
    КонецЦикла;

    КонецЕсли;
```

Доп. обработчик подписан на "Завершение процесса".
В произошедших бизнес-событиях вижу, что процесс не удалось обработать, но в Журнал регистрации никаких ошибок не падает :(

P.S. Нет ли более простого способа получения доп. реквизитов, как, например, в скриптах автозаполнения шаблонов файлов "ПолучитьЗначениеДопРеквизитаОбъекта(Файл.ВладелецФайла.Ссылка, "Название доп. реквизита") ?
---
ВсеСвойства = УправлениеСвойствами.ПолучитьСписокСвойств(Предмет, Истина, Ложь);

Дальше перебором. Удобного способа в ДО нет, т.к. он давно не обновляется и там старая версия БСП. В конфигурациях со свежими БСП в доп реквизиты добавили удобную штуку - возможность добавления уникального идентификатора для доп реквизита, чтобы к нему можно было удобно обращаться. См. картинку
---
Рискну предложить такой вариант:

```1c
    БизнесПроцесс = Событие.Источник;

    Если ТипЗнч(БизнесПроцесс) = Тип("БизнесПроцессСсылка.Согласование")
    И (БизнесПроцесс.РезультатСогласования = Перечисления.РезультатыСогласования.Согласовано
    ИЛИ БизнесПроцесс.РезультатСогласования = Перечисления.РезультатыСогласования.СогласованоСЗамечаниями) Тогда

    ТипыДокументов = Новый Массив;
    ТипыДокументов.Добавить(Тип("СправочникСсылка.ВнутренниеДокументы"));

    ВидыДокументов = Новый Массив;
    ВидыДокументов.Добавить(Справочники.ВидыВнутреннихДокументов.НайтиПоНаименованию("_Служебная записка"));

    ОсновныеПредметы = МультипредметностьКлиентСервер.ПолучитьМассивПредметовОбъекта(БизнесПроцесс, ТипыДокументов, Истина);

    Для Каждого Предмет ИЗ ОсновныеПредметы Цикл

    Если ВидыДокументов.Найти(Предмет.ВидДокумента) <> Неопределено Тогда

    ШаблонПроцесса = Справочники.ШаблоныОзнакомления.НайтиПоНаименованию("Ознакомление адресата");
    Если ШаблонПроцесса <> Неопределено Тогда

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

    ЗначенияСвойств = УправлениеСвойствами.ПолучитьЗначенияСвойств(Предмет, Истина, Ложь);
    ТаблицаИсполнители = ПроцессОзнакомления.Исполнители;
    Для Каждого СтрокаТаблицы ИЗ ЗначенияСвойств Цикл
    ЗначениеСвойства = СтрокаТаблицы.Значение;
    Если НЕ ПользователиДокументооборот.ЭтоКонтейнер(ЗначениеСвойства) Тогда
    Продолжить;
    КонецЕсли;
    ВыбранныеИсполнители = ПользователиДокументооборот.СоставКонтейнера(ЗначениеСвойства);
    Для Каждого ВыбранныйИсполнитель ИЗ ВыбранныеИсполнители Цикл

    ПараметрыОтбора = Новый Структура;
    ПараметрыОтбора.Вставить("Исполнитель", ВыбранныйИсполнитель);

    НайденныеСтроки = ТаблицаИсполнители.НайтиСтроки(ПараметрыОтбора);
    Если НайденныеСтроки.Количество() = 0 Тогда
    НоваяСтрокаИсполнитель = ТаблицаИсполнители.Добавить();
    НоваяСтрокаИсполнитель.Исполнитель = ВыбранныйИсполнитель;
    КонецЕсли;

    КонецЦикла;
    КонецЦикла;

    ПроцессОзнакомления.Записать();
    ПроцессОзнакомления.Старт();

    КонецЕсли;

    КонецЕсли;

    КонецЦикла;

    КонецЕсли;
```
---
Нашла ошибку в запросе. С получением доп. реквизитов теперь проблем нет.

```1c
    Запрос = Новый Запрос;
    Запрос.Текст = "
    |ВЫБРАТЬ
    | ВнутренниеДокументы.ДополнительныеРеквизиты.Свойство КАК Свойство,
    | ВнутренниеДокументы.ДополнительныеРеквизиты.Значение КАК Значение
    |ИЗ
    | Справочник.ВнутренниеДокументы КАК ВнутренниеДокументы
    |ГДЕ
    | ВнутренниеДокументы.Ссылка = &ЭтотДокумент
    | И (ВнутренниеДокументы.ДополнительныеРеквизиты.Свойство = &ДопАдресат2
    | ИЛИ ВнутренниеДокументы.ДополнительныеРеквизиты.Свойство = &ДопАдресат3
    | ИЛИ ВнутренниеДокументы.ДополнительныеРеквизиты.Свойство = &ДопАдресат4
    | ИЛИ ВнутренниеДокументы.ДополнительныеРеквизиты.Свойство = &ДопАдресат5)";
    Запрос.УстановитьПараметр("ЭтотДокумент", Предмет.Ссылка);
    Запрос.УстановитьПараметр("ДопАдресат2", ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Адресат 2"));
    Запрос.УстановитьПараметр("ДопАдресат3", ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Адресат 3"));
    Запрос.УстановитьПараметр("ДопАдресат4", ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Адресат 4"));
    Запрос.УстановитьПараметр("ДопАдресат5", ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Адресат 5"));
```

Но я почему-то вообразила, что можно добавить в исполнители целое подразделение или рабочую группу %))
вот здесь:

```1c
    ИначеЕсли ТипЗнч(РезультатВыборки.Значение) = Тип("СправочникСсылка.СтруктураПредприятия") Тогда
    Строка = Процесс.Исполнители.Добавить();
    Строка.Исполнитель = Справочники.СтруктураПредприятия.НайтиПоНаименованию(РезультатВыборки.Значение);
    ИначеЕсли ТипЗнч(РезультатВыборки.Значение) = Тип("СправочникСсылка.РабочиеГруппы") Тогда
    Строка = Процесс.Исполнители.Добавить();
    Строка.Исполнитель = Справочники.РабочиеГруппы.НайтиПоНаименованию(РезультатВыборки.Значение);
    КонецЕсли;
```

Получается, придется запросом же выбирать из справочников подразделений и рабочих групп всех пользователей, в них содержащихся и добавлять их в процесс?

И вопрос про более простой способ получения доп. реквизитов остается открытым...
---
ВсеСвойства = УправлениеСвойствами.ПолучитьСписокСвойств(Предмет, Истина, Ложь);

Дальше перебором. Удобного способа в ДО нет, т.к. он давно не обновляется и там старая версия БСП. В конфигурациях со свежими БСП в доп реквизиты добавили удобную штуку - возможность добавления уникального идентификатора для доп реквизита, чтобы к нему можно было удобно обращаться. См. картинку
---
спасибо большое за информацию

в итоге остановилась на варианте с функцией Предмет.ДополнительныеРеквизиты.Найти()

```1c
    ДопАдресаты = Новый Массив;
    ДопАдресаты.Добавить("Адресат 2");
    ДопАдресаты.Добавить("Адресат 3");
    ДопАдресаты.Добавить("Адресат 4");
    ДопАдресаты.Добавить("Адресат 5");

    Для Каждого ДопАдресат ИЗ ДопАдресаты Цикл
    ДопАдресатНомер = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию(ДопАдресат);
    ДопАдресатЗначение = Предмет.ДополнительныеРеквизиты.Найти(ДопАдресатНомер, "Свойство").Значение;

    Если ЗначениеЗаполнено(ДопАдресатЗначение) Тогда

    Если ТипЗнч(ДопАдресатЗначение) = Тип("СправочникСсылка.Пользователи") Тогда

    Строка = Процесс.Исполнители.Добавить();
    Строка.Исполнитель = Справочники.Пользователи.НайтиПоНаименованию(ДопАдресатЗначение);

    ИначеЕсли ТипЗнч(ДопАдресатЗначение) = Тип("СправочникСсылка.СтруктураПредприятия") Тогда

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

    Строка = Процесс.Исполнители.Добавить();
    Строка.Исполнитель = Справочники.Пользователи.НайтиПоНаименованию(ВыборкаПользователейПодразделения.Пользователь);

    КонецЦикла;

    ИначеЕсли ТипЗнч(ДопАдресатЗначение) = Тип("СправочникСсылка.РабочиеГруппы") Тогда
    КонецЕсли;

    КонецЕсли;
    КонецЦикла;
```

Вот так получилось для типов значений Пользователь и Подразделение. Осталось для Рабочих групп настроить :)
---
(3)
Что-то никак не получается у меня для Рабочих групп настроить добавление исполнителей

```1c
    ИначеЕсли ТипЗнч(ДопАдресатЗначение) = Тип("СправочникСсылка.РабочиеГруппы") Тогда

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

    Строка = Процесс.Исполнители.Добавить();
    Строка.Исполнитель = Справочники.Пользователи.НайтиПоНаименованию(ВыборкаПользователейРабочейГруппы.Пользователь);

    КонецЦикла;

    КонецЕсли;
```

Добавляет одного пустого пользователя и все...
---
Попробуйте использовать Функцию "СоставКонтейнераПользователей" из модуля менеджера справочника "РабочиеГруппы".
---
Для получения списка пользователей из Подразделения можно использовать Функцию "СоставКонтейнераПользователей" из модуля менеджера справочника "СтруктураПредприятия".
---
Не очень понятно, почему Вы не стали использовать функцию УправлениеСвойствами.ПолучитьСписокСвойств?
---
У меня не получилось ее правильно использовать вначале, сейчас попробовала еще раз и все заработало :) И спасибо большое за функцию СоставКонтейнераПользователей, сейчас все работает как надо и без запросов )

Вот что получилось в итоге

```1c
    БизнесПроцесс = Событие.Источник;

    Если ТипЗнч(БизнесПроцесс) = Тип("БизнесПроцессСсылка.Согласование")
    И (БизнесПроцесс.РезультатСогласования = Перечисления.РезультатыСогласования.Согласовано
    ИЛИ БизнесПроцесс.РезультатСогласования = Перечисления.РезультатыСогласования.СогласованоСЗамечаниями) Тогда

    ТипыДокументов = Новый Массив;
    ТипыДокументов.Добавить(Тип("СправочникСсылка.ВнутренниеДокументы"));

    ВидыДокументов = Новый Массив;
    ВидыДокументов.Добавить(Справочники.ВидыВнутреннихДокументов.НайтиПоНаименованию("_Служебная записка"));

    ОсновныеПредметы = МультипредметностьКлиентСервер.ПолучитьМассивПредметовОбъекта(БизнесПроцесс, ТипыДокументов, Истина);

    Для Каждого Предмет ИЗ ОсновныеПредметы Цикл

    Если ВидыДокументов.Найти(Предмет.ВидДокумента) <> Неопределено Тогда

    ШаблонПроцесса = Справочники.ШаблоныОзнакомления.НайтиПоНаименованию("Ознакомление адресата");
    Если ШаблонПроцесса <> Неопределено Тогда

    Процесс = БизнесПроцессы.Ознакомление.СоздатьБизнесПроцесс();
    Процесс.Заполнить(Новый Структура("Предметы, Шаблон", Предмет, ШаблонПроцесса));
    Процесс.Автор = Предмет.Подготовил;

    СписокСвойств = УправлениеСвойствами.ПолучитьСписокСвойств(Предмет);
    СписокЗначений = УправлениеСвойствами.ПолучитьЗначенияСвойств(Предмет);

    Для Каждого Свойство ИЗ СписокСвойств Цикл
    Если Лев(Свойство.Заголовок, 8) = "Адресат " Тогда

    ДопАдресатЗначение = СписокЗначений.Найти(Свойство.Ссылка, "Свойство").Значение;

    Если ЗначениеЗаполнено(ДопАдресатЗначение) Тогда

    Если ТипЗнч(ДопАдресатЗначение) = Тип("СправочникСсылка.Пользователи") Тогда

    Строка = Процесс.Исполнители.Добавить();
    Строка.Исполнитель = Справочники.Пользователи.НайтиПоНаименованию(ДопАдресатЗначение);

    ИначеЕсли ТипЗнч(ДопАдресатЗначение) = Тип("СправочникСсылка.СтруктураПредприятия") Тогда

    ПользователиПодразделения = Справочники.СтруктураПредприятия.СоставКонтейнераПользователей(ДопАдресатЗначение);
    Для Каждого ПользовательПодразделения ИЗ ПользователиПодразделения Цикл

    Строка = Процесс.Исполнители.Добавить();
    Строка.Исполнитель = Справочники.Пользователи.НайтиПоНаименованию(ПользовательПодразделения);

    КонецЦикла;

    ИначеЕсли ТипЗнч(ДопАдресатЗначение) = Тип("СправочникСсылка.РабочиеГруппы") Тогда

    ПользователиРабочейГруппы = Справочники.РабочиеГруппы.СоставКонтейнераПользователей(ДопАдресатЗначение);
    Для Каждого ПользовательРабочейГруппы ИЗ ПользователиРабочейГруппы Цикл

    Строка = Процесс.Исполнители.Добавить();
    Строка.Исполнитель = Справочники.Пользователи.НайтиПоНаименованию(ПользовательРабочейГруппы);

    КонецЦикла;

    КонецЕсли;

    КонецЕсли;
    КонецЕсли;
    КонецЦикла;

    Процесс.Дата = ТекущаяДата();
    Процесс.Записать();
    Процесс.Старт();

    КонецЕсли;

    КонецЕсли;
    КонецЦикла;

    КонецЕсли;
```

Еще раз спасибо всем за помощь )
---
Рискну предложить такой вариант:

```1c
    БизнесПроцесс = Событие.Источник;

    Если ТипЗнч(БизнесПроцесс) = Тип("БизнесПроцессСсылка.Согласование")
    И (БизнесПроцесс.РезультатСогласования = Перечисления.РезультатыСогласования.Согласовано
    ИЛИ БизнесПроцесс.РезультатСогласования = Перечисления.РезультатыСогласования.СогласованоСЗамечаниями) Тогда

    ТипыДокументов = Новый Массив;
    ТипыДокументов.Добавить(Тип("СправочникСсылка.ВнутренниеДокументы"));

    ВидыДокументов = Новый Массив;
    ВидыДокументов.Добавить(Справочники.ВидыВнутреннихДокументов.НайтиПоНаименованию("_Служебная записка"));

    ОсновныеПредметы = МультипредметностьКлиентСервер.ПолучитьМассивПредметовОбъекта(БизнесПроцесс, ТипыДокументов, Истина);

    Для Каждого Предмет ИЗ ОсновныеПредметы Цикл

    Если ВидыДокументов.Найти(Предмет.ВидДокумента) <> Неопределено Тогда

    ШаблонПроцесса = Справочники.ШаблоныОзнакомления.НайтиПоНаименованию("Ознакомление адресата");
    Если ШаблонПроцесса <> Неопределено Тогда

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

    ЗначенияСвойств = УправлениеСвойствами.ПолучитьЗначенияСвойств(Предмет, Истина, Ложь);
    ТаблицаИсполнители = ПроцессОзнакомления.Исполнители;
    Для Каждого СтрокаТаблицы ИЗ ЗначенияСвойств Цикл
    ЗначениеСвойства = СтрокаТаблицы.Значение;
    Если НЕ ПользователиДокументооборот.ЭтоКонтейнер(ЗначениеСвойства) Тогда
    Продолжить;
    КонецЕсли;
    ВыбранныеИсполнители = ПользователиДокументооборот.СоставКонтейнера(ЗначениеСвойства);
    Для Каждого ВыбранныйИсполнитель ИЗ ВыбранныеИсполнители Цикл

    ПараметрыОтбора = Новый Структура;
    ПараметрыОтбора.Вставить("Исполнитель", ВыбранныйИсполнитель);

    НайденныеСтроки = ТаблицаИсполнители.НайтиСтроки(ПараметрыОтбора);
    Если НайденныеСтроки.Количество() = 0 Тогда
    НоваяСтрокаИсполнитель = ТаблицаИсполнители.Добавить();
    НоваяСтрокаИсполнитель.Исполнитель = ВыбранныйИсполнитель;
    КонецЕсли;

    КонецЦикла;
    КонецЦикла;

    ПроцессОзнакомления.Записать();
    ПроцессОзнакомления.Старт();

    КонецЕсли;

    КонецЕсли;

    КонецЦикла;

    КонецЕсли;
```
---
Спасибо за Ваш вариант )

Подскажите, пожалуйста, а можно ли в запущенный процесс добавить исполнителей?
Методом

```1c
    БизнесПроцесс = Событие.Источник;
    ...
    Строка = БизнесПроцесс.Исполнители.Добавить();
    Строка.Исполнитель = Справочники.Пользователи.НайтиПоНаименованию("Администратор");
```

не получается
---
Это уже отдельный вопрос, без привязки к задаче, что обозначена выше?
---
да, наверное лучше вынести в отдельный топик
https://forum.infostart.ru/forum9/topic191307/
---
Если ТипЗнч(БизнесПроцесс) = Тип("БизнесПроцессСсылка.Согласование")

Воспользуюсь вашим вариантом, спасибо ;) Только заменю процесс "Согласование" на "Исполнение".

А как можно получить конкретного исполнителя из процесса? Например, если в задачах на исполнение есть исполнитель "Пупкин Иван Иванович", то обработчик срабатывает.
---
А можно поподробнее, что за задачу Вы пытаетесь решить?
---
отладчиком посмотрите тип-то вообще совпадает ? допускает ли тип Строка.Исполнитель установку данного типа ?
---
Директор хочет видеть все задачи своего заместителя, связанные с исходящими письмами. Ну т.е. если кто-то поставил задачу заместителю, она должна падать директору на ознакомление.