Любая конфигурация МИС МЕДИАЛОГ (например, экземпляр базы данных) состоит из платформы (системной части) и пользовательской конфигурации. Конфигурирование выполняется с использованием различных объектов (таблиц, запросов, скриптов и т.д.), имеющих связи друг с другом. Такие объекты называются ресурсами.
Ресурс – элемент конфигурирования МИС. Ресурс характеризуется описанием с помощью конечного числа объектов метаинформации, описывающих только данный ресурс (один или несколько файлов и/или одна или несколько строк таблиц). Таким образом, каждый ресурс описан в МИС независимо от других, но имеет ссылки на другие ресурсы.
Таблица 1. Типы ресурсов МЕДИАЛОГ
Тип ресурса |
Код типа ресурса |
Метаинформация |
Комментарий |
---|---|---|---|
Таблица ЭМК |
T |
Таблицы METATABLE, METAFIELDS, файлы *.fld |
Должна быть прописана в файле Editors.ini и таблице EDITOR_TABLES |
Таблица системная |
T |
|
С точки зрения ресурсной модели таблица считается системной , если она однозначно не отнесена к другому типу. |
Таблица: внешний справочник |
T |
|
Таблица с признаком GlossTable=1 |
Таблица: иерархический справочник |
T |
|
Таблица с признаком GlossTable=2 |
Представление (VIEW) |
T |
|
|
Тип записи, профиль пользователя |
MOD |
Таблица MODELS |
|
Экранная форма |
F |
Таблица EXAMENS, файлы *.frm |
|
Справочник поля (глоссарий): обычный |
GL_FLD |
Таблица GLOSS |
Если в целевой базе уже есть общий и (или) профильный справочник, он будет потерян - затерт справочником из модуля. Личные справочники (общие и профильные) в ресурсы не попадают и импортировать их (включить в модуль) нельзя. |
Справочник поля (глоссарий): профильный |
GL_MOD |
||
Макроподстановка для поля |
GL_M |
Макроподстановка, состоящая из нескольких макросов, ресурсом не считается, так как определяется в системе путем группировки строк таблицы GLOSS по имени макроподстановки. |
|
Именованный справочник |
GL_NM |
|
|
Профильный именованный справочник |
|
|
|
Макроподстановка |
M |
|
|
Локальный запрос |
TL |
Таблица LOC_REQ |
|
График |
GR |
|
|
Динамическая таблица |
DT |
|
|
Статистический запрос |
Q |
Файлы *.ini, *.rpt |
|
Пакетный запрос |
Файлы *.ini, *.rpt |
|
|
Деталь пакетного запроса |
QQD |
Файлы *.ini |
|
Подзапрос |
SUBQ |
|
Подзапрос не является отдельным ресурсом, т.к. его описание содержится в файле вместе со статистическим запросом, однако для наглядности он отображается в ResManager как отдельный ресурс. |
Макет документов и писем |
HE_TEM |
Файлы *.hed |
|
Групповой макет документов и писем |
HE_GR |
|
|
Заголовок макетов документов и писем |
HE_HEAD |
|
|
Подключенный запрос |
TQ |
|
|
Конфигурация групповой печати |
GPC |
|
|
Тип групповой печати |
TPC |
|
|
SQL-скрипт |
SQL |
|
|
Конфигурация листов назначений |
PR |
|
|
Запись в таблице |
TR |
|
Особый тип ресурса |
Поле таблицы |
|
|
Особый тип ресурса |
VTS шаблон |
VTS |
|
|
Тип измерения |
VALEURS |
|
|
Начиная с версии 7.20 связь между ресурсами осуществляется по ссылкам с использованием алиасов.
Алиас – это внутреннее (системное) имя ресурса. Каждый ресурс может иметь неограниченное количество алиасов, по которым на него могут ссылаться другие ресурсы системы. В каждый момент времени один и только один из алиасов ресурса имеет признак "основной". При создании связи между ресурсами выбирается основной алиас. Таким образом, алиасы ресурса не подлежат изменению и удалению, иначе могут оборваться существующие связи, т.е. связи, созданные в момент, когда основным был другой алиас.
Множественность алиасов ресурса используется в механизме переноса ресурсов, реализованном утилитой ResManager.
Особые типы ресурсов
Запись в таблице – строка в любой таблице базы данных. По умолчанию строки таблиц не описаны как ресурсы. Объявить строку ресурсом можно сославшись на нее как на ресурс из любого редактора формул МЕДИАЛОГ (свойства компонентов экранной формы, макросы, формулы на полях таблиц и т.д.) После этого в таблице RES_LIST будет создана соответствующая строка и присвоен алиас (RES_ALIAS). Объявление строк таблиц ресурсами позволяет контролировать ссылочную целостность ресурсов, что важно для переноса конфигураций.
Использование ресурсов типа "Запись в таблице" удобно в случаях, когда вычисление формул или условия запросов зависят от значений конкретных полей таблицы.
Пример. Формула видимости экранной формы зависит от типа события, в рамках которого она создана. В целевой конфигурации порядок следования записей в справочнике типов событий нарушен. Таким образом, условие на идентификатор типа события будет работать некорректно, так как этим идентификатором определяется событие другого типа. Если же условие формулы видимости определено через обращение к строке справочника типов событий как к ресурсу, то при переносе экранной формы в целевую конфигурацию соответствие типов событий будет найдено (при правильно настроенных ключах поиска в схеме импорта таблиц).
Поле таблицы. Несмотря на то, что поле таблицы не является самостоятельным ресурсом, в ResManager имеется возможность включить таблицу в модуль частично, указав используемые поля. Поле таблицы не имеет алиасов, поэтому сопоставление осуществляется по физическим именам. На поле таблицы не распространяется правило одноразового включения ресурса в модуль. Таким образом, включать таблицы в модуль частично, указав набор полей, можно неограниченное число раз.
Пересохранение ресурсов
До версии 7.20 связь между ресурсами осуществлялась по физическим именам.
При переходе на версию МЕДИАЛОГ, поддерживающую систему ссылок с помощью алиасов, ресурсам были автоматически назначены алиасы, совпадающие (по умолчанию) с физическими именами, однако, изменение ссылок внутри ресурса на алиасы невозможно в автоматическом режиме. Это связано, в том числе, с тем, что большое количество метаинформации хранится во внешних файлах.
Замена физических имен на алиасы в качестве ссылок происходит при редактировании ресурса, т.е. в процессе загрузки-выгрузки из памяти, например, файла с метаинформацией, происходит автоматическая конвертация. Таким образом, для того, чтобы все ресурсы и связи между ними корректно отобразились в ResManager, их необходимо пересохранить.
Пересохранение ресурса – процесс перевода ресурса в режим редактирования и последующего сохранения с целью изменения механизма ссылок. Например, для пересохранения экранной формы необходимо перейти в режим редактирования, совершить минимальные изменения и сохранить ее.
Ресурс, для которого не выполнена процедура пересохранения называется "непересохраненным".
Внимание! Перенос непересохраненных ресурсов может привести к необратимым последствиям.