Ссылки на другие пакеты
Этот механизм применяется для использования объектов и/или получения наборов данных из других пакетов. В качестве таких объектов могут выступать узлы сценария, подключения, производные компоненты. Чтобы эти объекты были доступны в других пакетах, для них должна быть задана область видимости Открытый (доступен во всех пакетах), которая задается параметром объекта Модификатор доступа.
Для создания ссылки следует выполнить следующие операции:
- На панели Навигация выбрать элемент Ссылки.
 - В контекстном меню элемента Ссылки выбрать пункт Добавить. Откроется окно Добавление ссылки на пакет.
 - В параметре Путь к файлу пакета задать путь к пакету, доступ к объектам которого необходимо получить.
 - Нажать Применить.
 
После создания Ссылки на внешний Пакет можно:
- обратиться к его объектам при помощи узлов Узел-ссылка, Выполнение узла;
 - использовать созданные в нем Производные компоненты.
 
Первые два используются, если не требуется изменение логики обработки данных, последний, — если алгоритм требует корректировки.
Свойства ссылки на пакет
Ссылка на пакет содержит следующие параметры:
- Имя — имя Пакета, соответствующее имени файла без расширения, приведенному к правильному идентификатору.
 - Путь — путь до сохраненного Пакета. В серверных редакциях путь указывается от корневого каталога файлового хранилища. В настольных редакциях указывается абсолютный или относительный путь.
 - Версия — версия сохраненного Пакета.
 
Параметр Версия предназначен для проверки соответствия пакета, расположенного по указанному пути, пакету, указанному в ссылке. В случае несоответствия версии внешнего пакета и версии, указанной в свойствах ссылки на пакет, Loginom выдаст сообщение об ошибке. Параметр можно настроить в окне Свойства ссылки на пакет.
Открыть окно Свойства ссылки на пакет можно следующими способами:
- Команда Настроить на панели инструментов.
 - В контекстном меню пункт Настроить.
 - Двойной клик по добавленной ссылке.
 
В качестве значения параметра Версия задается маска. По умолчанию используется ^1.0.0. 
Поддерживаются следующие способы задания маски:
- Точное указание версии 
1.2.3или1.0.0-beta.1. - С использованием символа 
^. Включает конкретную версию и версии, которые не превосходят первую не нулевую часть маски. Например:^1.2.3соответствует диапазону>=1.2.3 <2.0.0-0^0.2.5соответствует диапазону>=0.2.5 <0.3.0-0^0.0.4соответствует только версии0.0.4^1.2.3-beta.2соответствует диапазону>=1.2.3-beta.2 <2.0.0-0^0.0соответствует диапазону>=0.0.0 <0.1.0-0^0соответствует диапазону>=0.0.0 <1.0.0-0
 - С использованием символа 
~. Включает конкретную версию и версии, которые больше указанной, в том же минорном диапазоне. Для случаев~0,~1и т.п. маска работает так же, как и маска с символом^. Например:~1соответствует диапазону>=1.0.0 <2.0.0-0~1.2соответствует диапазону>=1.2.0 <1.3.0-0~1.2.3соответствует диапазону>=1.2.3 <1.3.0-0~1.2.3-beta.1соответствует диапазону>=1.2.3-beta.1 <1.3.0-0~0.2соответствует диапазону>=0.2.0 <0.3.0-0~0соответствует диапазону>=0.0.0 <1.0.0-0
 - С использованием символа 
*. Используется для «замены» одного из числовых значений маски. Например:*соответствует диапазону>=0.0.0(то есть включает в себя любые версии пакета)1.*соответствует диапазону>=1.0.0 <2.0.0-01.2.*соответствует диапазону>=1.2.0 <1.3.0-0
 
Общий пакет
При открытии пакета, который ссылается на другой пакет (далее — внешний пакет) не открытый в данной сессии, последний будет загружен как Общий пакет. Это можно увидеть в Администрировании на странице Диспетчер. Пакет будет находится в Общих пока будет активна хотя бы одна ссылка из других пакетов.
Важно: При работе с Узлом-ссылкой, ссылающейся на узел другого пакета, следует помнить, что запрошенные в общем пакете данные будут загружены/рассчитаны один раз.
- При этом, все соответствующие узлы будут заблокированы до тех пор, пока расчеты не завершатся!
 - При повторном запросе будут возвращены ранее полученные данные, то есть пересчет производится не будет!
 
Если необходимо произвести пересчет данных, можно:
- Закрыть все пакеты, ссылающиеся на внешний и загруженный как общий пакет.
 - Либо изменить дату создания внешнего пакета (например, сохранив его). Это приведет к появлению второй, но уже обновленной копии в Общих пакетах.
 - Либо открыть внешний пакет в текущей пользовательской сессии. Тогда он не будет открыт как общий.
 
После этого рабочий пакет необходимо открыть заново.
                            Здесь у нескольких пользователей открыты пакеты ссылающиеся на внешний пакет lib.
Первый пользователь (Albert) открыл внешний пакет lib и, следом, рабочий. Его внешний пакет будет работать с данными в своей сессии, независимо от открытых пакетов других пользователей.
Другие пользователи (Alisa и Jeanette) открыли лишь рабочие пакеты в своих сессиях. Поэтому внешний пакет lib загрузился как общий (счетчик отображает количество сессий, которые ссылаются на данный пакет), и все обращения этих пользователей будут направлены к общему пакету. Результаты в соответствующих Узлах-ссылках будут идентичными у данных пользователей в их сессиях.
Дополнительная информация
Внутри компонентов подключенного Пакета могут встречаться повторяющиеся фрагменты. По отдельности они не представляют интереса и предназначены для использования внутри подключенного Пакета. Это служебные компоненты. Как правило, они являются вложенными относительно основных компонентов подключенного Пакета и в их названии содержится префикс в виде двойного нижнего подчеркивания. Возможности отключить их видимость нет.