Всем доброго дня ребят, есть вопрос по поводу автоматического заполнения таблицы документа из другой таблицы!
Вот есть документ в нем две таблицы,есть кнопка для того что бы происходило заполнение из одной таблицы в другую!
ЧТо нужно!
нужно,что бы эта кнопка работала только для тех строк где есть определенное название подразделения!
я пробывал дописать Если но что то не получилось

```1c
    Процедура ..........................()
    Если ПродукцияБрака.Итог("Подразделение") = "1.УчастокТП" ИЛИ "4.УчастокСборки" Тогда
    ........
    .........
    ..........
    .............
    ...........
    ..........
    КонецЕсли;
    КонецПроцедуры
```

Сама процедура вот такая,какая он сейчас

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

Подскажите пожалуйста,как правильно дописать Процедуру!!
Конфа:Управление производственным предприятием, редакция 1.3 (1.3.111.1)
---
Это всё ужасно. Но уж если так хочется, то должно быть что-то вроде этого:

```1c
    Процедура ЗаполнитьМатериалыБракаНажатие(Элемент)
    Для каждого Стр из ПродукцияБрака Цикл
    Если Стр.Подразделение.Наименование = "1.УчастокТП" ИЛИ Стр.Подразделение.Наименование = "4.УчастокСборки" Тогда
    ...
    КонецЕсли;
    КонецЦикла;
    КонецПроцедуры
```
---
Лучше смотреть не по наименованию, а по коду, подразделения. Идеальный вариант завести регистр сведений на этот случай
 Для примера можно попробовать такой вариант.

```1c
    Процедура ЗаполнитьМатериалыБракаНажатие(Элемент)
    Для каждого Стр из ПродукцияБрака Цикл
    Если Стр.Подразделение.наименование = "1.УчастокТП" ИЛИ Стр.Подразделение.наименование ="4.УчастокСборки"Тогда
    Продолжить;
    КонецЕсли
    НоваяСтрока = МатериалыБрака.Добавить();
    НоваяСтрока.Количество = Стр.Количество;
    НоваяСтрока.Номенклатура = Стр.Номенклатура;
    НоваяСтрока.Заказ = Стр.Заказ;
    НоваяСтрока.ЕдиницаИзмерения =Стр.ЕдиницаИзмерения;
    НоваяСтрока.Коэффициент = Стр.Коэффициент;
    НоваяСтрока.Подразделение = Стр.Подразделение;
    КонецЦикла;
    Ответ = Вопрос("Проверьте правильность заполнения номенклатуры!!!"
    + Символы.ПС + "Продолжить?" + Символы.ПС,
    РежимДиалогаВопрос.ДаНет);
    Если Не Ответ = КодВозвратаДиалога.Да Тогда
    Возврат;
    КонецЕсли;
    Этаформа.ТекущийЭлемент = ЭлементыФормы.МатериалыБрака;
    КонецПроцедуры
```
---
ПродукцияБрака.НайтиСтроки(
---
Это всё ужасно. Но уж если так хочется, то должно быть что-то вроде этого:

```1c
    Процедура ЗаполнитьМатериалыБракаНажатие(Элемент)
    Для каждого Стр из ПродукцияБрака Цикл
    Если Стр.Подразделение.Наименование = "1.УчастокТП" ИЛИ Стр.Подразделение.Наименование = "4.УчастокСборки" Тогда
    ...
    КонецЕсли;
    КонецЦикла;
    КонецПроцедуры
```
---
у меня вот такая процедура получилась добавил Иначе если!
результат не тот что нужен..
он выдает сначала все спецификации,по всем подразделениям
а после те строки что описаны выше в цикле,но понужным подразделениям!что то тут я не то написал..помогите пожалуйста..надо что бы при нажатии на кнопку, по таким подразделениям он выдавал то что выше,а по другим подразделениям он раскрывал специфакации!

```1c
    Процедура ЗаполнитьМатериалыБракаНажатие(Элемент)
    Ответ = Вопрос("Проверьте правильность заполнения номенклатуры!!!"
    + Символы.ПС + "Продолжить?" + Символы.ПС,
    РежимДиалогаВопрос.ДаНет);
    Если Не Ответ = КодВозвратаДиалога.Да Тогда
    Возврат;
    КонецЕсли;
    Для каждого Стр из ПродукцияБрака Цикл
    Если Стр.Подразделение.Наименование = "2.Участок ТЦ" ИЛИ Стр.Подразделение.Наименование = "3.Участок 1 исп." ИЛИ Стр.Подразделение.Наименование = "5.Участок ПСИ" ИЛИ Стр.Подразделение.Наименование = "6.Участок ок.сб." ИЛИ Стр.Подразделение.Наименование = "7.Участок Вых.контр." Тогда
    НоваяСтрока = МатериалыБрака.Добавить();
    НоваяСтрока.Количество = Стр.Количество;
    НоваяСтрока.Номенклатура = Стр.Номенклатура;
    НоваяСтрока.Заказ = Стр.Заказ;
    НоваяСтрока.ЕдиницаИзмерения =Стр.ЕдиницаИзмерения;
    НоваяСтрока.Коэффициент = Стр.Коэффициент;
    НоваяСтрока.Подразделение = Стр.Подразделение;
    ИначеЕсли Стр.Подразделение.Наименование = "1.Участок ТП" ИЛИ Стр.Подразделение.Наименование = "4.Участок сборки" тогда
    ЗаполнитьМатериалыБракаПоСпецификации(МатериалыБрака, "МатериалыБрака");

    КонецЕсли;
    КонецЦикла;
    Этаформа.ТекущийЭлемент = ЭлементыФормы.МатериалыБрака;
    КонецПроцедуры
```
---
Конфигурации под рукой нет, но подозреваю, что процедура "ЗаполнитьМатериалыБракаПоСпецификации" для всей табличной части раскрывает спецификации. Если так, то она делает это столько раз, сколько выполняется ветвь иначеесли.

Если я прав, то в этой процедуре должен быть цикл по строкам ТЧ. В этом случае в ветвь иначе если надо перенести логику из цикла.
---
Лучше смотреть не по наименованию, а по коду, подразделения. Идеальный вариант завести регистр сведений на этот случай
 Для примера можно попробовать такой вариант.

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