Имя: Пароль:
1C
1С v8
Диаграмма в СКД
0 happysan
 
24.02.16
16:44
Создал запрос в СКД:

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

СГРУППИРОВАТЬ ПО
    бит_ОборотыПоБюджетамОбороты.Проект

Как можно вывести в круговую диаграмму факт (в %) как секцию в плане (100%)? Может сразу в запросе рассчитать %?
1 Живой Ископаемый
 
24.02.16
16:46
наверное нужно вычисляемое поле... я так думаю. Отношение факта к плану.
2 happysan
 
24.02.16
16:47
(1) так, ход мыслей понятен, далее в настройках диаграммы что указывать?
3 Живой Ископаемый
 
24.02.16
16:48
блин, вот в настройках - у меня нет пока готового рецепта. я бы экспериментировал.
4 happysan
 
24.02.16
16:49
1. Что указываем ресурсом в СКД?
2. Как настраиваем диаграмму: точки, серии, выбранные поля и т.д.?
5 happysan
 
24.02.16
16:58
Пока эксперимент не удался.
6 happysan
 
24.02.16
19:24
Нет идей?
7 echo77
 
24.02.16
19:40
(6) Сначала стоит определиться, что такое факт на круговой диаграмме
8 happysan
 
24.02.16
19:45
(7)Я же описал в теме: Круговая диаграмма, у неё две секции - План это 100% и в ней "Освоено бюджета в %" - секция факт.
9 happysan
 
25.02.16
08:28
Идеи?
10 happysan
 
25.02.16
08:33
Сделал два вычисляемых поля: "ПроцентОсвоения" = (СуммаФакт/СуммаПлан)*100 и "ПроцентОстаткаПлана" = 100 - ((СуммаФакт/СуммаПлан)*100)

Но что-то они в диаграмму не "ложатся" должным образом.
11 happysan
 
25.02.16
09:42
Не то(
12 happysan
 
25.02.16
10:38
Пока только так получается:

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

&НаКлиенте
Процедура Вывести(Команда)
    ВывестиНаСервере(Диаграмма);
КонецПроцедуры
13 happysan
 
25.02.16
13:52
а теперь ещё и в скд получилось, может кому пригодится:

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

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    "План",
    СУММА(ВЫБОР
            КОГДА бит_ОборотыПоБюджетамОбороты.Сценарий <> ЗНАЧЕНИЕ(Справочник.СценарииПланирования.Факт)
                ТОГДА бит_ОборотыПоБюджетамОбороты.СуммаОборот
            ИНАЧЕ 0
        КОНЕЦ)
ИЗ
    РегистрНакопления.бит_ОборотыПоБюджетам.Обороты(&НачалоПериода, &КонецПериода, , Проект = &Проект) КАК бит_ОборотыПоБюджетамОбороты
14 happysan
 
25.02.16
13:53
Ресурс: Сумма из запроса.
Настройки диаграммы: "Вид" как Точка, а ресурс Сумма в выбранные поля.
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.