diff --git a/docfiles/mainpage/main.js b/docfiles/mainpage/main.js
index 8a0233e..d77ccb1 100644
--- a/docfiles/mainpage/main.js
+++ b/docfiles/mainpage/main.js
@@ -39,6 +39,7 @@
* - - #### {@link ModelTypes}
* - - #### {@link GroupTypes} - Менеджер для доступа к типам компонентов
* - - #### {@link LinkTypes} - Менеджер для доступа к типам линков
+ * - - #### {@link Links} - Менеджер для к данным линка
* - - #### {@link EventTypes} - Менеджер для доступа к типам событий
* - - #### {@link CoreConfig}
* - - #### {@link CoreErrors} - интерфейс для получения описания ошибок, которые приходят из ядра
@@ -136,6 +137,7 @@
*
* - {@link GroupTypes} - Менеджер, который позволяет получить данные по типу компонента, определен как **ps.pl.gtm**
* - {@link LinkTypes} - Менеджер, который позволяет получить данные по типу линка, определен как **ps.pl.ltm**
+ * - {@link Links} - Менеджер, который позволяет получить данные по идентификатору линка, определен как **ps.pl.links**
* - {@link EventTypes} - Менеджер, который позволяет получить данные по типу события, определен как **ps.pl.etm**
* - {@link ModelTypes} - Менеджер, который позволяет узнать о содержимом модели **ps.pl.mtm**
* - {@link Models} - Менеджер, для доступа к устройствам, определен как **ps.pl.mm**
@@ -197,6 +199,17 @@
*
*
*
+ *
+ * ### {@link Links}. Менеджер линков.
+ *
+ * Позволяет получить данные по линку
+ *
+ * Этот механизм используется в виджете для связывания компонентов модели.
+ *
+ * А так же получения атрибутов линка, направленности и других данных
+ *
+ *
+ *
* @name 04
* @mainpage
* @memberof mainpage
diff --git a/docfiles/providers/interface/platform.js b/docfiles/providers/interface/platform.js
index 9bf13b4..a294aa7 100644
--- a/docfiles/providers/interface/platform.js
+++ b/docfiles/providers/interface/platform.js
@@ -10,6 +10,7 @@
* Доступные менеджеры у платформы:
* - {@link GroupTypes} - Менеджер, который позволяет получить данные по типу компонента, определен как **gtm**
* - {@link LinkTypes} - Менеджер, который позволяет получить данные по типу линка, определен как **ltm**
+ * - {@link Links} - Менеджер, который позволяет получить данные по идентификатору линка, определен как **links**
* - {@link EventTypes} - Менеджер, который позволяет получить данные по типу события, определен как **etm**
* - {@link ModelTypes} - Менеджер, который позволяет узнать о содержимом модели **mtm**
* - {@link Models} - Менеджер, для доступа к устройствам, определен как **mm**
@@ -68,6 +69,15 @@ function Platform() {
*/
this.ltm = new LinkTypes();
+ /**
+ *
+ * @public
+ * @name links
+ * @type {Links}
+ * @memberof Platform
+ */
+ this.links = new Links();
+
/**
*
* @public
diff --git a/docfiles/providers/managers/core_errors/manager.js b/docfiles/providers/managers/core_errors/manager.js
index a583232..f3267f7 100644
--- a/docfiles/providers/managers/core_errors/manager.js
+++ b/docfiles/providers/managers/core_errors/manager.js
@@ -19,12 +19,14 @@ function CoreErrors() {
*
* Пример
*
+ *
* ```
* var error_info = ps.pl.core_errors.get_error(101);
* // Вывод =>
* // {name: "Узел не существует", description: "Узел с требуемым индексом не содержится в дереве п…. Данный код ошибки используется в masterProvider"}
*
* ```
+ *
* @public
* @function get_error
* @memberof CoreErrors
diff --git a/docfiles/providers/managers/links/attributes/attribute.js b/docfiles/providers/managers/links/attributes/attribute.js
new file mode 100644
index 0000000..b28f216
--- /dev/null
+++ b/docfiles/providers/managers/links/attributes/attribute.js
@@ -0,0 +1,63 @@
+/**
+ * #### Атрибут линка
+ *
+ *
+ * Связанные объекты:
+ *
+ * - {@link Links} - Менеджер предоставляющий доступ к данным о линках
+ * - {@link Links.Link} - Модель линка
+ * - {@link Links.Link.Attributes} - Менеджер предоставляющий доступ к атрибутам линка
+ *
+ * @group manager
+ * @class Attribute
+ * @memberof Links.Link.Attributes
+ */
+function Attribute() {
+ /**
+ * Возвращает имя атрибута
+ *
+ * @public
+ * @function name
+ * @returns {v2.string}
+ * @memberof Links.Link.Attributes.Attribute
+ */
+ this.name = function() {
+
+ };
+
+ /**
+ * Возвращает мета атрибуты атрибута
+ *
+ * @public
+ * @function data
+ * @returns {v2}
+ * @memberof Links.Link.Attributes.Attribute
+ */
+ this.data = function() {
+
+ };
+
+ /**
+ * Возвращает значение атрибута
+ *
+ * @public
+ * @function value
+ * @returns {v2}
+ * @memberof Links.Link.Attributes.Attribute
+ */
+ this.value = function() {
+
+ };
+
+ /**
+ * Возвращает тип атрибута
+ *
+ * @public
+ * @function type
+ * @returns {v2.type}
+ * @memberof Links.Link.Attributes.Attribute
+ */
+ this.type = function() {
+
+ };
+}
\ No newline at end of file
diff --git a/docfiles/providers/managers/links/attributes/manager.js b/docfiles/providers/managers/links/attributes/manager.js
new file mode 100644
index 0000000..299662f
--- /dev/null
+++ b/docfiles/providers/managers/links/attributes/manager.js
@@ -0,0 +1,46 @@
+/** @typedef {Links.Link.Attributes} LinkAttributes */
+/** @typedef {Links.Link.Attributes.Attribute} LinkAttribute */
+
+/**
+ *
+ * * ### Менеджер атрибутов линка
+ * Предоставляет данные о линке.
+ * У него можно запросить его атрибутный состав
+ *
+ *
+ * Связанные объекты:
+ *
+ * - {@link Links} - Менеджер предоставляющий доступ к данным о линках
+ * - {@link Links.Link} - Модель линка
+ * - {@link Links.Link.Attributes.Attribute} - Модель атрибута линка
+ *
+ * @group manager
+ * @class Attributes
+ * @memberof Links.Link
+ */
+function Attributes() {
+ /**
+ * Возвращает список атрибутов линка
+ *
+ * @public
+ * @function attributes
+ * @returns {v2.map(v2.string, v2.vc)}
+ * @memberof Links.Link.Attributes
+ */
+ this.attributes = function() {
+
+ };
+
+ /**
+ * Возвращает ссылку на атрибут линка
+ *
+ * @public
+ * @function get
+ * @param {v2.string} attributeName
+ * @returns {tools.promise}
+ * @memberof Links.Link.Attributes
+ */
+ this.get = function(attributeName) {
+
+ };
+}
\ No newline at end of file
diff --git a/docfiles/providers/managers/links/link.js b/docfiles/providers/managers/links/link.js
new file mode 100644
index 0000000..1462ff3
--- /dev/null
+++ b/docfiles/providers/managers/links/link.js
@@ -0,0 +1,112 @@
+/**
+ * ### Линк (связь/edge)
+ * Предоставляет данные о линке.
+ * У него можно запросить его атрибутный состав
+ *
+ *
+ * Связанные объекты:
+ *
+ * - {@link Links} - Менеджер предоставляющий доступ к данным о линках
+ * - {@link Links.Link.Attributes} - Менеджер предоставляющий доступ к атрибутам линка
+ * - {@link Links.Link.Attributes.Attribute} - Модель атрибута линка
+ *
+ * @class Link
+ * @memberof Links
+ */
+function Link() {
+ /**
+ * Возвращает уникальный идентификатор линка.
+ *
+ * @public
+ * @function id
+ * @memberof Links.Link
+ * @returns {v2.integer}
+ */
+ this.id = function() {
+
+ };
+
+ /**
+ * Возвращает тип линка.
+ *
+ * @public
+ * @function id
+ * @memberof Links.Link
+ * @returns {v2.model_type}
+ */
+ this.type = function() {
+
+ };
+
+ /**
+ * #### Атрибуты линка
+ *
+ * Данный метод, возвращает все атрибуты, которые есть у линка
+ *
+ *
+ * _Используется в BLA (js/utils/bridge/link_attributes.js)._
+ *
+ *
+ * #### Результат
+ *
+ * **first** (имя атрибута)
+ *
+ * **second** (структура атрибута: метаданные и значение)
+ *
+ * visible -> {@link v2.boolean Boolean}
+ * editable -> {@link v2.boolean Boolean}
+ * removable -> {@link v2.boolean Boolean}
+ * type -> {@link v2.type Type}
+ * value -> {@link v2 Any}
+ *
+ * #### Важно!
+ *
+ *```
+ * // Пример:
+ *
+ * // Считаем что, линк уже есть на руках.
+ * var link_id = v2.integer.from_string("-7547783344834658422");
+ * var link_ref = null;
+ * var link_model = null;
+ *
+ * ps.pl.links.get(link_id).then(function(ref){
+ * // ref - это ссылка на объект
+ * // метод value возвращает целевой объект. В данном случае дерево {@type Links.Link}
+ * link_model = ref.value();
+ * link_ref = ref;
+ *
+ * return link_model.attributes();
+ * }, function(err){
+ * // в случае неудачи придет ошибка.
+ * // обычно в ошибке содержится три переменные err - код ошибки, message - краткое описание, sub - если к этому
+ * // привела другая ошибка внутри системы.
+ * console.log("Ошибка при запросе модели линка")
+ * }).then(function(_attributes){
+ * console.log(_attributes.print())
+ * }, function(){
+ * console.log("Ошибка при запросе атрибутов")
+ * })
+ *```
+ *
+ * @public
+ * @function attributes
+ * @returns {tools.promise(v2.map(v2.string,v2.vc))}
+ * @memberof Links.Link
+ */
+ this.attributes = function() {
+
+ };
+
+ /**
+ * Возвращает ссылку на атрибут линка
+ *
+ * @public
+ * @function get
+ * @param {v2.string} name
+ * @returns {tools.promise}
+ * @memberof Links.Link
+ */
+ this.get = function(name) {
+
+ };
+}
\ No newline at end of file
diff --git a/docfiles/providers/managers/links/manager.js b/docfiles/providers/managers/links/manager.js
new file mode 100644
index 0000000..7b9ab0d
--- /dev/null
+++ b/docfiles/providers/managers/links/manager.js
@@ -0,0 +1,56 @@
+/**
+ * Менеджер предоставляющий доступ к данным о линках
+ *
+ *
+ * Связанные объекты:
+ *
+ * - {@link Links.Link} - Модель линка (Топологический линк)
+ * - {@link LinkTypes} - Менеджер типов линков (Здесь можно запросить данные по типу линка)
+ * - {@link LinkTypes.LinkType} - Модель типа линка (Здесь можно найти атрибуты линка)
+ *
+ * @group manager
+ * @namespace Links
+ * @extends manager
+ */
+function Links() {
+ /**
+ * Интерфейс доступа к линку
+ *
+ * Ответ должен быть обработан в промисе,
+ *
+ * при успехе вернется {@link tools.reference} -> {@link Links.Link}
+ *
+ * при отмене вернется ошибка {@link Errors.PromiseReject}
+ *
+ * ```
+ * // Пример 1: Как получить линк?
+ *
+ * // Пример взят для случайного линка
+ *
+ * // идентификатор линка 64 битный, а нативный number JavaScript'a нет.
+ * // поэтому инт генерим из строки
+ * var link_id = v2.integer.from_string("-7547783344834658422");
+ * var link_ref = null;
+ * var link_model = null;
+ * ps.pl.links.get(link_id).then(function(ref){
+ * // ref - это ссылка на объект
+ * // метод value возвращает целевой объект. В данном случае дерево {@type Links.Link}
+ * link_model = ref.value();
+ * link_ref = ref;
+ * }, function(err){
+ * // в случае неудачи придет ошибка.
+ * // обычно в ошибке содержится три переменные err - код ошибки, message - краткое описание, sub - если к этому
+ * // привела другая ошибка внутри системы.
+ * })
+ * ```
+ *
+ * @public
+ * @function get
+ * @param {v2.integer} linkId Идентификатор ноды в дереве
+ * @returns {tools.promise}
+ * @memberof Links
+ */
+ this.get = function(linkId) {
+
+ };
+}