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

Заполнение макета отчета

Автор sh.u.t, 04 июн 2015, 20:34

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

sh.u.t

    Добрый вечер помогите заполнить макет отчета. С помощью запроса получаю необходимые данные, но нужно заполнить вот макет. Макет во вложении.


&НаКлиенте
Процедура Сформировать(Команда)
   СформироватьОтчет(ТабДок, Номенклатура, Марка);

КонецПроцедуры

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



Дмитрий@

Наверно так

ОбластьСтрока.Параметры.НазваниеПараметра = Выборка.НомерКипа;
ОбластьСтрока.Параметры.НазваниеПараметра = Выборка.Брутто;
ТабДок.Вывести(ОбластьСтрока);

sh.u.t

Нужно как в макете по 32 разделить и заполнить каждую колонку? 

Дмитрий@

А что у вас в макете "Область строка", покажите как эта область выглядит в макете.

sh.u.t

Во вложении макет с конфигурации.
Добавлено: 05 июн 2015, 08:03


Или можете предложить свой вариант заполнения макета.

Дмитрий@

В этой картинке мне не видно где какие области находятся, обозначьте области.

sh.u.t

Макет во вложении.

Дмитрий@


Таблица = Выборка.Выгрузить();
КоличествоСтраниц = Цел(Таблица.Количество() / 256)

Для СчетчикЛистов = 0 По КоличествоСтраниц - 1 Цикл
    Для СчетчикСтрок = 1 По 32 Цикл
       Номер = (СчетчикЛистов*256)+СчетчикСтрок - 1;
           Если Номер <= Таблица.Количество() Тогда
                ОбластьСтрока.Параметры.Стр1 = Таблица[Номер].Номер;
                ОбластьСтрока.Параметры.Стр2 = Таблица[Номер].Брутто;
           КонецЕсли;
        Номер = Номер + 32;             
            Если Номер <= Таблица.Количество() Тогда
                ОбластьСтрока.Параметры.Стр3 = Таблица[Номер].Номер;
                ОбластьСтрока.Параметры.Стр4 = Таблица[Номер].Брутто;
           КонецЕсли;

        Ну и так далее .....
    КонецЦикла;
КонецЦикла

sh.u.t

Выходит ошибка, во вложении более подробно указано.

Дмитрий@

Таблица = Результат.Выгрузить();
КоличествоСтраниц = Цел(Таблица.Количество() / 256)

Для СчетчикЛистов = 0 По КоличествоСтраниц - 1 Цикл
    Для СчетчикСтрок = 1 По 32 Цикл
        ОбластьСтрока = Макет.ПолучитьОбласть("ОблСтрока");
       Номер = (СчетчикЛистов*256)+СчетчикСтрок - 1;
           Если Номер <= Таблица.Количество() Тогда
                ОбластьСтрока.Параметры.Стр1 = Таблица[Номер].Номер;
                ОбластьСтрока.Параметры.Стр2 = Таблица[Номер].Брутто;
           КонецЕсли;
        Номер = Номер + 32;             
            Если Номер <= Таблица.Количество() Тогда
                ОбластьСтрока.Параметры.Стр3 = Таблица[Номер].Номер;
                ОбластьСтрока.Параметры.Стр4 = Таблица[Номер].Брутто;
           КонецЕсли;

        Ну и так далее .....
        ТабДок.Вывести(ОбластьСтрока);
    КонецЦикла;
КонецЦикла

Теги:

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

Рейтинг@Mail.ru

Поиск