Мне нужно выполнить некий код из типового модуля. Типовой код выполняется для текущей строки.
Как я могу программно, запустить итерацию таблицы значений с изменение текущей строки на форме?
---
```1c
    //После обновления проверимть!!!!
    &НаКлиенте
    Процедура ТоварыСтавкаНДСПриИзмененииКастом(СтрокаТЗ)

    ИдентификаторСтроки = СтрокаТЗ.ПолучитьИдентификатор();
    Элементы.Товары.ТекущаяСтрока = ИдентификаторСтроки;
    ТекущаяСтрока = Элементы.Товары.ТекущиеДанные;

    СтруктураДействий = Новый Структура;
    СтруктураДействий.Вставить("ПересчитатьСуммуНДС", ОбработкаТабличнойЧастиТоварыКлиент.СтруктураПересчетаСуммыНДСВСтрокеТЧ(Объект));
    СтруктураДействий.Вставить("ПересчитатьСумму");
    СтруктураДействий.Вставить("ПересчитатьСуммуСУчетомРучнойСкидки", Новый Структура("Очищать", Ложь));
    СтруктураДействий.Вставить("ПересчитатьСуммуСУчетомАвтоматическойСкидки", Новый Структура("Очищать", Истина));

    ОбработкаТабличнойЧастиТоварыКлиент.ПриИзмененииРеквизитовВТЧКлиент(Объект.Товары, ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
    ОбработкаТабличнойЧастиТоварыКлиент.ВыделитьАгентскоеВознаграждение(Объект, ЭтотОбъект, СтруктураДействий, ТекущаяСтрока, КэшированныеЗначения);

    ОбновитьИтоговыеПоказателиКлиентСервер(ЭтотОбъект);

    КонецПроцедуры
```

Сделал так. Все работаем, всем спасибо.
---
В цикле ДляКаждого получаешь строку ТЗ и передаешь ее в нужный модуль
---
делал так, не сработало.
Модуль такой,

```1c
    &НаКлиенте
    Процедура ТоварыСтавкаНДСПриИзменении(Элемент)

    ТекущаяСтрока = Элементы.Товары.ТекущиеДанные;

    СтруктураДействий = Новый Структура;
    СтруктураДействий.Вставить("ПересчитатьСуммуНДС", ОбработкаТабличнойЧастиТоварыКлиент.СтруктураПересчетаСуммыНДСВСтрокеТЧ(Объект));
    СтруктураДействий.Вставить("ПересчитатьСумму");
    СтруктураДействий.Вставить("ПересчитатьСуммуСУчетомРучнойСкидки", Новый Структура("Очищать", Ложь));
    СтруктураДействий.Вставить("ПересчитатьСуммуСУчетомАвтоматическойСкидки", Новый Структура("Очищать", Истина));

    ОбработкаТабличнойЧастиТоварыКлиент.ПриИзмененииРеквизитовВТЧКлиент(Объект.Товары, ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
    ОбработкаТабличнойЧастиТоварыКлиент.ВыделитьАгентскоеВознаграждение(Объект, ЭтотОбъект, СтруктураДействий, ТекущаяСтрока, КэшированныеЗначения);

    ОбновитьИтоговыеПоказателиКлиентСервер(ЭтотОбъект);

    КонецПроцедуры
```

Я пробовал и так

```1c
    Для Каждого строкаТЗ Из Элементы.Товары Цикл
    ТоварыСтавкаНДСПриИзмененииКастом(строкаТЗ);
    КонецЦикла;
```

 И так

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

```1c
    Для Каждого строкаТЗ Из Объект.Товары Цикл
    ТоварыСтавкаНДСКастом(строкаТЗ);
    КонецЦикла;
    &НаКлиенте
    Процедура ТоварыСтавкаНДСКастом(ТекущаяСтрока)

    СтруктураДействий = Новый Структура;
    СтруктураДействий.Вставить("ПересчитатьСуммуНДС", ОбработкаТабличнойЧастиТоварыКлиент.СтруктураПересчетаСуммыНДСВСтрокеТЧ(Объект));
    СтруктураДействий.Вставить("ПересчитатьСумму");
    СтруктураДействий.Вставить("ПересчитатьСуммуСУчетомРучнойСкидки", Новый Структура("Очищать", Ложь));
    СтруктураДействий.Вставить("ПересчитатьСуммуСУчетомАвтоматическойСкидки", Новый Структура("Очищать", Истина));

    ОбработкаТабличнойЧастиТоварыКлиент.ПриИзмененииРеквизитовВТЧКлиент(Объект.Товары, ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
    ОбработкаТабличнойЧастиТоварыКлиент.ВыделитьАгентскоеВознаграждение(Объект, ЭтотОбъект, СтруктураДействий, ТекущаяСтрока, КэшированныеЗначения);

    ОбновитьИтоговыеПоказателиКлиентСервер(ЭтотОбъект);

    КонецПроцедуры
```
---
Модуль такой, И где в этом модуле обрабатывается переданный в него параметр Элемент?
---
Товары - это не тз, а табличная часть
В самом последнем коде, где Объект.Товары воткни в конец после цикла
Элементы.Товары.Обновить();
---
что то не то ты говоришь...
причем тут метод обновить? что он даст я же ничего не установил и не изменил, разве от простой итерации табличной части, текущая строка устанавливается?
---
ёё... как всё запущено.
Нам отсюда не видно, что делает
ТоварыСтавкаНДСПриИзмененииКастом
---
Если не понятно, что написано в (4), поясняю:

  Для Каждого строкаТЗ Из Объект.Товары Цикл
        ТоварыСтавкаНДСПриИзмененииКастом(строкаТЗ);
    КонецЦикла;
  Элементы.Товары.Обновить();
---
```1c
    //После обновления проверимть!!!!
    &НаКлиенте
    Процедура ТоварыСтавкаНДСПриИзмененииКастом(СтрокаТЗ)

    ИдентификаторСтроки = СтрокаТЗ.ПолучитьИдентификатор();
    Элементы.Товары.ТекущаяСтрока = ИдентификаторСтроки;
    ТекущаяСтрока = Элементы.Товары.ТекущиеДанные;

    СтруктураДействий = Новый Структура;
    СтруктураДействий.Вставить("ПересчитатьСуммуНДС", ОбработкаТабличнойЧастиТоварыКлиент.СтруктураПересчетаСуммыНДСВСтрокеТЧ(Объект));
    СтруктураДействий.Вставить("ПересчитатьСумму");
    СтруктураДействий.Вставить("ПересчитатьСуммуСУчетомРучнойСкидки", Новый Структура("Очищать", Ложь));
    СтруктураДействий.Вставить("ПересчитатьСуммуСУчетомАвтоматическойСкидки", Новый Структура("Очищать", Истина));

    ОбработкаТабличнойЧастиТоварыКлиент.ПриИзмененииРеквизитовВТЧКлиент(Объект.Товары, ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
    ОбработкаТабличнойЧастиТоварыКлиент.ВыделитьАгентскоеВознаграждение(Объект, ЭтотОбъект, СтруктураДействий, ТекущаяСтрока, КэшированныеЗначения);

    ОбновитьИтоговыеПоказателиКлиентСервер(ЭтотОбъект);

    КонецПроцедуры
```

Сделал так. Все работаем, всем спасибо.