Имя: Пароль:
1C
1С v8
БП можно в запросе сделать подбор по ФИФО?
0 Vovik
 
28.07.15
12:07
В бп отключен партионный учет.
Интересно. Можно исхитрится одним запросом так:
Выбрать остатки 41.1 счета. И набрать ближайшие поступления на количество остатков. Или только остатки запросом + перебор приходов.
1 Naumov
 
28.07.15
12:13
Если партионный учет, то в чем проблема?
2 Ненавижу 1С
 
гуру
28.07.15
12:13
3 Vovik
 
28.07.15
12:15
(2)Спс. Буду вникать.
4 Vovik
 
28.07.15
18:26
Вроде наваял чего то по методике из (2).
Может кому интересно или пригодится. Накрутил чего то много я вложенных запросов, может можно по элегантнее сделать.
Суть отчета: выбирает остатки с 41.01 счета на дату в разрезе номенклатуры с выбором ближайших партий.

        
    Запрос = новый Запрос;    
    Запрос.Текст=
    "ВЫБРАТЬ
    |    ВложенныйЗапрос.Регистратор,
    |    ВложенныйЗапрос.РегистраторСсылка,
    |    ВложенныйЗапрос.РегистраторКонтрагент,
    |    ВложенныйЗапрос.Субконто1,
    |    ВложенныйЗапрос.Субконто1Код,
    |    ВложенныйЗапрос.Период КАК Период,
    |    ВЫБОР
    |        КОГДА ВложенныйЗапрос.ОсталосьСписатьКоличество > 0
    |            ТОГДА ВЫБОР
    |                    КОГДА ВложенныйЗапрос.ОсталосьСписатьКоличество >= ВложенныйЗапрос.КоличествоОборот
    |                        ТОГДА ВложенныйЗапрос.КоличествоОборот
    |                    ИНАЧЕ ВложенныйЗапрос.ОсталосьСписатьКоличество
    |                КОНЕЦ
    |    КОНЕЦ КАК СписатьКоличество,
    |    ВЫБОР
    |        КОГДА ВложенныйЗапрос.ОсталосьСписатьСумму > 0
    |            ТОГДА ВЫБОР
    |                    КОГДА ВложенныйЗапрос.ОсталосьСписатьСумму >= ВложенныйЗапрос.СуммаОборот
    |                        ТОГДА ВложенныйЗапрос.СуммаОборот
    |                    ИНАЧЕ ВложенныйЗапрос.ОсталосьСписатьСумму
    |                КОНЕЦ
    |    КОНЕЦ КАК СписатьСумму
    |ИЗ
    |    (ВЫБРАТЬ
    |        ВложенныйЗапрос.Регистратор КАК Регистратор,
    |        ВложенныйЗапрос.СуммаОборот КАК СуммаОборот,
    |        ВложенныйЗапрос.КоличествоОборот КАК КоличествоОборот,
    |        ВложенныйЗапрос.РегистраторСсылка КАК РегистраторСсылка,
    |        ВложенныйЗапрос.РегистраторКонтрагент КАК РегистраторКонтрагент,
    |        ВложенныйЗапрос.СуммаОборотПромИтог КАК СуммаОборотПромИтог,
    |        ВложенныйЗапрос.КоличествоОборотПромИтог КАК КоличествоОборотПромИтог,
    |        ВложенныйЗапрос.Субконто1 КАК Субконто1,
    |        ВложенныйЗапрос.Субконто1Код КАК Субконто1Код,
    |        ВложенныйЗапрос.СуммаОстаток КАК СуммаОстаток,
    |        ВложенныйЗапрос.КоличествоОстаток КАК КоличествоОстаток,
    |        ВложенныйЗапрос.Период КАК Период,
    |        ВложенныйЗапрос.КоличествоОборотОбщИтог КАК КоличествоОборотОбщИтог,
    |        ВложенныйЗапрос.КоличествоОстаток + ВложенныйЗапрос.КоличествоОборотПромИтог - ВложенныйЗапрос.КоличествоОборотОбщИтог КАК ОсталосьСписатьКоличество,
    |        ВложенныйЗапрос.СуммаОстаток + ВложенныйЗапрос.СуммаОборотПромИтог - ВложенныйЗапрос.СуммаОборотОбщИтог КАК ОсталосьСписатьСумму
    |    ИЗ
    |        (ВЫБРАТЬ
    |            ХозрасчетныйОстаткиИОбороты.Регистратор КАК Регистратор,
    |            ХозрасчетныйОстаткиИОбороты.СуммаОборот КАК СуммаОборот,
    |            ХозрасчетныйОстаткиИОбороты.КоличествоОборот КАК КоличествоОборот,
    |            ХозрасчетныйОстаткиИОбороты.Регистратор.Ссылка КАК РегистраторСсылка,
    |            ХозрасчетныйОстаткиИОбороты.Регистратор.Контрагент КАК РегистраторКонтрагент,
    |            СУММА(ХозрасчетныйОстаткиИОбороты1.СуммаОборот) КАК СуммаОборотПромИтог,
    |            СУММА(ХозрасчетныйОстаткиИОбороты1.КоличествоОборот) КАК КоличествоОборотПромИтог,
    |            ХозрасчетныйОстатки.Субконто1 КАК Субконто1,
    |            ХозрасчетныйОстатки.Субконто1.Код КАК Субконто1Код,
    |            ХозрасчетныйОстатки.СуммаОстаток КАК СуммаОстаток,
    |            ХозрасчетныйОстатки.КоличествоОстаток КАК КоличествоОстаток,
    |            ХозрасчетныйОстаткиИОбороты.Период КАК Период,
    |            ВложенныйЗапрос.КоличествоОборотОбщИтог КАК КоличествоОборотОбщИтог,
    |            ВложенныйЗапрос.СуммаОборотОбщИтог КАК СуммаОборотОбщИтог
    |        ИЗ
    |            РегистрБухгалтерии.Хозрасчетный.Остатки(&Дата2, Счет = &сч41, , ) КАК ХозрасчетныйОстатки
    |                ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(, &Дата2, Регистратор, Движения, Счет = &сч41, , ) КАК ХозрасчетныйОстаткиИОбороты
    |                    ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(, &Дата2, Регистратор, Движения, Счет = &сч41, , ) КАК ХозрасчетныйОстаткиИОбороты1
    |                    ПО ХозрасчетныйОстаткиИОбороты.Период >= ХозрасчетныйОстаткиИОбороты1.Период
    |                        И ХозрасчетныйОстаткиИОбороты.Субконто1 = ХозрасчетныйОстаткиИОбороты1.Субконто1
    |                ПО ХозрасчетныйОстатки.Субконто1 = ХозрасчетныйОстаткиИОбороты.Субконто1
    |                ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
    |                    ХозрасчетныйОбороты.Субконто1 КАК Субконто1,
    |                    СУММА(ХозрасчетныйОбороты.КоличествоОборот) КАК КоличествоОборотОбщИтог,
    |                    СУММА(ХозрасчетныйОбороты.СуммаОборот) КАК СуммаОборотОбщИтог
    |                ИЗ
    |                    РегистрБухгалтерии.Хозрасчетный.Обороты(, &Дата2, Регистратор, Счет = &сч41, , , , ) КАК ХозрасчетныйОбороты
    |                ГДЕ
    |                    ХозрасчетныйОбороты.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг
    |                
    |                СГРУППИРОВАТЬ ПО
    |                    ХозрасчетныйОбороты.Субконто1) КАК ВложенныйЗапрос
    |                ПО ХозрасчетныйОстатки.Субконто1 = ВложенныйЗапрос.Субконто1
    |        ГДЕ
    |            ХозрасчетныйОстаткиИОбороты.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг
    |            И ХозрасчетныйОстаткиИОбороты1.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг
    |        
    |        СГРУППИРОВАТЬ ПО
    |            ХозрасчетныйОстаткиИОбороты.Регистратор,
    |            ХозрасчетныйОстаткиИОбороты.СуммаОборот,
    |            ХозрасчетныйОстаткиИОбороты.КоличествоОборот,
    |            ХозрасчетныйОстаткиИОбороты.Регистратор.Ссылка,
    |            ХозрасчетныйОстаткиИОбороты.Регистратор.Контрагент,
    |            ХозрасчетныйОстатки.Субконто1,
    |            ХозрасчетныйОстатки.Субконто1.Код,
    |            ХозрасчетныйОстатки.СуммаОстаток,
    |            ХозрасчетныйОстатки.КоличествоОстаток,
    |            ХозрасчетныйОстаткиИОбороты.Период,
    |            ВложенныйЗапрос.КоличествоОборотОбщИтог,
    |            ВложенныйЗапрос.СуммаОборотОбщИтог) КАК ВложенныйЗапрос
    |    
    |    СГРУППИРОВАТЬ ПО
    |        ВложенныйЗапрос.Регистратор,
    |        ВложенныйЗапрос.СуммаОборот,
    |        ВложенныйЗапрос.КоличествоОборот,
    |        ВложенныйЗапрос.РегистраторСсылка,
    |        ВложенныйЗапрос.РегистраторКонтрагент,
    |        ВложенныйЗапрос.СуммаОборотПромИтог,
    |        ВложенныйЗапрос.КоличествоОборотПромИтог,
    |        ВложенныйЗапрос.Субконто1,
    |        ВложенныйЗапрос.Субконто1Код,
    |        ВложенныйЗапрос.СуммаОстаток,
    |        ВложенныйЗапрос.КоличествоОстаток,
    |        ВложенныйЗапрос.Период,
    |        ВложенныйЗапрос.КоличествоОборотОбщИтог,
    |        ВложенныйЗапрос.СуммаОстаток + ВложенныйЗапрос.СуммаОборотПромИтог - ВложенныйЗапрос.СуммаОборотОбщИтог) КАК ВложенныйЗапрос
    |ГДЕ
    |    ВложенныйЗапрос.ОсталосьСписатьКоличество > 0
    |    И ВложенныйЗапрос.ОсталосьСписатьСумму > 0
    |
    |УПОРЯДОЧИТЬ ПО
    |    Период УБЫВ"

    ;
    
    Запрос.УстановитьПараметр("Дата2"    ,    НачалоДня(Объект.Дата2));
    Запрос.УстановитьПараметр("сч41"    ,    ПланыСчетов.Хозрасчетный.ТоварыНаСкладах);