![]() |
|
Вывести несколько блоков с колонками отчета на СКД на одну страницу | ☑ | ||
---|---|---|---|---|
0
al_zzz
18.07.21
✎
16:19
|
Требуется вывести несколько блоков с колонками отчета на СКД на одну страницу(Розница 2.3, 8.3.18.1433, отчет "Прайс-лист"). Идея следующая: добавляем блок пошагового вывода элементов отчета(это я уже сделал), далее выводим элементы результата в пустой табличный документ(ТД), а в ДокументРезультат вставляем область из ТД в нужном положении. Т.е. если блок ячеек относится к первой колонке, то выводим его с новой строки, иначе - присоединяем справа.
Пишу такой код: Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) ...................................... ТД = Новый ТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ТД); //ПроцессорВывода.Вывести(ПроцессорКомпоновки); ПроцессорВывода.НачатьВывод(); ЭлементРезультата = ПроцессорКомпоновки.Следующий(); ПервыйПроход = Ложь; Пока ЭлементРезультата<>Неопределено Цикл ПроцессорВывода.ВывестиЭлемент(ЭлементРезультата); Если ЭлементРезультата.ЗначенияПараметров.Количество()>0 и Не ПервыйПроход Тогда //Первый раз просто пытаемся скопировать область из ТД в ДокументРезультат ОбластьПриемник = ДокументРезультат.ПолучитьОбласть(1,1,ТД.ШиринаТаблицы,ТД.ВысотаТаблицы); ОбластьИсточник = ТД.ПолучитьОбласть(1,1,ТД.ШиринаТаблицы,ТД.ВысотаТаблицы); ДокументРезультат.ВставитьОбласть(ОбластьИсточник,ОбластьПриемник); ПервыйПроход = Истина; КонецЕсли; ЭлементРезультата = ПроцессорКомпоновки.Следующий(); КонецЦикла; ПроцессорВывода.ЗакончитьВывод(); КонецПроцедуры При этом получаю ошибку: "Выделение не соответствует вставляемому блоку". Вероятно, неправильно понимаю логику копирования области из одного табличного документа в другой. ЧЯДНТ? Поделитесь, пожалуйста, примерами, как с областями работать? Может быть, мне вообще стоит пойти по другому пути для решения этой задачи? |
|||
1
acanta
18.07.21
✎
16:31
|
В каком именно месте ошибка?
|
|||
2
al_zzz
18.07.21
✎
16:40
|
ДокументРезультат.ВставитьОбласть(ОбластьИсточник,ОбластьПриемник);
|
|||
3
acanta
18.07.21
✎
16:58
|
А если область получатель будет (1,1)?
|
|||
4
al_zzz
18.07.21
✎
17:13
|
(3) 1,1,2,5 там
|
|||
5
acanta
18.07.21
✎
17:20
|
Вместо выделенного фрагмента указать одну левую верхнюю клетку?
|
|||
6
al_zzz
18.07.21
✎
17:33
|
Та же ошибка. Может быть, команду "ВставитьОбласть" можно таким образом использовать только в рамках одного документа?
|
|||
7
acanta
18.07.21
✎
17:36
|
А если оба фрагмента будут 1,1,1,1 или 1,1?
|
|||
8
al_zzz
18.07.21
✎
17:38
|
Всё, разобрался с этим моментом - надо было не "ПолучитьОбласть", а "Область" писать.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |