Диаграмма.ИсточникДанных

Свойства · DataSource

Тип: ТаблицаЗначений, ОбластьЯчеекТабличногоДокумента. Содержит источник данных диаграммы. При помощи этого свойства можно наполнять диаграмму данными, содержащимися в области табличного документа или в таблице значений. Данные в источнике должны располагаться следующим образом: При расположении серий в столбцах диаграммы (свойство СерииВСтроках равно Ложь): Если источником является таблица значений, ее первая колонка должна содержать имена точек диаграммы. Имена серий диаграммы берутся из заголовков колонок (заголовок первой колонки игнорируется). Если источником является область табличного документа, имена серий берутся из верхней строки области. Имена точек берутся из левого столбца области. Содержимое левой верхней ячейки игнорируется. При расположении серий в строках диаграммы (свойство СерииВСтроках равно Истина): Если источником является таблица значений, ее первая колонка должна содержать имена серий диаграммы. Имена точек диаграммы берутся из заголовков колонок (заголовок первой колонки игнорируется). Если источником является область табличного документа, имена точек берутся из верхней строки области. Имена серий берутся из левого столбца области. Содержимое левой верхней ячейки игнорируется.

Полное описание, параметры и ограничения

Диаграмма.ИсточникДанных (Chart.DataSource)

Диаграмма (Chart)

ИсточникДанных (DataSource)

Доступен, начиная с версии 8.0.

Использование:
Только запись.
Описание:
Тип: ТаблицаЗначений, ОбластьЯчеекТабличногоДокумента.
Содержит источник данных диаграммы. При помощи этого свойства можно наполнять диаграмму данными, содержащимися в области табличного документа или в таблице значений.
Данные в источнике должны располагаться следующим образом:
При расположении серий в столбцах диаграммы (свойство СерииВСтроках равно Ложь):
Если источником является таблица значений, ее первая колонка должна содержать имена точек диаграммы. Имена серий диаграммы берутся из заголовков колонок (заголовок первой колонки игнорируется).

Если источником является область табличного документа, имена серий берутся из верхней строки области. Имена точек берутся из левого столбца области. Содержимое левой верхней ячейки игнорируется.
При расположении серий в строках диаграммы (свойство СерииВСтроках равно Истина):
Если источником является таблица значений, ее первая колонка должна содержать имена серий диаграммы. Имена точек диаграммы берутся из заголовков колонок (заголовок первой колонки игнорируется).

Если источником является область табличного документа, имена точек берутся из верхней строки области. Имена серий берутся из левого столбца области. Содержимое левой верхней ячейки игнорируется.

Доступность:

Мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.

Примечание:
Обновление диаграммы при изменении данных выполняется автоматически.
В режиме совместимости конфигурации Версия8_3_17 и ниже свойство доступно в режимах запуска "Тонкий клиент" и "Веб-клиент".
Использование в версии:

Доступен, начиная с версии 8.0.

Описание изменено в версии 8.3.18.

Методическая информация

Практические примеры

Построить план/факт непосредственно из собственной таблицы значений

Первая колонка содержит названия точек, заголовки остальных колонок — названия серий. Отключаем автоматическое транспонирование, чтобы сохранять выбранный смысл осей.

Где и как запускать

Модуль новой управляемой формы учебной внешней обработки. Код содержит готовые процедуры с директивами; вставляйте на уровне модуля, не внутрь другого обработчика. Каждую задачу запускайте в отдельной копии формы.

