Расчет цены

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

vanjatka

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

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

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

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

Но пересчет осуществляется только активной строки. А необходимо реализовать пересчет для всех строк
табличной части документа.
Подскажите пожалуйста как это сделать.
 

KiR

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

KiR

НЕ шибка опытный програмер)
11.09.2007
1 581
0
#4
Зачем заморачиваться выгрузкой загрузкой, когда можно сразу цыкл сделать и не париться больше?
 
V

vanjatka

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

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

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

Версия 8.1
 

KiR

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