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

Как работать с результатом запроса? Обход группировок

Автор ppkmlite, 10 авг 2015, 19:03

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

ppkmlite

Здравствуйте!
Создаю печатную форму для документа списание мз.
Поля материалы должны выводиться одной строкой (каждый материал в отдельной колонке) и под ними соответственно одной строкой количество этих материалов. Итоги под количеством. во вложении пример

мой запрос такой, просто с группировками не работала
ВЫБРАТЬ
    МЗ_СписаниеМатериалы.Ссылка,
    МЗ_СписаниеМатериалы.Ссылка.ЦМОПолучатель,
    МЗ_СписаниеМатериалы.Номенклатура.Код,
    МЗ_СписаниеМатериалы.Номенклатура.Наименование,
    МЗ_СписаниеМатериалы.Номенклатура.ЕдиницаИзмерения.Наименование,
    МЗ_СписаниеМатериалы.Номенклатура.ЕдиницаИзмерения.Код
ИЗ
    Документ.МЗ_Списание.Материалы КАК МЗ_СписаниеМатериалы
ГДЕ
    МЗ_СписаниеМатериалы.Ссылка = &Ссылка

Дмитрий@


ppkmlite

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

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
           
            колонкаН = табдокумент.получитьобласть("R39C8:R42C12");
            ТабДокумент.НачатьАвтогруппировкуКолонок();
            колонкаН.Область("R39C8:R42C12").Текст = "наменование";
            ТабДокумент.Вывести(колонкаН,1,"Группа 1",Ложь);
                    //    Для н = 1 по 10 Цикл

                колонкаН = ТабДокумент.ПолучитьОбласть("R39C8:R42C12");
                колонкаН.Область().Текст = "А"+ВыборкаДетальныеЗаписи.наименование;
                колонкаН.Область().ГоризонтальноеПоложение = ГоризонтальноеПоложение.Право;
                ТабДокумент.Присоединить(колонкаН,2,"Группа 2",Истина);
        //    КонецЦикла;

    //    ОбластьТаблица.параметры.Наименование = ВыборкаДетальныеЗаписи.Наименование;


       
    КонецЦикла;

Добавлено: 10 авг 2015, 21:14


Объясните, почему выводит одно и то же наименование 5 раз в колонку и 4раза в строку? и так для каждой номенклатуры?

Собственно привожу с запросом Запрос.Текст =
"ВЫБРАТЬ
| МЗ_СписаниеМатериалы.Ссылка,
| МЗ_СписаниеМатериалы.Ссылка.ЦМОПолучатель,
| МЗ_СписаниеМатериалы.Номенклатура.Код,
| МЗ_СписаниеМатериалы.Номенклатура.Наименование КАК Наименование,
| МЗ_СписаниеМатериалы.Номенклатура.ЕдиницаИзмерения.Наименование,
| МЗ_СписаниеМатериалы.Номенклатура.ЕдиницаИзмерения.Код
|ИЗ
| Документ.МЗ_Списание.Материалы КАК МЗ_СписаниеМатериалы
|ГДЕ
| МЗ_СписаниеМатериалы.Ссылка = &Ссылка";

Запрос.УстановитьПараметр("Ссылка", Ссылка);

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

колонкаН = табдокумент.получитьобласть("R49C2:R53C5");
ТабДокумент.НачатьАвтогруппировкуКолонок();
колонкаН.Область("R49C2:R53C5").Текст = "наменование";
ТабДокумент.Вывести(колонкаН,1,"Группа 1",Ложь);
Для каждого текстрока из РезультатЗапроса Цикл
колонкаН = ТабДокумент.ПолучитьОбласть("R49C2:R53C5");
колонкаН.Область().Текст = текстрока.Наименование;
колонкаН.Область().ГоризонтальноеПоложение = ГоризонтальноеПоложение.Право;
ТабДокумент.Присоединить(колонкаН,2,"Группа 2",Истина);
КонецЦикла;
// ОбластьТаблица.параметры.Наименование = ВыборкаДетальныеЗаписи.Наименование;


//КонецЦикла;
//табдокумент.вывести(областьтаблица);
// ФормированиеПечатныхФорм.ПечатьВедомостиВыдачи210(ТабДокумент, СтруктураДанных, Дата);

Возврат ТабДокумент;

has


notaSS

Большое всем спасибо, разобралась, если кому может понадобится тогда
[code] для каждого колонка из РезультатЗапроса цикл
сч = сч+1;
ОбластьТаблица1.Параметры.наименование =  колонка.наименование;
ОбластьТаблица1.Параметры.количество =  колонка.количество;
ОбластьТаблица1.Параметры.код =  колонка.код;
ОбластьТаблица1.Параметры.ЕдиницаИзмеренияНаименование =  колонка.ЕдиницаИзмеренияНаименование;
ОбластьТаблица1.Параметры.ЕдиницаИзмеренияКод =  колонка.ЕдиницаИзмеренияКод;
ОбластьТаблица1.Параметры.Количество =  колонка.Количество;
        ОбластьТаблица1.Параметры.сумма =  колонка.сумма;
[/code]
Добавлено: 12 авг 2015, 15:38


ОбластьТаблица1 = Макет.ПолучитьОбласть("Область4|область6");

Теги:

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

Рейтинг@Mail.ru

Поиск