Красивое отображение графиков (диаграмм) на базе highcharts

Публикация № 147901

Разработка - Работа с интерфейсом

Платформа предоставляет довольно скудный интерфейс в плане вывода графиков/диаграмм. В статье рассматривается инструкция, как внедрить библиотеку Highchart в 1С.

 

О библиотеке

Highcharts (ОффсайтГалерея с примерами) — библиотека для создания чартов написанная на JavaScript, позволяет легко добавлять интерактивные, анимированные графики на сайт или в веб-приложение. (Описание ниже взято отсюда.) На данный момент чарты поддерживают большое количество диаграмм линейных, круговых, колоночных рассеивающих и многих других типов. Минимальная версия для IE составляет 6+ (т.е. отображается в 1С прилично). Чарты бесплатны для не коммерческого использования, однако цена для коммерческого использования на одном сайте составляет $80, безлимитное использование 360 долларов. 

На оффсайте есть две различные библиотеки: highcharts (обычные графики) и highstock (финансовые графики); можно подобрать тот или иной график практически под все задачи.

Поддерживаются следующие типы вывода графиков: line (простая линия), spline (сглаженная линия), area (область), areaspline (сглаженная область), column, bar (вертикальное/горизонтальное исполнение), pie (круговая) и scatter (точечная), и они могут быть комбинированы между друг другом при выводе конечному пользователю, и обладают возможностью отключения любого из них в режиме реального времени непосредственно пользователем для удобства разборки информации.

Данные для построения графиков могут быть взяты как из самого JS, так из локального файла, базы данных, или с удаленного сервера.

  • Чарты работают на чистом JS и не требуют каких-либо плагинов или Flash;
  • Вывод чартов довольно прост;
  • Есть увеличение отдельных областей;
  • Поддержка скинов /тем оформлений;
  • Поддержка tooltip с выводом информации;
  • В большинстве типов чартов есть поддержка date-time X-оси;
  • Размер библиотеки ~18кб;
  • Возможность локализации;

Макет формирования графика

Макет предоставляет собой шаблон, заполняемый из 1С, с описанием свойств объекта  на JavaScript. Пример шаблона:

 

var chart;
 
$(document).ready(function() { //когда страница сформируется, вызовется функция
 
        // Create the chart
        window.chart = new Highcharts.StockChart({
            chart : {
                renderTo : 'container' //указываем область, где будет формироваться график, см. раздел body в макете
            },
 
            title : {
                text : 'Общий объем продаж по дням/неделям/месяцам'
            },
 
            tooltip: { 
                //подсказка при наведении на серию, выводим имя серии тем же цветом, 
//что ее отображение на графике, выводим значение серии
                //примечание: при нескольких сериях на экране StockCharts объединяет подсказки в одно окно
            	pointFormat: '"color:{series.color}">{series.name}: {point.y}',
            	valueDecimals: 2
            },
 
            yAxis : { //настойки оси Y: заголовок и минимальное значение
                title : {
                    text : 'V продаж'
                },
                min: 0
 
            },
 
 
            series : [ // самое интересное - данные. Сформируем и подставим их из 1С
            %%%СЕРИИ%%%
 
            ]
        });
 
 
});

Серий в графике может быть много, формат серии (отображен ряд свойств из доступных):

ФорматСерии = "
    |{
    |name : '%%%ИМЯ%%%',      //имя серии, выводиться в легенде, подсказках
    |data : [%%%ДАННЫЕ%%%],   //данные, см. ниже
    |id : 'dataseries',       //при необходимости, серию можно "обозвать" служебным названием
    |                         //для доступа в дальнейшем (напр. маркеры можно
    |                         //прицеплять на конкретные серии (либо на оси)
    |type: 'spline'           //сглаженный график
    |}, ";

Формат указания данных зависит от типа графика, либо указывается одно значение (х -  data[343541012]), либо два (х, у - {x : Date.UTC(2012,1, 15), y : 500},) и т.п. Формат данных может быть очень навороченным, включая т.н. drilldown (расшифровки данных в самом отчете, пример). Дату можно формировать через функцию JS UTC, либо (что лучше для больших массив данных - высчитывать разницу между нужной датой и полночью 1.1.1970).

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

 

Формирование из 1С

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

Плюсы данного подхода:

  • мощь Web 2.0 -ных графиков;
  • возможность произвольных отборов в рамках СКД

Минусы:

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

 

Пример

 

Пример формирования отчета о продажах за период (с группировкой по дням/неделям/месяцам) приведен во вложениях к данной статье. Отчет сделан как внешний, писался под толстый клиент, УПП (если у вас в конфигурации есть регистр накопления "Продажи", то должен заработать).

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

Основной код формирования макета из примера:

 

Процедура Сформировать_ОбщийЕжедневныйОтчетСКД()
   
ТЗ = СформироватьТЗ(, ВариантОтчета); 

   
ПодстановкаОбъемПродаж = "";
   
ПодстановкаСерий = "";
   
ФорматСерии = "
    |{
    |name : '%%%ИМЯ%%%',
    |data : [%%%ОБЪЕМ_ПРОДАЖ%%%],
    |id : 'dataseries',
    |type: 'spline'
    |}, "
;

    Для каждого
СтрокаТЗ Из ТЗ Цикл

       
_год   = Формат(Год(СтрокаТЗ.Период), "ЧГ=0");
       
_месяц = Формат(Месяц(СтрокаТЗ.Период), "ЧГ=0")-1; // нумерация месяцев в JS начинается с 0
       
_день  = Формат(День(СтрокаТЗ.Период), "ЧГ=0");
       
_объем = СокрЛП(Формат(СтрокаТЗ.СтоимостьОборот,"ЧРД=.; ЧН=0; ЧГ=0"));
        если
_объем = "" тогда _объем = 0; КонецЕсли;

       
ПодстановкаОбъемПродаж = ПодстановкаОбъемПродаж + ПодставитьПараметрыВСтроку(
       
"{x : Date.UTC(%1, %2, %3), y : %4}, ",
       
_год,
       
_месяц,
       
_день,
       
_объем);
    КонецЦикла;

   
ПодстановкаОбъемПродаж   = Лев(ПодстановкаОбъемПродаж, СтрДлина(ПодстановкаОбъемПродаж) - 2);

   
макет = ПолучитьМакет("ОбщийЕжедневныйОтчет");
   
текст = макет.ПолучитьТекст();

   
Серии = ФорматСерии;
   
Серии = СтрЗаменить(Серии,"%%%ИМЯ%%%", "Объем продаж");
   
Серии = СтрЗаменить(Серии,"%%%ОБЪЕМ_ПРОДАЖ%%%", ПодстановкаОбъемПродаж);

   
Серии    = Лев(Серии, СтрДлина(Серии) - 2);
   
текст = СтрЗаменить(текст,"%%%СЕРИИ%%%", Серии);



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

   
файл.Записать(имяФайлаОтчета);
   
ЭлементыФормы.ХТМЛ.УстановитьТекст("");
   
ЭлементыФормы.ХТМЛ.Перейти(имяФайлаОтчета);
КонецПроцедуры

 

Примеры рабочих отчетов


