Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Табличная часть цикл

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

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

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

Список тем форума
Рекламное место пустует  Рекламное место пустует
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.