Предложение ПОРОДИТЬ

Задание имени порождаемого литералом запроса типа. Предложение имеет следующий синтаксис:

[ПОРОДИТЬ 
   имя-типа-структуры]

Если вы хотите обрабатывать результат типизированного запроса в другом методе, то вам понадобится заранее знать тип строки результата запроса, чтобы написать вызов другого метода. Однако по умолчанию у тип-строки-результата-запроса нет имени.

ДругойМетод(РезультатЗапроса<тип-строки-результата-запроса>)
Чтобы выйти из этой ситуации, можно явно задать имя типа строки результата запроса. Используйте для этого синтаксис ПОРОДИТЬ, в котором укажите нужное имя.
Примечание: Вы также можете использовать существующий тип в качестве типа строки результата запроса. Для этого в запросе укажите предложение ЗАПОЛНИТЬ (подробнее).
// Задать текст запроса.
знч Запрос = Запрос{ВЫБРАТЬ 
                        Сотрудники.Ссылка КАК Ссылка,
                        Сотрудники.ФИО КАК ФИО 
                     ПОРОДИТЬ
                        Сотрудник
                     ИЗ
                        Сотрудники КАК Сотрудники}

// Передать результат запроса в другой метод.
ДругойМетод(Запрос.Выполнить())


метод ДругойМетод(РезультатЗапроса: РезультатЗапроса<Сотрудник>)
;

В этом примере явно задается имя типа строки результата запроса — Сотрудник. И это же имя типа используется для параметризации обобщенного типа в параметре метода ДругойМетод().

Результирующее имя типа формируется как имя типа, владеющего модулем (в котором литерал запроса, в данном случае — Приложение) и, через точку, имя типа строки результата, указанное в запросе (Приложение.Сотрудник). В рамках того же модуля, в котором написан запрос, можно обращаться к типу по локальному имени — без имени типа, владеющего модулем (Сотрудник).

Примечание: Порожденный литералом запроса тип доступен на клиенте, и значения такого типа можно передавать между клиентом и сервером.