Имя: Пароль:
1C
1С v8
Задать периодичность(за пользователя) в скд
0 ksenod
 
20.11.18
13:46
ут10.3
Хочу получить остатки и обороты из соответствующего регистра, но не просто получить их а с периодичностью удобной пользователю. В параметрах вирт таблицы ставлю периодичность-авто, в самом скд потом ставлю периодичность через параметр(по столбцам) и получаю избыточные данные, не могу понять почему. Можете подсказать как избавиться от этого?

Пример выполнения http://prntscr.com/lkmhep


Мой запрос

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

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

УПОРЯДОЧИТЬ ПО
    Номенклатура
1 Cyberhawk
 
20.11.18
13:47
"получаю избыточные данные" // Подробнее
2 ksenod
 
20.11.18
13:49
(1) Скриншот, все что выделено это одна и та же номенклатура, скд раздробила месяц на детальные записи по каждому движению, я же хотел чтобы 1 номенклатура была одной строкой.
3 RomanYS
 
20.11.18
13:52
СГРУППИРОВАТЬ ПО
....    ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток,
    ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток
4 ksenod
 
20.11.18
13:58
(3) Тоже об этом думал, но не придумал как это этого избавиться. Скд не дает удалить это поле из группировки
5 Cyberhawk
 
20.11.18
14:00
1. Говно твой скриншот.
2. Покажи как ты хочешь.
6 RomanYS
 
20.11.18
14:09
(5) он хочет в запросе использовать регистратор и чтобы при этом корректно считались остатки с нужной периодичностью
7 RomanYS
 
20.11.18
14:12
+(6) похоже его желания ТС не совпадают с его возможностями, и эта ветка ему не поможет. Ссылку на срезы по всем датам он уже проигнорировал в другой ветке
8 Cyberhawk
 
20.11.18
14:12
(6) Пусть использует, какие проблемы? В поле СКД регистратор-то не попадает
9 Cyberhawk
 
20.11.18
14:12
Я так понял ему не нравится что сколько столбиков столько и строк у него
10 Cyberhawk
 
20.11.18
14:13
Пустого места типа много
11 RomanYS
 
20.11.18
14:14
(8) остатки то возвращаются подокументно, свернуть их корректно не получится
12 RomanYS
 
20.11.18
14:14
(10) (9) его косяк выделен в (3), но просто его исправить не получится
13 ksenod
 
20.11.18
14:21
(5) Попытался свернуть чтобы получить верный формат с неверными данными и получил то что мне и было нужно
https://gyazo.com/758566586c8104356f093e578adbf417
В конструкторе настроек добавил группировку по номенклатуре
14 ksenod
 
20.11.18
14:22
(7) Эта ссылка была не тем чем мне нужно я же писал, в той теме, я ознакомился с ней но это не то.
15 ksenod
 
20.11.18
14:31
(13) ошибся, это был отчет в котором я явно задавал период месяц, можно и получить подобный результат для моего запроса?
16 Cyberhawk
 
20.11.18
14:32
(15) Периодичность сделать реквизитом формы, под каждую периодичность своя схема СКД
17 Cyberhawk
 
20.11.18
14:32
Но проще, кажется, остатки получать одним набором данных, а обороты - другим
18 ksenod
 
20.11.18
14:35
(16) Но ведь если проставить периодичность месяц, то я не смогу фильтровать регистратор. (17) Похоже придется делать так.
19 RomanYS
 
20.11.18
14:37
(17) я бы тоже так делал.
Есть ещё одна проблемка: если нет оборотов по периоду, то ВТ не показывают остатки
20 ksenod
 
20.11.18
14:44
(19) Несколько решений этой проблемы я нашел на инфоре и тут
На сегодня я сдаюсь, можете подсказать где можно подробно прочитать как это реализовать, соединить обороты по периодам и остатки на конец каждого периода.
21 Cyberhawk
 
20.11.18
14:45
ОСВ в БП 2.0
22 ksenod
 
20.11.18
14:56
(21)  можете поделиться им? нет у меня бп2.
23 Borteg
 
20.11.18
15:07
(0) убрать группировку из запроса, указать роли для измерений и ресурсов(особенно начальный и конечный остаток)
24 ksenod
 
21.11.18
10:30
(21) Не нашел там этого в коде, запустить его нет возможности, статьи из интернета не демонстрируют разбивки по периодам в ОСВ. Можете подсказать как передать получить остатки по периодам из другой таблицы, не могу понять как в неё получить нужные даты.
(23) Моих знаний не хватает чтобы убрать группировку из запроса.
25 ksenod
 
21.11.18
10:38
(24)Можете подсказать как в запросе передать даты чтобы получить остатки по периодам** (сам не понял как получилась такая мешанина из слов)
26 ksenod
 
21.11.18
13:17
Похоже что это слишком сложно объяснить, можете посоветовать литературу/видеокурс(лучше литературу) в которой разжеван этот случай?