ВидМенеджеры = ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.НайтиПоНаименованию("Менеджеры", Истина); // Добавить новый вид характеристик. Если ВидМенеджеры.Пустая() Тогда ВидМенеджеры = ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.СоздатьЭлемент(); ВидМенеджеры.Наименование = "Менеджеры"; ВидМенеджеры.ТипЗначения = Новый ОписаниеТипов("СправочникСсылка.Пользователи"); ВидМенеджеры.Записать(); КонецЕсли; // Получить нужный счет. Счет = ПланыСчетов.Хозрасчетный.НайтиПоКоду("90.01.1"); Если (Не Счет.Пустая()) И (Счет.ВидыСубконто.Найти(ВидМенеджеры) = Неопределено) Тогда // Добавить новый вид субконто к счету. ОбъектСчета = Счет.ПолучитьОбъект(); НовыйВидСубконто = ОбъектСчета.ВидыСубконто.Добавить(); НовыйВидСубконто.ВидСубконто = ВидМенеджеры; НовыйВидСубконто.ТолькоОбороты = Истина; НовыйВидСубконто.Суммовой = Истина; ОбъектСчета.Записать(); КонецЕсли;
Диаграмма = ЭлементыФормы.Диаграмма; // Очистить диаграмму, возможно ранее в нее уже выводились данные. Диаграмма.КоличествоСерий = 0; Диаграмма.КоличествоТочек = 0; // Количество серий будет ограничиваться (не все значения будут показываться). Диаграмма.МаксимумСерий = МаксимумСерий.Ограничено; Диаграмма.МаксимумСерийКоличество = 7; Диаграмма.ВидПодписей = ВидПодписейКДиаграмме.Процент; Диаграмма.ОбластьЗаголовка.Текст = "Обороты номенклатуры"; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ПродажиКомпанииОбороты.Номенклатура, | СУММА(ПродажиКомпанииОбороты.КоличествоОборот) КАК КоличествоОборот |ИЗ | РегистрНакопления.Продажи.Обороты(, , , ) КАК ПродажиКомпанииОбороты |СГРУППИРОВАТЬ ПО | ПродажиКомпанииОбороты.Номенклатура"; Результат = Запрос.Выполнить(); // Запретить обновление диаграммы на время вывода данных. Диаграмма.Обновление = Ложь; // Установить единственную точку. Диаграмма.КоличествоТочек = 1; Диаграмма.Точки[0].Текст = "Количество"; Выборка = Результат.Выбрать(); Пока Выборка.Следующий() Цикл // Количество серий, если бы не ограничивали зависело бы от результата запроса. КоличествоСерий = Диаграмма.Серии.Количество(); Диаграмма.КоличествоСерий = КоличествоСерий + 1; Диаграмма.Серии[КоличествоСерий].Текст = Выборка.Номенклатура; // Установить значение "на пересечении" точки и серии. // Первый параметр - 0 , так как в диаграмме только одна точка. Диаграмма.УстановитьЗначение(0, КоличествоСерий, Выборка.КоличествоОборот); КонецЦикла; // Обновить диаграмму. Диаграмма.Обновление = Истина;
//Пример 1: Процедура ПостроитьДиаграмму(Диагр) КолСерий=0; //количество серий определяется по количеству элементов в справочнике Материалы Спр=СоздатьОбъект("Справочник.Материалы"); Спр.ВыбратьЭлементы(); Пока Спр.ПолучитьЭлемент()=1 Цикл // группы элементов пропускаются Если Спр.ЭтоГруппа()=0 Тогда КолСерий=КолСерий+1; КонецЕсли; КонецЦикла; // установка количества серий и точек Диагр.КоличествоСерий(КолСерий); Диагр.КоличествоТочек(1); //в качестве значений на диаграмме примем количественное сальдо конечное по счету 10 и текущему элементу справочника БИ=СоздатьОбъект("БухгалтерскиеИтоги"); БИ.Рассчитать(ДатаОтчета, ДатаОтчета); номер=1; Спр.ВыбратьЭлементы(); Пока Спр.ПолучитьЭлемент()=1 Цикл Если Спр.ЭтоГруппа()=0 Тогда Диагр.УстановитьИмяСерии(Номер, Спр.Наименование); Диагр.УстановитьЗначение(1,номер,БИ.СКД("10","К",,Спр.ТекущийЭлемент())); номер=номер+1; КонецЕсли; КонецЦикла; КонецПроцедуры
// Пример 2: Процедура СформироватьДиаграмму(Диаграмма1) // Блокируем обновление, пока обрабатываются данные Диаграмма1.Обновление(0); Диаграмма1.Заголовок = "Поступления от покупателей"; Диаграмма1.УстановитьИмяСерии(1, "Рубли"); Диаграмма1.АвтоУстановкаИменТочек(1); // Заполним диаграмму значениями БухИт = СоздатьОбъект("БухгалтерскиеИтоги"); Бухит.ВыполнитьЗапрос(НачКвартала(РабочаяДата()), КонКвартала(РабочаяДата()),"60.1",,,1,"Неделя","С"); БухИт.ВыбратьПериоды(); А = 1; // дебетовые обороты по счету 60.1 покажут поступления // денег от покупателей Пока БухИт.ПолучитьПериод() = 1 Цикл Диаграмма1.УстановитьЗначение(А, 1, БухИт.ДО()); А = А +1; КонецЦикла; // после наполнения данными перерисовываем Диаграмма1.Обновление(1); КонецПроцедуры