• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

Расчет цены

  • Автор темы Автор темы vanjatka
  • Дата начала Дата начала
V

vanjatka

При изменении параметра "Коэффициент" автоматически пересчитывается "РасчетнаяЦена"
в табличной части документа в соответствии с процедурой:

Процедура КоэффициентПриИзменении(Элемент)

Данные=ЭлементыФормы.Цены.ТекущиеДанные;
ЗначениеКоэффициента=ЭлементыФормы.Коэффициент.Значение;
Данные.РасчетнаяЦена=Выборка.Цена*Выборка.ЗначениеКоэффициента;

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

Но пересчет осуществляется только активной строки. А необходимо реализовать пересчет для всех строк
табличной части документа.
Подскажите пожалуйста как это сделать.
 
Ну можно дописать так
Для каждого (<НазваниеТабличнойЧастиДокумента>) Цыкл
Данные=ЭлементыФормы.Цены.ТекущиеДанные;
ЗначениеКоэффициента=ЭлементыФормы.Коэффициент.Значение;
Данные.РасчетнаяЦена=Выборка.Цена*Выборка.ЗначениеКоэффициента;
КонецЦикла;
Хотя может и по другому нужно - все зависит от некуазанной платформы
 
".ТекущиеДанные " в вашей процедуре определяют только 1 текущую строку табл части в которой осуществляется редактирование.
У табличной части документа есть два метода : Выгрузить() и Загрузить(), выгружаем в таблицу значений, выполняем нужные действия, загружаем обратно :)
 
Зачем заморачиваться выгрузкой загрузкой, когда можно сразу цыкл сделать и не париться больше?
 
Ну можно дописать так
Для каждого (<НазваниеТабличнойЧастиДокумента>) Цыкл
Данные=ЭлементыФормы.Цены.ТекущиеДанные;
ЗначениеКоэффициента=ЭлементыФормы.Коэффициент.Значение;
Данные.РасчетнаяЦена=Выборка.Цена*Выборка.ЗначениеКоэффициента;
КонецЦикла;
Хотя может и по другому нужно - все зависит от некуазанной платформы

Пробовал так

Для Каждого Цены Цикл
Данные=ЭлементыФормы.Цены.ТекущиеДанные;
ЗначениеКоэффициента=ЭлементыФормы.Коэффициент.Значение;
Данные.РасчетнаяЦена=Данные.Цена*Данные.ЗначениеКоэффициента;
КонецЦикла;

Выводится ошибка:
{Документ.ЦеныКомпании.Форма.ФормаДокумента(73,18)}: Ожидается символ '='
Для Каждого Цены <<?>>Цикл

Версия 8.1
 
Сори. Ошибся чуточку в коде. Попробуй так
Код:
Для каждого СтрокаТЗ из Цены Цикл
Данные=СтрокаТЗ.(<НазваниеКолонки>);
ЗначениеКоэффициента=ЭлементыФормы.Коэффициент.Значение;
Данные.РасчетнаяЦена=Данные.Цена*Данные.ЗначениеКоэффициента;
КонецЦикла;
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

Похожие темы