|
Запрос по ТЗ. Обращение к реквизиту поля ТЗ типа СправочниксСсылка |
☑ |
0
bvb
22.05.13
✎
10:49
|
Есть ТЗ.При создании в ней явным образом описана колонка "контрагент" :
ТЗ.Колонки.Добавить("Контрагент",Новый ОписаниеТипов("СправочникСсылка.Контрагенты"),"Контрагент",25);
По заполненой ТЗ делается запрос. В нем я хочу вытащить из из поля "контрагент" ТЗ наименование для последующей сортировки результатов запроса :
Запрос.Текст =
"ВЫБРАТЬ
| ТЗ.Контрагент КАК Контрагент,
| ТЗ.Контрагент.Наименование КАК КонтрагентНаименование
|ПОМЕСТИТЬ ТЗ
|ИЗ
| &ТЗ КАК ТЗ
|;
При исполнении запроса возникает ошибка :
Поле не найдено "ТЗ.Контрагент.Наименование"
<<?>>ТЗ.Контрагент.Наименование КАК КонтрагентНаименование
Почему так ?
Я конечно могу создать в ТЗ отдельную колонку куда загнать наименование контрагента но это не комильфо.
|
|
1
tushich
22.05.13
✎
10:51
|
(0) в следующем запросе пакета если обратиться к наименованию из ВТ?
|
|
2
Borteg
22.05.13
✎
10:52
|
(0) описание типов не массив случаем должен быть?
|
|
3
Classic
22.05.13
✎
10:53
|
Сначала помести "эс из", а наименование доставай уже потом.
Обращение к наименованию - неявное соединение со справочником. Это не допускается при выборке из ТЗ
|
|
4
bvb
22.05.13
✎
10:58
|
(1) Не канает
(2) Что значит помести "эс из", ?
Зачем тогда в конструкторе запросов при редактировании свойств таблицы существует возможность указывать типы полей?
При заполнеии и сохранениии запроса текст запроса не меняется.
|
|
5
Classic
22.05.13
✎
11:04
|
Эс из означает
ВЫБРАТЬ
ТЗ.Контрагент
ПОМЕСТИТЬ ТЗ1
ИЗ &ТЗ КАК ТЗ
;
ВЫБРАТЬ
ТЗ2.Контрагент,
ТЗ2.Контрагент.Наименование
ИЗ ТЗ1 КАК ТЗ1
|
|
6
Classic
22.05.13
✎
11:07
|
(4)
Твой запрос
ВЫБРАТЬ
ТЗ.Контрагент.Наименование
ИЗ &ТЗ КАК ТЗ
Трансформируется (условно говоря в терминах одинэса) в
ВЫБРАТЬ
СправочникКонтрагенты.Наименование
ИЗ &ТЗ КАК ТЗ
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК СправочникКонтрагенты
ПО ТЗ.Контрагент = СправочникКонтрагенты.Ссылка
Соединения с параметром недопустимы. Что неясно?
|
|
7
bvb
22.05.13
✎
11:19
|
(6) Ну я собственно так и делаю просто я привел не весь запрос целиком
Запрос.Текст =
"ВЫБРАТЬ
| ТЗ.Контрагент КАК Контрагент
|ПОМЕСТИТЬ ТЗ1
|ИЗ
| &ТЗ КАК ТЗ
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ТЗ2.Контрагент КАК Контрагент
| ТЗ2.Контрагент.Наименование КАК КонтрагентНаименование
|ИЗ
| ТЗ1 КАК ТЗ2";
Не получается .
Второй запрос пакета не видит поле ТЗ2.Контрагент.Наименование
|
|