0
al_zzz
18.07.21
✎
16:19
|
Требуется вывести несколько блоков с колонками отчета на СКД на одну страницу(Розница 2.3, 8.3.18.1433, отчет "Прайс-лист"). Идея следующая: добавляем блок пошагового вывода элементов отчета(это я уже сделал), далее выводим элементы результата в пустой табличный документ(ТД), а в ДокументРезультат вставляем область из ТД в нужном положении. Т.е. если блок ячеек относится к первой колонке, то выводим его с новой строки, иначе - присоединяем справа.
Пишу такой код:
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
......................................
ТД = Новый ТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ТД);
//ПроцессорВывода.Вывести(ПроцессорКомпоновки);
ПроцессорВывода.НачатьВывод();
ЭлементРезультата = ПроцессорКомпоновки.Следующий();
ПервыйПроход = Ложь;
Пока ЭлементРезультата<>Неопределено Цикл
ПроцессорВывода.ВывестиЭлемент(ЭлементРезультата);
Если ЭлементРезультата.ЗначенияПараметров.Количество()>0 и Не ПервыйПроход Тогда //Первый раз просто пытаемся скопировать область из ТД в ДокументРезультат
ОбластьПриемник = ДокументРезультат.ПолучитьОбласть(1,1,ТД.ШиринаТаблицы,ТД.ВысотаТаблицы);
ОбластьИсточник = ТД.ПолучитьОбласть(1,1,ТД.ШиринаТаблицы,ТД.ВысотаТаблицы);
ДокументРезультат.ВставитьОбласть(ОбластьИсточник,ОбластьПриемник);
ПервыйПроход = Истина;
КонецЕсли;
ЭлементРезультата = ПроцессорКомпоновки.Следующий();
КонецЦикла;
ПроцессорВывода.ЗакончитьВывод();
КонецПроцедуры
При этом получаю ошибку: "Выделение не соответствует вставляемому блоку".
Вероятно, неправильно понимаю логику копирования области из одного табличного документа в другой. ЧЯДНТ? Поделитесь, пожалуйста, примерами, как с областями работать?
Может быть, мне вообще стоит пойти по другому пути для решения этой задачи?
|
|
7
acanta
18.07.21
✎
17:36
|
А если оба фрагмента будут 1,1,1,1 или 1,1?
|
|