Имя: Пароль:
1C
1С v8
1С 8.3 УФ, Не получается сформировать отчет с диаграммой, Прохочу ППР 8.0 на 8.3
0 _Дайвер_
 
14.04.16
14:43
Создаю отчет "Рейтинг клиентов" по М.Г.Радченко - книга писана на 8.0, я же делаю на 8.3; В задании сказано вывести отчет с диаграммой, все бы ничего но когда я захожу в 1с в режиме отладки не открывает Список выбора вариантов диаграмм;( Вот собственно код):
&НаСервере
Процедура ПриОткрытии()
    //Заполняем список поля выбора
    ПолеВыбора = ТипДиаграммы.Гистограмма;
    Диаграмма.ТипДиаграммы = ПолеВыбора;
    Сформировать();            
    //Список выбора для поля выбора
    СписокВыбора = ПолеВыбора.СписокВыбора;
    СписокВыбора.Добавить(ТипДиаграммы.График, "График");
    СписокВыбора.Добавить(ТипДиаграммы.Гистограмма, "Гистограмма");
    СписокВыбора.Добавить(ТипДиаграммы.ГистограммаОбъемная, "Гистограмма 3D");
    СписокВыбора.Добавить(ТипДиаграммы.ГистограммаГоризонтальная, "Гистограмма горизонтальная");
    СписокВыбора.Добавить(ТипДиаграммы.ГистограммаГоризонтальнаяОбъемная, "Гистограмма горизонтальная 3D");
    СписокВыбора.Добавить(ТипДиаграммы.Круговая, "Круговая");
    СписокВыбора.Добавить(ТипДиаграммы.КруговаяОбъемная, "Круговая объемная");
    СписокВыбора.Добавить(ТипДиаграммы.Изометрическая, "Изометрическая");
    СписокВыбора.Добавить(ТипДиаграммы.ИзометрическаяНепрерывная, "Изометрическая непрерывная");
    СписокВыбора.Добавить(ТипДиаграммы.ИзометрическаяЛента, "Изометрическая лента");
    СписокВыбора.Добавить(ТипДиаграммы.ИзометрическаяПирамида, "Изометрическая пирамида");    
    
КонецПроцедуры

&НаКлиенте
Процедура ПолеВыбораПриИзменении(Элемент)
    Диаграмма.ТипДиаграммы = Полевыбора;
КонецПроцедуры
1 _Дайвер_
 
15.04.16
07:46
Проблему решил, вот решение:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    Элементы.ТипДиаграммыГрафика.СписокВыбора.Добавить(ТипДиаграммы.График, "График");
    Элементы.ТипДиаграммыГрафика.СписокВыбора.Добавить(ТипДиаграммы.Гистограмма, "Гистограмма");
    Элементы.ТипДиаграммыГрафика.СписокВыбора.Добавить(ТипДиаграммы.ГистограммаОбъемная, "Гистограмма 3D");
    Элементы.ТипДиаграммыГрафика.СписокВыбора.Добавить(ТипДиаграммы.ГистограммаГоризонтальная, "Гистограмма горизонтальная");
    Элементы.ТипДиаграммыГрафика.СписокВыбора.Добавить(ТипДиаграммы.ГистограммаГоризонтальнаяОбъемная, "Гистограмма горизонтальная 3D");
    Элементы.ТипДиаграммыГрафика.СписокВыбора.Добавить(ТипДиаграммы.Круговая, "Круговая");
    Элементы.ТипДиаграммыГрафика.СписокВыбора.Добавить(ТипДиаграммы.КруговаяОбъемная, "Круговая объемная");
    Элементы.ТипДиаграммыГрафика.СписокВыбора.Добавить(ТипДиаграммы.Изометрическая, "Изометрическая");
    Элементы.ТипДиаграммыГрафика.СписокВыбора.Добавить(ТипДиаграммы.ИзометрическаяНепрерывная, "Изометрическая непрерывная");
    Элементы.ТипДиаграммыГрафика.СписокВыбора.Добавить(ТипДиаграммы.ИзометрическаяЛента, "Изометрическая лента");
    Элементы.ТипДиаграммыГрафика.СписокВыбора.Добавить(ТипДиаграммы.ИзометрическаяПирамида, "Изометрическая пирамида");
КонецПроцедуры

&НаКлиенте
Процедура ПриОткрытии()
    ТипДиаграммыГрафика = ТипДиаграммы.Гистограмма;
    Сформировать();    
КонецПроцедуры

&НаКлиенте
Процедура ПолеВыбораПриИзменении(Элемент)
    Сформировать()
КонецПроцедуры

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

ТипДиаграммыГрафика = Реквизит формы с типом "Произвольный", с установленным флажком "Режим выбора из списка";
Диаграмма = Реквизит формы с типом "Диаграмма";
Независимо от того, куда вы едете — это в гору и против ветра!