1с диаграмма убрать легенду

Обновлено: 08.07.2024

Использование диаграмм в табличном документе

В платформе 1С:Предприятие 8 все виды диаграмм поддерживают прокрутки различных областей . Диаграмма Ганта, сводная диаграмма и дендрограмма поддерживают прокрутку области построения. Обычная диаграмма, диаграмма Ганта и сводная диаграмма поддерживают прокрутку области легенды. Однако использование данной возможности при размещении диаграммы в табличном документе может вызвать определенные сложности.

Режимы работы диаграммы

Диаграмма, как и любой другой элемент управления, может находится в двух режимах - режиме конструирования (дизайна) и режиме исполнения. В режиме дизайна прокрутка областей диаграммы отключена, даже если соответствующий режим установлен в свойствах. Возможность прокрутки появляется только в режиме исполнения. В случае размещения диаграммы в форме особых сложностей нет. В конфигураторе она находится в режиме дизайна, а в режиме запуска 1С:Предприятие - в режиме исполнения. Особенность табличного документа состоит в том, что он позволяет редактировать себя (и размещенные в нем объекты) и в режиме запуска 1С:Предприятие.

Способы размещения диаграммы в табличном документе

Существуют два способа размещения диаграммы в табличном документе: как встроенного объекта (рисунка) диаграммы и как обычного элемента управления. Второй способ доступен только в том случае, если сам табличный документ (точнее, поле табличного документа) размещено в форме. С точки зрения пользователя, различия между этими режимами небольшие. Диаграмма, размещенная как элемент управления, всегда активна (в том числе всегда доступна прокрутка ее областей). Диаграмма, размещенная как встроенный объект, требует активизации, зато она лучше поддерживает изменение масштаба табличного документа. В случае варианта с элементом управления никаких сложностей с прокруткой не возникает, достаточно убедится, что у диаграммы и поля табличного документа установлено свойство "Доступность" (по умолчанию оно установлено). Однако, как уже указывалось, такой способ размещения доступен только для табличных документов помещенных в форму. В дальнейшем речь пойдет о размещении диаграммы как встроенного объекта, независимо от того, существует ли табличный документ самостоятельно или он помещен в форму (поле табличного документа).

Режим "Только просмотр" табличного документа

Одним из необходимых условий доступности интерактивных функций диаграммы является установка режима "Только просмотр" табличного документа. Если данный режим не установлен, то при активизации встроенного объекта (в том числе и диаграммы) он окажется в режиме дизайна, и, как уже было указано, возможность прокрутки будет отключена. Режим "Только просмотр" можно изменять динамически, но следует позаботиться чтобы он был включен по умолчанию. В случае табличного документа как самостоятельного документа для этого необходимо не только установить данный режим в конфигураторе (или из встроенного языка), но и включить свойство "Сохранять настройки". В случае размещения табличного документа в форме начальным состоянием можно управлять через свойство "Только просмотр" поля табличного документа.

Свойство "Защита" рисунка табличного документа

Другим необходимым условием интерактивности диаграммы является отключение свойства "Защита" рисунка табличного документа. Все дело в том, что если это свойство установлено, рисунок невозможно будет активизировать, и, следовательно, возможность прокрутки также не будет доступна. Важно отметить, что по умолчанию свойство "Защита" включено.

Печать диаграмм с прокруткой

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

Управление прокруткой в различных диаграммах

Стоит напомнить, как прокрутка включается в самих диаграммах. Для включения прокрутки области легенды предназначено свойство "Прокрутка" области легенды диаграммы. Прокрутка легенды доступна для всех видов диаграмм кроме дендрограммы (у нее нет легенды). Прокрутка области построения зависит от типа диаграммы. У обычной диаграммы такой возможности нет. У диаграммы Ганта вертикальная прокрутка включается соответствующим свойством диаграммы (не области построения). Горизонтальная прокрутка зависит от настройки масштаба. У сводной диаграммы горизонтальная прокрутка зависит от значения свойства "ГоризонтальнаяПоддержкаМасштаба" и количества отображаемых значений. Наконец, у дендрограммы прокрутка определяется значением свойства "ПоддержкаМасштаба" и количеством элементов.

Форум


Диаграмма предоставляет удобное графическое представление некоторого набора данных, чаще всего результатов каких-либо изменений. 1С предоставляет собственный (надо сказать, приятный) инструмент такого графического представления - объект "Диаграмма". Область диаграммы состоит из нескольких частей: область построения (там создается рисунок), заголовка (надписи над рисунком), легенды (расшифровки меток серий). В диаграмме имеются серии (т.е. наборы значений) и точки, из которых состоят серии (см. рис.1).

Создание диаграммы

Диаграмма вставляется в таблицу печатной формы с помощью пункта Вставить рисунок меню Таблица. Далее необходимо сделать следующие действия: определить тип диаграммы (гистограмма, график, круговая и т.п.), настроить внешний вид составных частей диаграммы, а затем описать процедуру "наполнения" данными при выводе печатной формы. Пройдемся поподробнее по каждому из этих действий.

Задание типа диаграммы

Для отображения разных наборов данных имеются более или менее удачные типы диаграмм. Задача программиста при конфигурировании определить тип будущей диаграммы, и задать его при форматировании области построения (контекстное меню области - закладка Тип диаграммы). Задав тип и закрыв окно форматирования, можно увидеть пример построенной диаграммы.

Настройка внешнего вида диаграммы

Для того чтобы включить режим форматирования областей диаграммы, необходимо выбрать пункт Изменить подменю Объект: 1С. V7. Диаграмма меню Действия (тое же пункт есть в контекстном меню диаграммы). Каждая из составных частей диаграммы в режиме редактирования имеет пункт контекстного меню Формат области … Настройка внешнего вида состоит из выбора заливки, рамки, цвета и шрифта текста и т.п. Там же можно определить, например, сетку для области построения. После завершения форматирования достаточно щелкнуть по любой ячейке таблицы, чтобы выключить режим форматирования.

Наполнение данными диаграммы

Диаграмма как объект системы 1С принадлежит таблице, в которую она вставлена. Обращение к объекту происходит в момент вывода на печать таблицы (метод Вывести()) или секции таблицы (метод ВывестиСекцию()), в которую вставлена диаграмма. Для того, чтобы при обращении были выполнены некоторые действия по подготовке данных для диаграммы, в свойствах объекта на закладке "Текст" необходимо указать строку вызова соответствующей процедуры, передав ей в качестве параметра контекст диаграммы как текущего объекта таблицы. Строка может выглядеть, например, так:

ОбработкаДиаграммы(Таб.ТекущийОбъект)
где: ОбработкаДиаграммы - имя процедуры, Таб - имя выходной таблицы (должна быть предварительно создана методом СоздатьОбъект()).

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

Процедура СформироватьДиаграмму(Диаграмма1)
где Диаграмма1 - идентификатор, в который передается контекст объекта Диаграмма. Все методы объекта записываются через точку после идентификатора.

Основы программирования

Изменение заголовка таблицы

Диаграмма1.Заголовок = "Поступления от покупателей";

Работа с сериями диаграммы

//установим количество серий. Каждая при этом получит свой номер.
Диаграмма1.КоличествоСерий(3); // так у нас будет три серии
//однако если в другом методе будет передана серия с большим номером,
//количество серий будет автоматически увеличено.

КолСерий = Диаграмма1.КоличествоСерий();
// а так переменной КолСерий будет передано текущее количество серий

// так мы зададим имя "Рубли" серии № 1
Диаграмма1.УстановитьИмяСерии(1, "Рубли");

// установим цвет серии № 2
// этот метод не обязательный, как впрочем и некоторые другие
Диаграмма1.ЦветСерии(2, 35, 67, 90);
// установили: 35 единиц красной компоненты, 67 - зеленой, 90 - синей

//можно установить имена серий автоматически: Серия1, Серия2, и т.д.
Диаграмма1.АвтоУстановкаИменСерий(1);
//если поставить вместо флага 1 флаг 0, автоустановка имен будет запрещена.

Работа с точками диаграммы

//установим количество точек, скажем, 8 штук
Диаграмма1.КоличествоТочек(8);
//однако если в другом методе будет передана тока с большим номером,
//количество точек будет автоматически увеличено.

// метод может возвратить текущее количество точек
КолТочек = Диаграмма1.КоличествоТочек();

