Имя: Пароль:
1C
1С v8
Пересчет табличной части 8.2
0 Andrew1978
 
24.01.12
07:27
Подскажите кто знает как сделать в моем запросе пересчет суммы, то есть количество*цена.

Процедура Пересчитать() Экспорт
   
   Запрос = Новый Запрос;
   Запрос.Текст =
   
   "ВЫБРАТЬ
   |    Продажи.Номенклатура,
   |   Продажи.Количество,
   |   Продажи.ЕдиницаИзмерения,
   |   Продажи.Серия,
   |   Продажи.Характеристика,
   |   Продажи.Сумма
   |ПОМЕСТИТЬ ТРЧ
   |ИЗ
   |    &ТЧ КАК Продажи
   |;
   |
   |////////////////////////////////////////////////////////////////////////////////
   |ВЫБРАТЬ
   |    ЦеныКомпанииСрезПоследних.ТипЦен,
   |    ЦеныКомпанииСрезПоследних.Цена,
   |    ЦеныКомпанииСрезПоследних.Номенклатура
   |ПОМЕСТИТЬ Цены
   |ИЗ
   |    РегистрСведений.ЦеныКомпании.СрезПоследних(&Период, ТипЦен = &ТипЦен)КАК ЦеныКомпанииСрезПоследних
   |;
   |
   |////////////////////////////////////////////////////////////////////////////////
   |ВЫБРАТЬ
   |    ТРЧ.Номенклатура,
   |   ТРЧ.Количество,
   |   ТРЧ.ЕдиницаИзмерения,
   |   ТРЧ.Серия,
   |   ТРЧ.Характеристика,
   |    Цены.Цена
   |ИЗ
   |    ТРЧ КАК ТРЧ
   |        ЛЕВОЕ СОЕДИНЕНИЕ Цены КАК Цены
   |        ПО ТРЧ.Номенклатура = Цены.Номенклатура";    
   Запрос.УстановитьПараметр("ТЧ",Товары.Выгрузить());
   Запрос.УстановитьПараметр("ТипЦен",ТипЦен);
   Запрос.УстановитьПараметр("Период", Дата);
   
   Результат = Запрос.Выполнить();
   ТЗ=Запрос.Выполнить().Выгрузить();
   
   Товары.Очистить();                
   Товары.Загрузить(ТЗ);                
   
КонецПроцедуры
1 Wobland
 
24.01.12
07:28
эм.... Количество*Цена пробовал?
2 Рэйв
 
24.01.12
07:30
(0)Оригинальный поход за сигаретами в соседний ларек через северный полюс:-)
3 Andrew1978
 
24.01.12
07:30
учебная задача. если не знаете пожалуйста не засоряйте топик
4 Рэйв
 
24.01.12
07:31
(3)Тебе в (1) уже ответили. Твой топик можно закрывать.
5 Andrew1978
 
24.01.12
07:33
(4)то что количество*цена  я и так знаю. собственно в вопросе это есть. как правильно в код это воткнуть чтобы работало
6 Wobland
 
24.01.12
07:33
(5) Таб1.Поле1*Таб2.Поле2
7 Рэйв
 
24.01.12
07:35
(5)Правильно смотреть на события табличного поля на форме.В частности ПриВыводеСтроки(), ловить там через ЭлементыФормы.Товары.ТекущиеДанные текущую строку и через точку от нее пересчтытывать что надо.
8 Wobland
 
24.01.12
07:38
(7) восьмой разряд по телепатии?
9 Andrew1978
 
24.01.12
07:39
(7)не то. нужно перед выгрузкой в табличную часть документа сумму получить
10 Рэйв
 
24.01.12
07:39
(8) ну..Вроде нигде не ошибся:-)...А то, что Товары, так у него в запрос он их параметром передает.
11 Andrew1978
 
24.01.12
07:41
сам уже сделал.вот так работает:

|    Цены.Цена * ТРЧ.Количество КАК Сумма
12 Wobland
 
24.01.12
07:41
(11) 14 минут - неплохой результат ;)
13 Рэйв
 
24.01.12
07:42
(9)
Так получай просто поля.Событие отработает потом и все посчитает.
(11)Ты забываешь что юзверь может взять да ручкакми поправить количество.А при методе (7) все корректно пересчитается в любом случае.
14 Andrew1978
 
24.01.12
07:43
(13)это процедура пересчета табличной части при смене даты документа. задание по учебной конфигурации. а пересчет при ручном изменении количества или цены конечно тоже есть
15 Andrew1978
 
24.01.12
07:44
(12)нафига ты пишешь если помочь не можешь или не хочешь?
Закон Брукера: Даже маленькая практика стоит большой теории.