Имя: Пароль:
1C
1С v8
Получить остатки и движения по ВСЕМ дням и на складе
,
0 Bukasoid
 
20.02.19
02:00
Что имеем: УТ 11, задача - собрать движения и остатки по выбранной номенклатуре по каждой позиции и на каждый день.
Вот до чего дошел своим умом:

    Запрос = Новый Запрос("ВЫБРАТЬ
                          |    ТоварыОрганизацийОстаткиИОбороты.НомерГТД КАК НомерГТД,
                          |    ТоварыОрганизацийОстаткиИОбороты.КоличествоНачальныйОстаток КАК КоличествоНачальныйОстаток,
                          |    ТоварыОрганизацийОстаткиИОбороты.КоличествоКонечныйОстаток КАК КоличествоКонечныйОстаток,
                          |    ТоварыОрганизацийОстаткиИОбороты.КоличествоПриход КАК КоличествоПриход,
                          |    ТоварыОрганизацийОстаткиИОбороты.КоличествоРасход КАК КоличествоРасход,
                          |    ТоварыОрганизацийОстаткиИОбороты.Период КАК Период,
                          |    ТоварыОрганизацийОстаткиИОбороты.АналитикаУчетаНоменклатуры.Номенклатура КАК Номенклатура
                          |ИЗ
                          |    РегистрНакопления.ТоварыОрганизаций.ОстаткиИОбороты(
                          |            &ПериодС,
                          |            &ПериодПо,
                          |            День,
                          |            Движения,
                          |            АналитикаУчетаНоменклатуры.Номенклатура В (&Номенклатура)
                          |                И Организация В (&Организация)) КАК ТоварыОрганизацийОстаткиИОбороты
                          |
                          |СГРУППИРОВАТЬ ПО
                          |    ТоварыОрганизацийОстаткиИОбороты.НомерГТД,
                          |    ТоварыОрганизацийОстаткиИОбороты.КоличествоКонечныйОстаток,
                          |    ТоварыОрганизацийОстаткиИОбороты.КоличествоНачальныйОстаток,
                          |    ТоварыОрганизацийОстаткиИОбороты.КоличествоПриход,
                          |    ТоварыОрганизацийОстаткиИОбороты.КоличествоРасход,
                          |    ТоварыОрганизацийОстаткиИОбороты.Период,
                          |    ТоварыОрганизацийОстаткиИОбороты.АналитикаУчетаНоменклатуры.Номенклатура
                          |
                          |УПОРЯДОЧИТЬ ПО
                          |    ТоварыОрганизацийОстаткиИОбороты.Период,
                          |    Номенклатура");

Итог: данные собираются только по той номенклатуре и тем дням, где движения ненулевые (на первый день периода только 2 строки, а номенклатур в отборе 6, дальше два дня выходных, соответственно ни одной строки и т.д.)

Помогите довести до ума
1 seevkik
 
20.02.19
03:01
Соединение с календарем не предлагать?
2 ДенисЧ
 
20.02.19
06:51
(1) Перестань материться, глаза вянут ))))
3 los_hooliganos
 
20.02.19
06:59
вот пример как это правильно делать. Мне правда нужен был только 1 ресурс.

|ВЫБРАТЬ
    |    ТоварыНаСкладах.Номенклатура,
    |    ДНИ.ДеньВозврата,
    |    СУММА(ВЫБОР
    |            КОГДА ТоварыНаСкладах.Период = &Начало
    |                ТОГДА ТоварыНаСкладах.КоличествоКонечныйОстаток
    |            ИНАЧЕ ВЫБОР
    |                    КОГДА ТоварыНаСкладах.Период <= ДНИ.ДеньВозврата
    |                        ТОГДА ТоварыНаСкладах.КоличествоОборот
    |                    ИНАЧЕ 0
    |                КОНЕЦ
    |        КОНЕЦ) КАК КоличествоКонечныйОстаток
    |ИЗ
    |    Дни КАК ДНИ,
    |    РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(
    |            &Начало,
    |            &Конец,
    |            День,
    |            ,
    |            Номенклатура В
    |                (&СписокТовара)) КАК ТоварыНаСкладах
    
    |СГРУППИРОВАТЬ ПО
    |    ТоварыНаСкладах.Номенклатура,
    |    ДНИ.ДеньВозврата
    |;
4 catena
 
20.02.19
07:02
(3)Привести только половину запроса - это успех)))
(0)Остатки на каждый день - гуглится миллион способов. Некоторые даже с конкретно вашим регистром.
5 Bukasoid
 
20.02.19
12:47
(3) Насколько вижу по запросу, он будет выводить остатки только на начало и конец периода, а мне нужно получать остатки на начало и конец каждого дня
6 Bukasoid
 
20.02.19
12:49
(3) А, нашел на инфостарте этот запрос, но вы привели его не полностью
7 Bukasoid
 
20.02.19
14:09
Переписал с использованием календаря.

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

Результат - пустой
8 Bukasoid
 
20.02.19
16:14
Кто-нибудь подскажет?
9 hhhh
 
20.02.19
16:52
через эапятую Дни и Регистр херачите, это такой прикол?
10 Bukasoid
 
20.02.19
17:53
В общем плюнул, решил, что это обработка, которая будет выполняться раз в месяц и быстродействие у неё не важно, поэтому просто в цикле запустил запросы по каждому дню отдельно. Тему можно закрывать
11 DmitriyDI
 
20.02.19
17:57
(10) Сформируй в цикле таблицу дат и с ней соединись, хотя запрос в цикле если пофиг имеет место быть)
12 azernot
 
20.02.19
18:03
13 catena
 
21.02.19
05:05
(7)Копировать тоже надо уметь, не у всех выходит.