Примеры отчетов, построенных на базе highchart и highstock, приведены ниже.

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

Наименование Файл Версия Размер
Анализ продаж (8.2)

.erf 24,49Kb
17.08.12
359
.erf 24,49Kb 359 Скачать

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
1. CaSH_2004 359 17.08.12 13:53 Сейчас в теме
Все круто! ТОлько не нашел примеров как рисовать бары для торгов из 4-х точек: цена открытия, закрытия, мин, макс
Такое можно изобразить? Именно это нужно!
2. Dimasik2007 412 17.08.12 14:39 Сейчас в теме
3. Dimasik2007 412 17.08.12 14:44 Сейчас в теме
(2) + серии строятся также, добавляется элемент dataGrouping в формете, где нужно указать группировку по дню и т.п., данные рассчитаются автоматически (мин макс и проч)
4. CaSH_2004 359 17.08.12 15:45 Сейчас в теме
(2) Спасибо! А реально на график с барами еще наложить произвольную кривую или несколько по моим координатам? Например рассчитал я средне-скользящую и хочу все это визуализировать на одном графике.
5. Dimasik2007 412 17.08.12 16:30 Сейчас в теме
(4) CaSH_2004, тоже делается элементарно, одна серия идет с типом bar, другая (с координатами) - типа spline. Комбинацию такую делал в highcharts, наподобие примера http://www.highcharts.com/demo/combo.

Вообще, движок чартов очень мощный, можно визуализировать любые данные.
6. Dimasik2007 412 17.08.12 19:18 Сейчас в теме
(4) Ошибся я, нужно указывать непосредственно эти мин-макс значения для построения, пример тут

series : [
{
name : 'A',
data : [
// Дата, далее показатели open, high, low, close
//[Date.UTC(год, мес, ден), open, high, low, close]

[1341187200000,584.73,593.47,583.60,592.52],
[1341273600000,594.88,600.00,594.00,599.41],
[1341446400000,600.56,614.34,599.65,609.94],
[1341532800000,607.09,608.44,601.58,605.88],
[1341792000000,605.30,613.90,604.11,613.89],
[1341878400000,617.97,619.87,605.31,608.21],
[1341964800000,606.12,607.66,597.22,604.43],
[1342051200000,600.24,603.47,592.68,598.90],
[1342137600000,602.95,607.19,600.00,604.97],
[1342396800000,605.12,611.62,605.02,606.91],
[1342483200000,610.79,611.50,603.15,606.94],
[1342569600000,606.59,608.34,603.56,606.26],
[1342656000000,611.28,615.35,606.00,614.32],
[1342742400000,613.03,614.44,603.70,604.30],
[1343001600000,594.40,605.90,587.71,603.83],
[1343088000000,607.38,609.68,598.51,600.92],
[1343174400000,574.46,580.80,570.00,574.97],
[1343260800000,579.76,580.40,570.36,574.88],
[1343347200000,575.01,585.83,571.59,585.16],
[1343606400000,590.92,599.44,587.82,595.03],
[1343692800000,603.23,611.70,602.72,610.76]
],
type: 'candlestick'
},

{
name : 'B',
data : [
// Дата, далее показатель
[1341187200000,584.73],
[1341273600000,594.88],
[1341446400000,600.56],
[1341532800000,607.09],
[1341792000000,605.30],
[1341878400000,617.97],
[1341964800000,606.12],
[1342051200000,600.24],
[1342137600000,602.95],
[1342396800000,605.12],
[1342483200000,610.79],
[1342569600000,606.59],
[1342656000000,611.28],
[1342742400000,613.03],
[1343001600000,594.40],
[1343088000000,607.38],
[1343174400000,574.46],
[1343260800000,579.76],
[1343347200000,575.01],
[1343606400000,590.92],
[1343692800000,603.23]
],
type: 'spline'
}
]
Прикрепленные файлы:
8. CaSH_2004 359 17.08.12 19:34 Сейчас в теме
(6)Вот спасибо! Буду на выходных изучать
7. Dimasik2007 412 17.08.12 19:20 Сейчас в теме
В примере даты уже сгенерированы, но их можно указать через функцию UTC. Вообще, для больших объемов данных лучше написать функцию, переводящую дату сразу в уканное представление (т.е. вычислять разность дат между необходимой датой и полночью 1 янв 1970)
9. Cobranet123 360 20.08.12 05:57 Сейчас в теме
Вопрос: А Зачем обработка ломится на сайт ajax.googleapis.com ? и без доступа к этому сайту отказывается что-либо строить...
10. Dimasik2007 412 20.08.12 07:18 Сейчас в теме
(9) Cobranet123, видимо вы статью по диагонали посмотрели.
В макете html указаны онлайн ссылки на библиотеки, таким образом для формирования отчета необходим доступ к интернету. Вы можете скачать указанные библиотеки и заменить онлайн ссылки на локальные.

Вы можете скачать указанные библиотеки (JQuery, Highstock.js/Highcharts.js - основные, библиотеку экспорта по необходимости) к себе, и разместить ее хоть на своем сайте, хоть в расшаренной папке в сети, хоть в виде макета в обработке (с распаковкой в локальный каталог при формировании отчета). В тексте Html-макета потом подмените адреса на нужный и вуаля - интернет уже не нужен. Обработка построена по минимуму функционала, не отображены фишки в виде локализации (например, даты можно выводить на русском), легенд и проч.
Документацию см. на http://api.highcharts.com/highcharts и http://api.highcharts.com/highstock, все подробным образом описано и почти везде есть онлайн-примеры.
11. Den_D 54 23.08.12 10:18 Сейчас в теме
Очень интересный подход. Спасибо за информацию.
12. AlexBar 51 23.08.12 15:17 Сейчас в теме
Коллеги, кто-нибудь смог разобраться как даты по оси X на русском вывести?
13. Dimasik2007 412 23.08.12 17:07 Сейчас в теме
(12) Там вариантов много:
  • заполнение свойств lang (пример ниже, не забудьте еще про shortMonths - короткие имена месяцев)
    Highcharts.setOptions({
    			lang: {
    				months:   ['Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль', 
    						   'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'],
    				weekdays: ['ВС', 'ПН', 'ВТ', 'СР', 'ЧТ', 'ПТ', 'СБ']
    			}
    		});

  • заполнение свойств dateTimeLabelFormats выбранных осей
  • или отрыть сам файл скрипта (*.src.js), и заменить дефолтные значения в нем. Собственно, я делал по последнему сценарию.


