Как прервать выполнение отчета программно?
По теме из базы знаний
Ответы
В избранное
Подписаться на ответы
Сортировка:
Древо развёрнутое
Свернуть все
Что за признак такой? В какой момент решается, и кем, что признак необходимо установить? Признак является результатом отчета или его параметром?
Схема очень странная.
Можно прервать выполнение фонового задания в котором формируется отчет (если оно у вас фоновое). Если формируется с блокировкой пользовательского интерфейса, то ничего не сделать, т.к. вызов к СУБД без прерывания соединения не отменить.
Схема очень странная.
Можно прервать выполнение фонового задания в котором формируется отчет (если оно у вас фоновое). Если формируется с блокировкой пользовательского интерфейса, то ничего не сделать, т.к. вызов к СУБД без прерывания соединения не отменить.
(4) да какая разница. обработка/отчет
в документе:
в отчете:
в документе:
Процедура кнОтчетНажатие(Элемент)
Обр=Отчеты.Отчет1.Создать();
Обр.флЗаписывать=флЗаписывать;
Обр.Сформировать();
КонецПроцедуры
в отчете:
Процедура Сформировать() Экспорт
Сообщить("Запустили отчет");
Если флЗаписывать Тогда
Сообщить("Прерываем");
Возврат;
КонецЕсли;
Сообщить("Работаем дальше");
КонецПроцедуры
Показать
В документе:
в вызываемой обработке:
Процедура кнОтчетНажатие(Элемент)
Обр=Обработки.Обработка1.Создать();
Обр.флЗаписывать=флЗаписывать;
Обр.Сформировать();
КонецПроцедуры
в вызываемой обработке:
Процедура Сформировать() Экспорт
Если флЗаписывать Тогда
Возврат;
КонецЕсли;
Сообщить("Работаем дальше");
КонецПроцедуры
(10) Вам просто нужно закрыть форму отчета после того как пользователь нажмет кнопку "Записать"? Или запись должна происходить автоматически после того как отчет сформируется? Или отчет вообще должен формироваться для пользователя неявно и его результаты должны куда-то записываться?
(14) ОМГ
пользователь на какую кнопку жмет? Сформировать или Записать?
Если на "Сформировать" - смотрите какая процедура висит на этой кнопке и в конце процедуры пишете:
Если ПараметрЗаписать Тогда // Это проверка вашего параметра булево
ЭтаФорма.Закрыть();
КонецЕсли;
Если пользователь жмет на другую кнопку - ищете процедуру для нее и делаете то же самое.
пользователь на какую кнопку жмет? Сформировать или Записать?
Если на "Сформировать" - смотрите какая процедура висит на этой кнопке и в конце процедуры пишете:
Если ПараметрЗаписать Тогда // Это проверка вашего параметра булево
ЭтаФорма.Закрыть();
КонецЕсли;
Если пользователь жмет на другую кнопку - ищете процедуру для нее и делаете то же самое.
(20) а форму нужно закрывать в процедуре Сформировать()
&НаКлиенте
Процедура Сформировать(Команда)
ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка);
Если ПараметрЗакрыть Тогда
ЭтаФорма.Закрыть();
КонецЕсли;
КонецПроцедуры
Показать
в общем получилось примерно так :
в расширении в ФормаОтчета
спасибо за помощь
в расширении в ФормаОтчета
&НаКлиенте
&После("ОтчетСкомпоноватьРезультат")
Процедура СН_ОтчетСкомпоноватьРезультат(Команда)
Регистратор = ложь;
Попытка
Регистратор = ложь;
Регистратор=Отчет.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.Найти(отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("проба")).ИдентификаторПользовательскойНастройки).Значение;
если Регистратор = истина тогда
этаформа.Закрыть();
конецесли;
Исключение
КонецПопытки;
КонецПроцедуры
Показатьспасибо за помощь