Подготовка

  1. В учебной базе создайте новую внешнюю обработку УчебнаяДиаграмма с пустой управляемой формой; назначьте форму основной.

  2. Не создавайте реквизит График и поле ДиаграммаТоваров вручную: код создаёт их в ПриСозданииНаСервере.

  3. В свойствах формы → События назначьте ПриСозданииНаСервере одноимённой процедуре. Сохраните EPF и откройте её в учебном тонком клиенте Windows.

  4. Каждый урок использует отдельный модуль/копию формы. Данные вымышлены: план и факт в штуках за три месяца, не данные учёта.

  5. Обе числовые колонки используют один ОписаниеТипов с КвалификаторыЧисла(2, 0, Неотрицательный): целые количества 0–99. Все шесть чисел 10/12/15 и 8/11/16 входят в диапазон; формат подписи диаграммы не задаёт тип хранения.

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    НовыеРеквизиты = Новый Массив;
    НовыеРеквизиты.Добавить(Новый РеквизитФормы("График", Новый ОписаниеТипов("Диаграмма")));
    ЭтаФорма.ИзменитьРеквизиты(НовыеРеквизиты);
    Таблица = Новый ТаблицаЗначений;
    Таблица.Колонки.Добавить("Месяц", Новый ОписаниеТипов("Строка"), "Месяц");
    ТипПоказателя = Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(2, 0, ДопустимыйЗнак.Неотрицательный));
    Таблица.Колонки.Добавить("План", ТипПоказателя, "План, шт.");
    Таблица.Колонки.Добавить("Факт", ТипПоказателя, "Факт, шт.");
    Январь = Таблица.Добавить();
    Январь.Месяц = "Январь";
    Январь.План = 10;
    Январь.Факт = 8;
    Февраль = Таблица.Добавить();
    Февраль.Месяц = "Февраль";
    Февраль.План = 12;
    Февраль.Факт = 11;
    Март = Таблица.Добавить();
    Март.Месяц = "Март";
    Март.План = 15;
    Март.Факт = 16;
    Диаграмма = Новый Диаграмма;
    Диаграмма.ТипДиаграммы = ТипДиаграммы.Гистограмма;
    Диаграмма.АвтоТранспонирование = Ложь;
    Диаграмма.СерииВСтроках = Ложь;
    Диаграмма.ИсточникДанных = Таблица;
    Сообщить(Диаграмма.Серии.Количество() = 2);
    Сообщить(Диаграмма.Точки.Количество() = 3);
    Сообщить(Диаграмма.Серии.Получить(0).Текст = "План, шт.");
    Сообщить(Диаграмма.Точки.Получить(0).Текст = "Январь");
    Сообщить(Диаграмма.ПолучитьЗначение(Диаграмма.Точки.Получить(2), Диаграмма.Серии.Получить(1)).Значение = 16);
    Диаграмма.ОбластьЗаголовка.Текст = "План/факт из таблицы: месяцы — точки, показатели — серии";
    Диаграмма.ОбластьПостроения.ОтображатьТаблицуДанных = Истина;
    Диаграмма.ОбластьПостроения.ФорматВТаблицеДанных = "ЧДЦ=0;ЧН=0";
    ЭтаФорма.График = Диаграмма;
    Поле = Элементы.Добавить("ДиаграммаТоваров", Тип("ПолеФормы"));
    Поле.Вид = ВидПоляФормы.ПолеДиаграммы;
    Поле.ПутьКДанным = "График";
    Поле.РастягиватьПоГоризонтали = Истина;
    Поле.РастягиватьПоВертикали = Истина;
КонецПроцедуры

Разбор по шагам

  1. Таблица принадлежит уроку и содержит только три вымышленные строки, без чтения учётных данных.

  2. СерииВСтроках=Ложь означает серии в колонках: План и Факт. Первая колонка Месяц задаёт подписи точек.

  3. ИсточникДанных заполняет диаграмму. АвтоТранспонирование=Ложь не позволяет смене типа диаграммы незаметно обменять смысл серий и точек.

  4. Проверяем число осей данных, подписи и значение мартовского факта через ПолучитьЗначение(точка, серия).

  5. Таблица под диаграммой делает контроль 10/12/15 и 8/11/16 доступным без оценки высоты столбцов.

Как проверить результат

  1. Пять сравнений Истина; мартовский факт 16 расположен в третьей точке второй серии.

  2. На форме два показателя и три месяца. Первая колонка не создаёт третью числовую серию.

Ожидаемый результат

Показан конкретный контракт табличного источника и проверена ориентация данных.

На что обратить внимание

  1. Заголовок колонки и её техническое имя — разные свойства. Название серии берётся из заголовка.

  2. Не считайте источник «живым запросом»: при изменении данных выполните явное обновление диаграммы и контроль результата.

  3. Обновление=Ложь не ускоряет управляемую форму; этот механизм рассчитан на неуправляемые формы.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Прочитать другую форму таблицы: показатели в строках, месяцы в колонках

СерииВСтроках меняет контракт источника, а не только расположение подписей. Создаём таблицу, соответствующую этому контракту.

Где и как запускать

Модуль новой управляемой формы учебной внешней обработки. Код содержит готовые процедуры с директивами; вставляйте на уровне модуля, не внутрь другого обработчика. Каждую задачу запускайте в отдельной копии формы.

