Имя: Пароль:
1C
1С v8
Радченко - пособие для начинающих - не выводятся дни в диаграмме Ганта
0 Ramundo
 
28.11.13
15:28
Стр. 587. - пример корректной диаграммы в отчете вместе с числами месяца.

Вот мой код:

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

&НаСервереБезКонтекста

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



Тоько он формирует диаргамму без дней месяца.
1 Max Street
 
28.11.13
15:52
диаграмма ганта - контекстное меню - настройки - автоматически - закрыть
2 Ramundo
 
28.11.13
16:00
Омг я код прошерстил 50 раз уже)))))))) Спс.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший