Имя: Пароль:
1C
1С v8
Красота диаграммы Ганта
0 Chuvaschow
 
24.11.15
10:10
Здравствуйте, Уважаемые форумчане!

Требуется Ваша помощь в освоении такой штуки, как диаграмма Ганта.
Есть такой код:


&НаКлиенте
Процедура Сформировать(Команда)
    СформироватьНаСервере();
КонецПроцедуры

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

    //ДГ.АвтоОпределениеПолногоИнтервала = Ложь;
    //ДГ.УстановитьПолныйИнтервал(Выборка.НачалоПроекта, Выборка.ОкончаниеПроекта);
    ДГ.Анимация = АнимацияДиаграммы.Использовать;
    ДГ.ПоддержкаМасштаба = ПоддержкаМасштабаДиаграммыГанта.Авто;
    ДГ.Обновление = Истина;

КонецПроцедуры;


И выглядит все это так http://s020.radikal.ru/i722/1511/7a/288e329f3c11.jpg

Что хотелось бы получить на выходе:

1. Иерархию. То есть Локальная смета с плюсом (раскрывается) под ней все работы, затем следующая локальная смета и так далее.
2. В шкале времени, выше чисел получить месяц.

В гугле крайне мало описаний по поводу Ганта. Лишь стандартные примеры.
1 Cyberhawk
 
24.11.15
10:12
Штатная довольно негибкая, рекомендую рисовать полностью свою ДГ
2 Лефмихалыч
 
24.11.15
10:14
(0) этого многим бы хотелось, но приходится потреблять, что дают :)
3 SilentMan
 
24.11.15
10:42
(0) Вот тут на картинках похоже на то, что ты хочешь: http://its.1c.ru/db/v837doc#bookmark:dev:TI000001693
4 Cyberhawk
 
24.11.15
10:49
Говорю еще раз: пили свой движок ДГ и будет тебе счастье.
Например, вот такое: https://goo.gl/e3fpN5
5 Юрий Лазаренко
 
24.11.15
10:53
(0) Мы на html делали, там можно реализовать и разворачивание уровней, и перетаскивание, и прочие плюшки.
6 Chuvaschow
 
24.11.15
11:23
Такое не осилю....
7 Chuvaschow
 
24.11.15
12:15
Ну хотя бы иерархию?
8 Chuvaschow
 
24.11.15
14:20
Пока Выборка.Следующий() Цикл
        Точка = ДГ.УстановитьТочку(Выборка.Смета);
        ДГ.РазвернутьТочку(Точка,Истина);
        ТочкаРабота = Точка.Точки.Добавить();
        ТочкаРабота = ДГ.УстановитьТочку(Выборка.Работа);
        Серия = ДГ.УстановитьСерию("Работа");
        Значение = ДГ.ПолучитьЗначение(ТочкаРабота,Серия);
        
        Интервал = Значение.Добавить();
        Интервал.Начало = Выборка.ДатаНачала;
        Интервал.Конец = Выборка.ДатаОкончания;
    КонецЦикла;



Так получается слишком глубоко...
9 Chuvaschow
 
24.11.15
15:03
10 Cyberhawk
 
24.11.15
15:07
Ну раз глубоко, то накладывай условие при обходе выборки (в цикле)
11 Chuvaschow
 
25.11.15
10:49
Подскажите, как поправить запрос/цикл чтобы получилась структура вида:

Локальная смета 1
     Работа 1
     Работа 2
     Работа ...
Локальная смета 2
     Работа 1
     Работа 2
     Работа ...