Имя: Пароль:
1C
1С v8
Ошибка "Поле не найдено" в консоли запросов
0 eugenyfs
 
29.04.15
22:44
Привет всем!!

Воспользовался консолью запросов ИР, чтобы отладить запрос.
Столкнулся с такой проблемой.

Передаю в запрос параметр, который указывает на ссылку из Справочника Номенклатура, в коде перед выполнением запроса:

мОбъектЗапроса.Параметры.Таблица = Новый ТаблицаЗначений;
мОбъектЗапроса.Параметры.Таблица.Колонки.Добавить("Номенклатура", Новый ОписаниеТипов("СправочникСсылка.Номенклатура"));


СТР = мОбъектЗапроса.Параметры.Таблица.Добавить();

СТР.Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию("Вагонка Липа Сорт Э (16х98мм) длина 2,0 м.");

В самой консоли пишу запрос:
ВЫБРАТЬ
Таблица.Номенклатура.ТипНоменклатуры
Поместить втТаблицаЗначений
ИЗ
&Таблица как Таблица

Выдает ошибку: Текст запроса: Строка 2: {(2,1)}: Поле не найдено "Таблица.Номенклатура.ТипНоменклатуры"
<<?>>Таблица.Номенклатура.ТипНоменклатуры

Само поле существует. Сам запрос в программе работает. А в консоли нет. Параметр ссылка передается. Если просто сделать

ВЫБРАТЬ
Таблица.Номенклатура
Поместить втТаблицаЗначений
ИЗ
&Таблица как Таблица

То выводится элемент ссылка на справочник Номенклатура. А вот доступ к полям этого справочника отсутствует. Думаю уже бросить эту консоль и отладить запрос в самой программе.

Может кто подскажет в чем проблемма?
1 pessok
 
29.04.15
22:54
(0) собственно, ИР тут не причем. Это стандартное поведение временных таблиц. Нельзя подчиненные поля вытаскивать, т.к. хоть для таблиц-параметров и обязательна строгая типизация, в самом запросе ее нет
2 pessok
 
29.04.15
22:55
+(1) соответственно, просто добавь еще колонку и добавь туда тип номенклатуры на стадии формирования ТЗ
3 eugenyfs
 
29.04.15
23:14
Да дело в том, что в самой программе запрос работает. Поля читаются. Я просто хотел изменить его. И соответственно в консоли потестировать. Но не смог. Интересно то что если получить ссылку на элемент справочника запросом в самой консоли, и выбрать тип номенклатуры, то он работает.
Вот такой код:

ВЫБРАТЬ
Номенклатура.Ссылка Как Ссылка
Поместить втТаблицаЗначений
ИЗ
Справочник.Номенклатура как Номенклатура
ГДЕ
Номенклатура.Наименование = "Вагонка Липа Сорт Э (16х98мм) длина 2,0 м."
;
Выбрать
ТаблицаТоваров.Ссылка.ТипНоменклатуры
ИЗ
втТаблицаЗначений Как ТаблицаТоваров

Сам запрос посложнее, размещается на трех листах. Это так выдержки из него.
4 pessok
 
29.04.15
23:18
(3) все правильно. а конструктор не работает, потому что у него нет типизации, типизация происходит в момент исполнения. исправляй руками, будь мужиком :)
5 eugenyfs
 
29.04.15
23:32
Ну да придется делать. Спасибо за разъяснение. Буду теперь знать.
6 RomaH
 
naïve
30.04.15
00:08
выразить как вроде помогает
7 eugenyfs
 
30.04.15
06:52
RomaH - Гениально!
Скромная надпись

ВЫРАЗИТЬ(Таблица.Номенклатура КАК Справочник.Номенклатура) как Номенклатура

И все видится.

Спасибо ребята за ответы. Буду теперь отлаживать запрос.
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс