Как с помощью запроса в динамическом списке вывести микрографик? Все достаточно просто.
Необходимо в запрос добавить поле:
Код 1C v 8.2 УП ПОДСТРОКА(&СтрокаПроценты, 1, ВЫРАЗИТЬ(ВложенныйЗапрос.Процент * &КоэффициентПроценты КАК ЧИСЛО(3, 0))) КАК ПроцентМикрографик
Вывести его в динамический список.
И добавить в процедуре ПриСозданииНаСервере, какой шаблон мы хотим использовать для микрографика:
Код 1C v 8.2 УП &НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// Задать для каждого случая конкретно
// В этой строке содержится шаблон для 100%
// В реальной задаче можете изменить длинну, или заполнить другими символами
СтрокаПроценты = "|||||||||||||||||||||||||||";
//СтрокаПроценты = "*************************";
//СтрокаПроценты = "·························";
//СтрокаПроценты = "•••••••••••••••••••••••••";
// Считается автоматически
ДлинаСтрокаПроценты = СтрДлина(СтрокаПроценты);
КоэффициентПроценты = ДлинаСтрокаПроценты / 100;
ДинСписок.Параметры.УстановитьЗначениеПараметра("СтрокаПроценты", СтрокаПроценты);
ДинСписок.Параметры.УстановитьЗначениеПараметра("КоэффициентПроценты", КоэффициентПроценты);
...
Получим следующее:
Вот обработка, демонстрирующее все вышесказанное:
Скачивать файлы может только зарегистрированный пользователь!
www.softonit.ru Категория:
Запросы Индикатор выполнения Код 1C v 8.х // Индикатор выполнения обработки результата запроса
Выборка = РезультатЗапроса.Выбрать();
Индикатор = ЭлементыФормы.ИндикаторПеребора;
Индикатор.МаксимальноеЗначение = Выборка.Количество();
Индикатор.Значение = 0;
Пока Выборка.Следующий() Цикл
Индикатор.Значение = Индикатор.Значение + 1;
КонецЦикла;
Код 1C v 8.х // Индикатор выполнения вывода результата запроса с расширенной настройкой
Выборка = РезультатЗапроса.Выбрать();
Индикатор = ЭлементыФормы.ИндикаторПеребора;
Индикатор.МаксимальноеЗначение = Выборка.Количество();
Индикатор.Значение = 0;
Индикатор.ОтображатьПроценты = Истина;
Индикатор.СтильОтображения = РежимСглаживанияИндикатора.Прерывистый;
Индикатор.Ориентация = Ориентация.Вертикально;
Индикатор.Шаг = 0.1;
Пока Выборка.Следующий() Цикл
Индикатор.Значение = Индикатор.Значение + 1;
КонецЦикла;
Индикатор в строке состояния с помощью СКД
Иногда хочется видеть подобие индикатора, но в строке состояния. Это можно сделать только с помощью СКД, и то есть небольшой минус: невозможно убрать или изменить надпись «Вывод отчета». Сделать это можно примерно следующим образом:
Код 1C v 8.х ПроцессорКомпоновки = Новый ПроцессорВыводаРезультатаКомпоновкиДанных
ВТабличныйДокумент;
ПроцессорКомпоновки.ОтображатьПроцентВывода = Истина ;
ЭлементКомпоновки = Новый ЭлементРезультатаКомпоновкиДанных;
ПроцессорКомпоновки.НачатьВывод();
//Считаем проценты по своему алгоритму, для примера:
Для Сч = 1 По 100 Цикл
ЭлементКомпоновки.ПроцентВывода = Сч;
ПроцессорКомпоновки.ВывестиЭлемент(ЭлементКомпоновки);
КонецЦикла;
ПроцессорКомпоновки.ЗакончитьВывод();
Для 1С 7.7 посмотрите
v7: Прогресс бар в строке состояния Категория:
Встроенные Функции