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

Группировка в отчёте и сумма.

Автор Will, 01 мая 2011, 15:18

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

Will

Здравствуйте.
У меня есть такая проблема:
В отчете выводится список сотрудников и рядом сумма с каждого выписанного ими товарного чека.
Сейчас отчёт выглядит так, как на рисунке выше, а надо было чтоб он выглядел так, как нижняя таблица.
Т.е. чтоб один и тот же сотрудник не выводился много раз, а группировался и напротив балы сумма всех выписанных им чеков.

Так это выгляди:



А вот процедура:

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


Помогите, что надо исправить? Очень нужно!

Will

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

cska-fanat-kz

В конструкторе запросов лезьте на вкладку Итоги и укажите итог по ТоварныйЧек.Менеджер.
Далее при обходе результата запроса сперва выбираете верхний итоговый уровень по Менеджеру, а затем детальные записи по каждому документу...
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Теги:

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

Рейтинг@Mail.ru

Поиск