Раздел: Компьютер - Windows - 1С - Готовые решения
| ||||||
Ответ 1
Делаешь свою кнопку и вперед.
Запрос=Новый Запрос;
Запрос.Текст="ВЫБРАТЬ
| ОстаткиТоваровОстаткиИОбороты.Склад,
| ОстаткиТоваровОстаткиИОбороты.Номенклатура,
| ОстаткиТоваровОстаткиИОбороты.КоличествоНачальныйОстаток,
| ОстаткиТоваровОстаткиИОбороты.КоличествоПриход,
| ОстаткиТоваровОстаткиИОбороты.КоличествоРасход,
| ОстаткиТоваровОстаткиИОбороты.КоличествоКонечныйОстаток
|ИЗ
| РегистрНакопления.ОстаткиТоваров.ОстаткиИОбороты КАК ОстаткиТоваровОстаткиИОбороты";
ТЗ=Запрос.Выполнить().Выгрузить();
ВнешнийНабор=Новый Структура("Наборчик",ТЗ);
// схема компановки из реквизита отчета
СКД=ЭтотОбъект.ПолучитьМакет("ЧерезНабор"); // получим схему из макета
// настройка из схемы по умолчанию
НастройкаСКД=ЭтотОбъект.КомпоновщикНастроек.Настройки; // текущие настройки
// компоновщик макета из схемы и настроек порождает макет
КомпоновщикМакетаКомпоновкиДанных=Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновкиДанных=КомпоновщикМакетаКомпоновкиДанных.Выполнить(СКД, НастройкаСКД) ;
// процессор из макета делает себя самого
ПроцессорКомпоновкиДанных=Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных,ВнешнийНабор);
// прцессор вывода порождает ТД
ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент=Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ЭлементыФормы.Результат.Очистить();
ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент.УстановитьДокумент(ЭлементыФормы.Результат);
ТД=ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент.Вывести(ПроцессорКомпоновкиДанных);
ТД.Показать();
//*********************************
//А еще можно через ЭлементыФормы. Пример из "Отчета по кассе" переменные не совпадают с приведенными в примере
//*********************************
ЭлементыФормы.Результат.Очистить();
ВнешниеНаборыДанных=Новый Структура;
ВнешниеНаборыДанных.Вставить("ОстаткиПоКассам",ОстаткиПоКассам);
КомпоновщикМакета=Новый КомпоновщикМакетаКомпоновкиДанных;
Настройки=КомпоновщикНастроек.ПолучитьНастройки();
МакетКомпоновки=КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,Настройки,ДанныеРасшифровки);
ПроцессорКомпоновки=Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки,ВнешниеНаборыДанных,ДанныеРасшифровки);
ПроцессорВывода=Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ЭлементыФормы.Результат);
ПроцессорВывода.НачатьВывод();
Пока Истина Цикл
ЭлементРезультата=ПроцессорКомпоновки.Следующий();
Если ЭлементРезультата=Неопределено Тогда
Прервать;
Иначе
ПроцессорВывода.ВывестиЭлемент(ЭлементРезультата);
КонецЕсли;
КонецЦикла;
ПроцессорВывода.ЗакончитьВывод();
////Установим параметры страницы. Или сохраним настройки
//ЭлементыФормы.Результат.ОриентацияСтраницы=ОриентацияСтраницы.Ландшафт;
//ЭлементыФормы.Результат.АвтоМасштаб=Истина;
ЭлементыФормы.Результат.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_Ж1";
//
ЭлементыФормы.Результат.Показать();
Ответ 2
ПриКомпоновкеРезультата() ("живёт" в модуле объекта) для этого предназначена, и форму можно не делать.
Но вызывается она только СТАНДАРТНОЙ кнопкой
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ДокументРезультат.ОриентацияСтраницы=ОриентацияСтраницы.Ландшафт;
ДокументРезультат.АвтоМасштаб=Истина;
ДокументРезультат.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_МО";
Настройки = КомпоновщикНастроек.Настройки;
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки);
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки);
ДокументРезультат.Очистить();
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
ПроцессорВывода.Вывести(ПроцессорКомпоновки);
КонецПроцедуры
|
понедельник, 29 октября 2018 г.
Перехватить формирование отчета с СКД, изменить параметры печати
Подписаться на:
Комментарии к сообщению (Atom)
Комментариев нет:
Отправить комментарий