Имя: Пароль:
1C
1С v8
Дополнительные поля в колонке "итог" в запросе
,
0 Avlek
 
16.10.13
05:29
Есть запрос который показывает с разбивкой по месяцам некоторые суммы по плану и по факту, и в конце есть колонка итог с общей суммой по плану и по факту. Требуется добавить колонки в итогах "Отклонение от плана" и "% исполнения", получающихся вычитанием факта от плана и деления факта на план. Возможно ли такое средствами запроса? Или как его лучше реализовать в построителе отчетов
1 Rie
 
16.10.13
05:41
(0) Возможно.
2 Avlek
 
16.10.13
05:52
Как это сделать?
3 Rie
 
16.10.13
06:03
(2) Вычесть факт из плана. Разделить факт на план.
Что именно у тебя не получается?
Кроме того, с телетяпией по утрам обычно проблемы. Так что если покажешь текст запроса - никто не обидится за это.
4 Avlek
 
16.10.13
06:11
"ВЫБРАТЬ
                   |    ВложенныйЗапрос.СтатьяДвиженияДенежныхСредств КАК СтатьяДвиженияДенежныхСредств,
                   |    ВложенныйЗапрос.МесяцОплаты КАК МесяцОплаты,
                   |    ВложенныйЗапрос.СуммаПлан КАК СуммаПлан,
                   |    ВложенныйЗапрос.СуммаПлатежаФакт КАК СуммаПлатежаФакт
                   |{ВЫБРАТЬ
                   |    СтатьяДвиженияДенежныхСредств.*,
                   |    СуммаПлан,
                   |    СуммаПлатежаФакт,
                   |    МесяцОплаты}
                   |ИЗ
                   |    (ВЫБРАТЬ
                   |        ПлатежноеПоручениеИсходящееРасшифровкаПлатежа.Ссылка.Контрагент КАК Контрагент,
                   |        ПлатежноеПоручениеИсходящееРасшифровкаПлатежа.ДоговорКонтрагента КАК ДоговорКонтрагента,
                   |        ПлатежноеПоручениеИсходящееРасшифровкаПлатежа.СтатьяДвиженияДенежныхСредств КАК СтатьяДвиженияДенежныхСредств,
                   |        НАЧАЛОПЕРИОДА(ПлатежноеПоручениеИсходящееРасшифровкаПлатежа.Ссылка.ДатаОплаты, МЕСЯЦ) КАК МесяцОплаты,
                   |        NULL КАК СуммаПлан,
                   |        СУММА(ПлатежноеПоручениеИсходящееРасшифровкаПлатежа.СуммаПлатежа) КАК СуммаПлатежаФакт
                   |    ИЗ
                   |        Документ.ПлатежноеПоручениеИсходящее.РасшифровкаПлатежа КАК ПлатежноеПоручениеИсходящееРасшифровкаПлатежа
                   |    ГДЕ
                   |        ПлатежноеПоручениеИсходящееРасшифровкаПлатежа.Ссылка.Проведен = ИСТИНА
                   |        И НАЧАЛОПЕРИОДА(ПлатежноеПоручениеИсходящееРасшифровкаПлатежа.Ссылка.ДатаОплаты, МЕСЯЦ) МЕЖДУ &ДАтаНачОтчета И &ДАтаКонОтчета
                   |        И ПлатежноеПоручениеИсходящееРасшифровкаПлатежа.Ссылка.ВидОперации = &ВидОперации
                   |        И (НЕ ПлатежноеПоручениеИсходящееРасшифровкаПлатежа.ДоговорКонтрагента.Наименование ПОДОБНО ""%основной%"")
                   |    
                   |    СГРУППИРОВАТЬ ПО
                   |        НАЧАЛОПЕРИОДА(ПлатежноеПоручениеИсходящееРасшифровкаПлатежа.Ссылка.ДатаОплаты, МЕСЯЦ),
                   |        ПлатежноеПоручениеИсходящееРасшифровкаПлатежа.ДоговорКонтрагента,
                   |        ПлатежноеПоручениеИсходящееРасшифровкаПлатежа.Ссылка.Контрагент,
                   |        ПлатежноеПоручениеИсходящееРасшифровкаПлатежа.СтатьяДвиженияДенежныхСредств
                   |    
                   |    ОБЪЕДИНИТЬ ВСЕ
                   |    
                   |    ВЫБРАТЬ
                   |        ПланыДвиженияДенежныхСредствОбороты.Контрагент,
                   |        ПланыДвиженияДенежныхСредствОбороты.ДоговорКонтрагента,
                   |        ПланыДвиженияДенежныхСредствОбороты.СтатьяДвиженияДенежныхСредств,
                   |        НАЧАЛОПЕРИОДА(ПланыДвиженияДенежныхСредствОбороты.Период, МЕСЯЦ),
                   |        СУММА(ПланыДвиженияДенежныхСредствОбороты.СуммаОборот),
                   |        NULL
                   |    ИЗ
                   |        РегистрНакопления.ПланыДвиженияДенежныхСредств.Обороты(&ДАтаНачОтчета, &ДАтаКонОтчета, Месяц, ) КАК ПланыДвиженияДенежныхСредствОбороты
                   |    ГДЕ
                   |        НАЧАЛОПЕРИОДА(ПланыДвиженияДенежныхСредствОбороты.Период, МЕСЯЦ) МЕЖДУ &ДАтаНачОтчета И &ДАтаКонОтчета
                   |    
                   |    СГРУППИРОВАТЬ ПО
                   |        ПланыДвиженияДенежныхСредствОбороты.Контрагент,
                   |        ПланыДвиженияДенежныхСредствОбороты.ДоговорКонтрагента,
                   |        ПланыДвиженияДенежныхСредствОбороты.СтатьяДвиженияДенежныхСредств,
                   |        НАЧАЛОПЕРИОДА(ПланыДвиженияДенежныхСредствОбороты.Период, МЕСЯЦ)) КАК ВложенныйЗапрос
                   |{ГДЕ
                   |    ВложенныйЗапрос.Контрагент.*,
                   |    ВложенныйЗапрос.ДоговорКонтрагента.*,
                   |    ВложенныйЗапрос.СтатьяДвиженияДенежныхСредств.*}
                   |
                   |УПОРЯДОЧИТЬ ПО
                   |    МесяцОплаты
                   |{УПОРЯДОЧИТЬ ПО
                   |    МесяцОплаты}
                   |ИТОГИ
                   |    СУММА(СуммаПлан),
                   |    СУММА(СуммаПлатежаФакт)
                   |ПО
                   |    ОБЩИЕ,
                   |    СтатьяДвиженияДенежныхСредств,
                   |    МесяцОплаты
                   |{ИТОГИ ПО
                   |    СтатьяДвиженияДенежныхСредств.*,
                   |    СуммаПлатежаФакт,
                   |    СуммаПлан,
                   |    МесяцОплаты}
                   |АВТОУПОРЯДОЧИВАНИЕ"
