Идея такого анализа основана использовании информации о конфигурации, прописываемой в файле внешнего отчета при сохранении, в частности, используется идентификатор и комментарий к метаданным (там обычно указывают номер текущего релиза). Извлекаем ее перед открытием внешнего отчета и сравниваем с Метаданные.Комментарий и Метаданные.Идентификатор. Можно еще поискать одноименный встроенный отчет, получить права, принять решение, какой открыть. В конфигурации две функции:
глФайлСоответствуетВерсииКонфигурации( <ИмяФайла>,
<ПроверкаПоНаличию>,
<ПроверятьАтрибуты>,
<ТекКонфиг>,
<ТекВерсия>)
Функция сравнивает идентификатор и комментарий конфигурации во внешнем отчете и возвращает число:
-3 : файл внешнего отчета не существует
-2 : идентификатор конфигурации не соответствует сохраненному идентификатору во внешнем отчете
-1 : идентификатор соответствует, комментарий внешнего отчета "меньше" (версия внешнего отчета "старее")
0 или 1 : комментарий и идентификатор совпадают, 1 - время изменения файла внешнего отчета позднее времени изменения файла конфигурации.
2 : комментарий внешнего файла "больше" комментария конфигурации ("версия свежее")
Параметры:
<ИмяФайла> - строка, имя файла внешнего отчета
<ПроверкаПоНаличию> - число , 1 - проверить только наличие файла внешнего отчета (возвращаемые значения функцией: -3 и 1) , 0 (по умолчанию) - полная проверка
<ПроверятьАтрибуты> - число , 1 или 0 (по умолчанию) при совпадении комментария и идентификатора сравнить время изменения файла внешнего отчета
<ТекКонфиг> - переменная, куда функция вернет прочитанный из файла идентификатор конфигурации
<ТеВерсия> - переменная, куда функция вернет прочитанный из файла комментарий конфигурации
глОткрытьФормуОтчета( <ИмяОтчета>,
<Конт>,
<ИмяФайла>,
<КакОткрываем>)
Функция открывает в зависимости от прочитанной из файла информации внешний или внутренний отчет конфигурации,
возвращаемое значение - 1 - форма отчета открыта, 0 - нет. Используется контроль набора прав по одноименному встроенному отчету.
Параметры - аналогичны стандартной ОткрытьФорму() для отчета, внешнего отчета:
<ИмяОтчета> - строка вида "Обработка.<ИмяОбработки>" или "Отчет.<ИмяВстроенногоОтчета>"
<Конт> - контекст формы
<ИмяФайла> - строка, имя файла внешнего отчета
<КакОткрываем> - не пустое значение этого атрибута приводит к открытию формы в модальном режиме
При запуске конфигурации открывается обработка "Пуск", демонстрирующая выбор актуального отчета среди встроенных "Отчет.Новый1", "Обработка.новый2", "Обработка.новый3" и внешних отчетов в каталоге .\ExtForms "Новый1.ert" "Новый2.ert" "Новый3.ert"