Имя: Пароль:
1C
1С v8
Получить общий итог по колонке в СКД как вычисленное значение?
0 PaulMuller
 
22.06.20
15:37
Добрый день. У меня задача получить значения общего итога по колонке в СКД и полученное значение поместить в ячейку следующей колонки на уровне группировки  (в рамках конструктора СКД)

https://drive.google.com/file/d/14spw6GScKMzcnrTzgWLwX0yJMPFM7gdm/view?usp=sharing


Как грамотно это делают?
1 toypaul
 
гуру
22.06.20
18:28
ВычислитьВыражение

и не надо спрашивать как. какой вопрос - такой ответ
2 toypaul
 
гуру
22.06.20
19:16
У меня не получилось. Достаточно просто в общем итоге получить предыдущее значение общего итога. Но вот засунуть его в группировку - так и не смог добиться.
3 PaulMuller
 
23.06.20
02:25
(2) я в общей сложности 40 часов уже пытаюсь это слелать... Вот некоторые мои формулы "вычислить выражение" и вкладки ресурсы (одни из последних вариантов):

ВЫБОР
    КОГДА ТипСчета = "5. Денежные остатки (311)" И ДатаОплаты >= ТекущаяДата()
        ТОГДА ВычислитьВыражение("Сумма(
            ВЫБОР КОГДА ТипСчета <> ""5. Денежные остатки (311)"" ТОГДА
                Сумма
            КОГДА ТипСчета = ""5. Денежные остатки (311)"" ТОГДА
                            ВычислитьВыражение(""Сумма(Сумма)"",,""ОбщийИтог"",""Предыдущая"",""Предыдущая"")  
            КОНЕЦ)",
                "ДатаОплаты",
                ,
                "ОграничивающееЗначение(ДобавитьКДате(ТекущаяДата(), ""День"", 0))"
            )
        КОГДА ТипСчета = "5. Денежные остатки (311)" И ДатаОплаты >= ТекущаяДата()
            ТОГДА
        ИНАЧЕ Сумма(Сумма)
    КОНЕЦ








Или например так:


ВЫБОР КОГДА ТипСчета = "5. Денежные остатки (311)" И ДатаОплаты >= ТекущаяДата() ТОГДА

        ВычислитьВыражение("Сумма(
            ВЫБОР КОГДА ТипСчета <> ""5. Денежные остатки (311)"" ТОГДА
                Сумма
            ИНАЧЕ
                0  
            КОНЕЦ)",
            "ДатаОплаты",
            ,
            "ОграничивающееЗначение(ДобавитьКДате(ТекущаяДата(), ""День"", -1))"
        )
+
        ВычислитьВыражение("Сумма(
            ВЫБОР КОГДА ТипСчета = ""5. Денежные остатки (311)"" ТОГДА
                Сумма
            ИНАЧЕ
                0  
            КОНЕЦ)",
            "ДатаОплаты",
            ,
            "ОграничивающееЗначение(ДобавитьКДате(ТекущаяДата(), ""День"", -1))",
            "ОграничивающееЗначение(ДобавитьКДате(ТекущаяДата(), ""День"", -1))"
        )

        
ИНАЧЕ
    Сумма(Сумма)
КОНЕЦ




Думаю не имеет смысла расписывать задачу. Задачка довольно хрестоматийная. В екселе такое делал за 15 сек для расчетов, а вот для СКД такое впечатление что это тупо невозможно из архитектурных соображений. И что характерно - нагуглить никак не могу даже похожих вещей.
4 toypaul
 
гуру
23.06.20
09:24
как получить общий итог в группировке - известно
как получить предыдущее значение в общем итоге или в группировке - известно

вместо оно как-то не стыкуется

а вообще если хорошо подумать, то все (ну почти все) извращения через вычислитьвыражение решаются изменением запроса или вторым (третьим) набором. в тяжелых случаях внешний набор, заполняемый произвольным алгоритмом