Как сделать паузу при выполнении кода с информативным сообщением для пользователя Реализация красивой задержки в обработках или в любом другом месте программного кода
Код 1C v 8.х
// Предваряющий код
// Место, где необходимо сделать паузу и съесть твикс )
// И, чтобы пользователь сильно не волновался вывести красивое окно с картинкой
//...
Если ФлажокИспользоватьПаузуМеждуДокументами Тогда
Форма = ПолучитьФорму("ФормаПаузы");
Форма.ПараметрФормы = ДлительностьПаузы;
Форма.ОткрытьМодально();
КонецЕсли;
//...
// Продолжить выполнение кода
Код 1C v 8.х
// Молуль формы "ФормаПаузы"
// В реквизитах формы создаем новый с названием ПараметрФормы к который при открытии передадим период задержки
Процедура ЗакрытиеФормыОбработки()
ЭтаФорма.Закрыть();
КонецПроцедуры
Процедура ПриОткрытии()
ПодключитьОбработчикОжидания("ЗакрытиеФормыОбработки", ПараметрФормы);
КонецПроцедуры
П.С.
При использовании в боевой базе был достигнут эффект зависания окна. Метод был использован в цикле, и после около 200 циклов окно перестало откликаться. Так что рекомендую использовать этот метод в маленьких циклах. Решил задачу через
Код 1C v 8.х
Предупреждение("Пауза...", ДлительностьПаузы);
Категория:
Работа с Формой (Диалог) и её элементами Как сформировать отчет при открытии? Проще всего сделать это путем передачи параметра в отчет:
Код 1C v 8.2 УП &НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрВыполненияКоманды)
ПараметрФормы = Новый Структура("СформироватьПриОткрытии", Истина);
ОткрытьФорму(
"Отчет.Материалы.Форма",
ПараметрыФормы,
ПараметрВыполненияКоманды.Источник,
ПараметрВыполненияКоманды.Уникальность,
ПараметрВыполненияКоманды.Окно
);
КонецПроцедуры
Но можно сделать это и самостоятельно из кода управляемой формы отчета:
Код 1C v 8.2 УП &НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
АвтоОтображениеСостояния = РежимАвтоОтображенияСостояния.НеОтображать;
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
СформироватьОтчетНаСервере();
КонецПроцедуры
&НаСервере
Процедура СформироватьОтчетНаСервере()
ЭтотОтчет = РеквизитФормыВЗначение("Отчет");
ЭтотОтчет.СкомпоноватьРезультат(Результат);
КонецПроцедуры
Категория:
Схема Компоновки Данных