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

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

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

Это можно сделать одним запросом (может через подзапросы?) или только через встроенный язык?
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn