Имя: Пароль:
1C
 
v8: Как правильно написать запрос?
,
0 Olesja
 
19.02.12
23:32
Как правильно написать запрос? Выводится только один столбец, Область.Параметры.НаимОбъекта = Результат.НазваниеОбъекта; - он является реквизитом документа. Остальные выдают ошибку (не обнаружено поле объекта) – они являются реквизитами табличных частей этого документа (помечены //).


Процедура СформироватьОтчет(ТабличныйДокумент) Экспорт
    Запрос = Новый Запрос;
  Запрос.Текст =
"ВЫБРАТЬ
|    Объекты.НазваниеОбъекта,
|    Объекты.Общиеданные.(
|        Правоустанавливующий.Наименование,
|        ДатаПриоритета
|    ),
|    Объекты.Правообладатели.(
|        СписокПравообладателей.Наименование
|    ),
|    Объекты.Авторы.(
|        Авторы.Наименование
|    ),
|    Объекты.БухгалтерскаяИнф.(
|        ДатаПостановки,
|        СрокАмортиз
|    )
|ИЗ
|    Документ.Объекты КАК Объекты";    

Результат = Запрос.Выполнить().Выбрать();
Макет = Отчеты.Ведомость1903.ПолучитьМакет("ВедомостьМакета7");

Область = Макет.ПолучитьОбласть("Шапка");
   ТабличныйДокумент.Вывести(Область);
 
  Пока Результат.Следующий() Цикл
Область = Макет.ПолучитьОбласть("ОбластьДанных");
Область.Параметры.НаимОбъекта = Результат.НазваниеОбъекта;
//Область.Параметры.РеквизитПравустДок = Результат.Объекты.ОбщиеДанные.Правоустанавливующий.Наименование;
//Область.Параметры.ДатаПриорит = Результат.Объекты.ОбщиеДанные.ДатаПриоритета;
//Область.Параметры.Правообладат = Результат.Объекты.Правообладатели.СписокПравообладателей.Наименование;
//Область.Параметры.Авторы = Результат.Объекты.Авторы.Авторы.Наименование;
//Область.Параметры.ДатаПостановки = Результат.Объекты.БухгалтерскаяИнф.ДатаПостановки;
//Область.Параметры.СрокАмортиз = Результат.Объекты.БухгалтерскаяИнф.СрокАмортиз;
    ТабличныйДокумент.Вывести(Область);
     КонецЦикла;

  Область = Макет.ПолучитьОбласть("Подвал");
  ТабличныйДокумент.Вывести(Область);
1 Asmody
 
19.02.12
23:37
(0) обращение в таб.частям подобным образом формирует в результате особое поле, которое является самостоятельным результатом запроса, по-сути — вложенной таблицей. Т.е. из такого поля необходимо открывать отдельную выборку, пробегать её и получать данные оттуда
2 sanja26
 
19.02.12
23:40
вытаскивай табличные части объекты из которых будешь поля вытаскивать.. (в конструкторе средняя колонка)
3 Olesja
 
19.02.12
23:54
Спасибо!
4 BOZKURT
 
19.02.12
23:56
Да шо за деучонки пошли, пишут в личке Мужской, а потом или общаются и палятся или имя соответствующее..
Тока топлес Вам поможет!
5 Olesja
 
20.02.12
00:20
Сможете текст привести, как должно выглядеть - "пробегать эту вложенную таблицу"?
6 acsent
 
20.02.12
00:23
Результат.Объекты.ОбщиеДанные.Выбрать()
7 Asmody
 
20.02.12
00:29
(6)+
ВыборкаПоОбщиеДанные=Результат.ОбщиеДанные.Выбрать();
Пока ВыборкаПоОбщиеДанные.Следующий() Цикл
....


только названия полей выборки уточнить надо
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан