Вход | Регистрация


Выбрать из документов старшИй документ

Выбрать из документов старшИй документ
Я
   myr4ik07
 
15.08.18 - 11:02
СКД, цены нужно получать из разных типов документов.

Как выбрать из разных типов документов последнюю цену?

Мой вариант

ВЫБРАТЬ
    ЗакупочныеЦены.Номенклатура КАК Номенклатура,
    ЗакупочныеЦены.Ссылка.Дата КАК Дата,
    ЗакупочныеЦены.Ссылка КАК Ссылка,
    ЗакупочныеЦены.Цена КАК Цена
ИЗ
    (ВЫБРАТЬ
        ПоступлениеТоваровУслугТовары.Номенклатура КАК Номенклатура,
        ВЫБОР
            КОГДА ПоступлениеТоваровУслугТовары.Ссылка.СуммаВключаетНДС
                ТОГДА ПоступлениеТоваровУслугТовары.Цена
            ИНАЧЕ ПоступлениеТоваровУслугТовары.Цена + ПоступлениеТоваровУслугТовары.Цена * 20 / 100
        КОНЕЦ КАК Цена,
        ПоследнийДокумент.Ссылка КАК Ссылка
    ИЗ
        Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
            ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                ПоступлениеТоваровУслугТовары.Номенклатура КАК Номенклатура,
                МАКСИМУМ(ПоступлениеТоваровУслугТовары.Ссылка) КАК Ссылка
            ИЗ
                Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
            ГДЕ
                ПоступлениеТоваровУслугТовары.Ссылка.Проведен
            
            СГРУППИРОВАТЬ ПО
                ПоступлениеТоваровУслугТовары.Номенклатура) КАК ПоследнийДокумент
            ПО ПоступлениеТоваровУслугТовары.Ссылка = ПоследнийДокумент.Ссылка
                И ПоступлениеТоваровУслугТовары.Номенклатура = ПоследнийДокумент.Номенклатура
    
    СГРУППИРОВАТЬ ПО
        ПоступлениеТоваровУслугТовары.Номенклатура,
        ВЫБОР
            КОГДА ПоступлениеТоваровУслугТовары.Ссылка.СуммаВключаетНДС
                ТОГДА ПоступлениеТоваровУслугТовары.Цена
            ИНАЧЕ ПоступлениеТоваровУслугТовары.Цена + ПоступлениеТоваровУслугТовары.Цена * 20 / 100
        КОНЕЦ,
        ПоследнийДокумент.Ссылка
    
    ОБЪЕДИНИТЬ ВСЕ
    
    ВЫБРАТЬ
        АвансовыйОтчетТовары.Номенклатура,
        ВЫБОР
            КОГДА АвансовыйОтчетТовары.Ссылка.СуммаВключаетНДС
                ТОГДА АвансовыйОтчетТовары.Цена
            ИНАЧЕ АвансовыйОтчетТовары.Цена + АвансовыйОтчетТовары.Цена * 20 / 100
        КОНЕЦ,
        ПоследнийДокумент.Ссылка
    ИЗ
        (ВЫБРАТЬ
            АвансовыйОтчетТовары.Номенклатура КАК Номенклатура,
            МАКСИМУМ(АвансовыйОтчетТовары.Ссылка) КАК Ссылка
        ИЗ
            Документ.АвансовыйОтчет.Товары КАК АвансовыйОтчетТовары
        ГДЕ
            АвансовыйОтчетТовары.Ссылка.Проведен
        
        СГРУППИРОВАТЬ ПО
            АвансовыйОтчетТовары.Номенклатура) КАК ПоследнийДокумент
            ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.АвансовыйОтчет.Товары КАК АвансовыйОтчетТовары
            ПО ПоследнийДокумент.Номенклатура = АвансовыйОтчетТовары.Номенклатура
                И ПоследнийДокумент.Ссылка = АвансовыйОтчетТовары.Ссылка
    
    СГРУППИРОВАТЬ ПО
        АвансовыйОтчетТовары.Номенклатура,
        ВЫБОР
            КОГДА АвансовыйОтчетТовары.Ссылка.СуммаВключаетНДС
                ТОГДА АвансовыйОтчетТовары.Цена
            ИНАЧЕ АвансовыйОтчетТовары.Цена + АвансовыйОтчетТовары.Цена * 20 / 100
        КОНЕЦ,
        ПоследнийДокумент.Ссылка) КАК ЗакупочныеЦены
ГДЕ
    ЗакупочныеЦены.Номенклатура = &Номенклатура

УПОРЯДОЧИТЬ ПО
    Дата УБЫВ

