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

Нужна помощь с итогами

Автор evgen2020, 25 июл 2014, 17:31

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

evgen2020

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





Если ВидГраждан = Перечисления.РЦ_ВидГраждан.дляГражданРБ Тогда

Валюта=Константы.РЦ_НациональнаяВалюта.Получить();

ТД = Новый ТабличныйДокумент;
Макет = Отчеты.УслгиВОтделениях.ПолучитьМакет("УслугиОказанныеВОтделениях");
ОбластьШапка = Макет.ПолучитьОбласть("Шапка");

ТД.Вывести(ОбластьШапка);

ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
ОбластьЗаголовок.Параметры.Валюта = Валюта;
ОбластьЗаголовок.Параметры.ДатаС = "Период с:" + Формат (ЭтаФорма.ДатаС,"ДЛФ=DD");
ОбластьЗаголовок.Параметры.ДатаПо = " по:" + Формат (ЭтаФорма.ДатаПо,"ДЛФ=DD");
ТД.Вывести(ОбластьЗаголовок);

ОбластьГруппа = Макет.ПолучитьОбласть("Группа");
ОбластьГруппа1 = Макет.ПолучитьОбласть("Группа1");
ОбластьГруппа2 = Макет.ПолучитьОбласть("Группа2");
ОбластьИтого = Макет.ПолучитьОбласть("Итого");
ОбластьВсего = Макет.ПолучитьОбласть("Всего");

//Заполнение табличной части

ЗапросТаблица = Новый Запрос ();
ЗапросТаблица.Текст =

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

Если ВидГраждан=Перечисления.РЦ_ВидГраждан.дляГражданРБ тогда
ЗапросТаблица.УстановитьПараметр("ВидГраждан",Перечисления.РЦ_ВидГраждан.дляГражданРБ);
КонецЕсли;

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


РезультатТаблицаОтделение = Неопределено;
РезультатТаблицаФИО = Неопределено;
РезультатТаблицаИтог = Неопределено;
СуммаПоПациенту=0;

Для каждого СтрокаТаблица Из РезультатТаблица Цикл

Если РезультатТаблицаОтделение <> СтрокаТаблица.Наименование Тогда

ОбластьГруппа.Параметры.Наименование = СтрокаТаблица.Наименование;
ТД.Вывести(ОбластьГруппа);
РезультатТаблицаОтделение = СтрокаТаблица.Наименование;
КонецЕсли;
Если РезультатТаблицаФИО <> СтрокаТаблица.ФИО Тогда

ОбластьГруппа1.Параметры.ФИО = СтрокаТаблица.ФИО;
ТД.Вывести(ОбластьГруппа1);
РезультатТаблицаФИО = СтрокаТаблица.ФИО;

КонецЕсли;

ОбластьГруппа2.Параметры.Номер = СтрокаТаблица.Номер;
ОбластьГруппа2.Параметры.Услуга = СтрокаТаблица.Услуга;
ОбластьГруппа2.Параметры.Сумма = СтрокаТаблица.Сумма;
ТД.Вывести(ОбластьГруппа2);


КонецЦикла;
ТД.ОтображатьСетку = Ложь ;
ТД.Показать();

КонецЕсли;

evgen2020

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


Для каждого СтрокаТаблица Из РезультатТаблица Цикл

Если РезультатТаблицаОтделение <> СтрокаТаблица.Наименование Тогда

ОбластьГруппа.Параметры.Наименование = СтрокаТаблица.Наименование;
ТД.Вывести(ОбластьГруппа);
РезультатТаблицаОтделение = СтрокаТаблица.Наименование;
КонецЕсли;
Если РезультатТаблицаФИО <> СтрокаТаблица.ФИО Тогда

ОбластьГруппа1.Параметры.ФИО = СтрокаТаблица.ФИО;
ТД.Вывести(ОбластьГруппа1);
РезультатТаблицаФИО = СтрокаТаблица.ФИО;

КонецЕсли;

ОбластьГруппа2.Параметры.Номер = СтрокаТаблица.Номер;
ОбластьГруппа2.Параметры.Услуга = СтрокаТаблица.Услуга;
ОбластьГруппа2.Параметры.Сумма = СтрокаТаблица.Сумма;
СуммаПоПациенту=СуммаПоПациенту+СтрокаТаблица.Сумма;
ТД.Вывести(ОбластьГруппа2);
Если РезультатТаблицаФИО<>СтрокаТаблица.ФИО Тогда
ОбластьИтого.Параметры.Итого = СуммаПоПациенту;
ТД.Вывести(ОбластьИтого);
РезультатТаблицаФИО = СтрокаТаблица.ФИО;
СуммаПоПациенту=0;
КонецЕсли;
КонецЦикла;

может быть кто нибудь может может помоч с примером?
Добавлено: 28 июл 2014, 18:14


тема закрыта

Теги:

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

Рейтинг@Mail.ru

Поиск