Прогресс бар Как подключить прогресс бар к процедурам двум, чтобы видить статус выполнения этих процедур??
есть две процедуры и треться является кнопкой, которая выполняет по очереди те две, вот как реализовать это все? чтобы при нажатии третьей процедуры/кнопки я видел в процентах состояние. Код прогресс бара есть.
Процедура КнопкаВыполнитьНажатие()
ПР=Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
Пр.ОтображатьПроцентВывода=Истина ;
Эл=Новый ЭлементРезультатаКомпоновкиДанных;
ПР.НачатьВывод();
Для А=1 По 100 Цикл
Эл.ПроцентВывода=А;
//задержка, чтобы разглядеть
Для Б=1 По 10000 Цикл КонецЦикла;
ПР.ВывестиЭлемент(Эл);
КонецЦикла;
ПР.ЗакончитьВывод();
КонецПроцедуры
я новичек, что тут куда написать нужно чтобы процесс бар выполнялся при выполнении процедур
Категория:
Внешние компоненты Вертикальная автофиксация для СКД В СКД очень не хватает возможности автофиксации строк. Обусловлено это невозможностью однозначно определить их количество в общем случае. Однако в большинстве случаев это можно сделать
Обращаю ваше внимание, что приведенная процедура работает не всегда корректно. Но в большинстве случаев она сделает свое дело.
Код 1C v 8.х
Процедура ЛксВывестиРезультатКомпоновкиСАвтофиксациейСтрок(Таб, ПроцессорКомпоновкиДанных, ЭлементыРасшировки,
Знач МассивИгнорируемыхПолей = Неопределено, РазрешитьПрерывание = Истина) Экспорт
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода. УстановитьДокумент( Таб) ;
ПроцессорВывода. НачатьВывод( ) ;
ФиксацияВыполнена = Ложь ;
Если МассивИгнорируемыхПолей = Неопределено Тогда
МассивИгнорируемыхПолей = Новый Массив;
КонецЕсли ;
Пока Истина Цикл
ЭлементРезультатаКомпоновкиДанных = ПроцессорКомпоновкиДанных. Следующий( ) ;
Если ЭлементРезультатаКомпоновкиДанных = Неопределено Тогда
Прервать ;
КонецЕсли ;
Если Не ФиксацияВыполнена Тогда
Для Каждого ЗначениеПараметра Из ЭлементРезультатаКомпоновкиДанных. ЗначенияПараметров Цикл
Если ТипЗнч( ЗначениеПараметра. Значение) = Тип( "ИдентификаторРасшифровкиКомпоновкиДанных" ) Тогда
ЗначенияПолейРасшифровки = ЭлементыРасшировки[ЗначениеПараметра. Значение]. ПолучитьПоля( ) ;
Для Каждого ЗначениеПоляРасшифровки Из ЗначенияПолейРасшифровки Цикл
Если МассивИгнорируемыхПолей. Найти( ЗначениеПоляРасшифровки. Поле) = Неопределено Тогда
Таб. ФиксацияСверху = Таб. ВысотаТаблицы;
ФиксацияВыполнена = Истина ;
Прервать ;
КонецЕсли ;
КонецЦикла ;
Если ФиксацияВыполнена Тогда
Прервать ;
КонецЕсли ;
КонецЕсли ;
КонецЦикла ;
КонецЕсли ;
ПроцессорВывода. ВывестиЭлемент( ЭлементРезультатаКомпоновкиДанных) ;
Если РазрешитьПрерывание Тогда
ОбработкаПрерыванияПользователя( ) ;
КонецЕсли ;
КонецЦикла ;
ПроцессорВывода. ЗакончитьВывод( ) ;
КонецПроцедуры
tormozit Категория:
Схема Компоновки Данных Вывод картинки в строках отчета на СКД В этом примере показан метод вывода в строку отчета картинки, вид которой завист от значения другого поля.
Ради примера, в отчет выведем справоник «Банки» - реквизит «Ссылка» и картинку возле этого реквизита. Вид картинки зависит от значения реквизита «ЭтоГруппа»
Создаем новый
отчет - Основная схема компоновки данных:
В
Вычисляемые поля добавлено поле «ПолеКартинка». В выражение добавлено значение «%Картинка%», поэтому выражению будем искать область ячеек куда необходимо вставить нашу картинку:
В это поле будет выводится картинка.
В настройках указываем:
В модуле объекта пишем код:
Код 1C v 8.х Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь ;
ДокументРезультат. Очистить( ) ;
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
Макет = КомпоновщикМакета. Выполнить( СхемаКомпоновкиДанных, КомпоновщикНастроек. Настройки, ДанныеРасшифровки) ;
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки. Инициализировать( Макет, , ДанныеРасшифровки) ;
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода. УстановитьДокумент( ДокументРезультат) ;
ПолеПоКоторомуНеобходимоПолучитьЗначение = "Ссылка" ;
ПроцессорВывода. НачатьВывод( ) ;
Пока истина Цикл
ЭлементРезультата = ПроцессорКомпоновки. Следующий( ) ;
Если ЭлементРезультата = Неопределено Тогда
прервать ;
КонецЕсли ;
ПроцессорВывода. ВывестиЭлемент( ЭлементРезультата) ;
Если ЭлементРезультата. ЗначенияПараметров. Количество( ) > 0 Тогда
ЗначениеВыводимыхДанных = Неопределено ;
Для каждого ЗначениеПараметра из ЭлементРезультата. ЗначенияПараметров Цикл
Если ТипЗнч( ЗначениеПараметра. Значение) = Тип( "ИдентификаторРасшифровкиКомпоновкиДанных" ) Тогда
ПоляРасшифровки = ДанныеРасшифровки. Элементы[ЗначениеПараметра. Значение]. ПолучитьПоля( ) ;
Для Каждого ПолеРасшифровки из ПоляРасшифровки Цикл
Если ПолеРасшифровки. Поле = ПолеПоКоторомуНеобходимоПолучитьЗначение Тогда
ЗначениеВыводимыхДанных = ПолеРасшифровки. Значение;
Прервать ;
КонецЕсли ;
КонецЦикла ;
КонецЕсли ;
КонецЦикла ;
Если ЗначениеЗаполнено( ЗначениеВыводимыхДанных) Тогда
Рис = ДокументРезультат. Рисунки. Добавить( ТипРисункаТабличногоДокумента. Картинка) ;
Рис. РазмерКартинки = РазмерКартинки. РеальныйРазмер;
Индекс = ДокументРезультат. Рисунки. Индекс( Рис) ;
Если ЗначениеВыводимыхДанных. ЭтоГруппа Тогда
ДокументРезультат. Рисунки[Индекс]. Картинка = БиблиотекаКартинок. ГруппаИЭлемент;
Иначе
ДокументРезультат. Рисунки[Индекс]. Картинка = БиблиотекаКартинок. Сформировать;
КонецЕсли ;
ВысотаТабДок = ДокументРезультат. ВысотаТаблицы;
ОбластьДляКартинки = ДокументРезультат. НайтиТекст( "%Картинка%" ) ;
Если ОбластьДляКартинки < > Неопределено Тогда
ДокументРезультат. Рисунки[Индекс]. Расположить( ОбластьДляКартинки) ;
ОбластьДляКартинки. Текст = "%КартинкаДобавлена%"
КонецЕсли ;
КонецЕсли ;
КонецЕсли ;
КонецЦикла ;
ПроцессорВывода. ЗакончитьВывод( ) ;
КонецПроцедуры
В результате:
Скачать пример этого отчета(Работает в любой конфишурации где есть справочник Банки):
Скачивать файлы может только зарегистрированный пользователь! Категория:
Схема Компоновки Данных Индикатор выполнения Код 1C v 8.х
Выборка = РезультатЗапроса. Выбрать( ) ;
Индикатор = ЭлементыФормы. ИндикаторПеребора;
Индикатор. МаксимальноеЗначение = Выборка. Количество( ) ;
Индикатор. Значение = 0 ;
Пока Выборка. Следующий( ) Цикл
Индикатор. Значение = Индикатор. Значение + 1 ;
КонецЦикла ;
Код 1C v 8.х
Выборка = РезультатЗапроса. Выбрать( ) ;
Индикатор = ЭлементыФормы. ИндикаторПеребора;
Индикатор. МаксимальноеЗначение = Выборка. Количество( ) ;
Индикатор. Значение = 0 ;
Индикатор. ОтображатьПроценты = Истина ;
Индикатор. СтильОтображения = РежимСглаживанияИндикатора. Прерывистый;
Индикатор. Ориентация = Ориентация. Вертикально;
Индикатор. Шаг = 0.1 ;
Пока Выборка. Следующий( ) Цикл
Индикатор. Значение = Индикатор. Значение + 1 ;
КонецЦикла ;
Индикатор в строке состояния с помощью СКД
Иногда хочется видеть подобие индикатора, но в строке состояния. Это можно сделать только с помощью СКД, и то есть небольшой минус: невозможно убрать или изменить надпись «Вывод отчета». Сделать это можно примерно следующим образом:
Код 1C v 8.х ПроцессорКомпоновки = Новый ПроцессорВыводаРезультатаКомпоновкиДанных
ВТабличныйДокумент;
ПроцессорКомпоновки. ОтображатьПроцентВывода = Истина ;
ЭлементКомпоновки = Новый ЭлементРезультатаКомпоновкиДанных;
ПроцессорКомпоновки. НачатьВывод( ) ;
Для Сч = 1 По 100 Цикл
ЭлементКомпоновки. ПроцентВывода = Сч;
ПроцессорКомпоновки. ВывестиЭлемент( ЭлементКомпоновки) ;
КонецЦикла ;
ПроцессорКомпоновки. ЗакончитьВывод( ) ;
Для 1С 7.7 посмотрите
v7: Прогресс бар в строке состояния Категория:
Встроенные Функции Как закрепить шапку таблицы отчета? Код 1C v 8.х
Процедура скдФиксироватьШапкуОтчета(ТабДок, Фиксировать, Строка = "Номенклатура" , Поправка = 0) Экспорт
Если Фиксировать Тогда
Область = ТабДок. НайтиТекст( Строка, , , , Истина ) ;
ТабДок. ФиксацияСверху = ? ( ЗначениеЗаполнено( Область) , Область. Верх + Поправка, 0 ) ;
Иначе
ТабДок. ФиксацияСверху = 0 ;
КонецЕсли ;
КонецПроцедуры
Код 1C v 8.х
ПроцессорВывода. НачатьВывод( ) ;
ТаблицаЗафиксирована = Ложь ;
Пока Истина Цикл
ЭлементРезультата = ПроцессорКомпоновкиДанных. Следующий( ) ;
Если ЭлементРезультата= Неопределено Тогда
Прервать ;
Иначе
ПроцессорВывода. ВывестиЭлемент( ЭлементРезультата) ;
Если Не ТаблицаЗафиксирована И ЭлементРезультата. ЗначенияПараметров. Количество( ) > 0 Тогда
ТаблицаЗафиксирована = Истина ;
Таб. ФиксацияСверху = Таб. ВысотаТаблицы;
КонецЕсли ;
КонецЕсли ;
КонецЦикла ;
ПроцессорВывода. ЗакончитьВывод( ) ;
Код 1C v 8.х
Процедура глВывестиРезультатКомпоновкиСАвтофиксациейСтрок( Таб,
ПроцессорКомпоновкиДанных,
ЭлементыРасшировки,
Знач МассивИгнорируемыхПолей = Неопределено,
РазрешитьПрерывание = Истина) Экспорт
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода. УстановитьДокумент( Таб) ;
ПроцессорВывода. НачатьВывод( ) ;
ФиксацияВыполнена = Ложь ;
Если МассивИгнорируемыхПолей = Неопределено Тогда
МассивИгнорируемыхПолей = Новый Массив;
КонецЕсли ;
Пока Истина Цикл
ЭлементРезультатаКомпоновкиДанных = ПроцессорКомпоновкиДанных. Следующий( ) ;
Если ЭлементРезультатаКомпоновкиДанных = Неопределено Тогда
Прервать ;
КонецЕсли ;
Если Не ФиксацияВыполнена Тогда
Для Каждого ЗначениеПараметра Из ЭлементРезультатаКомпоновкиДанных. ЗначенияПараметров Цикл
Если ТипЗнч( ЗначениеПараметра. Значение) = Тип( "ИдентификаторРасшифровкиКомпоновкиДанных" ) Тогда
ЗначенияПолейРасшифровки = ЭлементыРасшировки[ЗначениеПараметра. Значение]. ПолучитьПоля( ) ;
Для Каждого ЗначениеПоляРасшифровки Из ЗначенияПолейРасшифровки Цикл
Если МассивИгнорируемыхПолей. Найти( ЗначениеПоляРасшифровки. Поле) = Неопределено Тогда
Таб. ФиксацияСверху = Таб. ВысотаТаблицы;
ФиксацияВыполнена = Истина ;
Прервать ;
КонецЕсли ;
КонецЦикла ;
Если ФиксацияВыполнена Тогда
Прервать ;
КонецЕсли ;
КонецЕсли ;
КонецЦикла ;
КонецЕсли ;
ПроцессорВывода. ВывестиЭлемент( ЭлементРезультатаКомпоновкиДанных) ;
Если РазрешитьПрерывание Тогда
#Если Клиент тогда
ОбработкаПрерыванияПользователя( ) ;
#КонецЕсли
КонецЕсли ;
КонецЦикла ;
ПроцессорВывода. ЗакончитьВывод( ) ;
КонецПроцедуры
Категория:
Схема Компоновки Данных