Имя: Пароль:
1C
1С v8
Помогите с запросом!
0 any-oz
 
08.07.14
08:41
отчет не на СКД, делаю в консоли отчетов:
ВЫБРАТЬ
    ПартииТоваровНаСкладахОстаткиИОбороты.Период КАК Период,
    ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура,
    СУММА(ПартииТоваровНаСкладахОстаткиИОбороты.СтоимостьНачальныйОстаток) КАК СтоимостьНачальныйОстаток,
    СУММА(ПартииТоваровНаСкладахОстаткиИОбороты.СтоимостьКонечныйОстаток) КАК СтоимостьКонечныйОстаток,
    СУММА(ВЫБОР
            КОГДА ПартииТоваровНаСкладахОстаткиИОбороты.СтоимостьНачальныйОстаток = 0
                ТОГДА ПартииТоваровНаСкладахОстаткиИОбороты.СтоимостьКонечныйОстаток
            ИНАЧЕ ВЫБОР
                    КОГДА ПартииТоваровНаСкладахОстаткиИОбороты.СтоимостьКонечныйОстаток = 0
                        ТОГДА ПартииТоваровНаСкладахОстаткиИОбороты.СтоимостьНачальныйОстаток
                    ИНАЧЕ (ПартииТоваровНаСкладахОстаткиИОбороты.СтоимостьНачальныйОстаток + ПартииТоваровНаСкладахОстаткиИОбороты.СтоимостьКонечныйОстаток) / 2
                КОНЕЦ
        КОНЕЦ) КАК капитал
ИЗ
    РегистрНакопления.ПартииТоваровНаСкладах.ОстаткиИОбороты(&ДатаНач, &ДатаКон, Месяц, Движения, Номенклатура В ИЕРАРХИИ (&Группа)) КАК ПартииТоваровНаСкладахОстаткиИОбороты

СГРУППИРОВАТЬ ПО
    ПартииТоваровНаСкладахОстаткиИОбороты.Период,
    ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура

УПОРЯДОЧИТЬ ПО
    Период
ИТОГИ
    СУММА(СтоимостьНачальныйОстаток),
    СУММА(СтоимостьКонечныйОстаток),
    СУММА(капитал)
ПО
    ОБЩИЕ,
    Период ПЕРИОДАМИ(МЕСЯЦ, , ),
    Номенклатура ИЕРАРХИЯ
АВТОУПОРЯДОЧИВАНИЕ

Так вот колонка Капитал рассчитывается только в первом и последнем месяце периода, который задаю....почему, помогите, пожалуйста, очень нужно!
1 Wobland
 
08.07.14
08:45
а зачем такой хитрый выбор?
2 any-oz
 
08.07.14
10:36
нужен именно такой...
3 Enders
 
08.07.14
10:38
(0) Может в остальных месяцах не было движений?
4 any-oz
 
08.07.14
10:54
движений нет, ни в первом, ни в последнем месяце периода, но тем не менее, в них выводится значение Капитал, а в остальных - нет...
5 RomanYS
 
08.07.14
10:54
Таблица ОстаткиИОбороты не содержит записей по остаткам в тех месяцах, где не было движений.
При этом похоже построитель (или СКД) умудряется их выводить в кросс-таблицу (похоже берет из пред. месяцев)
6 any-oz
 
08.07.14
10:57
и как быть?
7 RomanYS
 
08.07.14
10:58
Вариант решения:
1. собрать остатки во временную таблицу,
2. дополнить записями тех месяцев, где не было оборотов
3. посчитать "капитал" в полученной таблице
8 RomanYS
 
08.07.14
11:00
+(7) для второго пункта, наверное, надо дважды соединять с таблицей, например, производственного календаря
9 samozvanec
 
08.07.14
11:04
(1) чем больше уровней вложенности конструкции ВЫБОР в запросе, тем больше ЧСВ автора.
10 Мимохожий Однако
 
08.07.14
11:09
Попробуй брать отдельно таблицы Остатки и Обороты, потом объединить
11 RomanYS
 
08.07.14
11:09
(9) да конструкцию можно упростить до
"ВЫБОР
            КОГДА ПартииТоваровНаСкладахОстаткиИОбороты.СтоимостьНачальныйОстаток = 0
                ТОГДА ПартииТоваровНаСкладахОстаткиИОбороты.СтоимостьКонечныйОстаток
            КОГДА ПартииТоваровНаСкладахОстаткиИОбороты.СтоимостьКонечныйОстаток = 0
                ТОГДА ПартииТоваровНаСкладахОстаткиИОбороты.СтоимостьНачальныйОстаток
            ИНАЧЕ (ПартииТоваровНаСкладахОстаткиИОбороты.СтоимостьНачальныйОстаток + ПартииТоваровНаСкладахОстаткиИОбороты.СтоимостьКонечныйОстаток) / 2
        КОНЕЦ"
Но проблему ТС это не решает
12 samozvanec
 
08.07.14
11:18
(11) как решить проблему ТС, ты уже предложил)
(4) а в каких месяцах были движения? вообще, для наглядности, удобно пробовать все на маленькой выборке
13 RomanYS
 
08.07.14
12:10
(12) "а в каких месяцах были движения?"
Я проверял на встроенной консоли УПП(он на построителе), в тех месяцах где нет оборотов остатки показываются, а "капитал" - нет.
Проблема возникает только при выводе в кросс-таблицу, когда показываются все месяца
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн