Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
15 дек 2024, 12:41

учусь выводить результаты запроса в таблицу значений подскажите пожалуйста

Автор djonbox, 01 апр 2012, 20:17

0 Пользователей и 1 гость просматривают эту тему.

djonbox

Собственно вопрос, есть пример простого запроса, созданого конструктором запросов:
   
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Период с ВыбНачПериода по ВыбКонПериода;
|Обрабатывать НеПомеченныеНаУдаление;
|Реализация = Документ.Реализация.ТекущийДокумент;
|Номенклатура = Документ.Реализация.Номенклатура;
|Количество = Документ.Реализация.Количество;
|Цена = Документ.Реализация.Цена;
|Сумма = Документ.Реализация.Сумма;
|Партия = Документ.Реализация.Партия;
|Группировка Реализация упорядочить по Реализация.ДатаДок, Реализация.ВремяДок, Реализация.НомерДок, Реализация.Сумма, Реализация.Цена;
|Группировка Номенклатура упорядочить по Номенклатура.Код, Номенклатура.Наименование, Номенклатура.ВидНоменклатуры;
|"//}}ЗАПРОС
;

Как теперь данный запрос выгрузить в таблицу значений. Не умею выводить результаты в таблицу значений со вложенными таблицами.

djonbox

Уточню: как вывести табличную часть документа. что бы к примеру выводился номер документа, и табличная часть документа(товар, цена количество). Что то типа реестра документов

Public_enemy

РезультатЗапроса = Выполнить().Выгрузить();
Таким образом запрос выгружается в таблицу значений. Можешь посмотреть через отладчик

djonbox

Цитата: Public_enemy от 01 апр 2012, 20:29
РезультатЗапроса = Выполнить().Выгрузить();
Таким образом запрос выгружается в таблицу значений. Можешь посмотреть через отладчик
Это понятно, просто не знал как вложенные запросы выводить, смущала строка "Запрос.Группировка(1)" "Запрос.Группировка(2)" ну вроде разобрался как в цикле выводить. Дописал ручками. Всем спасибо

   // Если ошибка в запросе, то выход из процедуры
   Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
      Возврат;
   КонецЕсли;

   // Подготовка к заполнению выходных форм данными запроса
   Таб = СоздатьОбъект("Таблица");
   Таб.ИсходнаяТаблица("Сформировать");
   // Заполнение полей "Заголовок"
   Таб.ВывестиСекцию("Заголовок");
   Состояние("Заполнение выходной таблицы...");
   Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
   Пока Запрос.Группировка(1) = 1 Цикл
      // Заполнение полей Реализация
      Таб.ВывестиСекцию("Реализация");
      Пока Запрос.Группировка(2) = 1 Цикл
         // Заполнение полей Номенклатура
         Таб.ВывестиСекцию("Номенклатура");
      КонецЦикла;
   КонецЦикла;
   // Вывод заполненной формы
   Таб.ТолькоПросмотр(1);
   Таб.Показать("Сформировать", "");

djonbox

вопрос а как сделать проверку это группа в запросе, что бы в таблицу значений не выводились группы:

//*******************************************
// Процедура генерации запроса Сформировать.
//
Процедура Сформировать()
Перем Запрос, ТекстЗапроса, Таб;
//Создание объекта типа Запрос
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Период с ВыбНачПериода по ВыбКонПериода;
|Обрабатывать НеПомеченныеНаУдаление;
|Реализация = Документ.Реализация.ТекущийДокумент;
|Номенклатура = Документ.Реализация.Номенклатура;
|Ном = Документ.Реализация.Номенклатура.Наименование;
|НомКод = Документ.Реализация.Номенклатура.Код;
|НомДата = Документ.Реализация.ДатаДок;
|Количество = Документ.Реализация.Количество;
|Цена = Документ.Реализация.Цена;
|Сумма = Документ.Реализация.Сумма;
|Партия = Документ.Реализация.Партия;
|Группировка Реализация упорядочить по Реализация.ДатаДок, Реализация.НомерДок;
|Группировка Номенклатура упорядочить по Номенклатура.Наименование;
|"//}}ЗАПРОС
;
// Если ошибка в запросе, то выход из процедуры
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;

// Подготовка к заполнению выходных форм данными запроса
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Сформировать");
// Заполнение полей "Заголовок"
Таб.ВывестиСекцию("Заголовок");
Состояние("Заполнение выходной таблицы...");
Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
Пока Запрос.Группировка(1) = 1 Цикл
// Заполнение полей Реализация
Таб.ВывестиСекцию("Реализация");
Пока Запрос.Группировка(2) = 1 Цикл
// Заполнение полей Номенклатура
Таб.ВывестиСекцию("Номенклатура");
КонецЦикла;
КонецЦикла;
// Вывод заполненной формы
Таб.ТолькоПросмотр(1);
Таб.Показать("Сформировать", "");
КонецПроцедуры

sergejK74

Группировка Номенклатура упорядочить по Номенклатура.Наименование Без Групп; - как-то так. Без конструктора не помню
Кнопочка Спасибо - слева!

djonbox

о точно Группировка Номенклатура упорядочить по Номенклатура.Наименование без групп; спасибо:)

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск