|
Ошибка "Поле не найдено" в консоли запросов |
☑ |
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 - Гениально!
Скромная надпись
ВЫРАЗИТЬ(Таблица.Номенклатура КАК Справочник.Номенклатура) как Номенклатура
И все видится.
Спасибо ребята за ответы. Буду теперь отлаживать запрос.
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший