Имя: Пароль:
1C
1С v8
Выбор последних оприходований
0 kinazarov
 
28.10.13
16:11
Имеется запрос
[code]
ВЫБРАТЬ РАЗЛИЧНЫЕ
    ПТНС.Номенклатура КАК Номенклатура,
    ПТНС.КоличествоНачальныйОстаток КАК КНОст,
    ПТНС.КоличествоПриход КАК КПрих,
    ПТНС.КоличествоРасход КАК КРасх,
    ПТНС.КоличествоКонечныйОстаток КАК ККОст,
    ПТНС.СтоимостьНачальныйОстаток КАК СНОст,
    ПТНС.СтоимостьПриход КАК СПрих,
    ПТНС.СтоимостьРасход КАК СРасх,
    ПТНС.СтоимостьКонечныйОстаток КАК СКОст,
    ПТНС.СтоимостьКонечныйОстаток - ПТНС.СтоимостьНачальныйОстаток КАК СКОборот,
    ОТТ.Качество КАК Качество,
    ОТ.Подразделение КАК Подразделение,
    ОТ.Ответственный,
    ОТ.Ссылка,
    ВЫБОР
        КОГДА ПТНС.Номенклатура.Наименование ПОДОБНО "%б/у%"
            ТОГДА ИСТИНА
        ИНАЧЕ ЛОЖЬ
    КОНЕЦ КАК БЭУ
ИЗ
    РегистрНакопления.ПартииТоваровНаСкладах.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Период, , ) КАК ПТНС
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ОприходованиеТоваров.Товары КАК ОТТ
            ЛЕВОЕ СОЕДИНЕНИЕ Документ.ОприходованиеТоваров КАК ОТ
            ПО ОТТ.Ссылка = ОТ.Ссылка
        ПО ПТНС.Номенклатура = ОТТ.Номенклатура
ГДЕ
    ОТ.Дата МЕЖДУ &НачалоПериода И &КонецПериода

УПОРЯДОЧИТЬ ПО
    БЭУ,
    ПТНС.Номенклатура.Наименование
ИТОГИ
    СУММА(СКОборот)
ПО
    БЭУ
[/code]
Который выбирает все остатки, обороты за выбранный период и ссылки на документы оприходования за выбранный период.

Но мне нужно выбирать не все ссылки на оприходования за период, а по условию:
Если за период по определенной позиции номенклатуры есть оприходования - выбрать то что есть
Если за период по определенной позиции номенклатуры нет оприходований - выбрать последнее оприходование из предыдущего периода
Если и в предыдущем пусто - то null

Это можно сделать одним запросом (может через подзапросы?) или только через встроенный язык?
2 + 2 = 3.9999999999999999999999999999999...