Имя: Пароль:
1C
1С v8
Табличная часть цикл
0 Snail
 
01.02.21
17:43
&НаСервереБезКонтекста
Функция ТЧРНоменклатураПриИзмененииНаСервере(Дата, Номенклатура)
    Возврат РегистрыСведений.Цены.ПолучитьПоследнее(Дата, Новый Структура("Номенклатура", Номенклатура)).Цена;
КонецФункции

&НаКлиенте
Процедура ПроцентПриИзменении(Элемент)    
    Для Каждого Строка Из Объект.ТЧРасход Цикл
    ТД = Элементы.ТЧРасход.ТекущиеДанные;
    А = ТЧРНоменклатураПриИзмененииНаСервере(Объект.Дата, ТД.Номенклатура);
    Строка.Цена = А - А /100 * Объект.Процент;    
    КонецЦикла;
КонецПроцедуры

Считает, но для всех строк одинаковая цена. Как исправить?
1 DrShad
 
01.02.21
17:47
потому что одна и та же номенклатура передается
2 Fragster
 
гуру
01.02.21
17:47
а зачем при изменении строки пересчитывать все цены?
3 ZDenis
 
01.02.21
17:48
(0) Вместо ТД.Номенклатура - Строка.Номенклатура
4 Fragster
 
гуру
01.02.21
17:48
замени Строка.Цена на ТД.Цена а цикл выкинь вообще
5 Fragster
 
гуру
01.02.21
17:49
не говоря уже о том, что в цикле ходить на сервер (хоть и без контекста) и в нем выполнять запрос - прям сильно не оптимально
6 Snail
 
01.02.21
17:50
ZDenis, огромное спасибо!
7 Snail
 
01.02.21
17:52
Всем спасибо!
8 Cthulhu
 
01.02.21
20:09
(7): стоять!
давай выгружай тч - передавай сразу на сервер - обрабатывай сразу все на сервере - возвращай сразу все в клиента - запиндюливай полученное обратно в данные...
9 Fragster
 
гуру
02.02.21
11:01
(8) см (2),(4)
10 Волшебник
 
02.02.21
11:04
(8) Что за странная привычка всё считать в запросе? Клиент вполне справится с расчётом процента скидки
Основная теорема систематики: Новые системы плодят новые проблемы.