![]() |
|
v7: Подскажите с прямым запросом | ☑ | ||
---|---|---|---|---|
0
AMKahm
06.09.12
✎
08:48
|
рс = СоздатьОбъект("ODBCRecordset");
тз = СоздатьОбъект("ТаблицаЗначений"); ТекстЗапроса = " |SELECT DISTINCT | TabSpr.id [Номенклатура $Справочник.Номенклатура], | TabSpr.DESCR as Наименование, | $ОстНом.Остаток as МинимальныйОстаток, | $ОстНом1.Остаток as МаксимальныйОстаток, | ЗапросОстатки.КоличествоОстаток as КоличествоОстаток, | ЗапросОстатки.СуммаБезНДСОстаток as СуммаБезНДС, | ЗапросРезервы.КоличествоОстаток as КоличествоРезерв, | ЗапросРезервыУтвержденные.КоличествоОстаток as КоличествоРезервУтверждено, | Заказано = NULL |FROM | $Справочник.Номенклатура As TabSpr (nolock) | LEFT JOIN $Справочник.ОстаткиНоменклатуры AS ОстНом (nolock) ON (TabSpr.ID = ОстНом.PARENTEXT) AND ($ОстНом.ВидОстатка = :Мин) and ($ОстНом.Склад = :ЦентрСклад) | LEFT JOIN $Справочник.ОстаткиНоменклатуры AS ОстНом1 (nolock) ON (TabSpr.ID = ОстНом1.PARENTEXT) AND ($ОстНом1.ВидОстатка = :Макс) and ($ОстНом1.Склад = :ЦентрСклад) | LEFT JOIN $РегистрОстатки.ПартииНаличие(:КонДата~,,(МОЛ = :МОЛ),(Номенклатура),(Количество,СуммаБезНДС)) AS ЗапросОстатки ON (TabSpr.ID = ЗапросОстатки.Номенклатура) | LEFT JOIN $РегистрОстатки.РезервыТМЦ(:КонДата~,,(Склад = :ЦентрСклад),(Номенклатура),(Количество)) AS ЗапросРезервы ON (TabSpr.ID = ЗапросРезервы.Номенклатура) | LEFT JOIN $РегистрОстатки.РезервыТМЦ(:КонДата~,INNER JOIN $Документ.ЗаявкаПокупателя as Док ON Док.IDDoc = ЗаявкаПокупателя AND $Док.Утвержден = 1,(Склад = :ЦентрСклад),(Номенклатура,ЗаявкаПокупателя),(Количество)) AS ЗапросРезервыУтвержденные ON (TabSpr.ID = ЗапросРезервыУтвержденные.Номенклатура) |WHERE (TabSpr.IsMark = 0) AND (TabSpr.IsFolder = 2) |ORDER BY Наименование"; рс.УстановитьТекстовыйПараметр("КонДата", ТекущаяДата()); рс.УстановитьТекстовыйПараметр("ЦентрСклад", Константа.ЦенСклад); рс.УстановитьТекстовыйПараметр("МОЛ", Константа.ЦенСклад.МОЛ); рс.УстановитьТекстовыйПараметр("Мин", Перечисление.ВидыОстатков.Минимальный); рс.УстановитьТекстовыйПараметр("Макс", Перечисление.ВидыОстатков.Максимальный); тз = рс.ВыполнитьИнструкцию(ТекстЗапроса); тз.Выгрузить(тест); Смысл: НЕ работает строчка LEFT JOIN $РегистрОстатки.РезервыТМЦ(:КонДата~,INNER JOIN $Документ.ЗаявкаПокупателя as Док ON Док.IDDoc = ЗаявкаПокупателя AND $Док.Утвержден = 1,(Склад = :ЦентрСклад),(Номенклатура,ЗаявкаПокупателя),(Количество)) AS ЗапросРезервыУтвержденные ON (TabSpr.ID = ЗапросРезервыУтвержденные.Номенклатура) Хочу получить резервы только по тем заявкам которые были утверждены. Признак утверждения - реквизит самого документа. |
|||
1
AMKahm
06.09.12
✎
08:59
|
P.S. в Регистре РезервыТМЦ измерение ЗаявкаПокупателя - тип просто Документ.
Мож поэтому не линкует? Чето особенное вспоминается по этому поводу... вроде. |
|||
2
Mikeware
06.09.12
✎
09:04
|
ON $ВидДокумента36.ЗаявкаПокупателя+Док.IDDoc = ЗаявкаПокупателя
или ON Док.IDDoc = right(ЗаявкаПокупателя,9) |
|||
3
AMKahm
06.09.12
✎
09:05
|
Лолг! Спасибо. Токачто нашел $ВидСправочника36.Контрагенты + СпрК.ID = $Док.Контрагент
Для того где тип не указан... думал есть ли ВидДокумента36... |
|||
4
Mikeware
06.09.12
✎
09:08
|
(3) Вроде, его позже добавили. в als к версии 2.0 этого нет.
но вроде как с райт(,9) быстрее работает |
|||
5
AMKahm
06.09.12
✎
09:12
|
(4) Угу.... сделал с right. Тока IDDoc ж нужен... да и читабельней так :)
Спасиб еще раз! |
|||
6
Mikeware
06.09.12
✎
09:33
|
(5) читабельность - дело второе. а первое, главное - попасть в индекс.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |