- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
Для каждого ПараметрыПозиции Из ПараметрыПечати.Позиции Цикл
...
ОбластьДанных.Параметры.Заполнить(ПараметрыПозиции);
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ЦеныНоменклатурыСрезПоследних.Цена,
| ЦеныНоменклатурыСрезПоследних.Номенклатура
|ИЗ
| РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних
|ГДЕ
| ЦеныНоменклатурыСрезПоследних.ТипЦен = &ТипЦен
| И ЦеныНоменклатурыСрезПоследних.Номенклатура = &Номенклатура";
Запрос.УстановитьПараметр("ТипЦен",Справочники.ТипыЦенНоменклатуры.НайтиПоКоду("000000001"));
Запрос.УстановитьПараметр("Номенклатура",ПараметрыПозиции.Номенклатура);
Цена = Запрос.Выполнить().Выбрать();
Цена.Следующий();
Если Цена.Цена <> Неопределено Тогда
ОбластьДанных.Параметры.Цена = Цена.Цена;
Если ЗначениеЗаполнено(ПараметрыПозиции.КфМест) Тогда
ОбластьДанных.Параметры.ЦенаМеста = Цена.Цена * ПараметрыПозиции.КфМест;
КОнецЕсли;
СумИтог = СумИтог + Цена.Цена * ПараметрыПозиции.Количество;
ОбластьДанных.Параметры.Сумма = Цена.Цена * ПараметрыПозиции.Количество;
КонецЕсли;
ТабДокумент.Присоединить(ОбластьДанных);
КонецЦикла;
Прям классика жанра) Запрос в цикле, и условие к виртуальной таблице регистра сведений)
eth0 13.06.2014 21:27 # +1
Хотя, казалось бы, сделай все вычисления к данным в одном запросе, это же тривиально.
kegdan 13.06.2014 21:46 # 0
guest 13.06.2014 21:57 # +1
жуть
volter9 14.06.2014 22:30 # +2
jerokee 11.07.2014 11:23 # 0
kegdan 11.07.2014 13:19 # 0
HomoAlbus 17.07.2014 00:35 # 0