• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Расчет цены

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

vanjatka

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

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

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

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

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

KiR

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

x84

".ТекущиеДанные " в вашей процедуре определяют только 1 текущую строку табл части в которой осуществляется редактирование.
У табличной части документа есть два метода : Выгрузить() и Загрузить(), выгружаем в таблицу значений, выполняем нужные действия, загружаем обратно :)
 
K

KiR

Зачем заморачиваться выгрузкой загрузкой, когда можно сразу цыкл сделать и не париться больше?
 
V

vanjatka

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

Пробовал так

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

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

Версия 8.1
 
K

KiR

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

Обучение наступательной кибербезопасности в игровой форме. Начать игру!