Как отключить диаграммы в 1с

Обновлено: 04.07.2024

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

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

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

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

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

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

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

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

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

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

Форум


Диаграмма предоставляет удобное графическое представление некоторого набора данных, чаще всего результатов каких-либо изменений. 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С:Предприятие 8 все виды диаграмм поддерживают прокрутки различных областей . Диаграмма Ганта, сводная диаграмма и дендрограмма поддерживают прокрутку области построения. Обычная диаграмма, диаграмма Ганта и сводная диаграмма поддерживают прокрутку области легенды. Однако использование данной возможности при размещении диаграммы в табличном документе может вызвать определенные сложности.

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

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

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

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

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

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

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

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

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

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

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

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

Данная статья является анонсом новой функциональности.
Не рекомендуется использовать содержание данной статьи для освоения новой функциональности.
Полное описание новой функциональности будет приведено в документации к соответствующей версии.
Полный список изменений в новой версии приводится в файле v8Update.htm.

Реализовано в версии 8.3.14.1565.

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

Все новые возможности доступны как при размещении диаграмм в формах, так и при использовании их в отчетах системы компоновки данных.

Всплывающая подсказка

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

02.jpg
03.jpg
04.jpg

В подсказку вы можете установить форматированную строку, и с её помощью вывести текст и добавить картинки.

01.jpg

Отклик подсказки на движения мышью

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

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

Заполнение подсказки значениями

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

Отображение направляющих

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

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

Интерактивное выделение

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

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

Подсветка серий

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

«Бегущие» графики

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

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

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

Заключение

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

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