БП 2.0
Есть макет:

первые 4 колонки не изменны, а 5 колонка будет повторяться при проверке нового подразделения, т.е. новое подразделение - новая с колонка с параметрами выборки.

Подскажите пожалуйста как это реализовать ? Просто впервые сталкиваюсь с добавлением колонок...
Пытался вот так, но не получается ((

```1c
    Процедура КнопкаВыполнитьНажатие(Кнопка)
    Таблица = Новый ТабличныйДокумент ;

    Макет = ПолучитьМакет("Макет");

    // ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
    // Таблица.Вывести(ОбластьШапка);
    ОбластьСтрока = Макет.ПолучитьОбласть("Строка");
    Секция = Таблица.ПолучитьОбласть("R1C5:R90C5");
    Таблица.НачатьАвтогруппировкуКолонок();

    Запрос = Новый Запрос;
    Запрос.Текст ="ВЫБРАТЬ
    | ХозрасчетныйДвиженияССубконто.СубконтоДт2,
    | ХозрасчетныйДвиженияССубконто.Сумма,
    | ХозрасчетныйДвиженияССубконто.СчетКт КАК СчетКт,
    | ХозрасчетныйДвиженияССубконто.Период,
    | ХозрасчетныйДвиженияССубконто.ПодразделениеКт.Ссылка КАК ПодразделениеКтСсылка,
    | ХозрасчетныйДвиженияССубконто.СуммаНУДт,
    | ХозрасчетныйДвиженияССубконто.СуммаНУКт,
    | ХозрасчетныйДвиженияССубконто.СуммаПРДт,
    | ХозрасчетныйДвиженияССубконто.СуммаПРКт,
    | ХозрасчетныйДвиженияССубконто.СуммаВРДт,
    | ХозрасчетныйДвиженияССубконто.СуммаВРКт
    |ИЗ
    | РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(
    | &НачПериода,
    | &КонПериода,
    | СчетДт = &Счет
    | И ПодразделениеДт.Ссылка = &Подразделение,
    | ,
    | ) КАК ХозрасчетныйДвиженияССубконто
    |
    |УПОРЯДОЧИТЬ ПО
    | ПодразделениеКтСсылка,
    | СчетКт";

    Запрос.УстановитьПараметр("Счет", Счет);
    Запрос.УстановитьПараметр("Подразделение", Подразделение);
    Запрос.УстановитьПараметр("НачПериода", НачалоДня(НачПериода));
    Запрос.УстановитьПараметр("КонПериода", КонецДня(КонПериода));

    Выборка = Запрос.Выполнить().Выбрать();
    Пока Выборка.Следующий() Цикл
    Если Выборка.СубконтоДт2.Наименование = "Амортизация ОС и НМА" тогда

    АБУ1 = АБУ1 + Выборка.Сумма;
    Если не Выборка.СчетКт.Код = "20" и не Выборка.СчетКт.Код = "20.01" и не Выборка.СчетКт.Код = "20.02" и не Выборка.СчетКт.Код = "23" и не Выборка.СчетКт.Код = "23.01" и не Выборка.СчетКт.Код = "23.02" тогда
    АБУ2 = АБУ2 + Выборка.Сумма;
    КонецЕсли;
    КонецЕсли;
    Если Выборка.ПодразделениеКтСсылка <> NULL тогда
    Подр = Выборка.ПодразделениеКтСсылка;
    Если Подр <> ПД тогда
    ПД=Подр;
    // Секция = Таблица.ПолучитьОбласть("R7C5");
    Секция.Область().Текст = ПД;
    Секция.Область().ГоризонтальноеПоложение = ГоризонтальноеПоложение.Право;
    Секция.Присоединить(Секция,5, ,Истина);
    //Таблица.Вывести(Секция,5, ,Истина);
    КонецЕсли;
    КонецЕсли;
    КонецЦикла;

    ОбластьСтрока.Параметры.АБУ1 = АБУ1;
    ОбластьСтрока.Параметры.АБУ2 = АБУ2;

    Таблица.Вывести(ОбластьСтрока);

    Таблица.Автомасштаб = Истина;
    Таблица.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
    Таблица.ТолькоПросмотр = Истина;
    Таблица.Показать("Макет", , Истина);

    КонецПроцедуры
```
---
hasan-rusel, Сделал бы так: Убрал подразделение из параметров, затем

Выборка = Запрос1.Выполнить().Выгрузить();
Если Выборка.Количество()>0 тогда
ПодрразделениеПредыдущее=Выборка[0].ПодразделениеКт;

Для й=0 по выборка.Количество()-1 цикл Цикл
Если й=0 тогда
//Выводим первый раз столбец с подразделением
Конецесли;
//*****
//Тут ваш код по заполнению строк
//***
Если ПодразделениеПредыдущее<>Выборка[й].ПодразделениеКт тогда
//Присоединяем столбец подразделение
Конецесли;
Конеццикла;
---
А что мешает при выводе макет использовать "горизонтальные и вертикальные имена" областей и по мере неоюходимости выводить или нет 4 колонку?
---
AnryMc, Да, так и сделал...
---
Неужели никто не знает ?
Или может я не правильно написал, напишу иначе:

Как сделать так чтобы можно было присоединять 5 колонку в цикле ?

Как бы так:
Пока цикл **** если новое подразделение тогда
берем 5 колонку, присваиваем параметры такие-то (5 колонка.Параметры.ПД= ПД;)
выводим справа... и т.д.
?!??!
---
Подскажите что не так с циклом, глаз уже дергается...

```1c
    Запрос1 = Новый Запрос;
    Запрос1.Текст ="ВЫБРАТЬ
    | ХозрасчетныйДвиженияССубконто.СубконтоДт2,
    | ХозрасчетныйДвиженияССубконто.Сумма,
    | ХозрасчетныйДвиженияССубконто.СчетКт КАК СчетКт,
    | ХозрасчетныйДвиженияССубконто.Период,
    | ХозрасчетныйДвиженияССубконто.ПодразделениеКт.Ссылка КАК ПодразделениеКтСсылка,
    | ХозрасчетныйДвиженияССубконто.СуммаНУДт,
    | ХозрасчетныйДвиженияССубконто.СуммаНУКт,
    | ХозрасчетныйДвиженияССубконто.СуммаПРДт,
    | ХозрасчетныйДвиженияССубконто.СуммаПРКт,
    | ХозрасчетныйДвиженияССубконто.СуммаВРДт,
    | ХозрасчетныйДвиженияССубконто.СуммаВРКт
    |ИЗ
    | РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(
    | &НачПериода,
    | &КонПериода,
    | СчетДт = &Счет
    | И ПодразделениеДт.Ссылка = &Подразделение,
    | ,
    | ) КАК ХозрасчетныйДвиженияССубконто
    |
    |УПОРЯДОЧИТЬ ПО
    | ПодразделениеКтСсылка";

    Запрос1.УстановитьПараметр("Счет", Счет);
    Запрос1.УстановитьПараметр("Подразделение", Подразделение);
    Запрос1.УстановитьПараметр("НачПериода", НачалоДня(НачПериода));
    Запрос1.УстановитьПараметр("КонПериода", КонецДня(КонПериода));

    Выборка = Запрос1.Выполнить().Выбрать();
    Пока Выборка.Следующий() Цикл

    ПриОткрытии();

    // ПД=Подр;
    Если Выборка.СчетКт.Код = "20" или Выборка.СчетКт.Код = "20.01" или Выборка.СчетКт.Код = "20.02" тогда
    Подр = Выборка.ПодразделениеКтСсылка;
    Если Подр <> ПД тогда
    ПД=Подр;

    Если Выборка.СубконтоДт2.Наименование = "Амортизация ОС и НМА" тогда

    АБУ3 = АБУ3 + Выборка.Сумма;
    АНУ3 = АНУ3 + Выборка.СуммаНУДт;
    АПР3=АПР3+Выборка.СуммаПРДт;
    АВР3=АВР3+Выборка.СуммаВРДт;
    АК3=АБУ3-(АНУ3+АПР3+АВР3);
    КонецЕсли;

    Если Выборка.СубконтоДт2.Наименование = "материалы и комплектующие на содержание, ремонт и эксплуатацию машин и оборудования" тогда
    МБУ3=МБУ3+ Выборка.Сумма;
    МНУ3=МНУ3 + Выборка.СуммаНУДт;
    МПР3=МПР3+Выборка.СуммаПРДт;
    МВР3=МВР3+Выборка.СуммаВРДт;
    МК3=МБУ3-(МНУ3+МПР3+МВР3);
    КонецЕсли;

    Если Выборка.СубконтоДт2.Наименование = "Общецеховые расходы" тогда
    ОБУ3=ОБУ3+ Выборка.Сумма;
    ОНУ3=ОНУ3 + Выборка.СуммаНУДт;
    ОПР3=ОПР3+Выборка.СуммаПРДт;
    ОВР3=ОВР3+Выборка.СуммаВРДт;
    ОК3=ОБУ3-(ОНУ3+ОПР3+ОВР3);
    КонецЕсли;
    Если Выборка.СубконтоДт2.Наименование = "Основная и дополнительная заработная плата работников" тогда
    ОДБУ3=ОДБУ3+ Выборка.Сумма;
    ОДНУ3=ОДНУ3 + Выборка.СуммаНУДт;
    ОДПР3=ОДПР3+Выборка.СуммаПРДт;
    ОДВР3=ОДВР3+Выборка.СуммаВРДт;
    ОДК3=ОДБУ3-(ОДНУ3+ОДПР3+ОДВР3);

    КонецЕсли;
    Если Выборка.СубконтоДт2.Наименование = "проживание в командировочных расходах" тогда
    ПБУ3=ПБУ3+ Выборка.Сумма;
    ПНУ3=ПНУ3 + Выборка.СуммаНУДт;
    ППР3=ППР3+Выборка.СуммаПРДт;
    ПВР3=ПВР3+Выборка.СуммаВРДт;
    ПК3=ПБУ3-(ПНУ3+ППР3+ПВР3);
    КонецЕсли;
    Если Выборка.СубконтоДт2.Наименование = "Прочие расходы не поименованные в справочнике" тогда
    ПРБУ3=ПРБУ3+ Выборка.Сумма;
    ПРНУ3=ПРНУ3 + Выборка.СуммаНУДт;
    ПРПР3=ПРПР3+Выборка.СуммаПРДт;
    ПРВР3=ПРВР3+Выборка.СуммаВРДт;
    ПРК3=ПРБУ3-(ПРНУ3+ПРПР3+ПРВР3);
    КонецЕсли;
    Если Выборка.СубконтоДт2.Наименование = "Прочие транспортные расходы не поименованные в группе" тогда
    ПТБУ3=ПТБУ3+ Выборка.Сумма;
    ПТНУ3=ПТНУ3 + Выборка.СуммаНУДт;
    ПТПР3=ПТПР3+Выборка.СуммаПРДт;
    ПТВР3=ПТВР3+Выборка.СуммаВРДт;
    ПТК3=ПТБУ3-(ПТНУ3+ПТПР3+ПТВР3);
    КонецЕсли;
    Если Выборка.СубконтоДт2.Наименование = "Расход воды" тогда
    РБУ3=РБУ3+ Выборка.Сумма;
    РНУ3=РНУ3 + Выборка.СуммаНУДт;
    РПР3=РПР3+Выборка.СуммаПРДт;
    РВР3=РВР3+Выборка.СуммаВРДт;
    РК3=РБУ3-(РНУ3+РПР3+РВР3);
    КонецЕсли;
    Если Выборка.СубконтоДт2.Наименование = "Расход электроэнергии" тогда
    РЭБУ3=РЭБУ3+ Выборка.Сумма;
    РЭНУ3=РЭНУ3 + Выборка.СуммаНУДт;
    РЭПР3=РЭПР3+Выборка.СуммаПРДт;
    РЭВР3=РЭВР3+Выборка.СуммаВРДт;
    РЭК3=РЭБУ3-(РЭНУ3+РЭПР3+РЭВР3);
    КонецЕсли;
    Если Выборка.СубконтоДт2.Наименование = "Содержание и текущий ремонт машин, оборудования, зданий и сооружений" тогда
    СБУ3=СБУ3+ Выборка.Сумма;
    СНУ3=СНУ3 + Выборка.СуммаНУДт;
    СПР3=СПР3+Выборка.СуммаПРДт;
    СВР1=СВР3+Выборка.СуммаВРДт;
    СК3=СБУ3-(СНУ3+СПР3+СВР3);
    КонецЕсли;
    Если Выборка.СубконтоДт2.Наименование = "Страховые взносы в Пенсионный фонд, ФСС, ФФМС, ТФМС " тогда
    СВБУ3=СВБУ3+ Выборка.Сумма;
    СВНУ3=СВНУ3+Выборка.СуммаНУДт;
    СВПР3=СВПР3+Выборка.СуммаПРДт;
    СВВР3=СВВР3+Выборка.СуммаВРДт;
    СВК3=СВБУ3-(СВНУ3+СВПР3+СВВР3);
    КонецЕсли;
    Если Выборка.СубконтоДт2.Наименование = "суточные в командировочных расходах" тогда
    СКБУ3=СКБУ3+ Выборка.Сумма;
    СКНУ3=СКНУ3 + Выборка.СуммаНУДт;
    СКПР3=СКПР3+Выборка.СуммаПРДт;
    СКВР3=СКВР3+Выборка.СуммаВРДт;
    СКК3=СКБУ3-(СКНУ3+СКПР3+СКВР3);
    КонецЕсли;
    Если Выборка.СубконтоДт2.Наименование = "сырье, материалы и покупные полуфабрикаты на технологические цели" тогда
    СЫРБУ3=СЫРБУ3+ Выборка.Сумма;
    СЫРНУ3=СЫРНУ3 + Выборка.СуммаНУДт;
    СЫРПР3=СЫРПР3+Выборка.СуммаПРДт;
    СЫРВР3=СЫРВР3+Выборка.СуммаВРДт;
    СЫРК3=СЫРБУ3-(СЫРНУ3+СЫРПР3+СЫРВР3);
    КонецЕсли;
    Если Выборка.СубконтоДт2.Наименование = "топливо на технологические цели" тогда
    ТБУ3=ТБУ3+ Выборка.Сумма;
    ТНУ3=ТНУ3 + Выборка.СуммаНУДт;
    ТПР3=ТПР3+Выборка.СуммаПРДт;
    ТВР3=ТВР3+Выборка.СуммаВРДт;
    ТК3=ТБУ3-(ТНУ3+ТПР3+ТВР3);
    КонецЕсли;
    Если Выборка.СубконтоДт2.Наименование = "Услуги вспомогательных цехов" тогда
    УБУ3=УБУ3+ Выборка.Сумма;
    УНУ3=УНУ3 + Выборка.СуммаНУДт;
    УПР3=УПР3+Выборка.СуммаПРДт;
    УВР3=УВР3+Выборка.СуммаВРДт;
    УК3=УБУ3-(УНУ3+УПР3+УВР3);
    КонецЕсли;
    ИБУ3=АБУ3+МБУ3+ОБУ3+ОДБУ3+ПБУ3+ПРБУ3+ПТБУ3+РБУ3+РЭБУ3+СБУ3+С­ВБУ3+СКБУ3+СЫРБУ3+ТБУ3+УБУ3;
    ИНУ3=АНУ3+МНУ3+ОНУ3+ОДНУ3+ПНУ3+ПРНУ3+ПТНУ3+РНУ3+РЭНУ3+СНУ3+С­ВНУ3+СКНУ3+СЫРНУ3+ТНУ3+УНУ3;
    ИПР3=АПР3+МПР3+ОПР3+ОДПР3+ППР3+ПРПР3+ПТПР3+РПР3+РЭПР3+СПР3+С­ВПР3+СКПР3+СЫРПР3+ТПР3+УПР3;
    ИВР3=АВР3+МВР3+ОВР3+ОДВР3+ПВР3+ПРВР3+ПТВР3+РВР3+РЭВР3+СВР3+С­ВВР3+СКВР3+СЫРВР3+ТВР3+УВР3;
    ИК3=АК3+МК3+ОК3+ОДК3+ПК3+ПРК3+ПТК3+РК3+РЭК3+СК3+СВК3+СКК3+СЫ­РК3+ТК3+УК3;
    КонецЕсли;
    КонецЕсли;

    // КонецЦикла;

    Секция.Параметры.ПД = ПД;

    Секция.Параметры.АБУ3=АБУ3;
    Секция.Параметры.АНУ3=АНУ3;
    Секция.Параметры.АПР3=АПР3;
    Секция.Параметры.АВР3=АВР3;
    Секция.Параметры.АК3=АК3;
    //
    Секция.Параметры.МБУ3=МБУ3;
    Секция.Параметры.МНУ3=МНУ3;
    Секция.Параметры.МПР3=МПР3;
    Секция.Параметры.МВР3=МВР3;
    Секция.Параметры.МК3=МК3;
    //
    Секция.Параметры.ОБУ3=ОБУ3;
    Секция.Параметры.ОНУ3=ОНУ3;
    Секция.Параметры.ОПР3=ОПР3;
    Секция.Параметры.ОВР3=ОВР3;
    Секция.Параметры.ОК3=ОК3;
    //
    Секция.Параметры.ОДБУ3=ОДБУ3;
    Секция.Параметры.ОДНУ3=ОДНУ3;
    Секция.Параметры.ОДПР3=ОДПР3;
    Секция.Параметры.ОДВР3=ОДВР3;
    Секция.Параметры.ОДК3=ОДК3;
    //
    Секция.Параметры.ПБУ3=ПБУ3;
    Секция.Параметры.ПНУ3=ПНУ3;
    Секция.Параметры.ППР3=ППР3;
    Секция.Параметры.ПВР3=ПВР3;
    Секция.Параметры.ПК3=ПК3;
    //
    Секция.Параметры.ПРБУ3=ПРБУ3;
    Секция.Параметры.ПРНУ3=ПРНУ3;
    Секция.Параметры.ПРПР3=ПРПР3;
    Секция.Параметры.ПРВР3=ПРВР3;
    Секция.Параметры.ПРК3=ПРК3;
    //
    Секция.Параметры.ПТБУ3=ПТБУ3;
    Секция.Параметры.ПТНУ3=ПТНУ3;
    Секция.Параметры.ПТПР3=ПТПР3;
    Секция.Параметры.ПТВР3=ПТВР3;
    Секция.Параметры.ПТК3=ПТК3;
    //
    Секция.Параметры.РБУ3=РБУ3;
    Секция.Параметры.РНУ3=РНУ3;
    Секция.Параметры.РПР3=РПР3;
    Секция.Параметры.РВР3=РВР3;
    Секция.Параметры.РК3=РК3;
    //
    Секция.Параметры.РЭБУ3=РЭБУ3;
    Секция.Параметры.РЭНУ3=РЭНУ3;
    Секция.Параметры.РЭПР3=РЭПР3;
    Секция.Параметры.РЭВР3=РЭВР3;
    Секция.Параметры.РЭК3=РЭК3;
    //
    Секция.Параметры.СБУ3=СБУ3;
    Секция.Параметры.СНУ3=СНУ3;
    Секция.Параметры.СПР3=СПР3;
    Секция.Параметры.СВР3=СВР3;
    Секция.Параметры.СК3=СК3;
    //
    Секция.Параметры.СВБУ3=СВБУ3;
    Секция.Параметры.СВНУ3=СВНУ3;
    Секция.Параметры.СВПР3=СВПР3;
    Секция.Параметры.СВВР3=СВВР3;
    Секция.Параметры.СВК3=СВК3;
    //
    Секция.Параметры.СКБУ3=СКБУ3;
    Секция.Параметры.СКНУ3=СКНУ3;
    Секция.Параметры.СКПР3=СКПР3;
    Секция.Параметры.СКВР3=СКВР3;
    Секция.Параметры.СКК3=СКК3;
    //
    Секция.Параметры.СЫРБУ3=СЫРБУ3;
    Секция.Параметры.СЫРНУ3=СЫРНУ3;
    Секция.Параметры.СЫРПР3=СЫРПР3;
    Секция.Параметры.СЫРВР3=СЫРВР3;
    Секция.Параметры.СЫРК3=СЫРК3;
    //
    Секция.Параметры.ТБУ3=ТБУ3;
    Секция.Параметры.ТНУ3=ТНУ3;
    Секция.Параметры.ТПР3=ТПР3;
    Секция.Параметры.ТВР3=ТВР3;
    Секция.Параметры.ТК3=ТК3;
    //
    Секция.Параметры.УБУ3=УБУ3;
    Секция.Параметры.УНУ3=УНУ3;
    Секция.Параметры.УПР3=УПР3;
    Секция.Параметры.УВР3=УВР3;
    Секция.Параметры.УК3=УК3;
    //
    Секция.Параметры.ИБУ3=ИБУ3;
    Секция.Параметры.ИНУ3=ИНУ3;
    Секция.Параметры.ИПР3=ИПР3;
    Секция.Параметры.ИВР3=ИВР3;
    Секция.Параметры.ИК3=ИК3;

    Таблица.Присоединить(Секция);

    КонецЦикла;
```
---
hasan-rusel, Сделал бы так: Убрал подразделение из параметров, затем

Выборка = Запрос1.Выполнить().Выгрузить();
Если Выборка.Количество()>0 тогда
ПодрразделениеПредыдущее=Выборка[0].ПодразделениеКт;

Для й=0 по выборка.Количество()-1 цикл Цикл
Если й=0 тогда
//Выводим первый раз столбец с подразделением
Конецесли;
//*****
//Тут ваш код по заполнению строк
//***
Если ПодразделениеПредыдущее<>Выборка[й].ПодразделениеКт тогда
//Присоединяем столбец подразделение
Конецесли;
Конеццикла;
---
Забыл добавить что в цикле
"Пока Выборка.Следующий() Цикл"
СубконтоДт2.Наименование идут в разной очередности, поэтому нужно заполнить столбец по 1 подразделению, потом вывести его через присоединть и заного по другому подразделению...

deniseek77 в том что вы мне написали это учитывается ?

Если можно кинь сразу с учетом моего кода плиз, у меня уже 18 часов, весь день сижу с этим отчетом, голова вообще не соображает уже ))