helpf.pro
Регистрация

v8: Отчет, формирующий список документов за заданный период

bless18
19.06.2012 10:58Прочитано: 11167
Здравствуйте, необходимо создать отчет, формирующий список документов всех видов за заданный период..
Имеется следующий запрос, который производит выборку по всем документам, но результат в отчет не выводит
Код 1C v 8.2 УП
 Для Каждого МетаданныеДокумента Из Метаданные.Документы Цикл
ИмяТаблицы = МетаданныеДокумента.Имя;
ВидДокумента = ?(ЗначениеЗаполнено(МетаданныеДокумента.Синоним), МетаданныеДокумента.Синоним, ИмяТаблицы);

ТекстЗапроса = "
//|ОБЪЕДИНИТЬ ВСЕ
//|
| ВЫБРАТЬ
| ТаблицаДокумента.Номер КАК Номер,
| ТаблицаДокумента.Дата КАК Дата,
//| ТаблицаДокумента.Ответсвенный КАК Ответсвенный,
| """+ВидДокумента+""" КАК ВидДокумента
| ИЗ Документ."+ИмяТаблицы+" КАК ТаблицаДокумента
|";
ТекстЗапроса = ТекстЗапроса + ТекстУсловия;

КонецЦикла;
//ТекстЗапроса = Сред(ТекстЗапроса, 15); // убираем первое ОБЪЕДИНИТЬ
// выполняем запрос
Запрос = Новый Запрос;
Запрос.Текст = ТекстЗапроса;
Запрос.УстановитьПараметр("ДатаНачала", ДатаНачала);
Запрос.УстановитьПараметр("ДатаОкончания", ДатаОкончания);

РезультатЗапроса = Запрос.Выполнить();

Подскажите, пожалуйста, как реализовать вывод данных в этом отчете
Yandex
Возможно, вас также заинтересует
Реклама на портале
E_Migachev
19.06.2012 16:17Ответ № 1
(0) bless18, посмотри v8.x: Как одним запросом выбрать документы всех видов?
bless18
19.06.2012 17:01Ответ № 2
Может, я неправильно использую обращение к колонкам таблицы. После запроса "Как одним запросом выбрать документы всех видов" пробую вывести в табличном документе имена документов. Ошибка та же, что поле объекта не обнаружено (Вид)
Код 1C v 8.2 УП
 	Для каждого Вид Из Метаданные.Документы Цикл
Если ТекстЗапроса<>"" Тогда
ТекстЗапроса=ТекстЗапроса+"
|ОБЪЕДИНИТЬ ВСЕ";
КонецЕсли;
ТекстЗапроса = ТекстЗапроса+"
|ВЫБРАТЬ Ссылка
|ИЗ Документ."+Вид.Имя;
КонецЦикла;
Запрос = Новый Запрос(ТекстЗапроса);
Выборка = Запрос.Выполнить().Выбрать();

ТабДок = Новый ТабличныйДокумент;
Макет = ПолучитьМакет("СписокДокументов");
Область = Макет.ПолучитьОбласть("Шапка");

Пока Выборка.Следующий() Цикл
Сообщить(Выборка.Ссылка);

//Получение части документа из макета
// действия по заполнению параметров части документа
Область.Параметры.ВидДокумента = Выборка.Вид.Имя;


КонецЦикла;
ТабДок.Вывести(Область);
E_Migachev
19.06.2012 17:16Ответ № 3
(2) bless18, попробуй просто:
Код 1C v 8.х
  ТекстЗапроса = "";
Для каждого Вид Из Метаданные.Документы Цикл
Если ТекстЗапроса<>"" Тогда
ТекстЗапроса=ТекстЗапроса+"
|ОБЪЕДИНИТЬ ВСЕ";
КонецЕсли;
ТекстЗапроса = ТекстЗапроса+"
|ВЫБРАТЬ Ссылка
|ИЗ Документ."+Вид.Имя;
КонецЦикла;
Запрос = Новый Запрос(ТекстЗапроса);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Сообщить(Выборка.Ссылка);
КонецЦикла;

Выводит что-то?
bless18
19.06.2012 17:21Ответ № 4
Да, выводит в список всех документов в окне сообщений..
bless18
20.06.2012 12:59Ответ № 5
Вопрос закрыт!
Подсказка: Для быстрого перемещения к последнему ответу или к вопросу используйте или .
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.