1С:Предприятие 8.3 (8.3.13.1690)
Документооборот 8 КОРП, редакция 2.1 (2.1.12.2)
--
Если создавать процесс и прикреплять к нему файл, то у исполнителя задачи появляется ошибка:

```1c
    {ОбщийМодуль.ОбщегоНазначения.Модуль(86)}: Значение не является значением объектного типа (Метаданные)
    Запрос.Текст =
```

Если прикреплять предмет - всё норм.

Код функции в общем модуле такой:

```1c
    // Возвращает структуру, содержащую значения реквизитов прочитанные из информационной базы
    // по ссылке на объект.
    //
    // Если доступа к одному из реквизитов нет, возникнет исключение прав доступа.
    // Если необходимо зачитать реквизит независимо от прав текущего пользователя,
    // то следует использовать предварительный переход в привилегированный режим.
    //
    // Функция не предназначена для получения значений реквизитов пустых ссылок.
    //
    // Параметры:
    // Ссылка - ЛюбаяСсылка - объект, значения реквизитов которого необходимо получить.
    //
    // Реквизиты - Строка - имена реквизитов, перечисленные через запятую, в формате
    // требований к свойствам структуры.
    // Например, "Код, Наименование, Родитель".
    // - Структура, ФиксированнаяСтруктура - в качестве ключа передается
    // псевдоним поля для возвращаемой структуры с результатом, а в качестве
    // значения (опционально) фактическое имя поля в таблице.
    // Если значение не определено, то имя поля берется из ключа.
    // - Массив, ФиксированныйМассив - имена реквизитов в формате требований
    // к свойствам структуры.
    //
    // Возвращаемое значение:
    // Структура - содержит имена (ключи) и значения затребованных реквизитов.
    // Если строка затребованных реквизитов пуста, то возвращается пустая структура.
    // Если в качестве объекта передана пустая ссылка, то все реквизиты вернутся со значением Неопределено.
    //
    Функция ЗначенияРеквизитовОбъекта(Ссылка, Знач Реквизиты) Экспорт

    Если ТипЗнч(Реквизиты) = Тип("Строка") Тогда
    Если ПустаяСтрока(Реквизиты) Тогда
    Возврат Новый Структура;
    КонецЕсли;
    Реквизиты = СтрРазделить(Реквизиты, ",", Ложь);
    КонецЕсли;

    СтруктураРеквизитов = Новый Структура;
    Если ТипЗнч(Реквизиты) = Тип("Структура") Или ТипЗнч(Реквизиты) = Тип("ФиксированнаяСтруктура") Тогда
    СтруктураРеквизитов = Реквизиты;
    ИначеЕсли ТипЗнч(Реквизиты) = Тип("Массив") Или ТипЗнч(Реквизиты) = Тип("ФиксированныйМассив") Тогда
    Для Каждого Реквизит Из Реквизиты Цикл
    СтруктураРеквизитов.Вставить(СтрЗаменить(Реквизит, ".", "), Реквизит);
    КонецЦикла;
    Иначе
    ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Неверный тип второго параметра Реквизиты: %1'"), Строка(ТипЗнч(Реквизиты)));
    КонецЕсли;

    ТекстПолей = ";
    Для Каждого КлючИЗначение Из СтруктураРеквизитов Цикл
    ИмяПоля = ?(ЗначениеЗаполнено(КлючИЗначение.Значение),
    СокрЛП(КлючИЗначение.Значение),
    СокрЛП(КлючИЗначение.Ключ));

    Псевдоним = СокрЛП(КлючИЗначение.Ключ);

    ТекстПолей = ТекстПолей + ?(ПустаяСтрока(ТекстПолей), ", ",") + "
    | " + ИмяПоля + " КАК " + Псевдоним;
    КонецЦикла;

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

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

    Возврат Результат;

    КонецФункции
```
---
Перед строкой
ВидДокумента = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Документ , "ВидДокумента");

попробуйте добавить проверку

```1c
    ПредметыВыборка = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.Ссылка, "Предметы");
    Предметы = ПредметыВыборка.Выгрузить();

    Документ = ОбзорЗадачВызовСервера.ПолучитьОсновнойПредметДокумент(Предметы);
    Если ЗначениеЗаполнено(Документ ) и ТипЗнч(Документ) = Тип("СправочникСсылка.ВнутренниеДокументы") тогда
    ВидМойДокумент = Справочники.ВидыВнутреннихДокументов.НайтиПонаименованию("Мой Документ");
    ВидДокумента = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Документ , "ВидДокумента");
    ...........
    КонецЕсли;
```
---
а вы попробуйте не прикреплять файл к незаписанному процессу
---
а как без файла-то? Нужен)

Нашлась причина ошибки.

Есть самописный код на форме бизнес-процессов (код подсказали здесь на форуме) - в зависимости от типа документа нужно было прятать некоторые элементы.

```1c
    ПредметыВыборка = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.Ссылка, "Предметы");
    Предметы = ПредметыВыборка.Выгрузить();

    Документ = ОбзорЗадачВызовСервера.ПолучитьОсновнойПредметДокумент(Предметы);
    ВидМойДокумент = Справочники.ВидыВнутреннихДокументов.НайтиПонаименованию("Мой Документ");
    ВидДокумента = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Документ, "ВидДокумента");
```

Теперь без него, как без рук(((
---
Перед строкой
ВидДокумента = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Документ , "ВидДокумента");

попробуйте добавить проверку

```1c
    ПредметыВыборка = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.Ссылка, "Предметы");
    Предметы = ПредметыВыборка.Выгрузить();

    Документ = ОбзорЗадачВызовСервера.ПолучитьОсновнойПредметДокумент(Предметы);
    Если ЗначениеЗаполнено(Документ ) и ТипЗнч(Документ) = Тип("СправочникСсылка.ВнутренниеДокументы") тогда
    ВидМойДокумент = Справочники.ВидыВнутреннихДокументов.НайтиПонаименованию("Мой Документ");
    ВидДокумента = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Документ , "ВидДокумента");
    ...........
    КонецЕсли;
```
---
Спасибо! Ошибка ушла!