К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

Добавление свойств и категорий в универсальный отчет с источников данных Таблица значений

Гость
0 - 24.03.2020 - 15:56
Здравствуйте. Делаю отчет на основе универсального, где источник данных это таблица значений, которую я формирую с помощью запроса в отдельной функции. Все работает, но нужно добавить свойства и категории. Может знает кто, как это сделать?


Процедура УстановитьНачальныеНастройки(ДополнительныеПарамет ры = Неопределено) Экспорт
УниверсальныйОтчет.мНазваниеОтчета = СокрЛП(ЭтотОбъект.Метаданные().Синоним);
УниверсальныйОтчет.мВыбиратьИмяРегистра = Ложь;
УниверсальныйОтчет.ОтрицательноеКрасным = Истина;
УниверсальныйОтчет.ВыводитьОбщиеИтоги = Ложь;
УниверсальныйОтчет.мВыбиратьИспользованиеСвойств = Истина;
ТаблицаДанных = СформироватьТаблицуДанных(); // здесь задаем только структуру таблицы, без самих данных
ИсточникДанных = Новый ОписаниеИсточникаДанных(ТаблицаДанных);
ИсточникДанных.Колонки.Регистратор.Измерение = Истина;
ИсточникДанных.Колонки.Период.Измерение = Истина;
ИсточникДанных.Колонки.Контрагент.Измерение = Истина;
ИсточникДанных.Колонки.Организация.Измерение = Истина;
ИсточникДанных.Колонки.ДоговорКонтрагента.Измерени е = Истина;
ИсточникДанных.Колонки.ОсновнойМенеджерПокупателя. Измерение = Истина;
ИсточникДанных.Колонки.ОтсрочкаОплаты.Итог = "Максимум(ОтсрочкаОплаты)";
ИсточникДанных.Колонки.ОстатокДолгаНаНачалоПериода .Итог = "Сумма(ОстатокДолгаНаНачалоПериода)";
ИсточникДанных.Колонки.Отгружено.Итог = "Максимум(Отгружено)";
ИсточникДанных.Колонки.Оплачено.Итог = "Максимум(Оплачено)";
ИсточникДанных.Колонки.ОстатокДолгаНаКонецПериода. Итог = "Сумма(ОстатокДолгаНаКонецПериода)";
ИсточникДанных.Колонки.ОстатокПросроченогоДолгаКон трагентаВВалюте.Итог = "Сумма(ОстатокПросроченогоДолгаКонтрагентаВВалюте) ";
ИсточникДанных.Колонки.ОстатокПросроченногоДолгаКо нтрагентаВДнях.Итог = "Сумма(ОстатокПросроченногоДолгаКонтрагентаВДнях)" ;
ИсточникДанных.Колонки.НеБолее10Дней.Итог = "Максимум(НеБолее10Дней)";
ИсточникДанных.Колонки.От10До30Дней.Итог = "Максимум(От10До30Дней)";
ИсточникДанных.Колонки.От30До60Дней.Итог = "Максимум(От30До60Дней)";
ИсточникДанных.Колонки.Более60Дней.Итог = "Максимум(Более60Дней)";
УниверсальныйОтчет.ПостроительОтчета.ИсточникДанны х = ИсточникДанных;

УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вс тавить( "Регистратор", "Регистратор");
УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вс тавить( "Период", "Период");
УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вс тавить( "Контрагент", "Контрагент");
УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вс тавить( "Организация", "Организация");
УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вс тавить( "ДоговорКонтрагента", "Договор контрагента");
УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вс тавить( "ОсновнойМенеджерПокупателя", "Основной менеджер покупателя");

УниверсальныйОтчет.ДобавитьПоказатель("ОтсрочкаОпл аты", "Отсрочка оплаты", Истина);
УниверсальныйОтчет.ДобавитьПоказатель("ОстатокДолг аНаНачалоПериода", "Остаток долга на начало периода", Истина, "ЧЦ=15; ЧДЦ=2", "СуммаВзаиморасчетов", "Сумма взаиморасчетов");
УниверсальныйОтчет.ДобавитьПоказатель("Отгружено", "Отгружено", Истина, "ЧЦ=15; ЧДЦ=2", "СуммаВзаиморасчетов", "Сумма взаиморасчетов");
УниверсальныйОтчет.ДобавитьПоказатель("Оплачено", "Оплачено", Истина, "ЧЦ=15; ЧДЦ=2", "СуммаВзаиморасчетов", "Сумма взаиморасчетов");
УниверсальныйОтчет.ДобавитьПоказатель("ОстатокДолг аНаКонецПериода", "Остаток долга на конец периода", Истина, "ЧЦ=15; ЧДЦ=2", "СуммаВзаиморасчетов", "Сумма взаиморасчетов");
УниверсальныйОтчет.ДобавитьПоказатель("ОстатокПрос роченогоДолгаКонтрагентаВВалюте", "Остаток просроченого долга контрагента в валюте", Истина, "ЧЦ=15; ЧДЦ=2");
УниверсальныйОтчет.ДобавитьПоказатель("ОстатокПрос роченногоДолгаКонтрагентаВДнях", "Остаток просроченного долга контрагента в днях", Истина);
УниверсальныйОтчет.ДобавитьПоказатель("НеБолее10Дн ей", "Не более 10 дней", Истина, "ЧЦ=15; ЧДЦ=2", "ВтчПоСрокамВозникновенияДолга", "В т.ч. по срокам возникновения долга:");
УниверсальныйОтчет.ДобавитьПоказатель("От10До30Дне й", "От 10 до 30 дней", Истина, "ЧЦ=15; ЧДЦ=2", "ВтчПоСрокамВозникновенияДолга", "В т.ч. по срокам возникновения долга:");
УниверсальныйОтчет.ДобавитьПоказатель("От30До60Дне й", "От 30 до 60 дней", Истина, "ЧЦ=15; ЧДЦ=2", "ВтчПоСрокамВозникновенияДолга", "В т.ч. по срокам возникновения долга:");
УниверсальныйОтчет.ДобавитьПоказатель("Более60Дней ", "Более 60 дней", Истина, "ЧЦ=15; ЧДЦ=2", "ВтчПоСрокамВозникновенияДолга", "В т.ч. по срокам возникновения долга:");

