Регистрация Правила Главная форума Поиск |
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Дней" ,Новый ОписаниеТипов("Число",КвалификаторыЧисла)); ТаблицаДанных.Колонки.Добавить("ОстатокПросроченог оДолгаКонтрагентаВВалюте",Новый ОписаниеТипов("Число",КвалификаторыЧисла)); ТаблицаДанных.Колонки.Добавить("ОстатокПросроченно гоДолгаКонтрагентаВДнях" ,Новый ОписаниеТипов("Число")); ТаблицаДанных.Колонки.Добавить("ОтсрочкаОплаты" ,Новый ОписаниеТипов("Число")); Возврат ТаблицаДанных; КонецФункции | |
![]() | Интернет-форум Краснодарского края и Краснодара |