|
Получение последней цены по товару в тз! | ☑ | ||
---|---|---|---|---|
0
pavlo
07.06.12
✎
13:38
|
Есть серверная процедура, ищет последние цены из регистра сведений по товару который входит в тз. В тз весь товар есть, ее помещаем во временную таблицу и все работает если бы не одно НО, если товар никогда не имел цен, то по такому товару ничего не возвращается, а нужно чтобы вернулось из временной, чтобы цену новую поставить. То есть определяю менялась ли цена и если менялась или была 0, далее устанавливаю цену.
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | тзТ.ТМЦСсылка, | тзТ.Цена |ПОМЕСТИТЬ тзТовары |ИЗ | &тз КАК тзТ |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | тзТ.ТМЦСсылка, | тзТ.Цена КАК ЦенаТовара |ИЗ | тзТовары КАК тзТ | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних | ПО (ЦеныНоменклатурыСрезПоследних.Номенклатура = тзТ.ТМЦСсылка) | И (ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) <> тзТ.Цена) |ГДЕ | ЦеныНоменклатурыСрезПоследних.Характеристика = ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка) | И ЦеныНоменклатурыСрезПоследних.ВидЦены = &ВидЦены | |ДЛЯ ИЗМЕНЕНИЯ | РегистрСведений.ЦеныНоменклатуры.СрезПоследних"; Запрос.УстановитьПараметр("тз",объект.ТаблицаТовара.Выгрузить()); Запрос.УстановитьПараметр("ВидЦены",ЗначенияПоУмолчанию.ВидЦены); тз=Запрос.Выполнить().Выгрузить(); |
|||
1
DrShad
07.06.12
✎
13:40
|
бред какой-то
|
|||
2
Avganec
07.06.12
✎
13:42
|
Вместо
тзТ.Цена КАК ЦенаТовара Пишешь еслиnull(ЦеныНоменклатурыСрезПоследних, тзТ.Цена) КАК ЦенаТовара да условия объединения мягче сделай, только по номенклатуре Условие на тип цены в уловии среза добавь для изменения убери в основном все... |
|||
3
pavlo
07.06.12
✎
13:53
|
(2) если мягче условия объединения сделать, то я так понимаю выберет все товары у которых есть цена, а мне еще нужно чтобы не совпадала с ценой из ТЗ, иначе дупить установку цен не хочется. или я не прав?
для изменения я поставил чтобы таблицу блочила пока не сменю цены (можно и убрать) |
|||
4
Avganec
07.06.12
✎
13:55
|
(3) Ставь по номенклатуре, он тебе все выберет, в строке будет выбираться из регистра, а при отсутствии из ТЗ, вот и все, а при совпадении - тебе без разницы от куда.
|
|||
5
Buster007
07.06.12
✎
13:57
|
|ГДЕ
| ЦеныНоменклатурыСрезПоследних.Характеристика = ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка) | И ЦеныНоменклатурыСрезПоследних.ВидЦены = &ВидЦены вот это в условие соединения перенеси и будет тебе счастье |
|||
6
pavlo
07.06.12
✎
14:12
|
(5) перенести в соединение не получается это условие, конструктор орет про противоречивую связь.
|
|||
7
Avganec
07.06.12
✎
14:13
|
(6) характеристика обязательно должна быть пустой?
это не в связь! |
|||
8
pavlo
07.06.12
✎
14:14
|
(7) ну да должна быть, потому что если и есть другие варианты цен по характеристикам, мне они не нужны. Характеристик вообще не будет в базе заводиться, а измерение есть. (на всякий хотел отсечь этот вариант если заведут характеристику, чтобы она мне не попадалась)
|
|||
9
Avganec
07.06.12
✎
14:18
|
(8) если у тебя их нет, тогда тебе это условие не нужно совсем. В связи оставляешь соединение только по номенклатуре, а в срезе регистра добавляешь условие на тип цен и все блин.
|
|||
10
pavlo
07.06.12
✎
14:49
|
(9)
1. я написал что могут быть и мне нужно отсечь характеристики 2. а разница какая? в условии или в соединении в данном контексте? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |