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


Готовая процедура для встраивания в отчеты для формирования на форме отчета красивых интерактивных графиков и диаграмм  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 документа в процедуре (как вариант, можно их подключить как макеты с двоичными данными в отчете)

 

 

7 Comments

  1. sikuda

    (0) Highcharts действительно самые интересные графики в Интернете. Но есть два но

    1. В 1С Тонком клиенте Windows они бывают подглюкивают(IE7)

    2. Я забочусь о чистоте лицензии, такой я странный. А здесь Free — Non-commercial.

    http://shop.highsoft.com/highcharts.html

    Reply
  2. Dimasik2007
  3. Dimasik2007

    Еще, кстати, заметил, что если выводится много серий, трудно мышкой навести на нужную, чтобы показалась pop-up подсказка, причем это только в ie6-7.

    Reply
  4. UJF

    Добрый день! в отчете встречается фрагмент кода при выводе :

    файл = новый ТекстовыйДокумент;

    файл.УстановитьТекст(текст); имяФайлаОтчета = ПолучитьИмяВременногоФайла(«html»);

    файл.Записать(имяФайлаОтчета);

    ЭлементыФормы.ХТМЛ.УстановитьТекст(«»);

    ЭлементыФормы.ХТМЛ.Перейти(имяФайлаОтчета);

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

    те при множественном запуске этого отчета мы рискуем иметь много временных файлов.

    моя цель — интерактивный график (чтото вроде графика загрузки процессора в диспетчере задач виндовс )

    есть ли возможность использовать highcharts интерактивно : у мненя в базе постоянно меняются данные и я интерактивно наблюдаю кривую без записи на диск файла? . например поток поступающих данных пишу в регистр сведений и по нему за последние 5 минут делаю выборку и по этой выборке формирую график на форме.

    Reply
  5. UJF

    Простите , не туда написал ))), хотя Ваши комментарии по поводу методов и возможностей получения в 1с интерактивных графиков аля «загрузка процессора » в диспетчере задач винды будут приняты !

    Reply
  6. dave2000

    А как построить графики кривых, у которых разный набор точек по горизонтальной оси? Например, для первой кривой есть все точки, а для другой есть только три точки: Jan, Apr и Aug. Как тогда?

    Reply
  7. TreeDogNight

    (1) Вы ещё не нашли решения проблемы этих глюков?

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *