Имя: Пароль:
1C
1С v8
Запрос остаток по партиям
0 devk55
 
19.03.14
06:42
Суть задачи получить те партии по которым есть остаток, но фишка в том что ДокументОприходования в регистре ПартииТоваровНаСкладахБУ не заполнен, используется списание по средней. Сделал запрос - работает но медленно, возможно пошел неправильным путем. Есть идеи?
ВЫБРАТЬ
    ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Организация КАК Организация,
    ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Номенклатура КАК Номенклатура,
    ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.СчетУчета КАК СчетУчета,
    ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Склад КАК Склад,
    ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.ДокументОприходования КАК ДокументОприходования,
    ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
    ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.СерияНоменклатуры КАК СерияНоменклатуры,
    ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Заказ КАК Заказ,
    ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Качество КАК Качество,
    ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.КоличествоНачальныйОстаток,
    ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.КоличествоКонечныйОстаток,
    ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.КоличествоОборот,
    ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.СтоимостьНачальныйОстаток,
    ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.СтоимостьКонечныйОстаток,
    ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.СтоимостьОборот,
    ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Период КАК Период,
    ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Регистратор
ПОМЕСТИТЬ ВТ_ПартииПриход
ИЗ
    РегистрНакопления.ПартииТоваровНаСкладахБухгалтерскийУчет.ОстаткиИОбороты(, &Дата, Регистратор, , ) КАК ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты
ГДЕ
    ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.КоличествоОборот > 0

ИНДЕКСИРОВАТЬ ПО
    Организация,
    Номенклатура,
    СчетУчета,
    Склад,
    ДокументОприходования,
    ХарактеристикаНоменклатуры,
    СерияНоменклатуры,
    Заказ,
    Качество,
    Период
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Организация КАК Организация,
    ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Номенклатура КАК Номенклатура,
    ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.СчетУчета КАК СчетУчета,
    ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Склад КАК Склад,
    ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.ДокументОприходования КАК ДокументОприходования,
    ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
    ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.СерияНоменклатуры КАК СерияНоменклатуры,
    ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Заказ КАК Заказ,
    ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Качество КАК Качество,
    ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.КоличествоНачальныйОстаток,
    ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.КоличествоКонечныйОстаток,
    ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.КоличествоОборот,
    ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.СтоимостьНачальныйОстаток,
    ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.СтоимостьКонечныйОстаток,
    ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.СтоимостьОборот,
    ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Период КАК Период,
    ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.Регистратор
ПОМЕСТИТЬ ВТ_ПартииРасход
ИЗ
    РегистрНакопления.ПартииТоваровНаСкладахБухгалтерскийУчет.ОстаткиИОбороты(, &Дата, Регистратор, , ) КАК ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты
ГДЕ
    ПартииТоваровНаСкладахБухгалтерскийУчетОстаткиИОбороты.КоличествоОборот < 0

ИНДЕКСИРОВАТЬ ПО
    Организация,
    Номенклатура,
    СчетУчета,
    Склад,
    ДокументОприходования,
    ХарактеристикаНоменклатуры,
    СерияНоменклатуры,
    Заказ,
    Качество,
    Период
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТ_ПартииПриход.Период,
    ВТ_ПартииПриход.Организация,
    ВТ_ПартииПриход.Номенклатура,
    ВТ_ПартииПриход.Номенклатура.ЕдиницаХраненияОстатков КАК ЕдиницаХраненияОстатков,
    ВТ_ПартииПриход.СчетУчета,
    ВТ_ПартииПриход.Склад,
    ВТ_ПартииПриход.ДокументОприходования,
    ВТ_ПартииПриход.ХарактеристикаНоменклатуры,
    ВТ_ПартииПриход.СерияНоменклатуры,
    ВТ_ПартииПриход.Заказ,
    ВТ_ПартииПриход.Качество,
    ВТ_ПартииПриход.Регистратор,
    ВТ_ПартииПриход.КоличествоОборот КАК Количество,
    ВТ_ПартииПриход.СтоимостьОборот КАК Стоимость
ИЗ
    ВТ_ПартииПриход КАК ВТ_ПартииПриход
        ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ПартииРасход КАК ВТ_ПартииРасход
        ПО ВТ_ПартииПриход.Организация = ВТ_ПартииРасход.Организация
            И ВТ_ПартииПриход.Номенклатура = ВТ_ПартииРасход.Номенклатура
            И ВТ_ПартииПриход.СчетУчета = ВТ_ПартииРасход.СчетУчета
            И ВТ_ПартииПриход.Склад = ВТ_ПартииРасход.Склад
            И ВТ_ПартииПриход.ДокументОприходования = ВТ_ПартииРасход.ДокументОприходования
            И ВТ_ПартииПриход.ХарактеристикаНоменклатуры = ВТ_ПартииРасход.ХарактеристикаНоменклатуры
            И ВТ_ПартииПриход.СерияНоменклатуры = ВТ_ПартииРасход.СерияНоменклатуры
            И ВТ_ПартииПриход.Заказ = ВТ_ПартииРасход.Заказ
            И ВТ_ПартииПриход.Качество = ВТ_ПартииРасход.Качество
            И ВТ_ПартииПриход.Качество = ВТ_ПартииРасход.Качество
            И ВТ_ПартииПриход.Период < ВТ_ПартииРасход.Период

СГРУППИРОВАТЬ ПО
    ВТ_ПартииПриход.Организация,
    ВТ_ПартииПриход.Номенклатура,
    ВТ_ПартииПриход.СчетУчета,
    ВТ_ПартииПриход.Склад,
    ВТ_ПартииПриход.ДокументОприходования,
    ВТ_ПартииПриход.ХарактеристикаНоменклатуры,
    ВТ_ПартииПриход.СерияНоменклатуры,
    ВТ_ПартииПриход.Заказ,
    ВТ_ПартииПриход.Качество,
    ВТ_ПартииПриход.Регистратор,
    ВТ_ПартииПриход.КоличествоОборот,
    ВТ_ПартииПриход.СтоимостьОборот,
    ВТ_ПартииПриход.Период,
    ВТ_ПартииПриход.КоличествоКонечныйОстаток,
    ВТ_ПартииПриход.Номенклатура.ЕдиницаХраненияОстатков

ИМЕЮЩИЕ
    ВТ_ПартииПриход.КоличествоКонечныйОстаток + СУММА(ВТ_ПартииРасход.КоличествоОборот) > 0

УПОРЯДОЧИТЬ ПО
    ВТ_ПартииПриход.Период
1 Рэйв
 
19.03.14
06:56
я чет не понял...Если тебе надо остатки, что это за танцы чукотских мальчиков с приходом и расходом?
2 devk55
 
19.03.14
06:59
Ну да остатки) если бы у меня было измерение ДокументОприходвания заполнено я бы оттуда их и получил без танцев, а так приходится считать в запросе
3 Рэйв
 
19.03.14
07:06
(2)Сделай периодичность Регистратор и считай его партией.
4 Рэйв
 
19.03.14
07:08
хотя, наверное не варииант.
5 Рэйв
 
19.03.14
07:08
Проще уж пробежаться и заполнить Измерение
6 razlagator
 
19.03.14
07:35
(5) измерение ДокументОприходование по средней не заполняется, нужно фифо
7 Homer
 
19.03.14
07:50
(0) что то мне кажется что такой запрос не взлетит при комбинации
Приход 10
Приход 15
расход 15
8 Homer
 
19.03.14
07:53
(0) я по другому делал (запросом не получилось одним сделать)