gifts2017

Формирование красивых интерактивных графиков и диаграмм Highcharts в 1С (универсальная процедура)

Опубликовал Станислав Семенец (FIConsult) в раздел Программирование - Работа с интерфейсом

Готовая процедура для встраивания в отчеты для формирования на форме отчета красивых интерактивных графиков и диаграмм  Highcharts. Отличная альтернатива типовым графикам 1С. Надеюсь, будет полезной

На форме отчета должен быть элемент Поле HTML документа.

Параметры процедуры:

ТЗ - таблица значений содержащая колонки с данными для оси X и оси Y

ТипГрафика="График" или "Диаграмма"

СписокПолей - список значений (Значение элемента списка д.б. равно названию колонки в ТЗ с данными, также Пометка элемента списка  д.б. равна истина)

ЭлементФормы - элемент формы  Поле HTML документа.

ПеременнаяТекстаСтраницы = строковая переменная из контектса формы, куда записывается рез. код страницы ХТМЛ.

НазваниеОтчета - строка назавния отчета (выводится сверху)

ПодписьХ - подпись оси X

ПодписьУ - подпись оси Y

ПолеX - имя колонки из ТЗ с данными, откуда берутся данные для оси X

Разрядов = число знаков после запятой

суффикс - что дописывать в метках точек (например " $")

ФорматнаяСтрокаХ = "ДФ='MMММ yy'"  - если полеX - имеет тип дата или число, то указывается форматная строка, иначе ""

Сама процедура во вложении

Примечание:

для работы требуется интернет (тянутся скрипты JS).

Можно запустить оффлайн.

Для этого нужно скачать js файлы тут

http://code.highcharts.com/modules/exporting.js

http://code.highcharts.com/highcharts.js

http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js

и использовать локальный путь к этим файлам при формировании текста HTML документа в процедуре (как вариант, можно их подключить как макеты с двоичными данными в отчете)

 

 

Скачать файлы

Наименование Файл Версия Размер
процедура 48
.txt 8,25Kb
10.10.13
48
.txt 1 8,25Kb Скачать

См. также

Подписаться Добавить вознаграждение
Комментарии
1. Сергей Кудашкин (sikuda) 11.10.13 09:52
(0) Highcharts действительно самые интересные графики в Интернете. Но есть два но
1. В 1С Тонком клиенте Windows они бывают подглюкивают(IE7)


2. Я забочусь о чистоте лицензии, такой я странный. А здесь Free - Non-commercial.
http://shop.highsoft.com/highcharts.html
kirillkr; +1 Ответить
3. Dmitry Dmitry (Dimasik2007) 13.10.13 14:18
Еще, кстати, заметил, что если выводится много серий, трудно мышкой навести на нужную, чтобы показалась pop-up подсказка, причем это только в ie6-7.
4. jack eee (UJF) 22.07.15 14:12
Добрый день! в отчете встречается фрагмент кода при выводе :

файл = новый ТекстовыйДокумент;
файл.УстановитьТекст(текст); имяФайлаОтчета = ПолучитьИмяВременногоФайла("html");
файл.Записать(имяФайлаОтчета);
ЭлементыФормы.ХТМЛ.УстановитьТекст("");
ЭлементыФормы.ХТМЛ.Перейти(имяФайлаОтчета);

создаем текстовый файл, пишем его на диск , и элементам формы скармливаем этот файл, наблюдаем отчет....

те при множественном запуске этого отчета мы рискуем иметь много временных файлов.
моя цель - интерактивный график (чтото вроде графика загрузки процессора в диспетчере задач виндовс )
есть ли возможность использовать highcharts интерактивно : у мненя в базе постоянно меняются данные и я интерактивно наблюдаю кривую без записи на диск файла? . например поток поступающих данных пишу в регистр сведений и по нему за последние 5 минут делаю выборку и по этой выборке формирую график на форме.
5. jack eee (UJF) 22.07.15 15:20
Простите , не туда написал ))), хотя Ваши комментарии по поводу методов и возможностей получения в 1с интерактивных графиков аля "загрузка процессора " в диспетчере задач винды будут приняты !
6. Dave Nikolsky (dave2000) 08.12.15 21:31
А как построить графики кривых, у которых разный набор точек по горизонтальной оси? Например, для первой кривой есть все точки, а для другой есть только три точки: Jan, Apr и Aug. Как тогда?