Размеры файлов конфигурации и внешних отчетов

Размер файла внешнего отчета
Данный раздел представляет интерес, прежде всего, для разработчиков, создающих внешние отчеты для массового тиражирования. В разделе приводится рекомендация, каким образом можно уменьшить размер файла внешнего отчета.
Диалоги форм внешних отчетов, как и любые другие диалоги форм, могут содержать поля ввода, имеющие не только базовый тип (строка, число, дата), но и тип любого типообразующего элемента метаданных (справочника, документа, перечисления и т.д.), из числа определенных в конфигурации, являющейся текущей во время создания этого элемента диалога. В связи с этим файл внешнего отчета содержит необходимую информацию о типообразующих элементах метаданных текущей конфигурации. Эта информация используется при загрузке формы внешнего отчета во время работы с конфигурацией, отличной от той, в которой внешний отчет создавался. Она служит для привязки типа данных, связанного с полем ввода диалога к одноименному, т.е. имеющему совпадающий идентификатор, элементу метаданных текущей конфигурации. Размер информации о типообразующих элементах метаданных конфигурации напрямую зависит от их количества в конфигурации и иногда может приводить к необоснованному увеличению размера файла внешнего отчета. Чтобы этого избежать, существует возможность создавать внешние отчеты, загрузив или специально создав конфигурацию, имеющую лишь те типообразующие элементы метаданных, которые используются этим внешним отчетом. Причем создавать внутреннюю структуру элемента метаданных, т.е. создавать реквизиты для справочников, значения для перечислений и т.д., не является обязательным, т.к. в данном случае, значение имеет лишь идентификатор типообразующего элемента метаданных.
Например, форма диалог формы внешнего отчета имеет несколько полей ввода простых типов и одно поле ввода типа справочник Товары. Для того, чтобы внешний отчет имел минимальный размер и, в то же время, при загрузке во время работы в любой конфигурации, имеющей справочник Товары, тип данных поля ввода автоматически привязывался к данному справочнику, следует выполнить следующие действия:
– Создать новую информационную базу в пустом каталоге
– Войти в нее в режиме запуска “Конфигуратор”
– Создать новый справочник, задав ему идентификатор Товары, или скопировать из другой конфигурации.
– Создать новый внешний отчет и сохранить его.
Аналогично можно поступить и с уже существующим внешним отчетом, загрузив его в сокращенной (или пустой) конфигурации, формально что-то изменить, чтобы взвести флаг модифицированности, и затем сохранить.
Для внешних отчетов, не имеющих полей ввода, жестко привязанных к типу (например, тип “справочник неопределенного” вида не является жестко типизированным) или имеющих только поля базовых типов, рекомендуется сохранить внешний отчет, воспользовавшись запуском системы в режиме Конфигуратора в пустой конфигурации.
Размер файла конфигурации
Данный раздел представляет интерес, прежде всего, для разработчиков, создающих дистрибутив тиражируемой конфигурации.
Периодически на линию консультаций поступают обращения, в которых пользователи 1С:Предприятия выражают удивление по поводу труднопрогнозируемого изменения размера файла конфигурации (1cv7.md). Можно процитировать такую, типичную выдержку из письма : “После удаления из модуля достаточно большого фрагмента текста и сохранения конфигурации, мы ожидали некоторого уменьшения размера файла 1cv7.md. Однако, размер увеличился (!) на 350 байт. После этого в тот же модуль было добавлено несколько строк, но после сохранения размер файла не изменился. Тщательный просмотр текста модуля и запуск в режиме “1С:Предприятие” показывают, что изменения в тексте сохранены правильно, однако такое поведение файла 1cv7.md наводит на мысли о возможных ошибках в нем. Как вы можете прокомментировать такую ситуацию?”.
Такое “поведение” файла конфигурации является НОРМАЛЬНЫМ. Дело в том, что используемая для работы с файлом конфигурации в 1С:Предприятии технология позволяет рассматривать его, как набор фрагментов, каждый из которых хранит свою часть данных о конфигурации. Такой подход позволяет в ряде случаев сократить время на сохранение конфигурации, т.к. переписывается не весь файл целиком, а только его фрагменты, хранящие информацию о тех частях конфигурации, которые реально были изменены в процессе редактирования. Перезапись фрагмента состоит из записи обновленной информации в специально отведенное дополнительно под нее место в файле конфигурации и отметке того места, где хранилась устаревшая информация, как свободного. Таким образом, внутри файла 1cv7.md образуются “пустоты”, которые могут быть использованы при последующих записях информации об этой же или какой-либо другой части конфигурации, т.е. происходит фрагментация файла конфигурации.
Заметим, что, если при редактировании конфигурации были внесены изменения, которые могли потребовать реорганизацию информационной базы, то при сохранении файл конфигурации создается “с нуля” и в результате не является фрагментированным. Характерным признаком этого является появление сообщения о том, что “при сохранении метаданных будет произведен анализ сделанных изменений и, в случае необходимости, реорганизация информационной базы”.
Для того, чтобы принудительно дефрагментировать файл конфигурации, рекомендуется сделать загрузку измененной конфигурации, указав в качестве загружаемого файл конфигурации текущей информационной базы.

| опубликовано: 5 Март 2009, 19:38

Комментирование этой статьи закрыто