Рассмотрим следующую ситуацию:
Имеется запрос, принимающий в качестве параметра таблицу значений.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ВременнаяТаблица.Номенклатура КАК Номенклатура |ПОМЕСТИТЬ ВТПредварительная |ИЗ | &ВременнаяТаблица КАК ВременнаяТаблица |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ВТПредварительная.Номенклатура, | ВТПредварительная.Номенклатура.Свойство |ИЗ | ВТПредварительная КАК ВТПредварительная"; Запрос.УстановитьПараметр("ВременнаяТаблица",ВременнаяТаблица); |
Колонки таблицы значений имеют ссылочный тип. Требуется в запросе выбирать вложенные реквизиты колонок.
Проблема:
При выборе поля таблицы значений
1 |
ВТПредварительная.Номенклатура.Свойство |
конструктор запроса не открывается, выдавая ошибку:
Решение:
- Выбирать поле свойства в самом первом запросе пакета:
1234567891011121314Запрос.Текст = "ВЫБРАТЬ| ВременнаяТаблица.Номенклатура КАК Номенклатура,| ВременнаяТаблица.Номенклатура.Свойство КАК Свойство|ПОМЕСТИТЬ ВТПредварительная|ИЗ| &ВременнаяТаблица КАК ВременнаяТаблица|;||////////////////////////////////////////////////////////////////////////////////|ВЫБРАТЬ| ВТПредварительная.Номенклатура,| ВТПредварительная.Свойство|ИЗ| ВТПредварительная КАК ВТПредварительная"; - Использовать функцию языка запросов «ВЫРАЗИТЬ»:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ |ВЫРАЗИТЬ(ВременнаяТаблица.Номенклатура КАК Справочник.Номенклатура) КАК Номенклатура |ПОМЕСТИТЬ ВТПредварительная |ИЗ |&ВременнаяТаблица КАК ВременнаяТаблица |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ |ВТПредварительная.Номенклатура, |ВТПредварительная.Номенклатура.Свойство |ИЗ |ВТПредварительная КАК ВТПредварительная"; Запрос.УстановитьПараметр("ВременнаяТаблица",ВременнаяТаблица); |
Поделиться