Нужно объединить несколько типовых печатных форм документов (Счет и УПД) в один.
Пытаюсь с помощью
ОбластьЯчеек.СоздатьФорматСтрок();
объединить, но Формат строк едет...
Думаю из-за того, что в типовых печатных формах уже был использован этот метод.
Хочу пробежаться про типовой печатной форме (Табличному документу) и каким-то образом найти места где был применен метод СоздатьФорматСтрок(). На ум приходит построчно бежать и сравнивать ширину ячеек внутри строки со строкой выше.
Как-нибудь можно подругому определить что был применен метод СоздатьФорматСтрок() по готовому табличному документу?
---
Выводит, но ширина колонок слетает после того как вывелся
(1)Вот такой процедурой корректно объединились два табличных документа

```1c
    &НаСервере
    Процедура ПрисоединитьТабличныйДокумент1(ОсновнойДокумент, Знач ПрисоединяемыйДокумент) Экспорт
    ОбъектXDTO = СериализаторXDTO.ЗаписатьXDTO(ПрисоединяемыйДокумент);
    ТЗ=Новый ТаблицаЗначений;
    ТЗ.Колонки.Добавить("НачальнаяСтрока",Новый ОписаниеТипов("Число",новый КвалификаторыЧисла(10)));
    ТЗ.Колонки.Добавить("КонечнаяСтрока",Новый ОписаниеТипов("Число",новый КвалификаторыЧисла(10)));
    IDКолонки="Пусто";
    НачальнаяСтрока=0;
    Для Каждого Строка из ОбъектXDTO.rowsItem Цикл
    //Если Строка.row.columnsID заполнено,то применен другой формат колонок
    Если не Строка.row.columnsID=IDКолонки Тогда
    Если НЕ НачальнаяСтрока=0 Тогда
    СтрокаТЗ=ТЗ.Добавить();
    СтрокаТЗ.НачальнаяСтрока=НачальнаяСтрока;
    СтрокаТЗ.КонечнаяСтрока=Строка.index;
    Иначе
    НачальнаяСтрока=Строка.index+1;
    КонецЕсли;
    НачальнаяСтрока=Строка.index+1;
    IDКолонки=Строка.row.columnsID;
    КонецЕслИ;
    КонецЦикла;
    СтрокаТЗ=ТЗ.Добавить();
    СтрокаТЗ.НачальнаяСтрока=НачальнаяСтрока;
    СтрокаТЗ.КонечнаяСтрока=ОбъектXDTO.rowsItem.Count();
    ТЗ.Свернуть("НачальнаяСтрока,КонечнаяСтрока");
    ТЗ.Сортировать("НачальнаяСтрока Возр");
    Для Каждого СтрокаТЗ из ТЗ Цикл
    ВставляемаяОбласть=ПрисоединяемыйДокумент.Область(СтрокаТЗ.НачальнаяСтрока,,СтрокаТЗ.КонечнаяСтрока);
    ВставляемаяОбласть.СоздатьФорматСтрок();
    ОбластьПриемник= ОсновнойДокумент.Область(ОсновнойДокумент.ВысотаТаблицы+1,,ОсновнойДокумент.ВысотаТаблицы+1+СтрокаТЗ.КонечнаяСтрока-СтрокаТЗ.НачальнаяСтрока);
    ОсновнойДокумент.ВставитьОбласть(ВставляемаяОбласть,ОбластьПриемник,ТипСмещенияТабличногоДокумента.ПоВертикали);
    КонецЦикла;
    КонецПроцедуры
```
---
Выводит, но ширина колонок слетает после того как вывелся
(1)Вот такой процедурой корректно объединились два табличных документа

```1c
    &НаСервере
    Процедура ПрисоединитьТабличныйДокумент1(ОсновнойДокумент, Знач ПрисоединяемыйДокумент) Экспорт
    ОбъектXDTO = СериализаторXDTO.ЗаписатьXDTO(ПрисоединяемыйДокумент);
    ТЗ=Новый ТаблицаЗначений;
    ТЗ.Колонки.Добавить("НачальнаяСтрока",Новый ОписаниеТипов("Число",новый КвалификаторыЧисла(10)));
    ТЗ.Колонки.Добавить("КонечнаяСтрока",Новый ОписаниеТипов("Число",новый КвалификаторыЧисла(10)));
    IDКолонки="Пусто";
    НачальнаяСтрока=0;
    Для Каждого Строка из ОбъектXDTO.rowsItem Цикл
    //Если Строка.row.columnsID заполнено,то применен другой формат колонок
    Если не Строка.row.columnsID=IDКолонки Тогда
    Если НЕ НачальнаяСтрока=0 Тогда
    СтрокаТЗ=ТЗ.Добавить();
    СтрокаТЗ.НачальнаяСтрока=НачальнаяСтрока;
    СтрокаТЗ.КонечнаяСтрока=Строка.index;
    Иначе
    НачальнаяСтрока=Строка.index+1;
    КонецЕсли;
    НачальнаяСтрока=Строка.index+1;
    IDКолонки=Строка.row.columnsID;
    КонецЕслИ;
    КонецЦикла;
    СтрокаТЗ=ТЗ.Добавить();
    СтрокаТЗ.НачальнаяСтрока=НачальнаяСтрока;
    СтрокаТЗ.КонечнаяСтрока=ОбъектXDTO.rowsItem.Count();
    ТЗ.Свернуть("НачальнаяСтрока,КонечнаяСтрока");
    ТЗ.Сортировать("НачальнаяСтрока Возр");
    Для Каждого СтрокаТЗ из ТЗ Цикл
    ВставляемаяОбласть=ПрисоединяемыйДокумент.Область(СтрокаТЗ.НачальнаяСтрока,,СтрокаТЗ.КонечнаяСтрока);
    ВставляемаяОбласть.СоздатьФорматСтрок();
    ОбластьПриемник= ОсновнойДокумент.Область(ОсновнойДокумент.ВысотаТаблицы+1,,ОсновнойДокумент.ВысотаТаблицы+1+СтрокаТЗ.КонечнаяСтрока-СтрокаТЗ.НачальнаяСтрока);
    ОсновнойДокумент.ВставитьОбласть(ВставляемаяОбласть,ОбластьПриемник,ТипСмещенияТабличногоДокумента.ПоВертикали);
    КонецЦикла;
    КонецПроцедуры
```
---
А задача-то изначально какая?
Зачем их в один документ объединять?
---
В первый документ второй вставьте как область (с собственным форматом строк)
---
с собственным форматом строк
Пользуюсь вот этой функцией
https://infostart.ru/public/944987/
---
Изначальная задача запихнуть на один лист Счет и УПД, чтобы сэкономить бумагу.
Счета и УПД печатаются из Реестра (собственной разработки), которая получает табличные документы по стандартным алгоритмам, а потом либо кидает на принтер либо сохраняет в кучу файлов...
---
Получили табдок1 и табдок2.
И не срабатывает
табдок_всё.Вывести(табдок1);
---
Предыдущий коммент не дописал.
Видимо в каждом табличном документе уже используется несколько форматов строк, при этом надо учесть, что есть исходный.
Вот здесь препарировали табличный документ, чтобы выявить области с новым форматом строк.
https://forum.infostart.ru/forum9/topic221584/
---
Спасибо за инфу, немного не то, тк мне нужно оставить форматирование, а не удалять, но попробую на основе этого найти границы областей