|
КАК учесть два условия в коде | ☑ | ||
---|---|---|---|---|
0
НАТалья Голубева
29.06.16
✎
10:36
|
Добрый день .. я по все тому же коду.... В части кода
Если ЦенаЗакупки=Выборка.ТипЦен Тогда Стоим = Выборка.Цена; Иначе Стоим=0; КонецЕсли; В этом коде идет сначала сравнение, если ЦенаЗакупки совпадает с Выборка.ТипЦен тогда Стоим=выборкаЦена Иначе Стоим=0..... Но ЭТО Иначе работает не совсем корректно ... Если Есть другой тип цен то и с этим топом цен добавляет строку в ТЧ.... А этого мне не надо... Надо чтобы добавилась строка с топом цен ЦенаЗакупки, а если у материала нет этого типа цены то Стоим=0...Если я добавила в параметры и укажу нужный мне тип цен, то выборка осуществится по материалам у которога есть этот тип цены а если нет этого тогда мне не добавит строку материала Стим=0... Подскажите пож. как выйти из этой ситуации.. Вот полный код... Процедура ЗаполнитьПоЦенеЗакупкиМатериалы(Кнопка) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ЦеныНоменклатурыСрезПоследних.ТипЦен, | ЦеныНоменклатурыСрезПоследних.Цена, | ЦеныНоменклатурыСрезПоследних.Номенклатура КАК Номенклатура, | РасчетСебестоимостивсематериалы.Материал КАК Материал, | РасчетСебестоимостивсематериалы.ЕдиницаИзмерения КАК ЕДИЗМ, | РасчетСебестоимостивсематериалы.Количество, | РасчетСебестоимостивсематериалы.КолГП, | РасчетСебестоимостивсематериалы.ГотоваяПродукция КАК ГП |ИЗ | Документ.РасчетСебестоимости.всематериалы КАК РасчетСебестоимостивсематериалы | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних | ПО РасчетСебестоимостивсематериалы.Материал = ЦеныНоменклатурыСрезПоследних.Номенклатура | И РасчетСебестоимостивсематериалы.ЕдиницаИзмерения = ЦеныНоменклатурыСрезПоследних.ЕдиницаИзмерения |ГДЕ | РасчетСебестоимостивсематериалы.Ссылка = &ЭтотДокумент"; Запрос.УстановитьПараметр("Дата", Дата); //Дата Запрос.УстановитьПараметр("ЭтотДокумент", ЭтотОбъект.Ссылка); Результат = Запрос.Выполнить(); ТЗ=Результат.Выгрузить(); ВыбрЭлем=ТЗ.ВыбратьСтроку(); Выборка = Запрос.Выполнить().Выбрать(); всематериалы.Очистить(); ЦенаЗакупки=Справочники.ТипыЦенНоменклатуры.НайтиПоНаименованию("цена закупки").Ссылка; Пока Выборка.Следующий() Цикл Стр=всематериалы.Добавить(); Стр.Материал=Выборка.Материал; Если ЦенаЗакупки=Выборка.ТипЦен Тогда Стоим = Выборка.Цена; Иначе Стоим = 0; КонецЕсли; Стр.ЦенаМатериалов=Стоим; Стр.ЕдиницаИзмерения=Выборка.ЕДИЗМ; Стр.Количество=Выборка.Количество; Стр.КолГП=Выборка.КолГП; Стр.ГотоваяПродукция=Выборка.ГП; Стр.Сумма=Стр.Количество*Стр.ЦенаМатериалов; КонецЦикла; таблвсехматериалов = всематериалы.Выгрузить(); таблвсехматериалов.Свернуть("материал,ЕдиницаИзмерения,ЦенаМатериалов, ГотоваяПродукция, Сумма, КолГП", "Количество"); всематериалы.Загрузить(таблвсехматериалов); КонецПроцедуры |
|||
1
itlikbez
29.06.16
✎
10:42
|
(0) Поставить условие на тип цен не в "ГДЕ" а в "ПО".
|
|||
2
ovrfox
29.06.16
✎
10:50
|
ВЫБРАТЬ
| ЦеныНоменклатурыСрезПоследних.ТипЦен, | ЕстьNull(ЦеныНоменклатурыСрезПоследних.Цена,0), | ЦеныНоменклатурыСрезПоследних.Номенклатура КАК Номенклатура, | РасчетСебестоимостивсематериалы.Материал КАК Материал, | РасчетСебестоимостивсематериалы.ЕдиницаИзмерения КАК ЕДИЗМ, | РасчетСебестоимостивсематериалы.Количество, | РасчетСебестоимостивсематериалы.КолГП, | РасчетСебестоимостивсематериалы.ГотоваяПродукция КАК ГП |ИЗ | Документ.РасчетСебестоимости.всематериалы КАК РасчетСебестоимостивсематериалы | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних | ПО РасчетСебестоимостивсематериалы.Материал = ЦеныНоменклатурыСрезПоследних.Номенклатура | И РасчетСебестоимостивсематериалы.ЕдиницаИзмерения = ЦеныНоменклатурыСрезПоследних.ЕдиницаИзмерения | И ЦеныНоменклатурыСрезПоследних.ТипЦен = &ВыбТипЦены |ГДЕ | РасчетСебестоимостивсематериалы.Ссылка = &ЭтотДокумент |
|||
3
ovrfox
29.06.16
✎
10:53
|
(2) Изменив запрос таким образом, Вам уже не нужно пересчитывать цену в коде, просто используйте ее.
PS: Не забудьте добавить в запрос параметр содержащий тип цены. Или Его можно заменить на "Значение(Справчоник.ТипыЦен.ЦенаЗакупки)" |
|||
4
НАТалья Голубева
29.06.16
✎
11:28
|
Все ОК ..получилось... ovrfox-вам отдельное спасибо супер...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |