8.х Как вычислить разность в запросе?

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем barsuchechechek, 24 мар 2010.

  1. TopicStarter Overlay
    barsuchechechek
    Offline

    barsuchechechek Опытный в 1С

    Регистрация:
    21 фев 2009
    Сообщения:
    265
    Симпатии:
    0
    Баллы:
    26
    Подскажите как в запросе выбрать разность двух показатей и эту разность определить как третий.
    Вот кусок запроса

    Код:
    "|ВЫБОР
    |КОГДА ДвиженияДенежныхСредствОбороты.ПриходРасход = &Приход
    |ТОГДА ДвиженияДенежныхСредствОбороты.СуммаОборот
    |ИНАЧЕ 0
    |КОНЕЦ КАК СуммаПриходВал,
    |ВЫБОР
    |КОГДА ДвиженияДенежныхСредствОбороты.ПриходРасход = &Расход
    |ТОГДА ДвиженияДенежныхСредствОбороты.СуммаОборот
    |ИНАЧЕ 0
    |КОНЕЦ КАК СуммаРасходВал,"
    
    Мне нужно определить в запросе еще один показатель Ост, который равен СуммаПриходВал-СуммаРасходВал. Как в данном случае это сделать?
  2. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Сделать текущий запрос подзапросом (или ВТ) и вычислить необходимо выше.
  3. TopicStarter Overlay
    barsuchechechek
    Offline

    barsuchechechek Опытный в 1С

    Регистрация:
    21 фев 2009
    Сообщения:
    265
    Симпатии:
    0
    Баллы:
    26
    Код:
    "ВЫБРАТЬ РАЗРЕШЕННЫЕ
    |    ДвиженияДенежныхСредствОбороты.Организация КАК Организация,
    |    ДвиженияДенежныхСредствОбороты.ВидДенежныхСредств КАК ВидДенежныхСредств,
    |    ВЫБОР
    |        КОГДА ДвиженияДенежныхСредствОбороты.ДокументПланированияПлатежа = НЕОПРЕДЕЛЕНО
    |                ИЛИ ДвиженияДенежныхСредствОбороты.ДокументПланированияПлатежа.ЦФО = &ПустойЦФО
    |            ТОГДА ДвиженияДенежныхСредствОбороты.ДокументДвижения.Подразделение
    |        ИНАЧЕ ДвиженияДенежныхСредствОбороты.ДокументПланированияПлатежа.ЦФО
    |    КОНЕЦ КАК Подразделение,
    |    ДвиженияДенежныхСредствОбороты.Проект КАК Проект,
    |    ДвиженияДенежныхСредствОбороты.Контрагент КАК Контрагент,
    |    ДвиженияДенежныхСредствОбороты.ДоговорКонтрагента КАК ДоговорКонтрагента,
    |    ДвиженияДенежныхСредствОбороты.Сделка КАК Сделка,
    |    ДвиженияДенежныхСредствОбороты.ДокументДвижения КАК ДокументДвижения,
    |    ДвиженияДенежныхСредствОбороты.ДокументПланированияПлатежа КАК ДокументПланированияПлатежа,
    |    ДвиженияДенежныхСредствОбороты.ДокументРасчетовСКонтрагентом КАК ДокументРасчетовСКонтрагентом,
    |    ДвиженияДенежныхСредствОбороты.СтатьяДвиженияДенежныхСредств КАК СтатьяДвиженияДенежныхСредств,
    |    ДвиженияДенежныхСредствОбороты.БанковскийСчетКасса КАК БанковскийСчетКасса,
    |    ДвиженияДенежныхСредствОбороты.БанковскийСчетКасса.ВалютаДенежныхСредств КАК ВалютаДенежныхСредств,
    |    ДвиженияДенежныхСредствОбороты.ПриходРасход КАК ПриходРасход,
    |    ПРЕДСТАВЛЕНИЕ(ДвиженияДенежныхСредствОбороты.Организация) КАК ОрганизацияПредставление,
    |    ПРЕДСТАВЛЕНИЕ(ДвиженияДенежныхСредствОбороты.ВидДенежныхСредств) КАК ВидДенежныхСредствПредставление,
    |    ПРЕДСТАВЛЕНИЕ(ВЫБОР
    |            КОГДА ДвиженияДенежныхСредствОбороты.ДокументПланированияПлатежа = НЕОПРЕДЕЛЕНО
    |                    ИЛИ ДвиженияДенежныхСредствОбороты.ДокументПланированияПлатежа.ЦФО = &ПустойЦФО
    |                ТОГДА ДвиженияДенежныхСредствОбороты.ДокументДвижения.Подразделение
    |            ИНАЧЕ ДвиженияДенежныхСредствОбороты.ДокументПланированияПлатежа.ЦФО
    |        КОНЕЦ) КАК ПодразделениеПредставление,
    |    ПРЕДСТАВЛЕНИЕ(ДвиженияДенежныхСредствОбороты.Проект) КАК ПроектПредставление,
    |    ПРЕДСТАВЛЕНИЕ(ДвиженияДенежныхСредствОбороты.Контрагент) КАК КонтрагентПредставление,
    |    ПРЕДСТАВЛЕНИЕ(ДвиженияДенежныхСредствОбороты.ДоговорКонтрагента) КАК ДоговорКонтрагентаПредставление,
    |    ПРЕДСТАВЛЕНИЕ(ДвиженияДенежныхСредствОбороты.Сделка) КАК СделкаПредставление,
    |    ПРЕДСТАВЛЕНИЕ(ДвиженияДенежныхСредствОбороты.ДокументДвижения) КАК ДокументДвиженияПредставление,
    |    ПРЕДСТАВЛЕНИЕ(ДвиженияДенежныхСредствОбороты.ДокументПланированияПлатежа) КАК ДокументПланированияПлатежаПредставление,
    |    ПРЕДСТАВЛЕНИЕ(ДвиженияДенежныхСредствОбороты.ДокументРасчетовСКонтрагентом) КАК ДокументРасчетовСКонтрагентомПредставление,
    |    ПРЕДСТАВЛЕНИЕ(ДвиженияДенежныхСредствОбороты.СтатьяДвиженияДенежныхСредств) КАК СтатьяДвиженияДенежныхСредствПредставление,
    |    ПРЕДСТАВЛЕНИЕ(ДвиженияДенежныхСредствОбороты.БанковскийСчетКасса) КАК БанковскийСчетКассаПредставление,
    |    ПРЕДСТАВЛЕНИЕ(ДвиженияДенежныхСредствОбороты.БанковскийСчетКасса.ВалютаДенежныхСредств) КАК ВалютаДенежныхСредствПредставление,
    |    ПРЕДСТАВЛЕНИЕ(ДвиженияДенежныхСредствОбороты.ПриходРасход) КАК ПриходРасходПредставление,
    |    ДвиженияДенежныхСредствОбороты.Период КАК Период,
    |    НАЧАЛОПЕРИОДА(ДвиженияДенежныхСредствОбороты.Период, ДЕНЬ) КАК ПериодДень,
    |    НАЧАЛОПЕРИОДА(ДвиженияДенежныхСредствОбороты.Период, НЕДЕЛЯ) КАК ПериодНеделя,
    |    НАЧАЛОПЕРИОДА(ДвиженияДенежныхСредствОбороты.Период, ДЕКАДА) КАК ПериодДекада,
    |    НАЧАЛОПЕРИОДА(ДвиженияДенежныхСредствОбороты.Период, МЕСЯЦ) КАК ПериодМесяц,
    |    НАЧАЛОПЕРИОДА(ДвиженияДенежныхСредствОбороты.Период, КВАРТАЛ) КАК ПериодКвартал,
    |    НАЧАЛОПЕРИОДА(ДвиженияДенежныхСредствОбороты.Период, ПОЛУГОДИЕ) КАК ПериодПолугодие,
    |    НАЧАЛОПЕРИОДА(ДвиженияДенежныхСредствОбороты.Период, ГОД) КАК ПериодГод,
    |    ДвиженияДенежныхСредствОбороты.Регистратор КАК Регистратор,
    |    ВЫБОР
    |        КОГДА ДвиженияДенежныхСредствОбороты.ПриходРасход = &Запланировано
    |            ТОГДА ДвиженияДенежныхСредствОбороты.СуммаОборот
    |        ИНАЧЕ 0
    |    КОНЕЦ КАК ЗапланированоВал,
    |    ВЫБОР
    |        КОГДА ДвиженияДенежныхСредствОбороты.ПриходРасход = &Приход
    |            ТОГДА ДвиженияДенежныхСредствОбороты.СуммаОборот
    |        ИНАЧЕ 0
    |    КОНЕЦ КАК СуммаПриходВал,
    |    ВЫБОР
    |        КОГДА ДвиженияДенежныхСредствОбороты.ПриходРасход = &Расход
    |            ТОГДА ДвиженияДенежныхСредствОбороты.СуммаОборот
    |        ИНАЧЕ 0
    |    КОНЕЦ КАК СуммаРасходВал,
    |    ВЫБОР
    |        КОГДА ДвиженияДенежныхСредствОбороты.ПриходРасход = &Приход
    |            ТОГДА ДвиженияДенежныхСредствОбороты.СуммаОборот
    |        ИНАЧЕ 0
    |    КОНЕЦ - ВЫБОР
    |        КОГДА ДвиженияДенежныхСредствОбороты.ПриходРасход = &Расход
    |            ТОГДА ДвиженияДенежныхСредствОбороты.СуммаОборот
    |        ИНАЧЕ 0
    |    КОНЕЦ КАК ДенежныйПотокВал,
    |    ВЫБОР
    |        КОГДА ДвиженияДенежныхСредствОбороты.ПриходРасход = &Приход
    |            ТОГДА ДвиженияДенежныхСредствОбороты.СуммаУпрОборот
    |        ИНАЧЕ 0
    |    КОНЕЦ КАК СуммаПриходУпр,
    |    ВЫБОР
    |        КОГДА ДвиженияДенежныхСредствОбороты.ПриходРасход = &Расход
    |            ТОГДА ДвиженияДенежныхСредствОбороты.СуммаУпрОборот
    |        ИНАЧЕ 0
    |    КОНЕЦ КАК СуммаРасходУпр,
    |    ВЫБОР
    |        КОГДА ДвиженияДенежныхСредствОбороты.ПриходРасход = &Приход
    |            ТОГДА ДвиженияДенежныхСредствОбороты.СуммаУпрОборот
    |        ИНАЧЕ 0
    |    КОНЕЦ - ВЫБОР
    |        КОГДА ДвиженияДенежныхСредствОбороты.ПриходРасход = &Расход
    |            ТОГДА ДвиженияДенежныхСредствОбороты.СуммаУпрОборот
    |        ИНАЧЕ 0
    |    КОНЕЦ КАК ДенежныйПотокУпр
    |    //ПОЛЯ_СВОЙСТВА
    |    //ПОЛЯ_КАТЕГОРИИ
    |{ВЫБРАТЬ
    |    Организация.*,
    |    ВидДенежныхСредств.*,
    |    Подразделение.*,
    |    Проект.*,
    |    Контрагент.*,
    |    ДоговорКонтрагента.*,
    |    Сделка.*,
    |    ДокументДвижения.*,
    |    ДокументПланированияПлатежа.*,
    |    ДокументРасчетовСКонтрагентом.*,
    |    СтатьяДвиженияДенежныхСредств.*,
    |    БанковскийСчетКасса.*,
    |    ВалютаДенежныхСредств.*,
    |    ПриходРасход.*,
    |    Период,
    |    ПериодДень,
    |    ПериодНеделя,
    |    ПериодДекада,
    |    ПериодМесяц,
    |    ПериодКвартал,
    |    ПериодПолугодие,
    |    ПериодГод,
    |    Регистратор.*,
    |    ЗапланированоВал,
    |    СуммаПриходВал,
    |    СуммаРасходВал,
    |    ДенежныйПотокВал,
    |    СуммаПриходУпр,
    |    СуммаРасходУпр,
    |    ДенежныйПотокУпр
    |    //ПСЕВДОНИМЫ_СВОЙСТВА
    |    //ПСЕВДОНИМЫ_КАТЕГОРИИ
    |}
    |ИЗ
    |    РегистрНакопления.ДвиженияДенежныхСредств.Обороты(&ДатаНач, &ДатаКон, Регистратор {&Периодичность}, {Организация.* КАК Организация, ВидДенежныхСредств.* КАК ВидДенежныхСредств, 
    |        (ВЫБОР
    |            КОГДА ДокументПланированияПлатежа = НЕОПРЕДЕЛЕНО
    |                    ИЛИ ДокументПланированияПлатежа.ЦФО = &ПустойЦФО
    |                ТОГДА ДокументДвижения.Подразделение
    |            ИНАЧЕ ДокументПланированияПлатежа.ЦФО
    |        КОНЕЦ).* КАК Подразделение, 
    | Проект.* КАК Проект, Контрагент.* КАК Контрагент, ДоговорКонтрагента.* КАК ДоговорКонтрагента, 
    | Сделка.* КАК Сделка, ДокументДвижения.* КАК ДокументДвижения, ДокументПланированияПлатежа.* КАК ДокументПланированияПлатежа, 
    | ДокументРасчетовСКонтрагентом.* КАК ДокументРасчетовСКонтрагентом, СтатьяДвиженияДенежныхСредств.* КАК СтатьяДвиженияДенежныхСредств, 
    | БанковскийСчетКасса.* КАК БанковскийСчетКасса, БанковскийСчетКасса.ВалютаДенежныхСредств.* КАК ВалютаДенежныхСредств, 
    | ПриходРасход.* КАК ПриходРасход}) КАК ДвиженияДенежныхСредствОбороты
    |    //СОЕДИНЕНИЯ
    |{ГДЕ
    |    ДвиженияДенежныхСредствОбороты.Период,
    |    НАЧАЛОПЕРИОДА(ДвиженияДенежныхСредствОбороты.Период, ДЕНЬ) КАК ПериодДень,
    |    НАЧАЛОПЕРИОДА(ДвиженияДенежныхСредствОбороты.Период, НЕДЕЛЯ) КАК ПериодНеделя,
    |    НАЧАЛОПЕРИОДА(ДвиженияДенежныхСредствОбороты.Период, ДЕКАДА) КАК ПериодДекада,
    |    НАЧАЛОПЕРИОДА(ДвиженияДенежныхСредствОбороты.Период, МЕСЯЦ) КАК ПериодМесяц,
    |    НАЧАЛОПЕРИОДА(ДвиженияДенежныхСредствОбороты.Период, КВАРТАЛ) КАК ПериодКвартал,
    |    НАЧАЛОПЕРИОДА(ДвиженияДенежныхСредствОбороты.Период, ПОЛУГОДИЕ) КАК ПериодПолугодие,
    |    НАЧАЛОПЕРИОДА(ДвиженияДенежныхСредствОбороты.Период, ГОД) КАК ПериодГод,
    |    ДвиженияДенежныхСредствОбороты.Регистратор.*,
    |    ВЫБОР
    |            КОГДА ДвиженияДенежныхСредствОбороты.ПриходРасход = &Запланировано
    |                ТОГДА ДвиженияДенежныхСредствОбороты.СуммаОборот
    |            ИНАЧЕ 0
    |        КОНЕЦ КАК ЗапланированоВал,
    |    ВЫБОР
    |            КОГДА ДвиженияДенежныхСредствОбороты.ПриходРасход = &Приход
    |                ТОГДА ДвиженияДенежныхСредствОбороты.СуммаОборот
    |            ИНАЧЕ 0
    |        КОНЕЦ КАК СуммаПриходВал,
    |    ВЫБОР
    |            КОГДА ДвиженияДенежныхСредствОбороты.ПриходРасход = &Расход
    |                ТОГДА ДвиженияДенежныхСредствОбороты.СуммаОборот
    |            ИНАЧЕ 0
    |        КОНЕЦ КАК СуммаРасходВал,
    |    ВЫБОР
    |            КОГДА ДвиженияДенежныхСредствОбороты.ПриходРасход = &Приход
    |                ТОГДА ДвиженияДенежныхСредствОбороты.СуммаОборот
    |            ИНАЧЕ 0
    |        КОНЕЦ - ВЫБОР
    |            КОГДА ДвиженияДенежныхСредствОбороты.ПриходРасход = &Расход
    |                ТОГДА ДвиженияДенежныхСредствОбороты.СуммаОборот
    |            ИНАЧЕ 0
    |        КОНЕЦ КАК ДенежныйПотокВал,
    |    ВЫБОР
    |            КОГДА ДвиженияДенежныхСредствОбороты.ПриходРасход = &Приход
    |                ТОГДА ДвиженияДенежныхСредствОбороты.СуммаУпрОборот
    |            ИНАЧЕ 0
    |        КОНЕЦ КАК СуммаПриходУпр,
    |    ВЫБОР
    |            КОГДА ДвиженияДенежныхСредствОбороты.ПриходРасход = &Расход
    |                ТОГДА ДвиженияДенежныхСредствОбороты.СуммаУпрОборот
    |            ИНАЧЕ 0
    |        КОНЕЦ КАК СуммаРасходУпр,
    |    ВЫБОР
    |            КОГДА ДвиженияДенежныхСредствОбороты.ПриходРасход = &Приход
    |                ТОГДА ДвиженияДенежныхСредствОбороты.СуммаУпрОборот
    |            ИНАЧЕ 0
    |        КОНЕЦ - ВЫБОР
    |            КОГДА ДвиженияДенежныхСредствОбороты.ПриходРасход = &Расход
    |                ТОГДА ДвиженияДенежныхСредствОбороты.СуммаУпрОборот
    |            ИНАЧЕ 0
    |        КОНЕЦ КАК ДенежныйПотокУпр
    |    //УСЛОВИЯ_СВОЙСТВА
    |    //УСЛОВИЯ_КАТЕГОРИИ
    |}
    |{УПОРЯДОЧИТЬ ПО
    |    Организация.*,
    |    ВидДенежныхСредств.*,
    |    Подразделение.*,
    |    Проект.*,
    |    Контрагент.*,
    |    ДоговорКонтрагента.*,
    |    Сделка.*,
    |    ДокументДвижения.*,
    |    ДокументПланированияПлатежа.*,
    |    ДокументРасчетовСКонтрагентом.*,
    |    СтатьяДвиженияДенежныхСредств.*,
    |    БанковскийСчетКасса.*,
    |    ВалютаДенежныхСредств.*,
    |    ПриходРасход.*,
    |    Период,
    |    ПериодДень,
    |    ПериодНеделя,
    |    ПериодДекада,
    |    ПериодМесяц,
    |    ПериодКвартал,
    |    ПериодПолугодие,
    |    ПериодГод,
    |    Регистратор.*,
    |    ЗапланированоВал,
    |    СуммаПриходВал,
    |    СуммаРасходВал,
    |    ДенежныйПотокВал,
    |    СуммаПриходУпр,
    |    СуммаРасходУпр,
    |    ДенежныйПотокУпр
    |    //ПСЕВДОНИМЫ_СВОЙСТВА
    |    //ПСЕВДОНИМЫ_КАТЕГОРИИ
    |}    
    |ИТОГИ
    |    СУММА(ЗапланированоВал),
    |    СУММА(СуммаПриходВал),
    |    СУММА(СуммаРасходВал),
    |    СУММА(ДенежныйПотокВал),
    |    СУММА(СуммаПриходУпр),
    |    СУММА(СуммаРасходУпр),
    |    СУММА(ДенежныйПотокУпр)
    |    //ИТОГИ_СВОЙСТВА
    |    //ИТОГИ_КАТЕГОРИИ
    |ПО
    |    ОБЩИЕ
    |{ИТОГИ ПО
    |    Организация.*,
    |    ВидДенежныхСредств.*,
    |    Подразделение,
    |    Проект.*,
    |    Контрагент.*,
    |    ДоговорКонтрагента.*,
    |    Сделка.*,
    |    ДокументДвижения.*,
    |    ДокументПланированияПлатежа.*,
    |    ДокументРасчетовСКонтрагентом.*,
    |    СтатьяДвиженияДенежныхСредств.*,
    |    БанковскийСчетКасса.*,
    |    ВалютаДенежныхСредств.*,
    |    ПриходРасход.*,
    |    Период,
    |    ПериодДень,
    |    ПериодНеделя,
    |    ПериодДекада,
    |    ПериодМесяц,
    |    ПериодКвартал,
    |    ПериодПолугодие,
    |    ПериодГод,
    |    Регистратор.*
    |    //ПСЕВДОНИМЫ_СВОЙСТВА
    |    //ПСЕВДОНИМЫ_КАТЕГОРИИ
    |}";
    
    
    
    Вот весь запрос. Можно ли глобально не переписывая его высчитать то что я хочу?
  4. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Так а в разрезе чего считать итог надо будет?
    Для вычисления подобного значения нужно как-то группировать.

    А так:
    Код:
    "
    |    ВЫБОР
    |        КОГДА ДвиженияДенежныхСредствОбороты.ПриходРасход = &Приход
    |            ТОГДА ДвиженияДенежныхСредствОбороты.СуммаУпрОборот
    |        ИНАЧЕ 0
    |    КОНЕЦ КАК СуммаПриходУпр,
    |    ВЫБОР
    |        КОГДА ДвиженияДенежныхСредствОбороты.ПриходРасход = &Расход
    |            ТОГДА ДвиженияДенежныхСредствОбороты.СуммаУпрОборот
    |        ИНАЧЕ 0
    |    КОНЕЦ КАК СуммаРасходУпр,
    |    ДвиженияДенежныхСредствОбороты.СуммаУпрОборот * ВЫБОР
    |        КОГДА ДвиженияДенежныхСредствОбороты.ПриходРасход = &Приход
    |            ТОГДА 1
    |        ИНАЧЕ -1
    |    КОНЕЦ КАК СуммаДвижения,"
    
    Ну и в итоги надо будет поле поместить. А дальше уже группировать.
  5. TopicStarter Overlay
    barsuchechechek
    Offline

    barsuchechechek Опытный в 1С

    Регистрация:
    21 фев 2009
    Сообщения:
    265
    Симпатии:
    0
    Баллы:
    26
    Код:
    "
    |    ДвиженияДенежныхСредствОбороты.СуммаУпрОборот * ВЫБОР
    |        КОГДА ДвиженияДенежныхСредствОбороты.ПриходРасход = &Приход
    |            ТОГДА 1
    |        ИНАЧЕ -1
    |    КОНЕЦ КАК СуммаДвижения,"
    
    Вот этого не понял - где идет тут суммирование показателей?
  6. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Что бы показатели просуммировать - их надо где-то сгруппировать.
    Как иначе в одной строке их сложить?

    Пример:
    Код:
    [b]Контрагент       СуммаПрихода       СуммаРасхода       СуммаДвижения[/b]
    Вася                    1000                   0                   1000
    Вася                       0                  500                  -500
    --------------------------------------------------------------------------------------
    Итого по Васе:              1000              500                   500
    
    Т.е. в одной строке бессмыслено получать какое-то сложение, раз запись там одна.
    Поэтому вычисление итога нужно добавить в конец запроса:
    Код:
    |ИТОГИ
    |    СУММА(ЗапланированоВал),
    |    СУММА(СуммаДвижения), // Добавить вот эту строчку
    |    СУММА(СуммаПриходВал),
    |    СУММА(СуммаРасходВал),
    |    СУММА(ДенежныйПотокВал),
    
  7. TopicStarter Overlay
    barsuchechechek
    Offline

    barsuchechechek Опытный в 1С

    Регистрация:
    21 фев 2009
    Сообщения:
    265
    Симпатии:
    0
    Баллы:
    26
    Премного благодарен. А возможно ли операци над тремя показателями?
    Код:
    "
    |    ВЫБОР
    |            КОГДА ДвиженияДенежныхСредствОбороты.ПриходРасход = &Запланировано
    |                ТОГДА ДвиженияДенежныхСредствОбороты.СуммаОборот
    |            ИНАЧЕ 0
    |        КОНЕЦ КАК ЗапланированоВал,
    |    ВЫБОР
    |            КОГДА ДвиженияДенежныхСредствОбороты.ПриходРасход = &Приход
    |                ТОГДА ДвиженияДенежныхСредствОбороты.СуммаОборот
    |            ИНАЧЕ 0
    |        КОНЕЦ КАК СуммаПриходВал,
    |    ВЫБОР
    |            КОГДА ДвиженияДенежныхСредствОбороты.ПриходРасход = &Расход
    |                ТОГДА ДвиженияДенежныхСредствОбороты.СуммаОборот
    |            ИНАЧЕ 0
    |        КОНЕЦ КАК СуммаРасходВал,
    |    ДвиженияДенежныхСредствОбороты.СуммаУпрОборот * ВЫБОР
    |        КОГДА ДвиженияДенежныхСредствОбороты.ПриходРасход = &Приход
    |            ТОГДА 1
    |        ИНАЧЕ -1
    |    КОНЕЦ КАК ОстатокВал,
    |    ВЫБОР"
    
    Мне нужно получить ЗапланированоВал-РасходВал+ПриходВал
  8. TopicStarter Overlay
    barsuchechechek
    Offline

    barsuchechechek Опытный в 1С

    Регистрация:
    21 фев 2009
    Сообщения:
    265
    Симпатии:
    0
    Баллы:
    26
    Премного благодарен.

    А можно ли из вот этого
    Код:
    "
    |ВЫБОР
    |КОГДА ДвиженияДенежныхСредствОбороты.ПриходРасход = &Запланировано
    |ТОГДА ДвиженияДенежныхСредствОбороты.СуммаОборот
    |ИНАЧЕ 0
    |КОНЕЦ КАК ЗапланированоВал,
    |ВЫБОР
    |КОГДА ДвиженияДенежныхСредствОбороты.ПриходРасход = &Приход
    |ТОГДА ДвиженияДенежныхСредствОбороты.СуммаОборот
    |ИНАЧЕ 0
    |КОНЕЦ КАК СуммаПриходВал,
    |ВЫБОР
    |КОГДА ДвиженияДенежныхСредствОбороты.ПриходРасход = &Расход
    |ТОГДА ДвиженияДенежныхСредствОбороты.СуммаОборот
    |ИНАЧЕ 0
    |КОНЕЦ КАК СуммаРасходВал,
    | ДвиженияДенежныхСредствОбороты.СуммаУпрОборот * ВЫБОР
    | КОГДА ДвиженияДенежныхСредствОбороты.ПриходРасход = &Приход
    |ТОГДА 1
    | ИНАЧЕ -1
    | КОНЕЦ КАК ОстатокВал,
    |ВЫБОР"
    
    Используя три показателя - получить 4-ый.
    Мне надо ОстатокВал = ЗапланированоВал+ПриходВал-РасходВал
    Счас же ПриходВал-ЗапланированоВал-РасходВал
    Большое вам спасибо за уже оказанную помощь.
  9. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Уже не вспомню навскидку, как в итогах посчитать такое (там можно формулой считать), поэтому будем считать в лоб :)
    Код:
    "
    |    ДвиженияДенежныхСредствОбороты.СуммаУпрОборот * ВЫБОР
    |        КОГДА ДвиженияДенежныхСредствОбороты.ПриходРасход = &Приход
    |            ТОГДА 1
    |        ИНАЧЕ -1
    |    КОНЕЦ + ВЫБОР
    |            КОГДА ДвиженияДенежныхСредствОбороты.ПриходРасход = &Запланировано
    |                ТОГДА ДвиженияДенежныхСредствОбороты.СуммаОборот
    |            ИНАЧЕ 0
    |        КОНЕЦ КАК ОстатокВалСУчетомПлана,"
    
    А вообще можно попробовать в итогах написать:
    Код:
    "|    СУММА(ЗапланированоВал +ОстатокВал), "
    
    Но не уверен, что будет работать правильно :)
  10. TopicStarter Overlay
    barsuchechechek
    Offline

    barsuchechechek Опытный в 1С

    Регистрация:
    21 фев 2009
    Сообщения:
    265
    Симпатии:
    0
    Баллы:
    26
    Насчет первого варианта - не считает - не учитывает ЗапланированоВал. Берет ПриходВал-РасходВал и все:(
  11. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    А, ну да :)))))
    Ибо там может быть только один вариант :)))

    Тогда сделайте так:
    Код:
    "
    ВЫБРАТЬ РАЗРЕШЕННЫЕ
    |    ДвиженияДенежныхСредствОбороты.Организация КАК Организация,
    |    0 КАК СуммаОстатка, // Добавим поле
    |    ДвиженияДенежныхСредствОбороты.ВидДенежныхСредств КАК ВидДенежныхСредств,
    </span>
    // ... 
    
    |ИТОГИ
    |    СУММА(ЗапланированоВал),
    |    СУММА(ЗапланированоВал + СуммаДвижения) КАК СуммаОстатка, // Добавить вот эту строчку
    |    СУММА(СуммаПриходВал),
    |    СУММА(СуммаРасходВал),
    |    СУММА(ДенежныйПотокВал),"
    
    </FONT></FONT></pre>
    Не проверял, но как-то так должно работать...
  12. TopicStarter Overlay
    barsuchechechek
    Offline

    barsuchechechek Опытный в 1С

    Регистрация:
    21 фев 2009
    Сообщения:
    265
    Симпатии:
    0
    Баллы:
    26
    Спасибо. Все заработало после пары движений напильником:)
  13. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Ну, тогда можно избавиться от лишних вычислений вообще :)

    Убираем поле с вычислением СуммаДвижения и прописываем в итогах:
    Код:
    "СУММА(ЗапланированоВал + СуммаПриходВал - СуммаРасходВал) КАК СуммаОстатка"
    
  14. TopicStarter Overlay
    barsuchechechek
    Offline

    barsuchechechek Опытный в 1С

    Регистрация:
    21 фев 2009
    Сообщения:
    265
    Симпатии:
    0
    Баллы:
    26
    А как можно в такой конструкции выполнить деление, но оградить себя от деления на 0. Т.е. будет так:
    СУММА(ЗапланированоВал/СуммаПриходВал*СуммаРасходВал) КАК СуммаОстатка1

    Но СуммаПриходаВал может быть равна 0.
    Пытался сделать через оператор выбора ? - но выдает синтаксическую ошибку почему-то:(
  15. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Показываете, как делали ВЫБОР
  16. TopicStarter Overlay
    barsuchechechek
    Offline

    barsuchechechek Опытный в 1С

    Регистрация:
    21 фев 2009
    Сообщения:
    265
    Симпатии:
    0
    Баллы:
    26
    Я выбор не делал делаю через Сумма(Показатель1/Показатель2) КАК Показатель3,
    надо как-то обыграть ситуацию чтобы не было делания на 0. Или надо делать через выбор?
  17. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Для начала: что должно быть, когда СуммаПриходВал = 0?
    Что должно получиться?
  18. TopicStarter Overlay
    barsuchechechek
    Offline

    barsuchechechek Опытный в 1С

    Регистрация:
    21 фев 2009
    Сообщения:
    265
    Симпатии:
    0
    Баллы:
    26
    Если то на что делим = 0, т.е. делить нельзя то пусть будет все тоже равно 0. Результат в смысле.
  19. TopicStarter Overlay
    barsuchechechek
    Offline

    barsuchechechek Опытный в 1С

    Регистрация:
    21 фев 2009
    Сообщения:
    265
    Симпатии:
    0
    Баллы:
    26
    Делаю так
    Код:
    |	ВЫБОР
    |		КОГДА СУММА(ЗапланированоВал)<>0
    |			ТОГДА СУММА(СуммаРасходУпр*100/ЗапланированоВал)
    |		ИНАЧЕ 0
    |	КОНЕЦ КАК ПроцентВал1,
    |	ВЫБОР
    |		КОГДА СУММА(ЗапланированоВал)<>0
    |			ТОГДА СУММА(СуммаПриходУпр*100/ЗапланированоВал1)
    |		ИНАЧЕ 0
    |	КОНЕЦ КАК ПроцентВал1П,
    
    
    Все равно почему-то выходит ноль.

Поделиться этой страницей