Дополнительные возможности параметров, передаваемых в запросе
Как из переданного параметра ссылочного типа в запросе получить различные поля объекта конфигурации
- Описание
- Подробнее
Описание
На днях писал запрос и наткнулся на интересную особенность при использовании параметров. Если передать параметры ссылочных типов, то к ним можно обращаться как к объектам конфигурации — через оператор «точка». Например: нам необходимо выбрать документы «исполнительные листы» по какой-либо организации. Причем если в качестве параметра передается организация с кодом «01», нам нужно выбрать документы относящееся к организациям с кодами «01», «02», «03», иначе выбрать документы по переданной организации:
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ
|ИсполнительныйЛист.Организация КАК Организация,
|ИсполнительныйЛист.Физлицо КАК Сотрудник,
|ИсполнительныйЛист.Предел КАК СуммаВсего
|
|ИЗ
|Документ.ИсполнительныйЛист КАК ИсполнительныйЛист
|
|ГДЕ
|ВЫБОР КОГДА (ВЫРАЗИТЬ((&Организация).Код КАК СТРОКА(2))= "01" )
| ТОГДА ВЫРАЗИТЬ(ИсполнительныйЛист.Организация.Код КАК СТРОКА(2)) В ("01","02","53")
| ИНАЧЕ
| ИсполнительныйЛист.Организация = &Организация
|КОНЕЦ";
Запрос.УстановитьПараметр("Организация", Справочник.Организации.НайтиПоКоду("01")); В этом запросе мы обращаемся к параметру ссылочного типа «&Организация», мы можем извлечь из этого параметра любую информацию, например: наименование (&Организация.Наименование) или ИНН (&Организация.ИНН), словом все те реквизиты, которые есть в справочнике «Организации». При попытке открыть этот запрос в конструкторе запросов будет выдаваться ошибка, т.к. конструктор считает, что к параметру нельзя так обращаться, но на самом деле запрос РАБОТАЕТ!

