Как получить текущую строку для каждой строки таблицы значений на форме?
По теме из базы знаний
- Консоль запросов для управляемых форм 8.3
- Дублирование значений в полях табличных частей (CTRL+D)
- Снизу вверх по табличной части. Разбираемся в понятиях Идентификатор-индекс-номер строки управляемых форм
- Здравствуй, дерево! Продолжение разбора особенностей поведения таблицы формы
- Реверси на 1С: Реализация классической игры на неожиданной платформе. Учимся программировать AI на платформе 1С
Найденные решения
//После обновления проверимть!!!!
&НаКлиенте
Процедура ТоварыСтавкаНДСПриИзмененииКастом(СтрокаТЗ)
ИдентификаторСтроки = СтрокаТЗ.ПолучитьИдентификатор();
Элементы.Товары.ТекущаяСтрока = ИдентификаторСтроки;
ТекущаяСтрока = Элементы.Товары.ТекущиеДанные;
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", ОбработкаТабличнойЧастиТоварыКлиент.СтруктураПересчетаСуммыНДСВСтрокеТЧ(Объект));
СтруктураДействий.Вставить("ПересчитатьСумму");
СтруктураДействий.Вставить("ПересчитатьСуммуСУчетомРучнойСкидки", Новый Структура("Очищать", Ложь));
СтруктураДействий.Вставить("ПересчитатьСуммуСУчетомАвтоматическойСкидки", Новый Структура("Очищать", Истина));
ОбработкаТабличнойЧастиТоварыКлиент.ПриИзмененииРеквизитовВТЧКлиент(Объект.Товары, ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
ОбработкаТабличнойЧастиТоварыКлиент.ВыделитьАгентскоеВознаграждение(Объект, ЭтотОбъект, СтруктураДействий, ТекущаяСтрока, КэшированныеЗначения);
ОбновитьИтоговыеПоказателиКлиентСервер(ЭтотОбъект);
КонецПроцедуры
ПоказатьСделал так. Все работаем, всем спасибо.
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2) делал так, не сработало.
Модуль такой,
Я пробовал и так
И так
Модуль такой,
&НаКлиенте
Процедура ТоварыСтавкаНДСПриИзменении(Элемент)
ТекущаяСтрока = Элементы.Товары.ТекущиеДанные;
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", ОбработкаТабличнойЧастиТоварыКлиент.СтруктураПересчетаСуммыНДСВСтрокеТЧ(Объект));
СтруктураДействий.Вставить("ПересчитатьСумму");
СтруктураДействий.Вставить("ПересчитатьСуммуСУчетомРучнойСкидки", Новый Структура("Очищать", Ложь));
СтруктураДействий.Вставить("ПересчитатьСуммуСУчетомАвтоматическойСкидки", Новый Структура("Очищать", Истина));
ОбработкаТабличнойЧастиТоварыКлиент.ПриИзмененииРеквизитовВТЧКлиент(Объект.Товары, ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
ОбработкаТабличнойЧастиТоварыКлиент.ВыделитьАгентскоеВознаграждение(Объект, ЭтотОбъект, СтруктураДействий, ТекущаяСтрока, КэшированныеЗначения);
ОбновитьИтоговыеПоказателиКлиентСервер(ЭтотОбъект);
КонецПроцедуры
ПоказатьЯ пробовал и так
Для Каждого строкаТЗ Из Элементы.Товары Цикл
ТоварыСтавкаНДСПриИзмененииКастом(строкаТЗ);
КонецЦикла;
И так
Для Каждого строкаТЗ Из Объект.Товары Цикл
ТоварыСтавкаНДСПриИзмененииКастом(строкаТЗ);
КонецЦикла;
(3) Последний код, с точки зрения алгоритма правильный. Вот только передавать в Процедуру ПриИзменении абсолютно неверно. Должна быть отдельная процедура и никаких получений текущих данных, у тебя они уже есть в передаваемом параметре
Для Каждого строкаТЗ Из Объект.Товары Цикл
ТоварыСтавкаНДСКастом(строкаТЗ);
КонецЦикла;
&НаКлиенте
Процедура ТоварыСтавкаНДСКастом(ТекущаяСтрока)
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", ОбработкаТабличнойЧастиТоварыКлиент.СтруктураПересчетаСуммыНДСВСтрокеТЧ(Объект));
СтруктураДействий.Вставить("ПересчитатьСумму");
СтруктураДействий.Вставить("ПересчитатьСуммуСУчетомРучнойСкидки", Новый Структура("Очищать", Ложь));
СтруктураДействий.Вставить("ПересчитатьСуммуСУчетомАвтоматическойСкидки", Новый Структура("Очищать", Истина));
ОбработкаТабличнойЧастиТоварыКлиент.ПриИзмененииРеквизитовВТЧКлиент(Объект.Товары, ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
ОбработкаТабличнойЧастиТоварыКлиент.ВыделитьАгентскоеВознаграждение(Объект, ЭтотОбъект, СтруктураДействий, ТекущаяСтрока, КэшированныеЗначения);
ОбновитьИтоговыеПоказателиКлиентСервер(ЭтотОбъект);
КонецПроцедуры
Показать//После обновления проверимть!!!!
&НаКлиенте
Процедура ТоварыСтавкаНДСПриИзмененииКастом(СтрокаТЗ)
ИдентификаторСтроки = СтрокаТЗ.ПолучитьИдентификатор();
Элементы.Товары.ТекущаяСтрока = ИдентификаторСтроки;
ТекущаяСтрока = Элементы.Товары.ТекущиеДанные;
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", ОбработкаТабличнойЧастиТоварыКлиент.СтруктураПересчетаСуммыНДСВСтрокеТЧ(Объект));
СтруктураДействий.Вставить("ПересчитатьСумму");
СтруктураДействий.Вставить("ПересчитатьСуммуСУчетомРучнойСкидки", Новый Структура("Очищать", Ложь));
СтруктураДействий.Вставить("ПересчитатьСуммуСУчетомАвтоматическойСкидки", Новый Структура("Очищать", Истина));
ОбработкаТабличнойЧастиТоварыКлиент.ПриИзмененииРеквизитовВТЧКлиент(Объект.Товары, ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
ОбработкаТабличнойЧастиТоварыКлиент.ВыделитьАгентскоеВознаграждение(Объект, ЭтотОбъект, СтруктураДействий, ТекущаяСтрока, КэшированныеЗначения);
ОбновитьИтоговыеПоказателиКлиентСервер(ЭтотОбъект);
КонецПроцедуры
ПоказатьСделал так. Все работаем, всем спасибо.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот