IE2017

Контроль версий внешних отчетов

Программирование - Практика программирования

Конфигурация, демонстрирующая предварительный анализ открываемых внешних отчетов: "свой - чужой", "старый - новый", "права на внешний отчет", "внешний или внутренний".

Идея такого анализа основана использовании информации о конфигурации, прописываемой в файле внешнего отчета при сохранении, в частности, используется идентификатор и комментарий к метаданным (там обычно указывают номер текущего релиза). Извлекаем ее перед открытием внешнего отчета и сравниваем с Метаданные.Комментарий и Метаданные.Идентификатор. Можно еще поискать одноименный встроенный отчет, получить права, принять решение, какой открыть. В конфигурации две функции:
 

глФайлСоответствуетВерсииКонфигурации(  <ИмяФайла>,
                <ПроверкаПоНаличию>,
                <ПроверятьАтрибуты>,
                <ТекКонфиг>,
                <ТекВерсия>)

Функция сравнивает идентификатор и комментарий конфигурации во внешнем отчете и возвращает число:
-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"

Скачать файлы

Наименование Файл Версия Размер
КонтрольВерсийОтчетов.zip
.zip 90,21Kb
22.03.10
31
.zip 90,21Kb 31 Скачать

См. также

Комментарии
1. Ёпрст (Ёпрст) 1021 22.03.10 13:11 Сейчас в теме
Непонятно.. нафик оно надо ?
Цель то какая преследовалась ?
2. Михаил Семенов (Shaman100M) 1179 22.03.10 14:03 Сейчас в теме
Пока конфигурация не обновлена, временно внешние одноименные доработанные отчеты обычно кидают в Extforms. Цель разработки - всегда открывать свежий (внешний или внутренний) отчет "по умолчанию": либо обновленный внешний отчет взамен внутреннего, либо внутренний из обновленной конфигурации.
Оставьте свое сообщение