Настройка полосы измерительной диаграммы 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);
Мы добавили в диаграммы ряд новых возможностей, которые сделают их более удобными, зрелищными, и более привычными для пользователей других продуктов. Кроме этого в ряде случаев мы изменили поведение диаграмм для того, чтобы оно больше соответствовало ожиданиям пользователей. А ещё мы реализовали два новых типа диаграмм.
Линии тренда
Теперь, помимо собственно данных, вы можете показывать в диаграмме прогнозируемую или расчетную тенденцию их изменения. Для этого мы реализовали линии тренда.
Линия тренда это один из самых полезных элементов оформления диаграммы. Она позволяет подчеркнуть закономерность в данных, а формула линии тренда может быть использована для прогноза. Мы реализовали несколько типов аппроксимации: линейный, полиномиальный, логарифмический, степенной и экспоненциальный.
Например, вы можете использовать полиномиальный тренд для того, чтобы увидеть, как зависит прибыль от тенденций доходов и расходов.
Эта диаграмма, кстати, показывает и ещё одну новую возможность. Если конкретные данные серии не важны, вы можете скрыть их, и показывать только линию тренда. Для этого мы реализовали новое свойство серии ОтображатьГрафическоеПредставлениеДанныхВДиаграмме. С его помощью на приведённой выше диаграмме для серий Доход и Расход показаны только линии тренда, а для серии Прибыль (убыток) показаны и значения, и тренд.
Если выводится только одна серия, платформа раскрашивает линию тренда чёрным цветом. Если серий несколько, то каждая линия тренда выводится цветом той серии, для которой она была создана. Таково стандартное поведение платформы. Но если оно вас не устраивает, вы можете задать собственные цвета для линий тренда, такая возможность тоже есть.
У одной серии может быть сразу несколько линий тренда. Они хранятся в новом свойстве диаграммы ЛинииТрендаДиаграммы. Вы можете показывать их одновременно, например, вместе с формулой, по которой они рассчитаны.
Польза этого заключается в том, что разные аппроксимации имеют различный прикладной смысл. Например, линейная аппроксимация показывает «глобальную» тенденцию, скрывая колебания показателя. А полиномиальная отражает изменения более «чутко», визуализируя значительные изменения тенденции внутри отображаемого периода. Их совмещение позволяет наглядно увидеть, что, несмотря на положительную глобальную тенденцию, расслабляться нельзя, так как в последнее время наметился явный спад в поступлении оплаты от покупателей.
Вместе с линией тренда вы можете отображать или не отображать её уравнение и коэффициент детерминации. Для этого предназначены новые свойства линии тренда ОтображатьУравнение и ОтображатьКоэффиентДетерминации.
Улучшение легенды
Как вы, наверное, заметили на первом рисунке, теперь есть возможность скрыть серию не только в области данных, но и в легенде. Для этого вы можете использовать новое свойство серии ОтображатьГрафическоеПредставлениеДанныхВЛегендеДиаграммы. С его помощью вы можете настроить область данных и легенду так, чтобы лишняя информация не мешала воспринимать основные данные.
Вообще легенда предназначена для того, чтобы пользователь мог быстро разобраться в том, какие данные представлены на диаграмме. Но раньше легенда не всегда могла полноценно выполнять эту функцию. Например, цветная диаграмма, легко читаемая на экране, при чёрно-белой печати могла стать непонятной. Потому что серии было трудно сопоставить с их легендой.
Мы доработали механизм вывода маркеров и серий в легенде диаграммы. Теперь чёрно-белые диаграммы читаются значительно лучше.
Изменения заключаются в следующем:
- Если серия отображается с помощью линии, то в легенде рисуется часть линии, и стиль линии зависит от стиля линии серии.
- Для линии тренда в легенде всегда рисуется часть линии тем стилем, который используется для линии тренда.
- Если у серии или у линии тренда рисуется маркер, то он также рисуется и в легенде, по центру линии. Размер маркера в легенде зависит от размера маркера на диаграмме.
- Если серия отображается не с помощью линии (например, в измерительной диаграмме), то в легенде рисуется квадратный маркер, размером с высоту шрифта легенды.
Важное значение имеет не только внешний вид серий в легенде, но и порядок их следования. Для удобного чтения диаграмм он должен совпадать с тем, в каком порядке серии отображаются в области данных. Поэтому мы доработали вывод серий в легенде таким образом, что их порядок автоматически меняется в зависимости от выбранного типа диаграммы.
Например, для графика серии будут выводиться в прямом порядке (Пылесосы – первая), а для накопительной гистограммы – в обратном (Пылесосы - последняя). Это соответствует отображению серий в области данных и улучшает читаемость диаграмм.
При необходимости вы можете самостоятельно управлять порядком серий в легенде, для этого у диаграммы есть новое свойство ПорядокСерийВЛегенде. Кроме автоматического порядка вы можете явно установить прямой или обратный порядок.
Точечная диаграмма
Точечная диаграмма это новый вид диаграмм. Она позволяет удобно отображать и исследовать зависимости одних величин от других. Другой её плюс заключается в том, что она хорошо приспособлена для работы с большим количеством данных. При этом на оси точек вы можете расположить как непрерывные значения, так и категории.
Например, на этой точечной диаграмме по оси точек отложены продажи лыж, а по оси значений отложены продажи лыжных ботинок и лыжных перчаток. Значения серий показаны точками, и для каждой серии построена линия тренда. Тогда хорошо видна явная зависимость количества проданных ботинок и перчаток от количества проданных лыж.
Пузырьковая диаграмма
Другой новый вид диаграммы, пузырьковая, является развитием точечной диаграммы. Её отличие заключается в том, что вы можете показывать на ней ещё одно измерение, которое будет отображаться как размер точки (пузырька). В пузырьковую диаграмму можно выводить несколько серий. Также существует несколько алгоритмов, по которым рассчитывается размер пузырька.
Например, на этой диаграмме по оси точек откладывается количество сотрудников в штате организации, по оси значений объём продаж, а размер пузырька соответствует доле рынка.
Заголовки шкал
Мы добавили возможность создания заголовков шкал и настройки их отображения. Заголовки улучшают читаемость диаграммы. А в тех случаях, когда используется только одна серия, они позволяют не выводить эту серию в легенду. В результате вы получаете больше места для отображения собственно данных.
Настройку заголовков мы реализовали для всех шкал диаграммы: шкалы точек, шкалы значений и шкалы серий. Шкала серий, если вы не знаете, отображается только в изометрических диаграммах. Для настройки области заголовка мы даже сделали специальный небольшой редактор.
Максимум и минимум значений
Раньше у вас уже была возможность ограничить диапазон данных, отображаемых в диаграмме. Но, во-первых, для этого использовался непростой и не всегда очевидный алгоритм, а во-вторых, полученные значения всегда зависели от других параметров.
Теперь мы реализовали простой и понятный механизм, который позволит вам совершенно жёстко ограничивать диапазон данных сверху и снизу. Эта возможность очень удобна тогда, когда изменения величины, отображаемой в диаграмме, малы, по сравнению с её абсолютными значениями.
Например, все продажи у вас не менее пятисот тысяч в месяц. Тогда на диаграмме, построенной от нуля, изменения продаж будут видны, но динамика этих изменений будет выражена слабо.
Если же вы ограничите минимальное и максимальное отображаемые значения, то динамика станет гораздо «рельефнее» и легче для восприятия.
Также этот механизм будет полезен в точечной диаграмме, где может существовать большое количество точек, а вы хотите отобразить только определенный участок.
Палитры цветов
Прежде диаграммы автоматически использовали только две фиксированные палитры: из восьми и из тридцати двух цветов. Если они вас не устраивали, то единственная возможность, которая существовала, это «вручную» задавать цвет каждой серии.
Теперь мы сделали целый набор готовых предустановленных палитр. Для своей диаграммы вы можете выбрать одну из них, или создать собственную палитру, и использовать её в разных диаграммах.
Среди готовых палитр, которые мы добавили, есть разные по смыслу группы. Например, есть Яркая, Мягкая, Пастельная, Теплая и Холодная палитры.
Яркая палитра лучше всего подходит для диаграмм, где серии рисуются тонкими линиями. Например, для графиков. Пастельную палитру лучше всего использовать на тёмном фоне. Мягкая палитра хорошо смотрится в диаграммах, где серии рисуются большими фигурами. В гистограммах или в круговых диаграммах.
Другая группа предустановленных палитр – это градиентные палитры: Синяя, Оранжевая, Зеленая, Желтая и Серая.
Градиентные палитры лучше использовать в диаграммах, где данные однородны.
Если имеющиеся градиентные палитры вам не нравятся, вы можете автоматически создать собственную градиентную палитру на основе заданных начального и конечного цветов. Такую возможность мы тоже предусмотрели.
Интервалы измерительной диаграммы
Ещё одна интересная доработка, которую мы выполнили, позволяет задавать дробные значения для границ интервалов измерительной диаграммы. Если раньше границы интервалов могли быть только целыми числами, то теперь вы можете создавать произвольные интервалы, в том числе интервалы, имеющие размер меньше единицы.
Порядок точек в горизонтальных гистограммах
Прежние диаграммы имели фиксированный порядок вывода точек в горизонтальных гистограммах. Первая точка всегда выводилась снизу, а остальные – над ней. С математической точки зрения это было правильно, но в некоторых случаях такое поведение было для пользователей неожиданным. Например, когда вместе с диаграммой выводится таблица данных, отсортированная по точкам.
В таких случаях пользователи ожидали увидеть в диаграмме тот же порядок точек, что и в таблице.
Идя навстречу пожеланиям, мы изменили стандартный порядок вывода точек в горизонтальных диаграммах на обратный. А кроме этого добавили возможность явного указания порядка с помощью нового свойства диаграммы ПорядокОтображенияТочекВГоризонтальнойДиаграмме: СверхуВниз или СнизуВверх.
Добавление новых параметров в систему компоновки данных
Все перечисленные возможности вы можете использовать при интерактивной настройке диаграмм и при программной работе с ними. А чтобы вы могли использовать их и при создании отчётов с помощью системы компоновки данных, мы добавили целый ряд новых параметров в её настройки.
Основную массу настроек вы найдёте на закладке Другие настройки.
А ещё часть настроек, связанных с конкретными сериями, мы поместили в условное оформление.
17 правил для составления оптимального ЗАПРОСа к данным базы 1С 42
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ 1C медленно работает по сети с базой на SQL Server 20
Данное обстоятельство может быть обусловлено многими причинами. Одна из них - неоптимальная настройка MS SQL . Перечислим неоптимальности в настройке: 1) Неправильно указанный сетевой протокол, используемый для взаимодействия 1С с SQL Server. П 1С Предприятие что это? 11
Что такое 1С? 1С — это фирма , у которой одно из направлений деятельности — разработка программного обеспечения для автоматизации бизнес-процессов предприятий. « 1С:Предприятие » - конкретный продукт, который выпускает компания 1С . Что такое COM-подключение к базе 7.7 из 8.2 1С 6
Если код выполняется на стороне клиента, то необходимо наличие базы 7.7 на локальной машине. Пример (На форме объекта присутствует реквизит Таблица(ТаблицаЗначений)): НаКлиенте Процедура Загрузки() ПутьКБазе=" D: ВашаБаза 1с77 " ; Пользователь= Cклонения по падежам 6
НаКлиенте Процедура Команда1(Команда) ФИО = " Иванов Иван Иванович" ; Падеж = 2; Пол = 1; Результат = СклонениеФИО(ФИО, Падеж, пол); Сообщить(Результат); КонецПроцедуры НаСервере Функция СклонениеФИО(ФИО, Падеж, пол) Результат = " " ; Посмотреть все результаты поиска похожих
Еще в этой же категории
Ошибка RDP: Удаленный сеанс отключен, отсутствуют клиентские лицензии!? 1
Ошибка RDP: Удаленный сеанс отключен, поскольку для данного компьютера отсутствуют клиентские лицензии удаленного рабочего стола Иногда в процессе работы с удаленными рабочими столами на клиентских машинах встречается проблема - при подключении к Как заполнить диаграмму данными? 0
// Перезаполнит объект Диагамма значениями из Источник // Параметры: // Диаграмма - Диаграмма // Источник - Массив, Таблица значений, Табличная часть - Коллекция, // для которой доступен обход элементов коллекции посредством оператора Для каждо Как сформировать диаграмму с типом Гистограмма объемная 0
В этом примере формируется диаграмма с типом Гистограмма объемная Данные получаем запросом: ДатаЗапроса = НачалоДня(ТекущаяДата()); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ВЫБОР | КОГДА СостояниеДоставки.НетМашины | ТОГДА "" Посмотреть все в категории Диаграмма
Диаграмма вставляется в таблицу печатной формы с помощью пункта Вставить рисунок меню Таблица. Далее необходимо сделать следующие действия: определить тип диаграммы (гистограмма, график, круговая и т.п.), настроить внешний вид составных частей диаграммы, а затем описать процедуру "наполнения" данными при выводе печатной формы. Пройдемся поподробнее по каждому из этих действий.
Задание типа диаграммы
Для отображения разных наборов данных имеются более или менее удачные типы диаграмм. Задача программиста при конфигурировании определить тип будущей диаграммы, и задать его при форматировании области построения (контекстное меню области - закладка Тип диаграммы). Задав тип и закрыв окно форматирования, можно увидеть пример построенной диаграммы.
Настройка внешнего вида диаграммы
Для того чтобы включить режим форматирования областей диаграммы, необходимо выбрать пункт Изменить подменю Объект: 1С. V7. Диаграмма меню Действия (тое же пункт есть в контекстном меню диаграммы). Каждая из составных частей диаграммы в режиме редактирования имеет пункт контекстного меню Формат области … Настройка внешнего вида состоит из выбора заливки, рамки, цвета и шрифта текста и т.п. Там же можно определить, например, сетку для области построения. После завершения форматирования достаточно щелкнуть по любой ячейке таблицы, чтобы выключить режим форматирования.
Наполнение диаграммы данными
Диаграмма как объект системы 1С принадлежит таблице, в которую она вставлена. Обращение к объекту происходит в момент вывода на печать таблицы (метод Вывести()) или секции таблицы (метод ВывестиСекцию()), в которую вставлена диаграмма. Для того, чтобы при обращении были выполнены некоторые действия по подготовке данных для диаграммы, в свойствах объекта на закладке "Текст" необходимо указать строку вызова соответствующей процедуры, передав ей в качестве параметра контекст диаграммы как текущего объекта таблицы. Строка может выглядеть, например, так:
где: ОбработкаДиаграммы - имя процедуры, Таб - имя выходной таблицы (должна быть предварительно создана методом СоздатьОбъект()).
В модуле описывается процедура с идентификатором, через который будет производиться к контексту диаграммы:
где Диаграмма1 - идентификатор, в который передается контекст объекта Диаграмма. Все методы объекта записываются через точку после идентификатора.
Шкала значений в диаграммах
В данном разделе освещается алгоритм расчета шкалы значений в диаграммах и возможности управления его работой.
Алгоритм расчета шкалы значений
В диаграммах платформы 1С:Предприятие 8 применяется следующий алгоритм расчета шкалы значений. Сначала находятся максимальное и минимальное значение среди данных диаграммы. Затем они сравниваются с базовым значением (по умолчанию 0, но может быть изменено с помощью свойства БазовоеЗначение ). В итоге получается абсолютный максимум (равный наибольшему из максимума данных и базового значения) и абсолютный минимум (равный наименьшему из минимума данных и базового значения). Это область изменения данных. Далее рассчитывается шаг шкалы. Он подбирается по формуле (базовый шаг) * (10 в некоторой степени), где базовый шаг может принимать значения 1, 2 и 5. Затем для некоторых типов диаграмм, например для гистограмм, производится корректировка максимальной отметки шкалы - разница между абсолютным максимумом и значением максимальной отметки должна быть не меньше шага шкалы. Это делается для того, чтобы диаграммы не "прилипали" к границам области построения (есть одно исключение: данная корректировка не производится в том случае, если сравниваемый максимум или минимум равен базовому значению). Для тех диаграмм, где шкала значений не бесконечна (например, для нормированных, где на шкале откладываются не значения, а проценты) корректировка не производится. Теперь рассмотрим возможности управления этим алгоритмом.
Изменение базового значения
Изменение базового значения применяется в тех случаях, когда разница между значениями в диаграмме намного меньше их абсолютных значений. В этом случае графическое представление становится не информативным. Вот пример диаграммы, содержащей значения 100, 101 и 110:
Если задать базовое значение, равное 90, диаграмма становится намного нагляднее:
Корректировка максимального и минимального значений
В диаграмме есть четыре свойства
Первые два представляют собой булевы флаги. Если их значение равно Истина (по умолчанию), тогда алгоритм расчета шкалы работает, как было описано выше. В случае если значение равно Ложь , для корректировки абсолютного максимума или абсолютного минимума используются соответствующие значения свойств МаксимальноеЗначение или МинимальноеЗначение .
Следует отметить два важных момента. С помощью этих свойств нельзя "обрезать" диаграммы, то есть, например МаксимальноеЗначение не может быть меньше абсолютного максимума. В этом случае оно игнорируется, и расчет шкалы производится так, как в случае АвтоМаксимальноеЗначение = Истина. Второй момент состоит в том, что в процессе выполнения описанного выше алгоритма, эти свойства используются сразу после расчета абсолютных максимума и минимума, то есть до расчета шага шкалы и возможной последующей корректировки значения максимальной отметки.
Приведем пример работы этих свойств.
Та же самая диаграмма при АвтоМаксимальноеЗначение = Ложь и МаксимальноеЗначение = 15:
Использование корректировки максимального и минимального значений
В обычных диаграммах такая необходимость возникает редко, но рассмотрим случай измерительной диаграммы. Она представляет собой шкалу измерительного прибора. Весьма вероятно, что мы захотим явно указать максимальное значение, отображаемое на этой шкале.
Пример при АвтоМаксимальноеЗначение = Истина:
Корректировки значения максимальной отметки для этого типа диаграммы не производится и она была вычислена (18) в процессе расчета шага шкалы. Предположим, что мы хотим отображать шкалу до 20. Установим АвтоМаксимальноеЗначение = Ложь и МаксимальноеЗначение = 20:
Читайте также: