Имя: Пароль:
1C
1С v8
Решение по проблеме ТабличныйДокумент.ВставитьСекцию() "
0 Target1025
 
22.09.20
15:03
Несколько часов потратил на то, чтобы разобраться как откорректировать сформированный ПроцессоромВывода табличный документ изза ошибки "Выделение не соответствует вставляемому блоку".

Решение выглядит так:
Предположим у нас есть сфомированный ТабДок из Макета1, куда мы собираемся подрядить первую строку из Макета2, сдвинув вторую строку ТабДок вниз:

    Объектик= РеквизитФормыВЗначение("Объект");
    ТабДок = Новый ТабличныйДокумент;
    Макет1 = Объектик.ПолучитьМакет("Макет1");
    // тут, типа, отрабатывает ПроцессорВывода
    ТабДок.Вывести(Макет1);
    Макет2 = Объектик.ПолучитьМакет("Макет2");
    Макет2Область = Макет2.ПолучитьОбласть(1,,1,);
    // вот эта необходимость поставить еще раз вызов Макет2.Область() была совершенно неочевидна для меня
    ТАбДок.ВставитьОбласть(Макет2.Область(),ТабДок.Область(2,,2,),ТипСмещенияТабличногоДокумента.ПоВертикали);

Если потребуется заполнение параметров, то выводим примерно так:

    Макет2Область = Макет2.ПолучитьОбласть(1,,1,);
    Макет2Область.Параметры.АБВГД = "98765"; // ставим параметр
    ТАбДок.ВставитьОбласть(МАкет2Область.Область(),ТабДок.Область(2,,2,),ТипСмещенияТабличногоДокумента.ПоВертикали, Истина); // истина расстановит параметры
1 Ёпрст
 
22.09.20
15:11
(0)
И зачем вставлять всю таблицу целиком этим кодом ?

ТАбДок.ВставитьОбласть(Макет2.Область() ... ?

когда выше получил конкретную Макет2Область = Макет2.ПолучитьОбласть(1,,1,); ?
2 Target1025
 
22.09.20
17:21
(1) В этом и тонкость и сложность, что удаление этого вызова без параметров Макет2Область.Область() и передача параметра просто как Макет2Область вызывает ошибку времени исполнения "Выделение не соответствует вставляемому блоку".
Почему? А потому, что Макет2Область = Макет2.ПолучитьОбласть(1,,1,) имеет тип значения НЕ ОбластьЯчеекТабличногоДокумента, а сам "ТабличныйДокумент". И вот вызовом метода .Область() мы конвертируем сам ТабличныйДокумент Макет2Область в тип значения ОбластьЯчеекТабличногоДокумента, которую согласен "сожрать" метод   ТабДок.ВставитьОбласть(..)
3 Ёпрст
 
22.09.20
17:44
(2) всё работает и без таких извращений
4 Ёпрст
 
22.09.20
17:44
если что