Бухгалтерия / Говнокод #16157 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
Для каждого ПараметрыПозиции Из ПараметрыПечати.Позиции Цикл
        ...
	ОбластьДанных.Параметры.Заполнить(ПараметрыПозиции);
	Запрос = Новый Запрос;
	Запрос.Текст =
	"ВЫБРАТЬ
	|	ЦеныНоменклатурыСрезПоследних.Цена,
	|	ЦеныНоменклатурыСрезПоследних.Номенклатура
	|ИЗ
	|	РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних
	|ГДЕ
	|	ЦеныНоменклатурыСрезПоследних.ТипЦен = &ТипЦен
	|	И ЦеныНоменклатурыСрезПоследних.Номенклатура = &Номенклатура";
	Запрос.УстановитьПараметр("ТипЦен",Справочники.ТипыЦенНоменклатуры.НайтиПоКоду("000000001"));
	Запрос.УстановитьПараметр("Номенклатура",ПараметрыПозиции.Номенклатура);
	Цена = Запрос.Выполнить().Выбрать();
	Цена.Следующий();
	Если Цена.Цена <> Неопределено Тогда
		ОбластьДанных.Параметры.Цена = Цена.Цена;
		Если ЗначениеЗаполнено(ПараметрыПозиции.КфМест) Тогда  
			ОбластьДанных.Параметры.ЦенаМеста = Цена.Цена * ПараметрыПозиции.КфМест;
		КОнецЕсли;
		СумИтог = СумИтог + Цена.Цена * ПараметрыПозиции.Количество;
		ОбластьДанных.Параметры.Сумма = Цена.Цена * ПараметрыПозиции.Количество;
	КонецЕсли;
	ТабДокумент.Присоединить(ОбластьДанных);

КонецЦикла;

Прям классика жанра) Запрос в цикле, и условие к виртуальной таблице регистра сведений)

Запостил: adc5 adc5, (Updated )

Комментарии (7) RSS

  • Всё в порядке. 99% одноэсников не могут в запросы. Мозги не так устроены или съедены семёркой.
    Хотя, казалось бы, сделай все вычисления к данным в одном запросе, это же тривиально.
    Ответить
    • Как говориться - не доставай из базы больше, чем тебе нужно
      Ответить
  • Справочники.ТипыЦенНоменклатуры.НайтиПоК оду("000000001"), пичалька 🙁
    Ответить

Добавить комментарий

Где здесь C++, guest?!

    А не использовать ли нам bbcode?


    8