// можно установить имя любой точки
Диаграмма1.УстановитьИмяТочки(7, "7 точка");

//можно установить имена точек автоматически: 1, 2, 3, и т.д.
Диаграмма1. АвтоУстановкаИменТочек(1);
//если поставить вместо флага 1 флаг 0, автоустановка имен будет запрещена.

Передача значений точкам серий

Это самый важный метод диаграммы. Он устанавливает значение серии <НомерСерии> в точке <НомерТочки> равным <Значение> с возможностью последующей расшифровки. Все параметры, кроме параметра <Расшифровка> должны быть числовыми выражениями.
Синтаксис:

<Расшифровка> - параметр не обязательный, может иметь любой тип. Это значение, которое будет передано предопределенной процедуре ОбработкаЯчейкиТаблицы при двойном щелчке мышью на точке диаграммы. Так можно получать расшифровки точек диаграммы. Удобная штука!

Два вспомогательных метода диаграммы

Запрет перерисовки может ускорить работу системы во время наполнения таблицы данными.

Диаграмма1.Обновление(0);
//то же выражение, но с флагом 1 разрешит перерисовку

Очистка всех установленных значений имен и количеств точек, серий, диаграммы делается так:

Диаграмма1.Очистить();

Пример использования диаграммы в 1С: Бухгалтерия

// Блокируем обновление, пока обрабатываются данные
Диаграмма1.Обновление(0);
Диаграмма1.Заголовок = "Поступления от покупателей";
Диаграмма1.УстановитьИмяСерии(1, "Рубли");
Диаграмма1.АвтоУстановкаИменТочек(1);

// Заполним диаграмму значениями
БухИт = СоздатьОбъект("БухгалтерскиеИтоги");

Бухит.ВыполнитьЗапрос(НачКвартала(РабочаяДата()),
КонКвартала(РабочаяДата()),"60.1". 1,"Неделя","С");

БухИт.ВыбратьПериоды();
А = 1;
// дебетовые обороты по счету 60.1 покажут поступления
// денег от покупателей
Пока БухИт.ПолучитьПериод() = 1 Цикл

Диаграмма1.УстановитьЗначение(А, 1, БухИт.ДО());
А = А +1;

// после наполнения данными перерисовываем
Диаграмма1.Обновление(1);

Статей по работе с этим объектом маловато, непонятно почему. Немного подправим ситуацию.

В пример я попытался рассказать возможности и методы построения диаграммы Ганта в 1С, создание, сохранение изображения, "экспорт импорт в XML", различные украшательства. Делается все это добро следующим образом:

Сначала создаются серии, метод «Добавить()» свойства «Серии» у объекта «ДиаграммаГанта».

Их может быть несколько или одна. Далее начинам строить диаграмму - добавляется точка методом «УстановитьТочку()» объекта «ДиаграммаГанта».

Точка это некий список задач, например – «Разработка».

С помощью метода «ПолучитьЗначение(Точка, Серия)» объекта «ДиаграммаГанта» получаем значение, это, если так можно выразиться, некоторое значение на пересечении серии и точки (Задачи).

Значение представляет собой коллекцию интервалов. Добавляем интервал «Добавить()».

У него есть свойства «Начало» и «Конец», тип «Дата», а так же метод «Добавить(<Конец>)» с параметром ИнтервалДиаграммыГанта, который создаст связь и вернет значение с типом «СвязьДиаграммыГанта».

Для построения связей используется Таблица значений. Сейчас попытаюсь объяснить, почему так. Когда создается связь от А до В, нужно уже иметь два созданных интервала, как некие объекты с типом «ИнтервалДиаграммыГанта» на диаграмме Ганта, поэтому строить связь можно только в момент появления интервала В, а для этого нужно куда то временно сохранить значение с типом «ИнтервалДиаграммыГанта», ссылку на интервал А. Поэтому и используется таблица значений, она хранит связи, что бы их построить, когда появятся все нужные объекты в диаграмме.

В публикацию добавлена обработка, демонстрирующая пример работы. Работает в любой конфигурации даже пустой на платформе 8.3. Тестировалась на версии 8.3.16.1359 и 8.3.18.1334

