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



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

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

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

Основная идея встраивания мигрографика в собственный динамический список в любую конфигурацию на 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

24 Comments

  1. kapustinag

    Надо будет попробовать. «Тормозов» на больших списках не наблюдается?

    Имею в виду чисто субъективное сравнение поведения списка с микрографиком и без.

    Reply
  2. yuraos

    Все гениальное — просто!!!

    🙂

    Reply
  3. yuraos

    (1) kapustinag, я думаю не больще чем обычно.

    вообще когда после УПП-1.2 я вдруг зачем-то открываю Документооборот,

    то у меня (наверное «чисто субъективно») возникает ощущение:

    блин, какие тормоза!!! и как все неудобно !!!

    Reply
  4. AnryMc

    (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/

    Не вижу принципиальных отличий кроме «привязки» к динамическому списку

    Reply
  5. yuraos

    (4) AnryMc, дасс

    коллег надо уважать

    их не надо аскор… то есть не цитировать

    🙂

    Ну а динамические списки —

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

    за что не грех и плюсанут.

    Reply
  6. Diversus

    (4) Я в публикации указал ссылку на одно из решений для табличной части.

    У меня задача стояла к работе в динамическом списке тут есть большая разница.

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

    Согласитесь это большая разница. В 8.1 аналогично.

    Упоминать микрографики для 7.7 я не посчитал нужным. Это я вообще не смотрел.

    Если надо перечислить все решения, то давайте тогда и Excel к списку препишем 🙂

    Reply
  7. juntatalor

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

    Reply
  8. yuraos

    (6)

    вообще-то и для табличной части в неуправляемой форме

    все можно посчитать запросом в обработчике ПриПолученииДанных()

    а затем вывести вывести в цикле перебрав оформления строк табличного поля.

    Так даже рекомендуется делать, чтобы формы меньше «тормозили».

    Reply
  9. Diversus

    (8) yuraos, все верно. Я немного не про это, а про сам подход.

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

    Reply
  10. Itilive.ru

    Офигенно!!! Автор умничка!

    Reply
  11. Andry.Boris

    А мне понравилось… автору зачет.

    Reply
  12. GreenFox

    Согласен автор молодец — не поленился продумать и переделать.

    Reply
  13. Brawler

    Идея не нова))) Я в лицейские годы на Fox Pro в досе еще так графики делал)))

    Reply
  14. RainyAugust22

    + Прикольно 😀

    Reply
  15. DMSDeveloper

    (13) А о гениальной идее речи нет! Автор показывает реализацию в 1С, и только в 1С!

    Reply
  16. ksvd

    Спасибо за конкретный рабочий пример

    Reply
  17. iceflash

    Вообще не вижу инноваций… можно ASCII графикой рисовать=) ASCII арт делать

    Reply
  18. iceflash

    Еще можно исхитрится — выводить в поле СКД! Ау=)

    Reply
  19. Diversus

    (18) Можно все. Лишь бы красиво и функционально было.

    Reply
  20. markovki

    Автору благодарность за публикацию и за хороший пример

    Reply
  21. angele

    +1

    Reply
  22. TitanLuchs

    Нормуль, чо!

    Reply
  23. dj_serega

    Спасибо!! Крутая штука получилась. И главное что когда-то видел, а теперь пригодилась 😉

    Reply
  24. Brawler

    Баловался такой фигней в районе 2002 года на FoxPro под MS DOS))).

    Reply

Leave a Comment

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