gifts2017

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

Опубликовал Михаил Семенов (Shaman100M) в раздел Программирование - Практика программирования

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

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

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

Функция сравнивает идентификатор и комментарий конфигурации во внешнем отчете и возвращает число:
-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. Епрст (Ёпрст) 22.03.10 13:11
Непонятно.. нафик оно надо ?
Цель то какая преследовалась ?
2. Михаил Семенов (Shaman100M) 22.03.10 14:03
Пока конфигурация не обновлена, временно внешние одноименные доработанные отчеты обычно кидают в Extforms. Цель разработки - всегда открывать свежий (внешний или внутренний) отчет "по умолчанию": либо обновленный внешний отчет взамен внутреннего, либо внутренний из обновленной конфигурации.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа