Пара полезных процедур для расшифровок.

Опубликовал Илья Пешкичев (OldthiefXXX) в раздел Программирование - Практика программирования

Процедуры выводят отчет по заданной ТЗ или по Запросу. Может, сэкономит время. ;-)
 

//Процедура формирует и выводит отчет по подоваемому запросу 
// Параметры : 
// ПараметрыОтчета - структура 
// Пример параметров: 
//* ПараметрыОтчета = Новый Структура; 
//* ПараметрыОтчета .Вставить("Запрос",текст); 
//* ПараметрыЗапроса=Новый Структура; 
//* ПараметрыЗапроса.Вставить("Номенклатура",ТоварИзАртикула.Ссылка); 
//* ПараметрыЗапроса.Вставить("НачалоМесяца",НачалоМесяца(ДатаВедомости)); 
//* ПараметрыЗапроса.Вставить("КонецМесяца",КонецМесяца(ДатаВедомости)); 
//* ПараметрыОтчета .Вставить("ПараметрыЗапроса",ПараметрыЗапроса); 
 

Процедура УниверсальныйОтчетПоЗапросу(ПараметрыОтчета)

Запрос=новый Запрос;

Запрос.Текст=ПараметрыОтчета.Запрос;

Для каждого ПАРАМЕТР из ПараметрыОтчета.ПараметрыЗапроса Цикл 
Запрос.УстановитьПараметр(ПАРАМЕТР.Ключ,ПАРАМЕТР.Значение);

КонецЦикла;

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


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

Макет = ЭтотОбъект.ПолучитьМакет("Макет");

ОбластьШапкаОсновной=Макет.ПолучитьОбласть("Шапка|Основной");

ОбластьСтрокаОсновной=Макет.ПолучитьОбласть("Строка|Основной");

ОбластьИтогОсновной=Макет.ПолучитьОбласть("Итог|Основной");


ОбластьШапкаДОП=Макет.ПолучитьОбласть("Шапка|Показатели");

ОбластьСтрокаДОП=Макет.ПолучитьОбласть("Строка|Показатели");

ОбластьИтогДОП=Макет.ПолучитьОбласть("Итог|Показатели");


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

Для Каждого Колонка из Тз.Колонки ЦИКЛ 
ОбластьШапкаДОП.Параметры.ИмяПоказателя=Колонка.Имя;

Табл.Присоединить(ОбластьШапкаДОП);

КонецЦикла;

счетчик=0;

Для каждого стр из Тз Цикл 
счетчик=счетчик+1;

ОбластьСтрокаОсновной.Параметры.счетчик=счетчик; 

Табл.Вывести(ОбластьСтрокаОсновной);

Для Каждого Колонка из Тз.Колонки ЦИКЛ 
ОбластьСтрокаДОП.Параметры.ЗначениеКолонки=стр[Колонка.Имя];

Табл.Присоединить(ОбластьСтрокаДОП);

КонецЦикла;

КонецЦикла;

Табл.Вывести(ОбластьИтогОсновной);

Для Каждого Колонка из Тз.Колонки ЦИКЛ 
ОбластьИтогДОП.Параметры.Итог=Тз.Итог(Колонка.Имя);

Табл.Присоединить(ОбластьИтогДОП);

КонецЦикла;

Табл.ТолькоПросмотр=истина;

Табл.Показать();

КонецПроцедуры 

//Процедура формирует и выводит отчет таблице значений 
// Параметры : 
// ТЗ - ТаблицаЗначений 
Процедура УниверсальныйОтчетПоТЗ(ТЗ)

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

Макет = ЭтотОбъект.ПолучитьМакет("Макет");

ОбластьШапкаОсновной=Макет.ПолучитьОбласть("Шапка|Основной");

ОбластьСтрокаОсновной=Макет.ПолучитьОбласть("Строка|Основной");

ОбластьИтогОсновной=Макет.ПолучитьОбласть("Итог|Основной");


ОбластьШапкаДОП=Макет.ПолучитьОбласть("Шапка|Показатели");

ОбластьСтрокаДОП=Макет.ПолучитьОбласть("Строка|Показатели");

ОбластьИтогДОП=Макет.ПолучитьОбласть("Итог|Показатели");


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

Для Каждого Колонка из Тз.Колонки ЦИКЛ 
ОбластьШапкаДОП.Параметры.ИмяПоказателя=Колонка.Имя;

Табл.Присоединить(ОбластьШапкаДОП);

КонецЦикла;

счетчик=0;

Для каждого стр из Тз Цикл 
счетчик=счетчик+1;

ОбластьСтрокаОсновной.Параметры.счетчик=счетчик; 

Табл.Вывести(ОбластьСтрокаОсновной);

Для Каждого Колонка из Тз.Колонки ЦИКЛ 
ОбластьСтрокаДОП.Параметры.ЗначениеКолонки=стр[Колонка.Имя];

Табл.Присоединить(ОбластьСтрокаДОП);

КонецЦикла;

КонецЦикла;

Табл.Вывести(ОбластьИтогОсновной);

Для Каждого Колонка из Тз.Колонки ЦИКЛ 
ОбластьИтогДОП.Параметры.Итог=Тз.Итог(Колонка.Имя);

Табл.Присоединить(ОбластьИтогДОП);

КонецЦикла;

Табл.Показать();

КонецПроцедуры 




 
 

Скачать файлы

Наименование Файл Версия Размер
Простой макет
.zip 0,59Kb
10.07.13
80
.zip 0,59Kb 80 Скачать

См. также

Комментарии
1. Илья Пешкичев (OldthiefXXX) 140 19.04.11 13:04 Сейчас в теме
Действительно сократило время! ;-)
2. Сергей Сергеев (Рамзес) 23 21.04.11 08:44 Сейчас в теме
3. Илья (i132) 112 22.02.12 13:20 Сейчас в теме
по моему таблицу значений удобнее выводить в экранную форму - можно отсортировать по произвольной колонке,
если выводить на печать то большая функциональность при выводе с помощью СКД: http://infostart.ru/public/116645/

За запрос "-": не учтен вариант, когда в запросе есть итоги - удобнее выгружать в дерево -отображать группировку итогов. код читать было бы легче если после выгрузки запроса в ТЗ вы бы вызвали процедуру печати ТЗ.
"-" за то тчо не печатаете параметры запроса.

хорошо бы выводить в заголовке что выводится в полученную таблицу.
4. Александр Никитин (ManyakRus) 266 04.07.12 11:26 Сейчас в теме
Спасибо, всё сразу заработало :)
(Доделал себе чтоб выводил в свою же таблицу а не на новую страницу)