УниверсальныйОтчет.ДобавитьОтбор("ОсновнойМенеджер Покупателя");
УниверсальныйОтчет.ДобавитьОтбор("Контрагент");
УниверсальныйОтчет.ДобавитьОтбор("ДоговорКонтраген та");
УниверсальныйОтчет.ДобавитьОтбор("Регистратор");

УниверсальныйОтчет.УстановитьПредставленияПолей(Ун иверсальныйОтчет.мСтруктураПредставлениеПолей, УниверсальныйОтчет.ПостроительОтчета);
УниверсальныйОтчет.УстановитьНачальныеНастройки(Ло жь);

КонецПроцедуры // УстановитьНачальныеНастройки()






Процедура СформироватьОтчет(ТабличныйДокумент) Экспорт

// Перед формирование отчета можно установить необходимые параметры универсального отчета.

Если Не ЗначениеЗаполнено(УниверсальныйОтчет.ДатаНач)
ИЛИ Не ЗначениеЗаполнено(УниверсальныйОтчет.ДатаКон) Тогда
Предупреждение("Не задан период отчета!");
Возврат;
КонецЕсли;

ТаблицаДанных.Очистить();

ЗаполнитьТаблицуДанных(); // Здесь Заполняю Таблицу Созданную в функции чуть ниже

УниверсальныйОтчет.ПостроительОтчета.Параметры.Вст авить("КонДата", КонецДня(Дата(УниверсальныйОтчет.ДатаКон)));
УниверсальныйОтчет.ПостроительОтчета.Параметры.Вст авить("НачДата", Дата(УниверсальныйОтчет.ДатаНач));

УниверсальныйОтчет.СформироватьОтчет(ТабличныйДоку мент);

КонецПроцедуры // СформироватьОтчет()






Функция СформироватьТаблицуДанных() // для формирования структуры таблицы

ТаблицаДанных = Новый ТаблицаЗначений;
КвалификаторыЧисла = Новый КвалификаторыЧисла(10, 2);
ТаблицаДанных.Колонки.Добавить("Регистратор" ,Новый ОписаниеТипов("Строка"));
ТаблицаДанных.Колонки.Добавить("Период" ,Новый ОписаниеТипов("Дата"));
ТаблицаДанных.Колонки.Добавить("ДоговорКонтрагента " ,Новый ОписаниеТипов("СправочникСсылка.ДоговорыКонтрагент ов"));
ТаблицаДанных.Колонки.Добавить("Контрагент" ,Новый ОписаниеТипов("СправочникСсылка.Контрагенты"));
ТаблицаДанных.Колонки.Добавить("Организация" ,Новый ОписаниеТипов("СправочникСсылка.Организации"));
ТаблицаДанных.Колонки.Добавить("ОсновнойМенеджерПо купателя" ,Новый ОписаниеТипов("СправочникСсылка.Пользователи"));
ТаблицаДанных.Колонки.Добавить("ОстатокДолгаНаНача лоПериода" ,Новый ОписаниеТипов("Число",КвалификаторыЧисла));
ТаблицаДанных.Колонки.Добавить("ОстатокДолгаНаКоне цПериода" ,Новый ОписаниеТипов("Число",КвалификаторыЧисла));
ТаблицаДанных.Колонки.Добавить("Отгружено" ,Новый ОписаниеТипов("Число",КвалификаторыЧисла));
ТаблицаДанных.Колонки.Добавить("Оплачено" ,Новый ОписаниеТипов("Число",КвалификаторыЧисла));
ТаблицаДанных.Колонки.Добавить("НеБолее10Дней" ,Новый ОписаниеТипов("Число",КвалификаторыЧисла));
ТаблицаДанных.Колонки.Добавить("От10До30Дней" ,Новый ОписаниеТипов("Число", КвалификаторыЧисла));
ТаблицаДанных.Колонки.Добавить("От30До60Дней" ,Новый ОписаниеТипов("Число",КвалификаторыЧисла));
ТаблицаДанных.Колонки.Добавить("Более60Дней" ,Новый ОписаниеТипов("Число",КвалификаторыЧисла));
ТаблицаДанных.Колонки.Добавить("ОстатокПросроченог оДолгаКонтрагентаВВалюте",Новый ОписаниеТипов("Число",КвалификаторыЧисла));
ТаблицаДанных.Колонки.Добавить("ОстатокПросроченно гоДолгаКонтрагентаВДнях" ,Новый ОписаниеТипов("Число"));
ТаблицаДанных.Колонки.Добавить("ОтсрочкаОплаты" ,Новый ОписаниеТипов("Число"));

Возврат ТаблицаДанных;
КонецФункции





К списку вопросов






Copyright ©, Все права защищены