Как создать такой Макет (отчет), табличная часть?
Тест 4 - одна строка
А тест 1, тест 2, тест 3 и т.д. - это данные из табличной части документа. (может быть две строки, а может 10 )
---
```1c
    НачальнаяСтрока = 1;
    ВыведенныхСтрок = 0;
    Пока Выборка.Следующий() Цикл
    ОбластьТабЧасть.Параметры.Заполнить(Выборка);
    ТабДок.Вывести(ОбластьТабЧасть);
    ВыведенныхСтрок = ВыведенныхСтрок + 1;
    КонецЦикла;
    ТабДок.Область(НачальнаяСтрока, 2).Текст = "тест4";
    ТабДок.Область(НачальнаяСтрока, 2, НачальнаяСтрока + ВыведенныхСтрок - 1, 2).Объединить();
```

Ели у вас группировка по Тест1 и Тест3, в таком случае, у вас первая выборка должна быть с обходом по группировкам:

```1c
    ВыборкаПоГруппировкам = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    НачальнаяСтрока = 1;
    ВыведенныхСтрок = 0;
    Пока ВыборкаПоГруппировкам.Следующий() Цикл
    ОбластьТабЧасть.Параметры.Заполнить(Выборка);
    ТабДок.Вывести(ОбластьТабЧасть);
    ВыборкаДетальныеЗаписи = ВыборкаПоГруппировкам.Выбрать();
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    ОбластьТабЧасть.Параметры.Заполнить(Выборка);
    ТабДок.Вывести(ОбластьТабЧасть, 1);
    ВыведенныхСтрок = ВыведенныхСтрок + 1;
    КонецЦикла;
    ВыведенныхСтрок = ВыведенныхСтрок + 1;
    ТабДок.Область(НачальнаяСтрока, 2).Текст = "тест4";
    ТабДок.Область(НачальнаяСтрока, 2, НачальнаяСтрока + ВыведенныхСтрок - 1, 2).Объединить();
    НачальнаяСтрока = НачальнаяСтрока + ВыведенныхСтрок;
    КонецЦикла;
```
---
заведите счетчики для начальных строк вывода, выведенных строк в правой колонке, в левой колонке просто выполняйте объединение с начальной строки по количеству выведенных.

Другими словами:

НачальнаяСтрока = 1;
ВыведенныхСтрок = 3;

ТабДок.Область(НачальнаяСтрока, 2, НачальнаяСтрока + ВыведенныхСтрок - 1, 2).Объединить();

Следующая начальная строка будет: НачальнаяСтрока + ВыведенныхСтрок;
---
Не понимаю как сделать. (прикрепил файл в теме)

```1c
    &НаСервере
    Функция ВывестиОтчетНаСервере(ТабДок)

    Макет = РеквизитФормыВЗначение("Объект").ПолучитьМакет("Макет");
    ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
    ОбластьТабЧасть = Макет.ПолучитьОбласть("ТабЧасть");

    // Вывести справа в поле: "Правая колонка"
    Строка2 = "Правая колонка";

    ТабДок = Новый ТабличныйДокумент;
    ТабДок.Вывести(ОбластьШапка);

    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | "тест1" КАК Строка1
    |
    |ОБЪЕДИНИТЬ ВСЕ
    |
    |ВЫБРАТЬ
    | "тест3"
    |
    |ОБЪЕДИНИТЬ ВСЕ
    |
    |ВЫБРАТЬ
    | "тест2"";

    Выборка = Запрос.Выполнить().Выбрать();

    НачальнаяСтрока = 0;
    ВыведенныхСтрок = 0;
    Пока Выборка.Следующий() Цикл
    Если НачальнаяСтрока =0 Тогда
    НачальнаяСтрока = НачальнаяСтрока + 1;
    КонецЕсли;
    ВыведенныхСтрок = ВыведенныхСтрок + 1;

    ОбластьТабЧасть.Параметры.Заполнить(Выборка);
    ТабДок.Вывести(ОбластьТабЧасть);

    КонецЦикла;

    Возврат ТабДок;
    КонецФункции
```
---
```1c
    НачальнаяСтрока = 1;
    ВыведенныхСтрок = 0;
    Пока Выборка.Следующий() Цикл
    ОбластьТабЧасть.Параметры.Заполнить(Выборка);
    ТабДок.Вывести(ОбластьТабЧасть);
    ВыведенныхСтрок = ВыведенныхСтрок + 1;
    КонецЦикла;
    ТабДок.Область(НачальнаяСтрока, 2).Текст = "тест4";
    ТабДок.Область(НачальнаяСтрока, 2, НачальнаяСтрока + ВыведенныхСтрок - 1, 2).Объединить();
```

Ели у вас группировка по Тест1 и Тест3, в таком случае, у вас первая выборка должна быть с обходом по группировкам:

```1c
    ВыборкаПоГруппировкам = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    НачальнаяСтрока = 1;
    ВыведенныхСтрок = 0;
    Пока ВыборкаПоГруппировкам.Следующий() Цикл
    ОбластьТабЧасть.Параметры.Заполнить(Выборка);
    ТабДок.Вывести(ОбластьТабЧасть);
    ВыборкаДетальныеЗаписи = ВыборкаПоГруппировкам.Выбрать();
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    ОбластьТабЧасть.Параметры.Заполнить(Выборка);
    ТабДок.Вывести(ОбластьТабЧасть, 1);
    ВыведенныхСтрок = ВыведенныхСтрок + 1;
    КонецЦикла;
    ВыведенныхСтрок = ВыведенныхСтрок + 1;
    ТабДок.Область(НачальнаяСтрока, 2).Текст = "тест4";
    ТабДок.Область(НачальнаяСтрока, 2, НачальнаяСтрока + ВыведенныхСтрок - 1, 2).Объединить();
    НачальнаяСтрока = НачальнаяСтрока + ВыведенныхСтрок;
    КонецЦикла;
```
---
Спасибо!
Пока хелп не прочитал, не получалось. (сейчас сделаю рабочий отчет и напишу)

```1c
    Область(<НомерПервойСтроки>, <НомерПервойКолонки>, <НомерПоследнейСтроки>, <НомерПоследнейКолонки>)
```

А если у меня сверху ещё одна табличная часть (где всё просто). Мне нужно высчитывать номер строки от туда. Правильно?
---
Естественно.
---
У меня поле широкое, куда я добавляю.

```1c
    ТабДок.Область("R27C16:R27C24").Текст = "Очень длинный текст, перенос строки в макете установил.";
    ТабДок.Область(27, 16, 29, 16).Объединить();
```

Но заполняется только первый столбец, который растягивается по строкам.
Как сделать, чтобы текст по всей ширине заполнялся. (ошибка в строке - Объединить.)
---
Нужно так (указать область прямоугольника):

```1c
    ТабДок.Область("R27C16:R29C24").Объединить();
```

Спасибо за помощь!
---
Должно работать так:

```1c
    ТабДок.Область(27, 16).Текст = "Очень длинный текст. Перенос можно не ставить, т.к. после объединения вроде как перенос сбрасывается в дефолтное состояния";
    ТекОбласть = ТабДок.Область(27, 16, 29, 16);
    ТекОбласть.Объединить();
    ТекОбласть.РазмещениеТекста = ТипРазмещенияТекстаТабличногоДокумента.Переносить;
```

Если у вас несколько колонок, указывайте номер последней колонки равный НомерНачальнойКолонки + КоличествоКолонокДляОбъединения

```1c
    ТекОбласть = ТабДок.Область(27, 16, 29, 20); //будет область из 3-х строк и 5-и колонок.
    ТекОбласть.Объединить();
```