сейчас в результате получаю http://prntscr.com/kisugx две строки, так как в двох разных по типам документах встречаеться номенклатура из ценой, из этой таблицы мне нужно отобрать самую последнуюю по дате документа цену, как это сделать?

!сейчас имееться два типа документов, но их будет 4 типа, т.е. еще добавить 2 объединения до тех, что сейчас есть и в результате может быть 4 цены
 
 
   Cyberhawk
 
1 - 15.08.18 - 11:03
"отобрать самую последнуюю по дате документа цену" // Свернуть, получить максимальную дату, соединить повторно по этой макс. дате
   myr4ik07
 
2 - 15.08.18 - 11:04
(1) соединять по дате из 4 типами документов?
   1Сергей
 
3 - 15.08.18 - 11:06
ВЫБРТЬ ПЕРВЫЕ 1
...
УПОРЯДОЧИТЬ ПО
   myr4ik07
 
4 - 15.08.18 - 11:08
(3) не подходит, у меня эта вложенная таблица соединяеться из таблицей продаж
   Лодырь
 
5 - 15.08.18 - 11:10
(4) Не забудь о моментах времени, иначе получишь задвоенные записи.
   1Сергей
 
6 - 15.08.18 - 11:10
(4) А почему не подходит?




ВЫБРАТЬ
    ВЗ.Ссылка,
    ВЗ.Дата,
    ВЗ.Номер
ИЗ
    (ВЫБРАТЬ ПЕРВЫЕ 1
        РеализацияТоваровУслуг.Ссылка КАК Ссылка,
        РеализацияТоваровУслуг.Дата КАК Дата,
        РеализацияТоваровУслуг.Номер КАК Номер
    ИЗ
        Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
    
    УПОРЯДОЧИТЬ ПО
        Дата) КАК ВЗ
   myr4ik07
 
7 - 15.08.18 - 11:21
(6) потому что вся жуть дальше

ВЫБРАТЬ
    Продажи.Номенклатура.Родитель КАК ГруппаТовара,
    Продажи.Номенклатура,
    Продажи.Количество КАК КоличествоПродаж,
    Продажи.Сумма КАК СуммаПродаж,
    ЗакупочныеЦены.Цена КАК Закупка,
    Продажи.Номенклатура.Родитель
