Если сильно хочется запускать отчет "монопольно", то это, в принципе, решается.
Заведите, например, кодъюнит со свойством SingleInstance = TRUE.
Заведите в нем переменную типа ReportIsRunning : boolean.
Заведите функции GetReportStatus и SetReportStatus, которые возвращают значение и устанавливают значение этой переменной.
На OnPreReport напишите что-нибудь типа
IF CodeUnitName.GetReportStatus THEN
CurrReport.QUIT
ELSE
CodeUnitName.SetReportStatus(TRUE);
На OnPostReport либо
CodeUnitName.SetReportStatus(FALSE) либо CLEAR(CodeUnitName).
Правда, есть опасность, что в случае некорректного завершения работы отчета (т.е. OnPostReport не отработается) случится бяка и отчет больше никогда не запустится =)
Также можно установить подобный флажок не через кодъюнит, а используя поле какой-нибудь настроечной таблички (а можно и не настроечной...).
Но штука имхо не особо полезная. Вполне возможно наворотить делов и не из того же отчета =)
2 Mazzy: не согласен насчет
Цитата:
Цитата:
--------------------------------------------------------------------------------
Изначально опубликовано Yuriy
Спешу не согласиться с Muzzy, в Navision объекты типа Report также выполняют роль периодических заданий (например Коррекция Себестоимости).
--------------------------------------------------------------------------------
Да, есть. Поубивал бы.
Отчет - это весьма удобный инструмент для того, чтобы шарится по табличкам. Оч. удобно организованный цикл. Так что для периодических заданий он часто очень удобен. Имхо не зря таки товарищи прилепили туда свойство ProcessingOnly