Добрый день. У меня такая ситуация: Есть ПФ прайс-листа. в этой же ПФ есть содержание. Это содержание выводится после самого "прайса", так как пока формируется "прайс", заполняется ТЗ из которой собственно и берутся данные для "Содержания". Вопрос: Как перенести содержание в начало?
---
да вроде и так ясно.
Имеем исходный ТД, в который выводим.
Создаем новый
ТД2 = Новый ТабличныйДокумент;
Формируем вывод сначала в ТД2.
Доходим до вывода Содержание. И выводим его уже в итоговый ТД.
Затем: ТД.Вывести(ТД2);
---
ТабличныйДокумент (SpreadsheetDocument)
ВставитьОбласть (InsertArea)
Синтаксис:

ВставитьОбласть(<ИсходнаяОбласть>, <ОбластьПриемник>, <Сдвиг>, <ЗаполнятьПараметры>)
---
Сделал так

```1c
    ТабличныйДокумент.ВставитьОбласть(ОбластьШапкаСодержанияБезСкидок,ТабличныйДокумент.Область("R2C1:R9C51"), ТипСмещенияТабличногоДокумента.ПоВертикали);
```

 Появляется ошибка

```1c
    Выделение не соответствует вставляемому блоку.
```

Что не так?
---
как вариант, размер исходной области не соответствует размеру приемной области.
---
а если так?
 ТабличныйДокумент.ВставитьОбласть(ОбластьШапкаСодержанияБезСкидок,ТабличныйДокумент.Область(1,,9), ТипСмещенияТабличногоДокумента.ПоВертикали);
---
Еще как вариант, можно основное тело вывести в отдельный ТД.
Затем вывести область Содержание в итоговый ТД. И вывести ранее подготовленный ТД в итоговый.
---
Еще как вариант, можно основное тело вывести в отдельный ТД.
Затем вывести область Содержание в итоговый ТД. И вывести ранее подготовленный ТД в итоговый.

Есть пример данного метода?
---
да вроде и так ясно.
Имеем исходный ТД, в который выводим.
Создаем новый
ТД2 = Новый ТабличныйДокумент;
Формируем вывод сначала в ТД2.
Доходим до вывода Содержание. И выводим его уже в итоговый ТД.
Затем: ТД.Вывести(ТД2);
---
Спасибо большое. этот вариант устраивает. Жаль, что я сам не додумался.
---
Жаль, что нельзя поставить вам 100 плюсов, ваш пост очень помог, спасибо!
ЗЫ Ну вот не знала, что так можно.
---
когда-то написал для постообработки СКД, мож прокатит

```1c
    Процедура ТаблДокОбластьСтроки_УстановитьСвойства(ТаблДокОбластьСтроки, СтруктураСвойств = Неопределено) Экспорт

    Если НЕ ЗначениеЗаполнено(СтруктураСвойств) Тогда
    Возврат;
    КонецЕсли;

    ЦветФона = Неопределено;
    СтруктураСвойств.Свойство("ЦветФона", ЦветФона);
    Если НЕ ЦветФона = Неопределено Тогда
    ТаблДокОбластьСтроки.ЦветФона = ЦветФона;
    КонецЕсли;

    ЦветТекста = Неопределено;
    СтруктураСвойств.Свойство("ЦветТекста", ЦветТекста);
    Если НЕ ЦветТекста = Неопределено Тогда
    ТаблДокОбластьСтроки.ЦветТекста = ЦветТекста;
    КонецЕсли;

    ШрифтРазмер = Неопределено;
    СтруктураСвойств.Свойство("ШрифтРазмер", ШрифтРазмер);
    Если НЕ ШрифтРазмер = Неопределено Тогда
    ТаблДокОбластьСтроки.Шрифт = Новый Шрифт(ТаблДокОбластьСтроки.Шрифт, , ШрифтРазмер);
    КонецЕсли;

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

    Процедура ТаблДок_ДобавитьИнфоВВерх(Инфо, ТаблДок, ДобавитьСтрок=0, СтруктураСвойств = Неопределено) Экспорт

    НомерСтрокиИнфо = ?(ДобавитьСтрок > 0, ДобавитьСтрок, 1);
    ТаблДокФиксацияСверху = ТаблДок.ФиксацияСверху; // Сохраним количество фиксированных строк сверху

    Если ДобавитьСтрок Тогда
    Для НомерСтрокиВставки = 1 По НомерСтрокиИнфо Цикл
    НомерСтрокиЗаПорогами = ТаблДок.ВысотаТаблицы + 1; // В этой строке нет оформлений, заполнения, параметров и т.п.
    СтрокаОбластьДляВставки = ТаблДок.Область(НомерСтрокиЗаПорогами,,НомерСтрокиЗаПорогами); // Область ячеек строки за последней форматной строкой ТаблДок
    ТаблДок.ВставитьОбласть(СтрокаОбластьДляВставки, ТаблДок.Область("R1"), ТипСмещенияТабличногоДокумента.ПоГоризонтали);
    КонецЦикла;
    КонецЕсли;

    ТаблДокОбласть = ТаблДок.Область(НомерСтрокиИнфо, 1);
    ТаблДокОбласть.АвтоВысотаСтроки = Истина;
    ТаблДокОбласть.ВысотаСтроки = 0;

    ТаблДокОбласть.Текст = Инфо;
    ТаблДокОбластьСтроки = ТаблДок.Область(НомерСтрокиИнфо, 1, НомерСтрокиИнфо, ТаблДок.ШиринаТаблицы);

    ТаблДокОбластьСтроки_УстановитьСвойства(ТаблДокОбластьСтроки, СтруктураСвойств);

    ТаблДок.ФиксацияСверху = ТаблДокФиксацияСверху + ДобавитьСтрок;

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

    Пример вызова:

    СтруктураСвойств = Новый Структура;
    СтруктураСвойств.Вставить("ЦветТекста" , Новый Цвет(28, 85, 174));
    СтруктураСвойств.Вставить("ШрифтРазмер", 10);
    ОбъектЗнч.ТаблДок_ДобавитьИнфоВВерх(РежимИнфо, ОтчетТабличныйДокумент, 0, СтруктураСвойств);
    //ОбъектЗнч.ТаблДок_ДобавитьИнфоВВерх("*", ОтчетТабличныйДокумент, 1); // строка-разделитель
```

также можно вставить в конец и даже между строк табличного документа, но это уже другая история, хотя методы просты