ИЗ
    Документ.ОтчетОРозничныхПродажах.Товары КАК Продажи
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ПЕРВЫЕ 1
            ЗакупочныеЦены.Номенклатура КАК Номенклатура,
            ЗакупочныеЦены.Ссылка.Дата КАК СсылкаДата,
            ЗакупочныеЦены.Ссылка КАК Ссылка,
            ЗакупочныеЦены.Цена КАК Цена
        ИЗ
            (ВЫБРАТЬ
                ПоступлениеТоваровУслугТовары.Номенклатура КАК Номенклатура,
                ВЫБОР
                    КОГДА ПоступлениеТоваровУслугТовары.Ссылка.СуммаВключаетНДС
                        ТОГДА ПоступлениеТоваровУслугТовары.Цена
                    ИНАЧЕ ПоступлениеТоваровУслугТовары.Цена + ПоступлениеТоваровУслугТовары.Цена * 20 / 100
                КОНЕЦ КАК Цена,
                ПоследнийДокумент.Ссылка КАК Ссылка
            ИЗ
                Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
                    ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                        ПоступлениеТоваровУслугТовары.Номенклатура КАК Номенклатура,
                        МАКСИМУМ(ПоступлениеТоваровУслугТовары.Ссылка) КАК Ссылка
                    ИЗ
                        Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
                    ГДЕ
                        ПоступлениеТоваровУслугТовары.Ссылка.Проведен
                    
                    СГРУППИРОВАТЬ ПО
                        ПоступлениеТоваровУслугТовары.Номенклатура) КАК ПоследнийДокумент
                    ПО ПоступлениеТоваровУслугТовары.Ссылка = ПоследнийДокумент.Ссылка
                        И ПоступлениеТоваровУслугТовары.Номенклатура = ПоследнийДокумент.Номенклатура
            
            СГРУППИРОВАТЬ ПО
                ПоступлениеТоваровУслугТовары.Номенклатура,
                ВЫБОР
                    КОГДА ПоступлениеТоваровУслугТовары.Ссылка.СуммаВключаетНДС
                        ТОГДА ПоступлениеТоваровУслугТовары.Цена
                    ИНАЧЕ ПоступлениеТоваровУслугТовары.Цена + ПоступлениеТоваровУслугТовары.Цена * 20 / 100
                КОНЕЦ,
                ПоследнийДокумент.Ссылка
            
            ОБЪЕДИНИТЬ ВСЕ
            
            ВЫБРАТЬ
                АвансовыйОтчетТовары.Номенклатура,
                ВЫБОР
                    КОГДА АвансовыйОтчетТовары.Ссылка.СуммаВключаетНДС
                        ТОГДА АвансовыйОтчетТовары.Цена
                    ИНАЧЕ АвансовыйОтчетТовары.Цена + АвансовыйОтчетТовары.Цена * 20 / 100
                КОНЕЦ,
                ПоследнийДокумент.Ссылка
            ИЗ
                (ВЫБРАТЬ
                    АвансовыйОтчетТовары.Номенклатура КАК Номенклатура,
                    МАКСИМУМ(АвансовыйОтчетТовары.Ссылка) КАК Ссылка
                ИЗ
                    Документ.АвансовыйОтчет.Товары КАК АвансовыйОтчетТовары
                ГДЕ
                    АвансовыйОтчетТовары.Ссылка.Проведен
                
                СГРУППИРОВАТЬ ПО
                    АвансовыйОтчетТовары.Номенклатура) КАК ПоследнийДокумент
                    ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.АвансовыйОтчет.Товары КАК АвансовыйОтчетТовары
                    ПО ПоследнийДокумент.Номенклатура = АвансовыйОтчетТовары.Номенклатура
                        И ПоследнийДокумент.Ссылка = АвансовыйОтчетТовары.Ссылка
            
            СГРУППИРОВАТЬ ПО
                АвансовыйОтчетТовары.Номенклатура,
                ВЫБОР
                    КОГДА АвансовыйОтчетТовары.Ссылка.СуммаВключаетНДС
                        ТОГДА АвансовыйОтчетТовары.Цена
                    ИНАЧЕ АвансовыйОтчетТовары.Цена + АвансовыйОтчетТовары.Цена * 20 / 100
                КОНЕЦ,
                ПоследнийДокумент.Ссылка) КАК ЗакупочныеЦены
        
        УПОРЯДОЧИТЬ ПО
            СсылкаДата УБЫВ) КАК ЗакупочныеЦены
        ПО Продажи.Номенклатура = ЗакупочныеЦены.Номенклатура
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            ЦеныАТТСрезПоследних.Номенклатура КАК Номенклатура,
            ЦеныАТТСрезПоследних.Цена КАК Продажная
        ИЗ
            РегистрСведений.ЦеныАТТ.СрезПоследних(, ) КАК ЦеныАТТСрезПоследних
                ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                    ЦеныАТТСрезПоследних.Номенклатура КАК Номенклатура,
                    МАКСИМУМ(ЦеныАТТСрезПоследних.Период) КАК Период
                ИЗ
                    РегистрСведений.ЦеныАТТ.СрезПоследних(, ) КАК ЦеныАТТСрезПоследних
                
                СГРУППИРОВАТЬ ПО
                    ЦеныАТТСрезПоследних.Номенклатура) КАК ВложенныйЗапрос
                ПО ЦеныАТТСрезПоследних.Номенклатура = ВложенныйЗапрос.Номенклатура
                    И ЦеныАТТСрезПоследних.Период = ВложенныйЗапрос.Период
        
        СГРУППИРОВАТЬ ПО
            ЦеныАТТСрезПоследних.Номенклатура,
            ЦеныАТТСрезПоследних.Цена) КАК ПродажныеЦены
        ПО Продажи.Номенклатура = ПродажныеЦены.Номенклатура
ГДЕ
    Продажи.Ссылка.Проведен
    И Продажи.Ссылка.Дата МЕЖДУ &Начало И &Конец


таким образом не находит цену, потому как в вложенной таблице находиться первый документ в котором может не быть номенклтауры с которой потом соединение делаеться
   1Сергей
 
8 - 15.08.18 - 11:23
(7) какой кошмар
ты про временные таблицы слышал что-нибудь?
   myr4ik07
 
9 - 15.08.18 - 11:27
(8) ну не смог я додумать как это все через временные таблицы

если покажеш, буду рад

нужно до товаров, которые в документе ОтчетОРозничныхПродажах добавить закупочные цены, которые могут быть в нескольких типов документов
   myr4ik07
 
10 - 15.08.18 - 11:28
не спрашивайте почему зак цены в док
 
 Рекламное место пустует
   lubitelxml
 
11 - 15.08.18 - 11:36
(10) про расчет НДС по ставке 20% тоже не будем спрашивать
   myr4ik07
 
12 - 15.08.18 - 11:45
(11) не в этом суть, я же не за этим пришел...

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует