Доброго времени суток, есть отчет, который формируется в виде макета(извините если не правильно сформулировал).
Нужно сделать что бы при выставление галочки на панели, формировался отчет, но без пустых строк.

Например на изображение выше, нужно что бы формировался без 3 строки "М.3", но при этом не трогал остальные столбцы(Например М.2, Месяц 2,месяц 4).
---
Пока Аптека.Следующий() Цикл
   Если Аптека.Остаток=0 И Аптека.Оборот=0 Тогда
     Продолжить;
  КонецЕсли;
---
После строки

```1c
    Пока Аптека.Следующий() Цикл
```

вставить код из 6

(6) Если Аптека.Остаток=0 И Аптека.Оборот=0 Тогда
Продолжить;
КонецЕсли;
---
без программирования чтоли ? Тогда никак.

Нужно менять код заполнения отчета, таким образом чтобы пустые строки в принципе и не выводились.
---
Часть кода, где происходит формирование, если не ошибаюсь, то нужно копать тут, я прав?

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

    Массив = Новый Массив;
    Массив.Добавить(Тип("СправочникСсылка.Магазины"));
    ОписаниеТиповМагазин = Новый ОписаниеТипов(Массив);

    КД = Новый КвалификаторыДаты();
    Массив = Новый Массив;
    Массив.Добавить(Тип("Дата"));
    ОписаниеТиповПериод = Новый ОписаниеТипов(Массив, , КД);

    Массив.Очистить();
    КЧ = Новый КвалификаторыЧисла(12,2);
    Массив.Добавить(Тип("Число"));
    ОписаниеТиповЧисло = Новый ОписаниеТипов(Массив, , КЧ);

    Массив.Очистить();
    КС = Новый КвалификаторыСтроки(50);
    Массив.Добавить(Тип("Строка"));
    ОписаниеТиповСтрока = Новый ОписаниеТипов(Массив, , КС);

    тзРез = Новый ТаблицаЗначений;
    тзРез.Колонки.Добавить("Магазин",ОписаниеТиповСтрока);
    тзРез.Колонки.Добавить("Период",ОписаниеТиповПериод);
    тзРез.Колонки.Добавить("Оборот",ОписаниеТиповЧисло);
    тзРез.Колонки.Добавить("Остаток",ОписаниеТиповЧисло);

    Для каждого стр Из тзПериод Цикл
    т = ОборотыОстаткиЗаПериод(стр.НачДата,стр.КонДата,?(Магазин = Справочники.Магазины.ПустаяСсылка(),",Магазин.Ссылка));
    Для каждого тт Из т Цикл
    НовСтр = тзРез.Добавить();
    ЗаполнитьЗначенияСвойств(НовСтр,тт);
    КонецЦикла;
    т = ";
    КонецЦикла;

    ЭлементыФормы.Табл.Очистить();
    Таб = ЭлементыФормы.Табл;
    Таб.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ДинамикаАптек";

    Макет = ПолучитьМакет("Макет");
    облЗаголовокАптека = Макет.ПолучитьОбласть("Заголовок|Аптеки");
    облЗаголовокДанные0 = Макет.ПолучитьОбласть("Заголовок|Данные0");
    облЗаголовокДанные1 = Макет.ПолучитьОбласть("Заголовок|Данные1");

    облСтрокаАптека0 = Макет.ПолучитьОбласть("Строка0|Аптеки");
    облСтрокаАптека1 = Макет.ПолучитьОбласть("Строка1|Аптеки");

    облСтрокаДанные00 = Макет.ПолучитьОбласть("Строка0|Данные0");
    облСтрокаДанные01 = Макет.ПолучитьОбласть("Строка0|Данные1");
    облСтрокаДанные10 = Макет.ПолучитьОбласть("Строка1|Данные0");
    облСтрокаДанные11 = Макет.ПолучитьОбласть("Строка1|Данные1");

    облПодвалАптека = Макет.ПолучитьОбласть("Итоги|Аптеки");
    облПодвалДанные0 = Макет.ПолучитьОбласть("Итоги|Данные0");
    облПодвалДанные1 = Макет.ПолучитьОбласть("Итоги|Данные1");

    Таб.Вывести(облЗаголовокАптека);
    фл1 = ЛОЖЬ;
    Для каждого стр Из тзПериод Цикл
    фл1 = НЕ фл1;
    Если фл1 Тогда
    Обл = облЗаголовокДанные0;
    Иначе
    Обл = облЗаголовокДанные1;
    КонецЕсли;

    обл.Параметры.Период = стр.НачДата;
    Таб.Присоединить(обл);
    КонецЦикла;
    Таб.ФиксацияСверху = Таб.ВысотаТаблицы;

    Запрос = Новый Запрос;
    Запрос.Текст="ВЫБРАТЬ
    | ТЗн.Магазин,
    | ТЗн.Период,
    | ТЗн.Оборот,
    | ТЗн.Остаток
    |ПОМЕСТИТЬ Таб
    |ИЗ
    | &ТЗ КАК ТЗн
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ
    | рТаб.Магазин КАК Магазин,
    | рТаб.Период КАК Период,
    | рТаб.Оборот КАК Оборот,
    | рТаб.Остаток КАК Остаток
    |ИЗ
    | Таб КАК рТаб
    |
    |СГРУППИРОВАТЬ ПО
    | рТаб.Магазин,
    | рТаб.Период,
    | рТаб.Оборот,
    | рТаб.Остаток
    |
    |УПОРЯДОЧИТЬ ПО
    | Магазин,
    | Период
    |ИТОГИ
    | СУММА(Оборот),
    | СУММА(Остаток)
    |ПО
    | Магазин,
    | Период";

    Запрос.УстановитьПараметр("ТЗ",тзРез);

    // Побежали по содержимому отчета
    Аптека = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);

    НачОстОбщий = 0;
    ОборотОбщий = 0;
    КоэфОбщий = 0;

    фл = ЛОЖЬ;
    пп = 0;
    Пока Аптека.Следующий() Цикл
    фл = НЕ фл;
    Если фл Тогда
    ОблСтрока = ОблСтрокаАптека0;
    Иначе
    ОблСтрока = ОблСтрокаАптека1;
    КонецЕсли;
    пп = пп + 1;
    облСтрока.Параметры.пп = пп;
    облСтрока.Параметры.Аптека = Аптека.Магазин;
    Таб.Вывести(облСтрока);

    Период = Аптека.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);

    фл1 = Ложь;
    Пока Период.Следующий() Цикл
    фл1 = НЕ фл1;
    Если фл Тогда
    Если фл1 Тогда
    ОблКолонка = ОблСтрокаДанные00;
    Иначе
    ОблКолонка = ОблСтрокаДанные01;
    КонецЕсли;
    Иначе
    Если фл1 Тогда
    ОблКолонка = ОблСтрокаДанные10;
    Иначе
    ОблКолонка = ОблСтрокаДанные11;
    КонецЕсли;
    КонецЕсли;

    ОблКолонка.Параметры.НачОст = Период.Остаток;
    ОблКолонка.Параметры.Оборот = Период.Оборот;
    ОблКолонка.Параметры.Коэф = ?(Период.Оборот=0,",Период.Остаток / Период.Оборот);
    Таб.Присоединить(ОблКолонка);

    стрПериод = тзПериод.Найти(Период.Период,"НачДата");
    Если НЕ(стрПериод = Неопределено) Тогда
    стрПериод.НачОст = стрПериод.НачОст + Период.Остаток;
    стрПериод.Оборот = стрПериод.Оборот + Период.Оборот;
    стрПериод.Коэффициент = ?(стрПериод.Оборот <> 0, стрПериод.НачОст / стрПериод.Оборот,0);
    КонецЕсли;
    КонецЦикла;
    КонецЦикла;

    // Выводим данные подвала
    облПодвалАптека = Макет.ПолучитьОбласть("Итоги|Аптеки");
    облПодвалДанные0 = Макет.ПолучитьОбласть("Итоги|Данные0");
    облПодвалДанные1 = Макет.ПолучитьОбласть("Итоги|Данные1");

    Таб.Вывести(облПодвалАптека);
    фл1 = ЛОЖЬ;
    Для каждого стр Из тзПериод Цикл
    фл1 = НЕ фл1;
    Если фл1 Тогда
    Обл = облПодвалДанные0;
    Иначе
    Обл = облПодвалДанные1;
    КонецЕсли;

    обл.Параметры.НачОстОбщий = стр.НачОст;
    обл.Параметры.ОборотОбщий = стр.Оборот;
    обл.Параметры.КоэфОбщий = стр.Коэффициент;
    Таб.Присоединить(обл);
    КонецЦикла;

    тзКоэффициент = Новый ТаблицаЗначений;
    тзКоэффициент.Колонки.Добавить("Период");
    тзКоэффициент.Колонки.Добавить("Коэффициент");
    //стр = тзКоэффициент.Добавить();
    //стр.Период = "Период";
    //стр.Коэффициент = "Коэффициент";

    тзПоказатели = Новый ТаблицаЗначений;
    тзПоказатели.Колонки.Добавить("Период");
    тзПоказатели.Колонки.Добавить("НачальныйОстаток");
    тзПоказатели.Колонки.Добавить("Оборот");
    //стр = тзПоказатели.Добавить();
    //стр.Период = "Период";
    //стр.НачальныйОстаток = "НачальныйОстаток";
    //стр.Оборот = "Оборот";

    Для каждого стрПериод Из тзПериод Цикл
    стр = тзКоэффициент.Добавить();
    стр.Период = Формат(стрПериод.НачДата,"ДФ=MMMMYYYY");
    стр.Коэффициент = стрПериод.Коэффициент;

    стр = тзПоказатели.Добавить();
    стр.Период = Формат(стрПериод.НачДата,"ДФ=MMMMYYYY");
    стр.НачальныйОстаток = стрПериод.НачОст;
    стр.Оборот = стрПериод.Оборот;
    КонецЦикла;
```
---
Таб.Вывести(облСтрока);
вот эта строка и выводит в макет строки
---
```1c
    Пока Период.Следующий() Цикл
    фл1 = НЕ фл1;
```

Вот в этом цикле считайте сумму реквизитов, если она равна нулю, тогда не выводите ни аптеку ни присоединение колонок не делаете. Тогда пустых строк не будет. Соот-но при условии, что галка нажата.
---
Пока Аптека.Следующий() Цикл
   Если Аптека.Остаток=0 И Аптека.Оборот=0 Тогда
     Продолжить;
  КонецЕсли;
---
Ошибка "Не найден конец цикла", если же исправляю её, тогда выдаёт ошибку связанную с "Аптека.Остаток=0 И Аптека.Оборот=0"
---
После строки

```1c
    Пока Аптека.Следующий() Цикл
```

вставить код из 6

(6) Если Аптека.Остаток=0 И Аптека.Оборот=0 Тогда
Продолжить;
КонецЕсли;
---
Я Вам показал куда надо вставить условие Если ....
В вашем коде
Пока Аптека.Следующий() Цикл
---
Спасибо больше, работает, только работает всегда, а не когда стоит галка.