Подскажите пожалуйста. Можно ли проверить вывелась область или нет и если область уже есть то не выводить ее, а если нет то вывести.

```1c
    Обл = Макет.ПолучитьОбласть("Вредность");

    Для Каждого СтрокаТаб Из ТаблицаНачислений Цикл
    Если СтрокаТаб.Сотрудник.ФизическоеЛицо.Наименование = ПараметрыМакета.Работник Тогда
    Если СтрокаТаб.Начисление = "Надбавка за вредность" Тогда
    Обл.Параметры.Размер = СтрокаТаб.Размер;
    ТабличныйДокумент.Вывести(Обл);
    Иначе
    Обл.Параметры.Размер = "0%";
    //ТабличныйДокумент.Вывести(Обл);
    КонецЕсли;
    КонецЕсли;
    КонецЦикла;
```

Если выводить область, то он ее выводит несколько раз т.к. в цикле
Или как можно по другому это написать

Простите если что-то не так, я стараюсь
---
Заведи переменную ОбластьВыводилась, тип Булево. До цикла = Ложь, Как только вывел = Истина. Ну и проверку выводить секцию Если НЕ ОбластьВыводилась.
---
Заведи переменную ОбластьВыводилась, тип Булево. До цикла = Ложь, Как только вывел = Истина. Ну и проверку выводить секцию Если НЕ ОбластьВыводилась.
---
Вот так?

```1c
    Обл = Макет.ПолучитьОбласть("Вредность");
    ОбластьВыводилась = Ложь;
    Для Каждого СтрокаТаб Из ТаблицаНачислений Цикл
    Если СтрокаТаб.Сотрудник.ФизическоеЛицо.Наименование = ПараметрыМакета.Работник Тогда
    Если Не ОбластьВыводилась Тогда
    Если СтрокаТаб.Начисление = "Надбавка за вредность" Тогда
    Обл.Параметры.Размер = СтрокаТаб.Размер;
    ТабличныйДокумент.Вывести(Обл);
    ОбластьВыводилась = Истина;
    Иначе
    Обл.Параметры.Размер = "0%";
    ТабличныйДокумент.Вывести(Обл);
    ОбластьВыводилась = Истина;
    КонецЕсли;
    КонецЕсли;
    КонецЕсли;
    КонецЦикла;
```
---
Почему ОбластьВыводилась = Истина; два раза?
---
ну так вроде работает

```1c
    Обл = Макет.ПолучитьОбласть("Вредность");
    ОбластьВыводилась = Ложь;
    Для Каждого СтрокаТаб Из ТаблицаНачислений Цикл
    Если Не ОбластьВыводилась Тогда
    Если СтрокаТаб.Сотрудник.ФизическоеЛицо.Наименование = ПараметрыМакета.Работник Тогда
    //Если Не ОбластьВыводилась Тогда
    Если СтрокаТаб.Начисление = "Надбавка за вредность" Тогда
    Обл.Параметры.Размер = СтрокаТаб.Размер;
    ТабличныйДокумент.Вывести(Обл);
    //ОбластьВыводилась = Истина;
    Иначе
    Обл.Параметры.Размер = "0%";
    ТабличныйДокумент.Вывести(Обл);
    //ОбластьВыводилась = Истина;
    КонецЕсли;
    ОбластьВыводилась = Истина;
    КонецЕсли;
    КонецЕсли;
    КонецЦикла;
```

ну и так работает вроде
---
```1c
    Обл = Макет.ПолучитьОбласть("Вредность");
    Обл.Параметры.Размер = "0%";
    Для Каждого СтрокаТаб Из ТаблицаНачислений Цикл
    Если СтрокаТаб.Сотрудник.ФизическоеЛицо.Наименование = ПараметрыМакета.Работник Тогда
    Обл.Параметры.Размер = СтрокаТаб.Размер;
    Прервать;
    КонецЕсли;
    КонецЦикла;
    ТабличныйДокумент.Вывести(Обл);
```
---
а вот это не работает
---
Судя по всему, область должна быть выведена 1 раз пустая или заполненная в зависимости найден ли работник.

В этом случае желательно в ТаблицаНачислений иметь колонку НаименованиеФизЛица, в которой будет храниться то, что вы получаете через "СтрокаТаб.Сотрудник.ФизическоеЛицо.Наименование". Тогда принцип будет такой:

```1c
    НайденныеСтроки = ТаблицаНачислений.НайтиСтроки(Новый Структура("НаименованиеФизЛица", ПараметрыМакета.Работник));

    Если НайденныеСтроки.Количество() > 0 Тогда
    Обл.Параметры.Размер = НайденныеСтроки[0].Размер;
    Иначе
    Обл.Параметры.Размер = "0%";
    КонецЕсли;

    ТабличныйДокумент.Вывести(Обл);
```
---
Брать только первую строку из ТаблицаНачислений.