Мы добавили в диаграммы ряд новых возможностей, которые сделают их более удобными, зрелищными, и более привычными для пользователей других продуктов. Кроме этого в ряде случаев мы изменили поведение диаграмм для того, чтобы оно больше соответствовало ожиданиям пользователей. А ещё мы реализовали два новых типа диаграмм.

Линии тренда

Теперь, помимо собственно данных, вы можете показывать в диаграмме прогнозируемую или расчетную тенденцию их изменения. Для этого мы реализовали линии тренда.

Линия тренда это один из самых полезных элементов оформления диаграммы. Она позволяет подчеркнуть закономерность в данных, а формула линии тренда может быть использована для прогноза. Мы реализовали несколько типов аппроксимации: линейный, полиномиальный, логарифмический, степенной и экспоненциальный.

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

01.jpg

Эта диаграмма, кстати, показывает и ещё одну новую возможность. Если конкретные данные серии не важны, вы можете скрыть их, и показывать только линию тренда. Для этого мы реализовали новое свойство серии ОтображатьГрафическоеПредставлениеДанныхВДиаграмме. С его помощью на приведённой выше диаграмме для серий Доход и Расход показаны только линии тренда, а для серии Прибыль (убыток) показаны и значения, и тренд.

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

У одной серии может быть сразу несколько линий тренда. Они хранятся в новом свойстве диаграммы ЛинииТрендаДиаграммы. Вы можете показывать их одновременно, например, вместе с формулой, по которой они рассчитаны.

02.jpg

Польза этого заключается в том, что разные аппроксимации имеют различный прикладной смысл. Например, линейная аппроксимация показывает «глобальную» тенденцию, скрывая колебания показателя. А полиномиальная отражает изменения более «чутко», визуализируя значительные изменения тенденции внутри отображаемого периода. Их совмещение позволяет наглядно увидеть, что, несмотря на положительную глобальную тенденцию, расслабляться нельзя, так как в последнее время наметился явный спад в поступлении оплаты от покупателей.

Вместе с линией тренда вы можете отображать или не отображать её уравнение и коэффициент детерминации. Для этого предназначены новые свойства линии тренда ОтображатьУравнение и ОтображатьКоэффиентДетерминации.

Улучшение легенды

Как вы, наверное, заметили на первом рисунке, теперь есть возможность скрыть серию не только в области данных, но и в легенде. Для этого вы можете использовать новое свойство серии ОтображатьГрафическоеПредставлениеДанныхВЛегендеДиаграммы. С его помощью вы можете настроить область данных и легенду так, чтобы лишняя информация не мешала воспринимать основные данные.

Вообще легенда предназначена для того, чтобы пользователь мог быстро разобраться в том, какие данные представлены на диаграмме. Но раньше легенда не всегда могла полноценно выполнять эту функцию. Например, цветная диаграмма, легко читаемая на экране, при чёрно-белой печати могла стать непонятной. Потому что серии было трудно сопоставить с их легендой.

Мы доработали механизм вывода маркеров и серий в легенде диаграммы. Теперь чёрно-белые диаграммы читаются значительно лучше.

03.jpg

Изменения заключаются в следующем:

  • Если серия отображается с помощью линии, то в легенде рисуется часть линии, и стиль линии зависит от стиля линии серии.
  • Для линии тренда в легенде всегда рисуется часть линии тем стилем, который используется для линии тренда.
  • Если у серии или у линии тренда рисуется маркер, то он также рисуется и в легенде, по центру линии. Размер маркера в легенде зависит от размера маркера на диаграмме.
  • Если серия отображается не с помощью линии (например, в измерительной диаграмме), то в легенде рисуется квадратный маркер, размером с высоту шрифта легенды.

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

Например, для графика серии будут выводиться в прямом порядке (Пылесосы – первая), а для накопительной гистограммы – в обратном (Пылесосы - последняя). Это соответствует отображению серий в области данных и улучшает читаемость диаграмм.

04.jpg

05.jpg

При необходимости вы можете самостоятельно управлять порядком серий в легенде, для этого у диаграммы есть новое свойство ПорядокСерийВЛегенде. Кроме автоматического порядка вы можете явно установить прямой или обратный порядок.

Точечная диаграмма

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

06_01.jpg

