+7(960) 250-82-68 spam@mirossa.ru


  MCU         C           1С         PHP       JAVA      разное 


Статьи
 
 

(1) Пример работы с расшифровкой Системы компоновки данных.

report Скачать отчет

В отчете есть пример работы с расшифровкой. Для работы этого отчета используется типовой справочник Номенклатура.
При двойном клике по ячейке с Номенклатурой + если ЭтоГруппа = Истина формируется своё меню.

RepRasshifrovka



(2) Программное изменение запроса

report Скачать отчет

Программная установка запроса по настройкам пользователя. Если флаг "Текущая настройка поиска" снят, то отчет формируется по всем ключевым фразам. Поиск идет по каждому слову из ключевой фразы для поиска. Настройки поиска сохраняются/восстанавливаются (ХранилищеОбщихНастроек).

Отчет по бюджетным расходам
OtchetPoBudgetnimRashodam2

(3) Оплаченные реализации

report Скачать отчет

Выбираем все взаиморасчеты. Раскидываем пришедние деньги по суммам реализаций (как в отчёте Дебиторка). Оставляем только полностью оплаченные рту. Закидываем этот список в СКД для дальшейшей выборки данных.

Оплаченные реализации

(4) Программное изменение варианта отчёта

Создаём варианты отчета "Основной" и "Товары". и далее
Если (условие) Тогда
   ОтчетОбъект.КомпоновщикНастроек.ЗагрузитьНастройки(
       ОтчетОбъект.СхемаКомпоновкиДанных.ВариантыНастроек.Основной.Настройки);
Иначе
   ОтчетОбъект.КомпоновщикНастроек.ЗагрузитьНастройки(
       ОтчетОбъект.СхемаКомпоновкиДанных.ВариантыНастроек.Товары.Настройки);
КонецЕсли;

(5) Программное формирование отчета с установкой нужного варианта.

Есть отчет на СКД. С двумя вариантами. Используя один из вариантов отчета и установив отбор получаем табличный документ с результатом.

варианты отчета

это модуль объекта отчета:

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
	ДокументРезультат.Автомасштаб = Истина; //чтобы при сохранении в pdf таблица не обрезалась 
					//с переносом на следующую строку
КонецПроцедуры

Функция СформироватьОтчет() Экспорт
	
	
//Получаем схему из макета
СхемаКомпоновкиДанных = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");

//Из схемы возьмем настройки по умолчанию
//Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;

//в схеме компноновки данных есть варианта "СодержаниеУслуги" и "СверкаЗаТриМесяца"
Настройки = СхемаКомпоновкиДанных.ВариантыНастроек.СверкаЗаТриМесяца.Настройки;

//Настройки.Отбор.Элементы.Очистить();
//настроек отбора нет, добавляем новый отбор
ЭлОтбора = Настройки.Отбор.Элементы.Добавить(тип ("ЭлементОтбораКомпоновкиДанных"));
ЭлОтбора.ВидСравнения  = ВидСравненияКомпоновкиДанных.Равно;
ЭлОтбора.Использование = Истина;
ЭлОтбора.ЛевоеЗначение = новый ПолеКомпоновкиДанных("Контрагент");
ЭлОтбора.ПравоеЗначение = Справочники.Контрагенты.НайтиПоКоду("А00000248");

//параметры в схеме есть. устанавливаем значения
для каждого эл из Настройки.ПараметрыДанных.Элементы Цикл
	
	Если эл.параметр = новый ПараметрКомпоновкиДанных("НачалоПериода") Тогда
		эл.Значение = Дата("20190501");
	ИначеЕсли эл.параметр = новый ПараметрКомпоновкиДанных("КонецПериода") Тогда
		эл.Значение = Дата("20190601");
	КонецЕсли;
	
КонецЦикла;	

КомпоновщикНастроек.ЗагрузитьНастройки(Настройки); 

//Помещаем в переменную данные о расшифровке данных
ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;

//Формируем макет с помощью компоновщика макета
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;

//Передаем в макет компоновки схему, настройки и данные расшифровки
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);

//Выполним компоновку с помощью процессора компоновки
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки);

ТД = новый ТабличныйДокумент;

//Выводим результат в табличный документ
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ТД);

ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); 
	
	 возврат ТД;
конецФункции

вызов функции:

отч = Отчеты.ИмяОтчета.Создать();
ТД = отч.СформироватьОтчет();
ТД.Записать("C:\7.pdf", ТипФайлаТабличногоДокумента.PDF);

(6) Итоги по группировкам.

вид отчёта

В колонке "Сумма РТУ" нет сумм в детальных записях потому, что они скрыты в настройках по Детальным записям на закладке Настройки. Есть они или нет - неважно.
Значения в группировках формируются формулой Максимум(СуммаРТУ),
А итоговая сумма, состоящая из сумм по этим группировкам, формируется формулой СУММА(ВычислитьВыражениеСГруппировкойМассив("Максимум(СуммаРТУ)","Контрагент"))

вид отчёта