TreeDogNight; Восьмой; AlexBar; +3 Ответить
14. AlexBar 51 23.08.12 18:36 Сейчас в теме
15. zipik 29.08.12 11:00 Сейчас в теме
16. aximo 1591 30.08.12 06:36 Сейчас в теме
я бы попробывал запихнуть jquery.min.js и прочие *.js файлы в макеты в самой обработке, для пущей универсальности. А так, спасибо. решение полезное!
17. Dimasik2007 412 30.08.12 07:19 Сейчас в теме
(160) Ну тут вариантов множество хранить, все от ситуации зависит.
Файлы *js небольшие, их можно засунуть все в zip и при формировании распаковывать в темп или каталог пользователя и удалять при закрытии обработки.
18. Archikg 30.08.12 07:24 Сейчас в теме
спасибо, я почему-то всегда думал, что это можно получить только с помощью Adobe Flex
19. Dimasik2007 412 30.08.12 13:28 Сейчас в теме
(18) Так напишите статью, будет полезно знать различные способы работы.
21. Archikg 31.08.12 11:07 Сейчас в теме
(19) я бы и сам был рад на подобную статью наткнуться :) пока все это в освоении, в перспективе постараюсь
очень радует глаз подобная разработка, красивая визуализация данных в 1С это одна сторона медали, гораздо похвальней реализация интеграции JS с библиотекой jquery и 1С, однозначно шаг вперед, большое спасибо
22. xzorkiix 32 31.08.12 12:53 Сейчас в теме
(21) Archikg,

гораздо похвальней реализация интеграции JS с библиотекой jquery и 1С, однозначно шаг вперед, большое спасибо


Простите,но где тут шаг вперёд?
20. Kaperang 95 31.08.12 08:17 Сейчас в теме
А диаграммы Ганта эта библиотека она умеет строить?
23. Dimasik2007 412 31.08.12 18:15 Сейчас в теме
(20) Эта библиотека не умеет. Вот эта (http://www.maro-z.com/examples/jquery.gantt/), например, может. Но корявые, на мой взгляд.
24. Harry_Joplin 14.09.12 14:23 Сейчас в теме
Простите, за не самый умный вопрос. А как сделать, графики на другие отчеты а не только на "Анализ продаж" представленный в примере?
26. Dimasik2007 412 15.09.12 00:20 Сейчас в теме
(24) Если вы можете представить данные в виде {имя серии, значение Х, значение У} = то можете построить любой графический отчет на указанном движке.
(25) Вы не правы. Все "не" решаются простым хранением библиотек в макете, распаковкой в тмп каталог и подсовываение адресов в макет графика. Все! Делов то. Пусть 1С попробует догнать своими кривыми встроенными механизмами отображения графиков/диаграмм хотя бы эту библиотеку, тогда можно и говорить о не нужности.
А по существу, было построено мною уже порядка десятка аналитических отчетов, так что мне такой механизм пригодился. Вам - нет? ну это Ваше дело.
VVi3ard; Upiterus; +2 Ответить
27. Harry_Joplin 15.09.12 09:23 Сейчас в теме
(26) Для меня это пока "тёмный лес" :( Но сам график выглядят оч. красиво и наглядно. Можно ли от Вас заполучить готовые решения например как в самой публикации "Примеры рабочих отчетов" Прибыль vs Себестоимость, Диаграмма отпускных и закупочных цен и др.?
28. Dimasik2007 412 15.09.12 12:27 Сейчас в теме
(27) Они заточены под конфигурацию клиента, поэтому не для распространения.
29. Harry_Joplin 15.09.12 12:41 Сейчас в теме
(28)Печалька.
А как же тогда был сделан анализ продаж?
30. Dimasik2007 412 15.09.12 13:58 Сейчас в теме
31. Harry_Joplin 15.09.12 14:13 Сейчас в теме
(30)Я про то что отчет "Анализ продаж" не заточен под конкретную конфигурацию, и отлично работает. Может есть на выдачу, но уже другие отчеты?
25. AlexO 128 14.09.12 14:30 Сейчас в теме
Опять же надо что-то стороннее ставить, а потом следить, чтобы это стороннее-бибилиотечное было всегда на рабочем сервере 1С, никто не потер, не переустановил Windows, не переименовал папку системную; чтобы стояли актуальные версии под последнее ПО и ОС...
Слишком много "не" и "если" за только ради красивых рюшечек, увы...
32. Dimasik2007 412 15.09.12 15:04 Сейчас в теме
33. AlexO 128 15.09.12 18:11 Сейчас в теме
(32) (28)
что-то не согласуется "шапкозакидательное"
Все "не" решаются простым хранением библиотек в макете, распаковкой в тмп каталог и подсовываение адресов в макет графика. Все! Делов то.

с последующим обсуждением.
Или уж внес в макеты, или у вас строго уникальная система не для тиражирования - о чем и писал в (25).
34. Dimasik2007 412 15.09.12 20:38 Сейчас в теме
(33) Еще раз повторяю, каждый делает как хочет исходя из целей. Моя статья приводит пример, как можно подключить. Все варианты подключения уж скачавшие могут придумать и сами. Если не можете, обращайтесь в личку - помогу за $$.
36. eugen91 04.12.12 20:19 Сейчас в теме
Можно ли выводить потом этих графики из базы ?
37. Dimasik2007 412 04.12.12 21:07 Сейчас в теме
Да, можно, для этого есть кнопка печати/сохранения. Только не забудьте логику в настройках переопредеить, чтобы движок к интернету не обращался, а к локальному скрипту exports.js
38. sikuda 620 06.06.13 14:58 Сейчас в теме
Как там с версией под тонкого клиента?
39. Dimasik2007 412 06.06.13 15:16 Сейчас в теме
40. mymyka 06.06.13 16:04 Сейчас в теме
А оно умеет сложные диаграммы рисовать? совмещенно накопительные? например, на каждого контрагента вывести по колонке для каждого договора, а уже эту колонку разделить на 3 части, аванс/дебиторка/просрок дебиторки? Просто скд это точно не умеет, приходится на каждый договор 3 столбца рисовать, что сводит на нет наглядность диаграммы.
41. Harry_Joplin 11.06.13 15:16 Сейчас в теме
Вчерась перестала работать обработка, график вроде формирует, но при попытке изменить период выдает ошибку
см. файл.
Допускаю, что ошибка вызвана тем что на той стороне библиотека недоступна или удалена.
Можно ли получить разъяснение
В макете html указаны онлайн ссылки на библиотеки, таким образом для формирования отчета необходим доступ к интернету. Вы можете скачать указанные библиотеки и заменить онлайн ссылки на локальные.

Как осуществить замену онлайн ссылок
Прикрепленные файлы:
42. MarSeN 975 09.09.13 18:02 Сейчас в теме
(105) Gazza,
Я проверял - работает и под тонкого (библиотека, эту разработку не смотрел) )
43. vis_tmp 30 02.10.13 09:06 Сейчас в теме
А можно ли построить график такого вида?
http://savepic.su/3460493.png
На картинке выделены пустые область, т.е. шкала всегда 12 месяцев, к примеру, а данные показываем не за все месяцы, а только за часть из них.
С 3 по 10, к примеру.
Такое возможно сделать?
44. Dimasik2007 412 02.10.13 12:26 Сейчас в теме
(43) vis_tmp, да, возможно. Для осей можно задать мин. и макс. значение (если не задавать, то используется автоматический расчет на основе данных). http://api.highcharts.com/highcharts#xAxis.min
45. tango 484 02.10.13 12:47 Сейчас в теме
(44) уточните, пожалуйста, каково поведение графика в точках с незаданными значениями? будет ли соединять линия две точки, между которыми есть пропущенное значение?
46. Dimasik2007 412 03.10.13 15:49 Сейчас в теме
(45) tango, вот такой пример посмотрите http://jsfiddle.net/t6hmt/ (пропущенные значения заменены на null)
47. tango 484 03.10.13 18:33 Сейчас в теме
(46) там нет рисуночка. что она делает с этими нулами, осталось нераскрытым пардон, включил явку, что-то зашевелилось
**
увы - то же, что и в екселе
48. Dimasik2007 412 03.10.13 20:21 Сейчас в теме
(47) tango, покажите эскиз того, чего хотите :)
49. tango 484 04.10.13 14:45 Сейчас в теме
(48) интерполяция графика на отсутствующие значения
Прикрепленные файлы:
50. bes-kkm 06.02.14 17:43 Сейчас в теме
51. bayce 27 12.02.14 05:07 Сейчас в теме
Интересная вещь.
Надо попробовать.

53. chmv 04.08.14 15:14 Сейчас в теме
54. Dimasik2007 412 04.08.14 16:07 Сейчас в теме
(53) chmv, сезонные провалы видны :)
55. crs 22 05.09.14 21:58 Сейчас в теме
Спасибо, как раз изучал постронение графиков в 1С и JS. На управляемых формах тоже работает ...
Прикрепленные файлы:
highcharts_demo.epf
56. unoDosTres 25.09.14 17:47 Сейчас в теме
подскажите все таки как скачать библиотеку )
а то что то тыркаюсь никак не пойму как их скачать )
57. Dimasik2007 412 26.09.14 06:32 Сейчас в теме
58. unoDosTres 26.09.14 12:04 Сейчас в теме
(57)
в (26) вы написали
Вы не правы. Все "не" решаются простым хранением библиотек в макете, распаковкой в тмп каталог и подсовываение адресов в макет графика. Все! Делов то. Пусть 1С попробует догнать своими кривыми встроенными механизмами отображения графиков/диаграмм хотя бы эту библиотеку, тогда можно и говорить о не нужности

как мне эти библиотеки на локальную машину себе кинуть
59. Dimasik2007 412 28.09.14 09:49 Сейчас в теме
60. SJR 17.02.15 10:11 Сейчас в теме
Добрый день. А для платформы 8.3 работает?
61. Dimasik2007 412 20.02.15 23:10 Сейчас в теме
(60) SJR,
Думаю, что да. В толстом клиенте понятно что изменений нет, насчет уф/web - посмотрите на форуме, был ряд статей.
62. webester 32 04.03.15 16:06 Сейчас в теме
(0)Рисовал для себя этой библиотекой, не смог догнать момент как бы подложить ему библиотеки не засовывая их полностью в документ. Вы говорите это просто, я так и не понял, что же указывать в качестве пути к библиотеке, если она лежит локально http://www.forum.mista.ru/topic.php?id=726521
63. CaSH_2004 359 29.04.15 22:26 Сейчас в теме
Вроде как публикация заглохла, а ведь она очень важная и полезная в связи с куцыми возможностями 1С.
Я наконец созрел для ее плотного изучение, да вот беда - автор вроде как забил на нее судя по молчанию вопроса (62)
Но надежда умирает последней.
Итак вопрос по прикрепленному отчету.
Реализовано замечательно, запустилось на УТ 10.3 без вопросов и показало результат, но вот вопросы по графику:
1. указал период 2015 г. в самом отчете, а график сформировался за историю всей базы - почему?
2. в отчете получается что периоды и все элементы управления на английском - а на русском что-то можно получить? хотя бы показатели шкал?
ну и в подсказках к точкам тоже период на английском


64. Dimasik2007 412 30.04.15 08:13 Сейчас в теме
(63) Не заглохла, просто раньше в комментариях было указано как локальные библиотеки использовать (насчет (62)).

По вопросам.
1) Да, там в запросе СКД ошибка - нет используются отборы в запросе. Вы сможете сами добавить :)
2) Переопределите показатели, как указывал раньше в (13)
Highcharts.setOptions({
lang: {
months: ['Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль',
'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'],
weekdays: ['ВС', 'ПН', 'ВТ', 'СР', 'ЧТ', 'ПТ', 'СБ']
}
});
68. CaSH_2004 359 07.09.15 22:46 Сейчас в теме
(64) Спасибо буду пробовать как освобожусь
(67)
Неужели 1с использует какой-то браузер что это не поддерживается?

Ну в 1С все крутится на одном единственном браузере Internet Explorer, поменять вроде его не вариант никак - вшито в платформу. Так что проверить просто - запускай скрипт в нем и смотри.
Бывает что даже 1С глючит если данный браузер глючит (например не обновлен), может даже не запустится - на одной терминальной сесии несколько раз такое было, а больше нигде.
69. kudnayce 08.09.15 10:51 Сейчас в теме
(68) CaSH_2004, <met a http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
я вот тут поменял всё сработало!!!! Сижу теперь мучаюсь как добавить поле в управляемых
70. CaSH_2004 359 08.09.15 12:06 Сейчас в теме
(69)kudnayce
А поподробнее где меняли то?
65. UJF 22.07.15 14:11 Сейчас в теме
Добрый день! в отчете встречается фрагмент кода при выводе :

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


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

те при множественном запуске этого отчета мы рискуем иметь много временных файлов.
моя цель - интерактивный график (чтото вроде графика загрузки процессора в диспетчере задач виндовс )
есть ли возможность использовать highcharts интерактивно : у мненя в базе постоянно меняются данные и я интерактивно наблюдаю кривую без записи на диск файла? . например поток поступающих данных пишу в регистр сведений и по нему за последние 5 минут делаю выборку и по этой выборке формирую график на форме.
66. Dimasik2007 412 22.07.15 18:41 Сейчас в теме
(65) UJF, возможно.

http://www.highcharts.com/demo/dynamic-update

$('#container').highcharts({
chart: {
type: 'spline',
animation: Highcharts.svg, // don't animate in old IE
marginRight: 10,
events: {
load: function () {

// set up the updating of the chart each second
var series = this.series[0];
setInterval(function () {
var x = (new Date()).getTime(), // current time
y = Math.random();,
// тут вместо x,y нужно обращаться через http-сервис к базе и получать новые данные, тогда данные будут дорисовываться в графике, а не перерисовываться полностью.
series.addPoint([x, y], true, true);
}, 1000);
}
...
}
Показать
67. kudnayce 07.09.15 11:09 Сейчас в теме
Доброго времени суток друpья. Сталкивался ли кто с такой проблемой что на сайте ваш код js работает прекрассно а вот в 1с нет анимации! http://jsfiddle.net/whpqspzd/ вот ссылка на страницу как должно выглядеть вот код скрипта
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title> - jsFiddle demo</title>

<script type='text/javascript' src='jquery-1.9.1.js'></script>

<script type='text/javascript'>//<![CDATA[

$(function () {
$('#container').highcharts({
chart: {
type: 'column'
},
title: {
text: 'Оборотная ведомость'
},
xAxis: {
categories: ['Январь','Февраль','Март','Апрель']
},
yAxis: {
min: 0,
title: {
text: 'Значение'
},
stackLabels: {
enabled: false,
style: {
fontWeight: 'bold',
color: (Highcharts.theme && Highcharts.theme.textColor) || 'gray'
}
}
},
legend: {
align: 'right',
x: -11,
verticalAlign: 'top',
y: 30,
floating: true,
backgroundColor: (Highcharts.theme && Highcharts.theme.background2) || 'green',
borderColor: '#CCC',
borderWidth: 1,
shadow: false
},
tooltip: {
headerFormat: '{point.x}

',
pointFormat: '{series.name}: {point.y}
Оборот: {point.stackTotal}'
},
plotOptions: {
column: {
stacking: 'normal',
dataLabels: {
enabled: true,
color: (Highcharts.theme && Highcharts.theme.dataLabelsColor) || 'white',
style: {
textShadow: '0 0 3px black'
}
}
}
},
series: [{
name: 'План оборота',
data: [ 914036,1347964,1070609,2515348]
}, {
name: 'Прибыль план',
data: [12747915,19078068,14016913,26199607]
}, {
name: 'Затраты',
data: [1574174,1986473,1746783,3593354]
}, {
name: 'Прибыль',
data: [21954743,28115047,22869701,37428009]
}]
});
});


//]]>

</script>


</head>
<body scroll=no>
<script src="http://code.highcharts.com/highcharts.js"></script>
<script src="http://code.highcharts.com/modules/exporting.js"></script>

<div id="container" style="min-width: 310px; height: 600px; margin: 0 auto"></div>


</body>


</html>

а в 1с этот же скрипт отображается иначе, например нет толковых циферок для колонок. Анимации нет совершенно.! Скрипты подключенны с сайта! Неужели 1с использует какой-то браузер что это не поддерживается?* Прикрепляю файл из 1с! Пишу в УТ 10.2
Прикрепленные файлы:
71. Dimasik2007 412 08.09.15 18:52 Сейчас в теме
Насколько знаю, в 1С используется кастрированная версия то ли ie6, то ли ie7. Поэтому используемые скрипты нужно проверять на совместимость именно с указанными версиями, в т.ч. и принудительно указывать параметры в html-коде.
72. sxegreen 04.12.15 05:03 Сейчас в теме
Подскажите пожалуйста, как заменить название регионов (перевести на русский) в картах http://code.highcharts.com/mapdata/
73. Dimasik2007 412 05.12.15 22:36 Сейчас в теме
(72) Править в *.js-файлах с данными полигонов карт, и потом использовать в коде уже локализованные скрипты.
74. Pawlick 10 25.02.16 10:04 Сейчас в теме
У меня график не разворачивается на весь экран...
75. Pawlick 10 25.02.16 10:08 Сейчас в теме
76. Ekovichev 660 24.03.16 14:57 Сейчас в теме
Не пашет в такси, падает с дампом
77. irinrish 6 18.05.16 09:29 Сейчас в теме
Друзья, а подскажите, по оси Х всегда будут только даты? Можно сделать произвольную шкалу, например просто значения от 1 и до 100?

При попытке заменить {X: %год, %месяц, %День, у: %число} на {X: %число1, у: %число} график сбесился))) и выдал паническое движение. Прилагаю картинку.
Прикрепленные файлы:
78. Dimasik2007 412 22.05.16 08:48 Сейчас в теме
(77) Протестируйте скрипт на онлайн-площадках, например, http://jsfiddle.net - подбирая настройки скрипта можно добиться требуемой формы отображения графика, а потом уже реализовать в 1с.
79. user598299_magomed_007 31.08.16 23:18 Сейчас в теме
Всем привет. ребята очень нужно вывести граффик на сайте но ни как не получается..
если создать index.html и в ней указать параметры
<sc ript src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></sc ript>
<sc ript src="https://code.highcharts.com/stock/highstock.js"></sc ript>
<sc ript src="https://code.highcharts.com/stock/modules/exporting.js"></sc ript>

<sc ript type="text/javascript">
$(function () {

$.getJSON('https://www.highcharts.com/samples/data/jsonp.php?filename=aapl-c.json&callback=?', function (data) {
// Create the chart
$('#container').highcharts('StockChart', {


rangeSelector : {
selected : 1
},

title : {
text : 'AAPL Stock Price'
},

series : [{
name : 'AAPL',
data : data,
tooltip: {
valueDecimals: 2
}
}]
});
});

});
</sc ript>
То граффик строится..
Но у меня нестандартная ситуация. мне нужно вывести граффик в странице с расширением index.hbs а для этого надо js файл с функцией.. и у меня ни как не получается ее загнать в этот файл.. если кто делал такое прошу отписаться. готов за работу оплатить
80. TreeDogNight 18 25.10.16 10:53 Сейчас в теме
Здравствуйте! Решил построить график из примера на основе своих данных, график успешно формируется, но он слишком узкий:


В чем может быть проблема?
Вот сформированный HTML код:


81. Dimasik2007 412 25.10.16 14:37 Сейчас в теме
(80) Под УФ не пробовал, думаю стоит посмотреть в сторону задания размера контейнера не в %, а в фиксированных значениях

например, вместо
<div id="container" style="width: 100%; height: 600px; margin: 0 auto"></div>

попробовать так
<div id="container" style="min-width: 310px; height: 600px; margin: 0 auto"></div>
TreeDogNight; +1 Ответить
85. TreeDogNight 18 28.10.16 13:12 Сейчас в теме
(81)(83)Спасибо за подсказку! У меня ещё одна проблема. Я перенёс библиотеки к себе на локальный диск (создал текстовые файлы, скопировал туда код из библиотек и изменил формат файлов на *.js) и в тексте html переписал путь к этим библиотекам, но диаграммы к сожалению не формируются, выходит ошибка:


Текст HTML кода:
<!DO CTYPE HTML>
<ht ml>
	<head>
		<met a http-equiv="Content-Type" content="text/html; charset=utf-8">
		<sc ript type="text/javascript" src="C:\Program Files (x86)\1cv8\8.3.8.1652\bin\jquery.min.js"></sc ript>
		<sc ript type="text/javascript">
	
var chart;

$(document).ready(function () {

        // Build the chart
        $('#container').highcharts({
            chart: {
                plotBackgroundColor: null,
                plotBorderWidth: null,
                plotShadow: false,
                type: 'pie'
            },
            title: {
                text: 'Диаграма состояний клиентов'
            },
            tooltip: {
                pointFormat: '{series.name}: {point.percentage:.1f}%'
            },
            plotOptions: {
                pie: {
                    allowPointSelect: true,
                    cursor: 'pointer',
                    dataLabels: {
                        enabled: true
                    },
                    showInLegend: true
                }
            },
            series: [{
                name: 'Brands',
                colorByPoint: true,
                data: [{
name: 'Горячая база',
y: 20,
sliced: true,
selected: true
}, {
name: 'Не определено',
y: 20,
sliced: true,
selected: true
}, {
name: 'Подписчик',
y: 20,
sliced: true,
selected: true
}, {
name: 'Теплая база',
y: 40,
sliced: true,
selected: true
}]
            }]
        });
    });

		</sc ript>
	</head>

<body>  
<sc ript src="C:\Program Files (x86)\1cv8\8.3.8.1652\bin\highcharts.js"></sc ript>
<sc ript src="C:\Program Files (x86)\1cv8\8.3.8.1652\bin\exporting.js"></sc ript>
<div id="container" style="min-width: 310px; height: 400px; max-width: 600px;margin: 0 auto"></div>
</body>
</html>
Показать
83. maljaev 793 26.10.16 10:39 Сейчас в теме
(80) Пример:

<head>
.........
<st yle type="text/css">
	#container {
	 height: 96%; // подобрать экспериментально, <=100%
	 width: 98%; // подобрать экспериментально, <=100%
	 position: absolute;
	}
	html {overflow: hidden} // скроем полосы прокрутки
</style>
.........
<sc ript type="text/javascript">
	$(function () {
		$('#container').highcharts({
........
<body>
	<div id="container" style="min-width: 300px;"></div>
Показать


Этого уже может хватить. Диаграмма всегда будет растягиваться по всему полю HTML-документа.
Иногда, после первого вывода диаграммы, она может не растянуться. Тогда дополнительно делаем:

ЭлементыФормы.Диаграмма.Документ.parentWindow.ExecScript("$('#container').highcharts().reflow();", "JavaScript");


Это перекомпонует диаграмму с учетом размера области.

P.S. Движок Инфостарта вставляет лишние пробелы в HTML-код. Удалите их, при необходимости.
Upiterus; TreeDogNight; +2 Ответить
82. maljaev 793 26.10.16 09:48 Сейчас в теме
(0) В статье вы совсем не затронули тему управления объектной моделью HighCharts из 1С.
Формировать каждый раз текст HTML-страницы и перезагружать документ не удобно и не быстро.
Скажем, у меня уже есть построенный график, и мне вздумалось добавить в него еще одну серию.
Вместо того, чтобы заново все переформировывать, достаточно:

ЗначенияСерии = "5, 4.2, 5.7, 8.5, 11.9, 15.2, 20, 16.6, 14.2, 12, 6.6, 4.8";
ИмяСерии = "New";
ЭлементыФормы.Диаграмма.Документ.parentWindow.ExecScript("
	|$('#container').highcharts().addSeries({
	|	name: '" + ИмяСерии + "',
	|	data: [" + ЗначенияСерии + "]
	|});", "JavaScript");


Это ИМХО намного элегантнее, быстрее и красивее.
VVi3ard; Upiterus; TreeDogNight; +3 Ответить
84. Dimasik2007 412 26.10.16 13:14 Сейчас в теме
(82) Статья была написана четыре года назад, тогда мне не требовалось делать онлайн добавление данных в диаграмму, все строилось сразу после формирования отчета.
А так спасибо за информацию.
87. TreeDogNight 18 29.10.16 06:57 Сейчас в теме
(82) maljaev, А чтобы изменить существующую серию, нужно использовать метод setData()?
86. TreeDogNight 18 29.10.16 05:14 Сейчас в теме
Всё, проблема решилась! Оказалось, что сохранились не все библиотеки.
88. TreeDogNight 18 07.11.16 14:56 Сейчас в теме
up!
+ к предыдущему вопросу, хотел спросить, как можно реализовать расшифровку в этих диаграммах? Можно ли как-нибудь за кадром хранить данные, которые не будут выводиться в отчете, но будут использованы при расшифровке (например код элемента справочника) ?
89. Dimasik2007 412 07.11.16 20:09 Сейчас в теме
(88) См. обработку, пример кода там есть (древний правда, да и не под типовую), см. обработку onclick поля нтмл, + скриншот в статье есть (диаграмма цен)
Прикрепленные файлы:
ДиаграммаЗакупочныхЦен.epf
TreeDogNight; +1 Ответить
90. TreeDogNight 18 11.11.16 10:33 Сейчас в теме
(89) Dimasik2007, Спасибо! Решил пойти немного другим способом!
Сейчас пытаюсь расшифровку из диаграммы Column with drilldown засунуть в диаграмму Basic column.
Проанализировав код обоих диаграмм, собрал следующий код:
$(function () {
    Highcharts.chart('container', {
        chart: {
            type: 'column'
        },
        title: {
            text: 'Анализ реализации по видам продукции (план/ факт)'
        },
        subtitle: {
            text: 'За период с 01.01.2016 по 31.12.2016'
        },
        xAxis: {
            categories:['Январь','Февраль','Март','Апрель','Май','Июнь','Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'],
            crosshair: true
        },
        yAxis: {
            min: 0,
            title: {
                text: 'Объём'
            }
        },
        legend: {
            enabled: true
        },
        plotOptions: {
            series: {
                borderWidth: 1,
                dataLabels: {
                    enabled: true,
                    format: '{point.y:.1f}%'
                }
            }
        },
        tooltip: {
            headerFormat: '<span style="font-size:10px">{point.key}</span><table>',
            pointFormat: '<tr><td style="color:{series.color};padding:0">{series.name}: </td>' +
                '<td style="padding:0">{point.y:.1f} mm</td></tr>',
            footerFormat: '</table>',
            shared: true,
            useHTML: true
        },
        plotOptions: {
            column: {
                pointPadding: 0.01,
                borderWidth: 2
            }
        },
		
		tooltip: {
            headerFormat: '<span style="font-size:11px">{series.name}</span>',
            pointFormat: 'План. объем <span style="color:{point.color}">{point.name}</span>: {point.y:.2f}'
        },
		
        series: [{
            name: 'Сушка',
			drilldown: 'Сушка',
            data: [49.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]			
        }, {
            name: 'Заморозка',
			drilldown: 'Заморозка',
            data: [83.6, 78.8, 98.5, 93.4, 106.0, 84.5, 105.0, 104.3, 91.2, 83.5, 106.6, 92.3]			
        }, {
            name: 'Разморозка',
			drilldown: 'Разморозка',
            data: [48.9, 38.8, 39.3, 41.4, 47.0, 48.3, 59.0, 59.6, 52.4, 65.2, 59.3, 51.2]
        }, {
            name: 'Увлажнение',
			drilldown: 'Увлажнение',
            data: [42.4, 33.2, 34.5, 39.7, 52.6, 75.5, 57.4, 60.4, 47.6, 39.1, 46.8, 51.1]	
        }],
        drilldown: {
            series: [{
                name: 'Сушка',
                id: 'Сушка',
                data: [
                    ['v11.0',24.13],
                    ['v8.0',17.2]
                ]
            }, {
                name: 'Заморозка',
                id: 'Заморозка',
                data: [
                    ['v40.0',5],
                    ['v41.0',4.32]
                ]
            }, {
                name: 'Разморозка',
                id: 'Разморозка',
                data: [
                    ['v35',2.76],
                    ['v36',2.32]
                ]
            }, {
                name: 'Увлажнение',
                id: 'Увлажнение',
                data: [
                    ['v8.0',2.56],
                    ['v7.1',0.77]
                ]
            }]
        }
    });
});
Показать

Диаграмма формируется, но расшифровка к сожалению не работает... Никак не могу понять в чем дело...
94. maljaev 793 05.12.16 16:59 Сейчас в теме
(88) Абсолютно всё можно. Только нужно юзать JS. В данном случае, например, данные "за кадром" можно хранить в массиве JS, при клике генерировать событие (например onclick), в 1С его обрабатывать. При хорошем одновременном знании JS и 1С можно творить чудеса. :)
TreeDogNight; +1 Ответить
91. TreeDogNight 18 11.11.16 12:44 Сейчас в теме
Поддержка скинов /тем оформлений;

Ещё хотел спросить, как можно подключить одно из предложенных тем оформлений? (Dark Unica, Sand Signika, Grid Light) Заранее благодарю за ответ!
92. TreeDogNight 18 19.11.16 13:06 Сейчас в теме
У кого нибудь работает расшифровка в этих диаграммах при запуске в Поле HTML документа в 1С? Я проверил, если открыть сформированную html-страницу в браузере (Google Chrome), то расшифровка работает. В чём может быть проблема?
93. TreeDogNight 18 25.11.16 20:38 Сейчас в теме
95. TreeDogNight 18 26.12.16 12:37 Сейчас в теме
Всё, решил проблему с работоспособностью расшифровок, в начале HTML-документа прописал:
<meta http-equiv="X-UA-Compatible" content="IE=9">
VVi3ard; pbahushevich; +2 Ответить
96. pbahushevich 15.04.17 12:22 Сейчас в теме
кстати если у вас отображаются графики немного криво и линии не соответствуют точкам
<meta http-equiv="X-UA-Compatible" content="IE=9"> - спасает,
при том что <meta http-equiv="X-UA-Compatible" content="IE=7"> совсем не помогает
maljaev; TreeDogNight; +2 Ответить
97. PerlAmutor 101 07.05.18 14:38 Сейчас в теме
(96) Я больше скажу. Я перепробовал варианты от IE=6 до IE=10 и IE=Edge, работает только IE=9. Еще я столкнулся с ошибкой: "about:security_1cv8c.exe" и "about:security_1cv8.exe". Пришлось добавлять в доверенную зону. Хорошо были права админа.
Оставьте свое сообщение

См. также

Альтернативный способ добавления элементов и реквизитов на формы Промо

Работа с интерфейсом v8 ERP2 УТ11 Россия Абонемент ($m)

Предлагаю альтернативный вариант добавления динамически создаваемых элементов и реквизитов на форму.

1 стартмани

09.09.2019    8765    10    bmk74    1    

Анимированная диаграмма

Работа с интерфейсом Россия Абонемент ($m)

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

1 стартмани

06.12.2019    2543    1    sergei1256    2    

[Взрыв шаблона!] Новый способ программной настройки условного оформления

Работа с интерфейсом v8::УФ 1cv8.cf Абонемент ($m)

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

1 стартмани

01.12.2019    9321    33    mszsuz    11    

Замена MS Project в интегрированных системах

WEB Работа с интерфейсом 1cv8.cf Абонемент ($m)

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

1 стартмани

31.10.2019    4673    8    PeterAlmazov    0    

Менеджер открытых форм Промо

Работа с интерфейсом v8::УФ 1cv8.cf Абонемент ($m)

Обработка получает информацию об открытых формах и позволяет ими манипулировать.

1 стартмани

13.04.2017    19807    35    SeiOkami    19    

"Живые" картинки со Snap.SVG

Практика программирования WEB Работа с интерфейсом v8 Абонемент ($m)

В статье рассмотрен пример использования http-сервисов для визуализации данных

1 стартмани

24.10.2019    12085    17    blackhole321    7    

Удобный выбор из таблицы/дерева в УФ

Практика программирования Работа с интерфейсом Разработка v8 v8::УФ 1cv8.cf Абонемент ($m)

Выбор из таблицы значений или дерева значений в выпадающем списке рядом с полем ввода - УФ, быстро и просто!

1 стартмани

12.08.2019    11055    6    Yashazz    18    

[Механизм интерфейса] Свой флажок (чекбокс)

Работа с интерфейсом v8 1cv8.cf Абонемент ($m)

Создадим свой флажок для интерфейса, используем простой универсальный алгоритм.

1 стартмани

09.08.2019    13207    16    rpgshnik    42    

Расширенная настройка динамического списка УФ Промо

Работа с интерфейсом v8 v8::УФ 1cv8.cf Абонемент ($m)

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

1 стартмани

31.05.2017    29914    146    tormozit    23    

Подсветка кода 1С в CherryTree

Работа с интерфейсом 1cv8.cf Абонемент ($m)

Здесь уже много обсуждалось, где хранить наработки и заметки в удобочитаемом виде для 1С. Предлагаю свой вариант хранения. CherryTree - удобный блокнот с иерархической структурой, поддерживающий много языков программирования.

1 стартмани

05.03.2019    3421    2    kknm    2    

Простая программка "Включения / Выключения" монитора

Работа с интерфейсом Абонемент ($m)

Программа, которая делает всю видимую область экрана черной.

1 стартмани

21.02.2019    3832    0    fierylions    0    

Расширение: Темы для 1С: Предприятия

Работа с интерфейсом v8::УФ 1cv8.cf Абонемент ($m)

Расширение позволяет сменить цвет оформления для интерфейса Такси.

1 стартмани

10.02.2019    12377    54    spec8s    10    

Открывашка ячеек таблиц Промо

Работа с интерфейсом v8 1cv8.cf Абонемент ($m)

Глобальное сочетание клавиш для открытия объекта по ссылке из текущей ячейки любой таблицы в большинстве управляемых форм

1 стартмани

27.10.2018    14933    12    tormozit    31    

Шпаргалка разработчика для работы с формами

Работа с интерфейсом v8 Россия Абонемент ($m)

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

3 стартмани

31.10.2018    14454    77    ELAM    3    

Меню пользователя в DOS-стиле, для скриптов PowerShell

Работа с интерфейсом Абонемент ($m)

PewerShell, наверное, долго будет отпугивать виндовых админов и пользователей своей непривлекательностью командного интерфейса...

1 стартмани

05.09.2018    5140    0    ddens    0    

Визуализация событий на временной шкале средствами "Поле HTML документа"

Работа с интерфейсом v8 1cv8.cf Абонемент ($m)

Интересный способ наглядно отобразить события на временной шкале. Например, может быть применен для красивого вывода документов по клиенту. Тестировалось на платформе 8.3.12.1469

1 стартмани

31.07.2018    21398    135    Plotks2017    27    

Лучший подарок для бухгалтера - счёты 8.2 (со звуком) Промо

Работа с интерфейсом v8 1cv8.cf Россия Абонемент ($m)

(Толстый клиент) Подарите бухгалтеру счеты, и он(а) Вас никогда не забудет.

1 стартмани

13.05.2011    38272    24    Tatitutu    45    

Продвинутое рисование в табличном документе (стрелок и не только)

Практика программирования Работа с интерфейсом v8 Абонемент ($m)

Вспоминаем геометрию и основы компьютерной графики. Матрицы и аффинные преобразования на плоскости.

1 стартмани

24.07.2018    13508    18    WalterMort    29    

Работа с данными выбора

Практика программирования Работа с интерфейсом v8 Россия Абонемент ($m)

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

1 стартмани

17.07.2018    39022    17    kalyaka    16    

Диаграмма продаж по группам номенклатуры.

Работа с интерфейсом Разное Оптовая торговля Розничная торговля Оптовая торговля Розничная торговля v8 1cv8.cf Абонемент ($m)

Круговая диаграмма создана с помощью библиотеки Highchart в 1С для обычных форм.

1 стартмани

21.06.2018    7298    6    needmic    4    

Интерактивный интерфейс Промо

Рабочее место Работа с интерфейсом v8 1cv8.cf Россия Абонемент ($m)

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

1 стартмани

29.10.2011    16594    2    Vin_Tik    9    

Управление состоянием формы через конечный автомат

Практика программирования Работа с интерфейсом v8 Россия Абонемент ($m)

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

1 стартмани

19.06.2018    14687    12    kalyaka    37    

Шаблон MVC для управляемого интерфейса

Работа с интерфейсом v8::УФ 1cv8.cf Россия Абонемент ($m)

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

1 стартмани

14.03.2018    19003    10    kalyaka    37    

Организация рабочего места: Сидим прямо (напоминалка)

Работа с интерфейсом Абонемент ($m)

Маленькая программа, которая напоминает нам о том, что нужно сидеть прямо.

1 стартмани

06.02.2018    7202    2    fierylions    0    

Цветовые схемы для конфигуратора 1С (Популярные цветовые схемы для C# - теперь и для 1С) (Теперь 8.2 - 8.3) Промо

Работа с интерфейсом v8 1cv8.cf Абонемент ($m)

Тёмные цветовые схемы кода. То, что было доступно всем передовым средствам разработки, теперь доступно и на 1С. 13.12.17 UPD: Теперь работает с платформой 8.3

3 стартмани

07.10.2013    32288    81    Chernov_Dmitriy    82    

Тестирование интерфейса в обычном приложении 8.2 при помощи SikuliX

Инструментарий разработчика Работа с интерфейсом v8 1cv8.cf Абонемент ($m)

Как же не хватает клиента тестирования на платформе 8.2. Не кликнешь на кнопку, не выберешь из списка, не проверишь видит ли надпись пользователь. Воспользуемся внешним инструментом SikuliX, который позволит нам протестировать функционал форм. Данный инструмент легко встраивается в линию сборки и может "дружить" с уже известным многим Open-source продуктами.

1 стартмани

03.01.2018    26980    4    kraynev-navi    41    

Программное формирование форматированной строки в стиле html+inline CSS

Работа с интерфейсом Инструментарий разработчика v8 1cv8.cf Абонемент ($m)

Если вам приходилось работать с форматированными строками программно, то вы знаете, какая это боль. Данное решение облегчает программное формирование таких строк.

1 стартмани

18.11.2017    28244    31    bonv    10    

Размеры управляемой формы

Практика программирования Работа с интерфейсом Универсальные функции v8 1cv8.cf Абонемент ($m)

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

1 стартмани

08.10.2017    25316    71    json    9    

Редактирование данных прямо в отчете СКД (как в Excel). Теперь с пересчетом итогов! Промо

Практика программирования Работа с интерфейсом v8::СКД 1cv8.cf Абонемент ($m)

Вам не подходит обычная форма ввода данных Клиент хочет прямо в отчете изменять цифры Тогда этот шаблон поможет вам быстро добавить в ваш отчет СКД механизм редактирования данных

2 стартмани

21.11.2012    38800    265    Visitizer    51    

Получение RGB (HEX) цвета

Работа с интерфейсом Абонемент ($m)

Получение RGB (HEX) цвета из любого вида цветов 1С.

1 стартмани

14.09.2017    14909    24    AlexxSys    10    

Управляемые формы. Итоги в динамических списках

Универсальные обработки Работа с интерфейсом v8::УФ 1cv8.cf Россия Абонемент ($m)

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

1 стартмани

15.12.2016    34042    12    argut    13    

Снимок экрана (ножницы)

Работа с интерфейсом Абонемент ($m)

Маленькая программа, которая делает снимок выделенной области экрана.

1 стартмани

28.11.2016    9415    3    fierylions    0    

Простой редактор плана помещения JavaScript

Практика программирования Работа с интерфейсом v8 1cv8.cf Абонемент ($m)

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

1 стартмани

23.11.2016    18988    90    igel9780    22    

Скринсейвер настоящего программиста

Работа с интерфейсом Абонемент ($m)

Ко Дню программиста знакомые прислали ссылку на коуб. Сделал из нее скринсейвер.

1 стартмани

14.09.2016    14459    3    capitan    7    

HTTP-сервис: отчеты [Расширение]

Практика программирования Работа с интерфейсом v8 1cv8.cf Абонемент ($m)

Это HTTP-сервис, который возвращает почти любой отчет в HTML, XLSX или в JSON. Сохраните вариант отчета, получите на него ссылку и можно получить данные без захода в 1С. Работает в конфигурациях на основе БСП 2.3.3+, для отчетов на СКД и в 1С 8.3.8+

2 стартмани

30.08.2016    24195    130    Stepa86    15    

Простые радости жизни программиста 1С: выбор типа значения

Работа с интерфейсом Практика программирования v8 1cv8.cf Абонемент ($m)

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

1 стартмани

17.02.2016    45927    49    yuraos    17    

Передача реквизитов объекта из основной формы в дополнительную и обратно на управляемых формах

Работа с интерфейсом v8 1cv8.cf Абонемент ($m)

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

1 стартмани

02.11.2015    29580    9    Wolex    29    

Асинхронная загрузка данных на Управляемую Форму. Прогресс бар (УФ 8.3). Индикация состояния процесса

Работа с интерфейсом Универсальные функции Внешние источники данных v8 v8::УФ 1cv8.cf Абонемент ($m)

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

1 стартмани

09.10.2015    33879    127    pbazeliuk    6    

Рисуем мышкой VBS

Работа с интерфейсом Абонемент ($m)

Приложение для развлечения дает возможность рисовать мышкой на своей же форме.

1 стартмани

01.10.2015    9949    1    sergeytor    7    

NativeDraw: Компонента рисования для 1С [V2.6.2]

Разработка внешних компонент Работа с интерфейсом v8 1cv8.cf Абонемент ($m)

Рисуйте в формах 1С, также предлагается небольшое количество нерисовальных функций

1 стартмани

13.07.2015    44301    419    ПерваяСистема    147    

Кнопки управления группировками табличного документа для управляемых форм

Работа с интерфейсом v8 1cv8.cf Абонемент ($m)

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

1 стартмани

02.06.2015    25135    23    unichkin    9    

Альтернативная визуализация данных для 1С 8.3.6

Работа с интерфейсом v8 1cv8.cf Абонемент ($m)

Нужен приятный Bi Dashboard? Или просто красивый график/диаграмма для сайта? Тогда эта разработка для Вас!

1 стартмани

29.05.2015    29583    78    vano-ekt    3    

Танцы на рабочем столе

Работа с интерфейсом Абонемент ($m)

На фоне картинки 1С танцуют девушки...

1 стартмани

25.05.2015    12354    0    fierylions    1    

Раскладка Русская - Английская для 1С

Работа с интерфейсом Абонемент ($m)

Раскладка по нажатию и удерживанию правого ALT переключается на английский язык и симулирует нажатие кнопки Shift (для символов, исключая сами буквы).

1 стартмани

03.04.2015    11517    4    fierylions    1