Например, на этой точечной диаграмме по оси точек отложены продажи лыж, а по оси значений отложены продажи лыжных ботинок и лыжных перчаток. Значения серий показаны точками, и для каждой серии построена линия тренда. Тогда хорошо видна явная зависимость количества проданных ботинок и перчаток от количества проданных лыж.

Пузырьковая диаграмма

Другой новый вид диаграммы, пузырьковая, является развитием точечной диаграммы. Её отличие заключается в том, что вы можете показывать на ней ещё одно измерение, которое будет отображаться как размер точки (пузырька). В пузырьковую диаграмму можно выводить несколько серий. Также существует несколько алгоритмов, по которым рассчитывается размер пузырька.

07_01.jpg

Например, на этой диаграмме по оси точек откладывается количество сотрудников в штате организации, по оси значений объём продаж, а размер пузырька соответствует доле рынка.

Заголовки шкал

Мы добавили возможность создания заголовков шкал и настройки их отображения. Заголовки улучшают читаемость диаграммы. А в тех случаях, когда используется только одна серия, они позволяют не выводить эту серию в легенду. В результате вы получаете больше места для отображения собственно данных.

17.jpg

Настройку заголовков мы реализовали для всех шкал диаграммы: шкалы точек, шкалы значений и шкалы серий. Шкала серий, если вы не знаете, отображается только в изометрических диаграммах. Для настройки области заголовка мы даже сделали специальный небольшой редактор.

18.jpg

Максимум и минимум значений

Раньше у вас уже была возможность ограничить диапазон данных, отображаемых в диаграмме. Но, во-первых, для этого использовался непростой и не всегда очевидный алгоритм, а во-вторых, полученные значения всегда зависели от других параметров.

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

Например, все продажи у вас не менее пятисот тысяч в месяц. Тогда на диаграмме, построенной от нуля, изменения продаж будут видны, но динамика этих изменений будет выражена слабо.

08.jpg

Если же вы ограничите минимальное и максимальное отображаемые значения, то динамика станет гораздо «рельефнее» и легче для восприятия.

09.jpg

Также этот механизм будет полезен в точечной диаграмме, где может существовать большое количество точек, а вы хотите отобразить только определенный участок.

Палитры цветов

Прежде диаграммы автоматически использовали только две фиксированные палитры: из восьми и из тридцати двух цветов. Если они вас не устраивали, то единственная возможность, которая существовала, это «вручную» задавать цвет каждой серии.

Теперь мы сделали целый набор готовых предустановленных палитр. Для своей диаграммы вы можете выбрать одну из них, или создать собственную палитру, и использовать её в разных диаграммах.

Среди готовых палитр, которые мы добавили, есть разные по смыслу группы. Например, есть Яркая, Мягкая, Пастельная, Теплая и Холодная палитры.

10.jpg

Яркая палитра лучше всего подходит для диаграмм, где серии рисуются тонкими линиями. Например, для графиков. Пастельную палитру лучше всего использовать на тёмном фоне. Мягкая палитра хорошо смотрится в диаграммах, где серии рисуются большими фигурами. В гистограммах или в круговых диаграммах.

11.jpg

Другая группа предустановленных палитр – это градиентные палитры: Синяя, Оранжевая, Зеленая, Желтая и Серая.

12.jpg

Градиентные палитры лучше использовать в диаграммах, где данные однородны.

13.jpg

Если имеющиеся градиентные палитры вам не нравятся, вы можете автоматически создать собственную градиентную палитру на основе заданных начального и конечного цветов. Такую возможность мы тоже предусмотрели.

Интервалы измерительной диаграммы

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

14.jpg

Порядок точек в горизонтальных гистограммах

Прежние диаграммы имели фиксированный порядок вывода точек в горизонтальных гистограммах. Первая точка всегда выводилась снизу, а остальные – над ней. С математической точки зрения это было правильно, но в некоторых случаях такое поведение было для пользователей неожиданным. Например, когда вместе с диаграммой выводится таблица данных, отсортированная по точкам.

19.jpg

В таких случаях пользователи ожидали увидеть в диаграмме тот же порядок точек, что и в таблице.

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

20.jpg

Добавление новых параметров в систему компоновки данных

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

Основную массу настроек вы найдёте на закладке Другие настройки.

15.jpg

А ещё часть настроек, связанных с конкретными сериями, мы поместили в условное оформление.

Читайте также: