gifts2017

Микрографики в динамическом списке 1С 8.2

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

Пример использования микрографиков в динамическом списке

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

Что такое микрографик? Микрографик - это столбец, который в графическом виде представляет информацию изменения какой-либо величины. Этот вид представления значительно удобнее обычного числового представления.

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

В качестве 100% процентов берется строка шаблон например "|||||||||||||||||||||||||||". И для заданного процента выводится часть этой строки.

Последовательность шагов для внедрения в свой динамический список:

1. Мы в настройках динамического списка указываем, что это произвольный запрос.

2. В запросе добавляем столбец:

ПОДСТРОКА(&СтрокаПроценты, 1, ВЫРАЗИТЬ(Процент *&КоэффициентПроценты КАК ЧИСЛО(3, 0))) КАК ПроцентМикрографик

Поле "Процент" замените на Ваш столбец с процентом.

3. Добавляем этот столбец в динамический список на форму

4. При начале работы заполняем параметры в запросе динамического списка СтрокаПроценты и КоэффициентПроценты.

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    
    // Задать для каждого случая конкретно
    // В этой строке содержится шаблон для 100%
    // В реальной задаче можете изменить длинну, или заполнить другими символами
    СтрокаПроценты = "|||||||||||||||||||||||||||";	
    //СтрокаПроценты = "*************************";
    //СтрокаПроценты = "`32;`32;`32;`32;`32;`32;`32;`32;`32;`32;`32;`32;`32;`32;`32;`32;`32;`32;`32;`32;`32;`32;`32;`32;`32;";
    //СтрокаПроценты = "·························";
    //СтрокаПроценты = "•••••••••••••••••••••••••";
        
    // Считается автоматически
    ДлинаСтрокаПроценты = СтрДлина(СтрокаПроценты);
    КоэффициентПроценты	= ДлинаСтрокаПроценты / 100;
    ДинСписок.Параметры.УстановитьЗначениеПараметра("СтрокаПроценты", СтрокаПроценты);
    ДинСписок.Параметры.УстановитьЗначениеПараметра("КоэффициентПроценты", КоэффициентПроценты);
...

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

www.softonit.ru

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

Наименование Файл Версия Размер
Микрографики в динамическом списке 1С 8.2.epf 88
.epf 8,28Kb
11.02.13
88
.epf 8,28Kb Скачать

См. также

Подписаться Добавить вознаграждение
Комментарии
1. Александр Капустин (kapustinag) 12.02.13 01:55
Надо будет попробовать. "Тормозов" на больших списках не наблюдается?
Имею в виду чисто субъективное сравнение поведения списка с микрографиком и без.
2. Юрий Осипов (yuraos) 12.02.13 06:03
Все гениальное - просто!!!
:)
3. Юрий Осипов (yuraos) 12.02.13 06:06
(1) kapustinag, я думаю не больще чем обычно.
вообще когда после УПП-1.2 я вдруг зачем-то открываю Документооборот,
то у меня (наверное "чисто субъективно") возникает ощущение:
блин, какие тормоза!!! и как все неудобно !!!
4. anry mc (AnryMc) 12.02.13 08:14
(0)

Автор http://infostart.ru/profile/72825/
23.01.2011 http://infostart.ru/public/80628/

Автор http://infostart.ru/profile/46936/
25.01.2011 http://infostart.ru/public/80691/

Ну и еще

Автор http://infostart.ru/profile/26500/
21.09.2011http://infostart.ru/public/91167/

Не вижу принципиальных отличий кроме "привязки" к динамическому списку
sergos3331; yuraos; +2 Ответить 2
5. Юрий Осипов (yuraos) 12.02.13 09:05
(4) AnryMc, дасс
коллег надо уважать
их не надо аскор... то есть не цитировать
:)
Ну а динамические списки -
енто новомодный ныне прогрессивный управляемый интерфейс
за что не грех и плюсанут.
6. Виталий Барилко (Diversus) 12.02.13 09:14
(4) Я в публикации указал ссылку на одно из решений для табличной части.
У меня задача стояла к работе в динамическом списке тут есть большая разница.
Т.е. необходимо, что бы микрографик строился в запросе, а не отдельной процедурой...
Согласитесь это большая разница. В 8.1 аналогично.

Упоминать микрографики для 7.7 я не посчитал нужным. Это я вообще не смотрел.
Если надо перечислить все решения, то давайте тогда и Excel к списку препишем :)
7. Сергей Борисов (juntatalor) 12.02.13 13:32
Задумался, где бы применить в самописной конфиге. Интересная реализация.
8. Юрий Осипов (yuraos) 12.02.13 18:56
(6) Diversus,
вообще-то и для табличной части в неуправляемой форме
все можно посчитать запросом в обработчике ПриПолученииДанных()
а затем вывести вывести в цикле перебрав оформления строк табличного поля.
Так даже рекомендуется делать, чтобы формы меньше "тормозили".
9. Виталий Барилко (Diversus) 12.02.13 19:08
(8) yuraos, все верно. Я немного не про это, а про сам подход.
Я предлагаю в примере достаточно простую реализацию красивого вывода микрографиков в динамическом списке, который будет работать достаточно быстро. Может кому то пригодится.
10. Александр Серов (Itilive.ru) 12.02.13 21:43
Офигенно!!! Автор умничка!
11. Андрей Краснокутский (Andry.Boris) 13.02.13 01:10
А мне понравилось... автору зачет.
12. Alex Stasyuk (GreenFox) 13.02.13 01:24
Согласен автор молодец - не поленился продумать и переделать.
13. Игорь Фелькер (Brawler) 13.02.13 08:34
Идея не нова))) Я в лицейские годы на Fox Pro в досе еще так графики делал)))
14. Михаил Русанов (RainyAugust22) 13.02.13 15:16
15. Андрей Окипний (DMSDeveloper) 17.02.13 10:44
(13) А о гениальной идее речи нет! Автор показывает реализацию в 1С, и только в 1С!
16. Сергей Куликов (ksvd) 19.02.13 09:57
Спасибо за конкретный рабочий пример
17. Денис Яковлев (iceflash) 12.08.13 21:32
Вообще не вижу инноваций... можно ASCII графикой рисовать=) ASCII арт делать
18. Денис Яковлев (iceflash) 12.08.13 21:43
Еще можно исхитрится - выводить в поле СКД! Ау=)
19. Виталий Барилко (Diversus) 12.08.13 21:46
(18) Можно все. Лишь бы красиво и функционально было.
20. Константин Марков (markovki) 24.09.13 10:28
Автору благодарность за публикацию и за хороший пример
22. Юрий Лазаренко (TitanLuchs) 23.10.13 13:46
23. Сергей Галюк (dj_serega) 03.04.15 11:35
Спасибо!! Крутая штука получилась. И главное что когда-то видел, а теперь пригодилась ;)