Имя: Пароль:
1C
 
Как с помощью схемы запроса добавить поле во врем таблицу?
0 toypaul
 
23.05.23
12:46
Есть текст запроса отдельный (не в пакете). Типовой. Нужно добавить в этот запрос, например, поле и отбор.
Ранее в другом запросе это поле было добавлено в текст формирования ВТ. Нужно его протащить по всем ВТ.

Если добавлять такое поле через схему запроса, то ругается, что поле не найдено. Никак такое не победить?
1 mikecool
 
23.05.23
12:48
открой схему в отладке - там понятнее все в разы
2 RomanYS
 
23.05.23
12:49
(0) значит не туда добавляешь
3 toypaul
 
23.05.23
12:54
ТекстЗапроса =
    "ВЫБРАТЬ
    |    Т.Номенклатура КАК Номенклатура
    |ИЗ
    |    Т КАК Т";
    
    СхемаЗапроса = Новый СхемаЗапроса;
    СхемаЗапроса.УстановитьТекстЗапроса(ТекстЗапроса);
    
    ОсновнаяВыборка = СхемаЗапроса.ПакетЗапросов[0].Операторы[0];
    ОсновнаяВыборка.ВыбираемыеПоля.Добавить("Т.ТипНоменклатуры");
    
    ТекстЗапроса = СхемаЗапроса.ПолучитьТекстЗапроса();
4 toypaul
 
23.05.23
12:54
по причине:
{(1, 3)}: Поле не найдено "Т.ТипНоменклатуры"
Т.<<?>>ТипНоменклатуры
5 toypaul
 
23.05.23
12:54
(2) ну. так куда добавлять?
6 Мультук
 
23.05.23
13:19
(0)

== Цитата ==
Для корректной работы с объектами, полученными из схемы запроса, родительские объекты таких объектов должны существовать.
Например, нельзя получить ПоляСхемыЗапроса из ОператорВыбратьСхемыЗапроса, затем удалить этот оператор из ЗапросВыбораСхемыЗапроса, и потом пробовать добавить новые выражения в ПоляСхемыЗапроса.
==Конеццитаты ==

Подсунуть фейковую (или настоящую) таблицу Т ?

   ТекстЗапроса =  
    "ВЫБРАТЬ ПЕРВЫЕ 1
    |    NULL КАК Номенклатура,
    |    NULL КАК Наименование,
    |    NULL КАК ТипНоменклатуры
    |ПОМЕСТИТЬ Т
    |ИЗ
    |    Справочник.Номенклатура КАК спрНоменклатура
    |;
    |
    |ВЫБРАТЬ
    |    Т.Номенклатура КАК Номенклатура
    |ИЗ
    |    Т КАК Т";
7 RomanYS
 
23.05.23
14:03
(5)     
ОсновнаяВыборка.Источники[0].Источник.ДоступныеПоля.Добавить("ТипНоменклатуры");
ОсновнаяВыборка.ВыбираемыеПоля.Добавить("Т.ТипНоменклатуры");
8 toypaul
 
24.05.23
07:38
(7) понял. спасибо
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший