// Перезаполнит объект Диагамма значениями из Источник // Параметры: // Диаграмма - Диаграмма // Источник - Массив, Таблица значений, Табличная часть - Коллекция, // для которой доступен обход элементов коллекции посредством оператора Для каждого … Из … Цикл. // ПараметрыЗаполнения - Структура - обязательные ключи "Точки", "Серии", "Значения" // имена коллонок Источника Процедура ЗаполнитьДиаграмму(Диаграмма, Источник, ПараметрыЗаполнения) Перем ИндексТочек, ИндексСерий; Перем Серия, Точка; Перем ЗаписьИсточника; Перем ПолеТочек, ПолеСерий, ПолеЗначений; Диаграмма.Очистить(); Диаграмма.Обновление = Ложь; Если Не (ТипЗнч(ПараметрыЗаполнения) = Тип("Структура") Или ТипЗнч(ПараметрыЗаполнения) = Тип("ФиксированнаяСтруктура") Или ТипЗнч(ПараметрыЗаполнения) = Тип("ФиксированноеСоответствие") Или ТипЗнч(ПараметрыЗаполнения) = Тип("Соответствие")) Тогда ПараметрыЗаполнения = Новый Структура; КонецЕсли; ПараметрыЗаполнения.Свойство("Точки", ПолеТочек); ПараметрыЗаполнения.Свойство("Серии", ПолеСерий); ПараметрыЗаполнения.Свойство("Значения", ПолеЗначений); Для Каждого ЗаписьИсточника Из Источник Цикл Точка = ПолучитьИндексОбъектаДиаграммы(Диаграмма.Точки, ЗаписьИсточника[ПолеТочек], ИндексТочек); Серия = ПолучитьИндексОбъектаДиаграммы(Диаграмма.Серии, ЗаписьИсточника[ПолеСерий], ИндексСерий); Диаграмма.УстановитьЗначение(Точка,Серия,ЗаписьИсточника[ПолеЗначений]); КонецЦикла; Диаграмма.Обновление = Истина; КонецПроцедуры // Вернёт число - индекс элемента Коллекции (Точки, Серии) Функция ПолучитьИндексОбъектаДиаграммы(Коллекция, Значение, КешЗначений) Перем индекс; Если КешЗначений = Неопределено Тогда КешЗначений = Новый Массив; КонецЕсли; индекс = КешЗначений.Найти(Значение); Если индекс = Неопределено Тогда КешЗначений.Добавить(Значение); Коллекция.Добавить("" + Значение); Индекс = КешЗначений.Количество()-1; КонецЕсли; Возврат индекс; КонецФункции