Подготовка

  1. В учебной базе создайте новую внешнюю обработку УчебнаяДиаграмма с пустой управляемой формой; назначьте форму основной.

  2. Не создавайте реквизит График и поле ДиаграммаТоваров вручную: код создаёт их в ПриСозданииНаСервере.

  3. В свойствах формы → События назначьте ПриСозданииНаСервере одноимённой процедуре. Сохраните EPF и откройте её в учебном тонком клиенте Windows.

  4. Каждый урок использует отдельный модуль/копию формы. Данные вымышлены: план и факт в штуках за три месяца, не данные учёта.

  5. Три колонки месяцев имеют одинаковый числовой тип: 2 разряда, 0 дробных, неотрицательный знак, диапазон 0–99. Общий ТипПоказателя применяется ко всем месяцам; он допускает все шесть значений, включая 16.

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    НовыеРеквизиты = Новый Массив;
    НовыеРеквизиты.Добавить(Новый РеквизитФормы("График", Новый ОписаниеТипов("Диаграмма")));
    ЭтаФорма.ИзменитьРеквизиты(НовыеРеквизиты);
    Таблица = Новый ТаблицаЗначений;
    Таблица.Колонки.Добавить("Показатель", Новый ОписаниеТипов("Строка"), "Показатель");
    ТипПоказателя = Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(2, 0, ДопустимыйЗнак.Неотрицательный));
    Таблица.Колонки.Добавить("Январь", ТипПоказателя, "Январь");
    Таблица.Колонки.Добавить("Февраль", ТипПоказателя, "Февраль");
    Таблица.Колонки.Добавить("Март", ТипПоказателя, "Март");
    СтрокаПлана = Таблица.Добавить();
    СтрокаПлана.Показатель = "План, шт.";
    СтрокаПлана.Январь = 10;
    СтрокаПлана.Февраль = 12;
    СтрокаПлана.Март = 15;
    СтрокаФакта = Таблица.Добавить();
    СтрокаФакта.Показатель = "Факт, шт.";
    СтрокаФакта.Январь = 8;
    СтрокаФакта.Февраль = 11;
    СтрокаФакта.Март = 16;
    Диаграмма = Новый Диаграмма;
    Диаграмма.ТипДиаграммы = ТипДиаграммы.Гистограмма;
    Диаграмма.АвтоТранспонирование = Ложь;
    Диаграмма.СерииВСтроках = Истина;
    Диаграмма.ИсточникДанных = Таблица;
    Сообщить(Диаграмма.Серии.Количество() = 2);
    Сообщить(Диаграмма.Точки.Количество() = 3);
    Сообщить(Диаграмма.Серии.Получить(1).Текст = "Факт, шт.");
    Сообщить(Диаграмма.Точки.Получить(2).Текст = "Март");
    Сообщить(Диаграмма.ПолучитьЗначение(Диаграмма.Точки.Получить(2), Диаграмма.Серии.Получить(1)).Значение = 16);
    Диаграмма.ОбластьПостроения.ОтображатьТаблицуДанных = Истина;
    Диаграмма.ОбластьЗаголовка.Текст = "Тот же план/факт из таблицы с сериями в строках";
    ЭтаФорма.График = Диаграмма;
    Поле = Элементы.Добавить("ДиаграммаТоваров", Тип("ПолеФормы"));
    Поле.Вид = ВидПоляФормы.ПолеДиаграммы;
    Поле.ПутьКДанным = "График";
    Поле.РастягиватьПоГоризонтали = Истина;
    Поле.РастягиватьПоВертикали = Истина;
КонецПроцедуры

Разбор по шагам

  1. Создаём две строки-показателя и три колонки-месяца, а не переиспользуем таблицу из предыдущего урока без преобразования.

  2. СерииВСтроках=Истина берёт подписи серий из первой колонки, а подписи точек из заголовков остальных колонок.

  3. Свойство задаём ДО ИсточникДанных. Числовая матрица должна дать тот же результат, что и вариант серий в колонках.

  4. Через коллекции получаем факт и март и проверяем значение 16; таблица под графиком помогает сравнить обе версии.

Как проверить результат

  1. Пять сообщений Истина: две серии, три точки, правильные подписи и мартовский факт 16.

  2. Визуально оба урока показывают одинаковые шесть чисел, хотя источники имеют разную структуру.

Ожидаемый результат

Ориентация источника выбирается сознательно и проверяется по подписи и значению.

На что обратить внимание

  1. Просто переключить СерииВСтроках у неподходящей таблицы — не корректное преобразование отчёта.

  2. Не выводите рядом несопоставимые единицы измерения как одинаковые числовые серии без отдельных шкал.

  3. Автоматическое транспонирование и СерииВСтроках решают разные задачи.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.