5 Rie
 
16.10.13
06:17
(4) Введи дополнительное поле СуммаПлатежаФакт-СуммаПлан.
Что касается деления - вычисляй СУММА(СуммаПлатежаФакт)/СУММА(СуммаПлан) с соответствующей группировкой (только проверь, чтобы сумма плановая не была равной 0).
6 Avlek
 
16.10.13
06:24
(5)Любые арифметические операции с этими полями одновременно не работают
и еще мне нужно чтобы колонки отклонения выводились только в итогах а не в каждый месяц
7 Avlek
 
16.10.13
06:25
поле СуммаПлатежаФакт я могу умножать на числа делить возводить в квадрат, а вот когда добавляю второе поле СуммаПлан колонка выводится пустым
8 Rie
 
16.10.13
06:27
(6) А почему
NULL КАК СуммаПлан
а не
0 КАК СуммаПлан

NULL ведь с чем ни складывай - в итоге NULL получится.
9 Avlek
 
16.10.13
06:44
(8) Спасибо, с первой проблемой разобрался, причина как раз в NULL была

а чтобы добавить колонку только в поле "итог" как быть?
10 Rie
 
16.10.13
08:47
(9) Насколько я понимаю - никак. Тут надо всё же группировать и агрегировать. А уж потом - ИТОГ.