diff --git a/docfiles/mainpage/main.js b/docfiles/mainpage/main.js
index 9cf6e33..d292a78 100644
--- a/docfiles/mainpage/main.js
+++ b/docfiles/mainpage/main.js
@@ -77,6 +77,58 @@
*
* По-сути он моделирует платформу со стороны сервера и содержит в себе менеджеры, через которые можно связываться с ядром.
*
+ *
+ *
+ * #### Как устроены провайдеры? (**Важно прочитать!**)
+ *
+ * Механизм провайдеров загружает данные из ядра и моделирует объект, если он изменяется во времени,
+ * и ядро допускает подписку на данные объекта.
+ *
+ * _К таким объектам относятся например:_
+ * {@link GroupTypes.GroupType GroupType},
+ * {@link Models.Model Model},
+ * {@link ModelTypes.ModelType ModelType},
+ * {@link Trees.GlobalTree.Node Node}.
+ *
+ * Основная идея состоит в том, что один раз загрузив данные, клиент не будет нагружать сервер запросами.
+ *
+ * Так что система провайдеров по факту кеширует в себе модели сервера, и если происходят обновления данных, то
+ *
+ * обновление происходит по частям.
+ *
+ * Вся основная работа с провайдерами начинается с точки доступа **ps.pl**. Это корневая платформа, она же мастер.
+ *
+ * Посмотреть какие есть интерфейсы у платформы можно {@link Platform тут}.
+ *
+ * Платформа содержит в себе все менеджеры, через которые можно осуществлять общение с сервером.
+ *
+ * _Например:_ {@link GroupTypes Типы компонентов}, {@link Models Менеджер моделей}, {@link Trees Менеджер деревьев}.
+ *
+ * **Как корректно запрашивать и работать с данными предоставляемыми API?**
+ *
+ * - 1) У каждого менеджера как правило есть метод **get**. Этот метод, у кажого менеджера принимает свой тип данных.
+ * - - **get** всегда возвращает {@link tools.promise Промис}.
+ * - - Результатом промиса всегда будет {@link tools.reference ссылка}.
+ * - - **Работа ссылкой (ВАЖНО)**:
+ * - - - после того, как вы закончите работать с ссылкой, **ОБЯЗАТЕЛЬНО** вызвать у неё {@link tools.reference.reset reset}
+ * - - - если вы получили ссылку, и получили данные из объекта, вызовите у неё {@link tools.reference.reset reset}
+ * - - - если необходимо следить за состоянием, то сохраните ссылку в переменную и после того, как закончите работу с объектом вызовите {@link tools.reference.reset reset}
+ * - - - всегда вызывайте {@link tools.reference.reset reset}, если вам не нужен объект. В противном случае он не будет выгружаться из памяти.
+ *
+ * - 2) У кажого промиса есть возможность отмены. Если вам больше нет надобности ждать ответ, просто вызовите cancel.
+ * - 3) Будте внимательны к методам:
+ * - - все публичные методы и свойства будут идти без нижнего подчеркивания.
+ * - - все приватные методы будут и должны быть подписаны <_name>
+ * - - если нет нужного метода, а данные вы нашли где-то в приватных переменных, то следует разобраться почему, так. И:
+ * - - - а) сделать публичный методы.
+ * - - - б) спросить почему так сделано у автора.
+ * - 4) Перед началом работы стоит ознакомится с содержимым папки js/providers/system
+ * - - **base/base.js** - файл в котором определена машина состояний
+ * - - **base/item.js** - класс от которого наследуются все НЕ менеджеры
+ * - - **base/manager.js** - базовый класс для любого менеджера. Содержит API работы с менеджерами.
+ * - - **platform.js** - {@link Platform платформа}. Оно же точка доступа ps.pl.
+ *
+ *
*
* Доступные менеджеры у платформы:
* - {@link GroupTypes} - Менеджер, который позволяет получить данные по типу компонента, определен как **ps.pl.gtm**
diff --git a/docfiles/providers/interface/platform.js b/docfiles/providers/interface/platform.js
index d78817b..057db5e 100644
--- a/docfiles/providers/interface/platform.js
+++ b/docfiles/providers/interface/platform.js
@@ -1,4 +1,21 @@
/**
+ * ### Платформа
+ * Основная точка доступа к данным.
+ *
+ * ```bash
+ * // доступ
+ * ps.pl
+ * ```
+ *
+ * Доступные менеджеры у платформы:
+ * - {@link GroupTypes} - Менеджер, который позволяет получить данные по типу компонента, определен как **gtm**
+ * - {@link ModelTypes} - Менеджер, который позволяет узнать о содержимом модели **mtm**
+ * - {@link Models} - Менеджер, для доступа к устройствам, определен как **mm**
+ * - {@link Trees} - Менеджер, для доступа к деревьям, определен как **tm**
+ * - {@link CoreConfig} - Менеджер, для доступа к конфигу платформы, определен как **core_config**
+ * - {@link CoreTranslations} - Менеджер, для доступа к переводам, определен как **core_translations**
+ * - {@link Datasource} - Менеджер, для к каталогу датасорсов, определен как **datasource_manager**
+ * - {@link UserManager} - Менеджер, для доступа к данным пользоваталей, определен как **user_manager**
*
* @group providers_interface
* @namespace Platform
@@ -21,10 +38,29 @@ function Platform() {
*/
this.mm = new Models();
+ /**
+ *
+ * @public
+ * @name mtm
+ * @type {ModelTypes}
+ * @memberof Platform
+ */
+ this.mtm = new ModelTypes();
+
+ /**
+ *
+ * @public
+ * @name gtm
+ * @type {GroupTypes}
+ * @memberof Platform
+ */
+ this.gtm = new GroupTypes();
+
/**
*
* @public
* @name core_translations
+ * @type {CoreTranslations}
* @memberof Platform
*/
this.core_translations = new CoreTranslations();
@@ -33,6 +69,7 @@ function Platform() {
*
* @public
* @name core_config
+ * @type {CoreConfig}
* @memberof Platform
*/
this.core_config = new CoreConfig();
@@ -41,6 +78,7 @@ function Platform() {
*
* @public
* @name datasource_manager
+ * @type {Datasource}
* @memberof Platform
*/
this.datasource_manager = new Datasource();
@@ -49,6 +87,7 @@ function Platform() {
*
* @public
* @name user_manager
+ * @type {UserManager}
* @memberof Platform
*/
this.user_manager = new UserManager();