Имя: Пароль:
1C
1C 7.7
v7: Первый отчет в 1с 7.7 - СЕКЦИИ
0 OlesOles
 
05.06.15
11:17
Здравствуйте, наваял отчет, но не могу побороть секции. Подскажите пожалуйста.

http://i.imgur.com/TJSz3h9.png
http://i.imgur.com/S58b5xw.png



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

    // Подготовка к заполнению выходных форм данными запроса
    Таб = СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("Сформировать");
    // Заполнение полей "Заголовок"
    Таб.ВывестиСекцию("Заголовок");
    Состояние("Заполнение выходной таблицы...");
    Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
    Пока Запрос.Группировка(1) = 1 Цикл
        // Заполнение полей ДатаДок
        Таб.ВывестиСекцию("ДатаДок");
        Пока Запрос.Группировка(2) = 1 Цикл
            // Заполнение полей НомерДок
            Таб.ВывестиСекцию("НомерДок");
            Пока Запрос.Группировка(3) = 1 Цикл
                // Заполнение полей ТМЦ
                Таб.ВывестиСекцию("ТМЦ");
                Пока Запрос.Группировка(4) = 1 Цикл
                    // Заполнение полей Кво
                    Таб.ВывестиСекцию("Кво");
                    Пока Запрос.Группировка(5) = 1 Цикл
                        // Заполнение полей СуммаСНДС
                        Таб.ВывестиСекцию("СуммаСНДС");
                        Пока Запрос.Группировка(6) = 1 Цикл
                            // Заполнение полей Контрагент
                            Таб.ВывестиСекцию("Контрагент");
                        КонецЦикла;
                    КонецЦикла;
                КонецЦикла;
            КонецЦикла;
        КонецЦикла;
    КонецЦикла;
    // Заполнение полей "Итого"
    Таб.ВывестиСекцию("Итого");
    // Вывод заполненной формы
    Таб.ТолькоПросмотр(1);
    Таб.Показать("Сформировать", "");
КонецПроцедуры
1 Ёпрст
 
гуру
05.06.15
11:18
Подсказываю - беги оттуда!
2 Ёпрст
 
гуру
05.06.15
11:19
>>    |Группировка Кво без групп;
>>>   |Группировка СуммаСНДС без групп;

вот это очень забавно, да..
3 bolder
 
05.06.15
11:22
(0) группировки Документ тебе хватит.
4 OlesOles
 
05.06.15
11:45
(3)

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

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

Не хватает как минимум ТМЦ и контрагента:)
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс