Имя: Пароль:
1C
1С v8
Запрос по ТЗ. Обращение к реквизиту поля ТЗ типа СправочниксСсылка
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.Контрагент.Наименование