Только для глобального ядра, т.к. в онлайн-режиме 1С запускается в режиме внешнего соединения через COM-коннектор.
При запуске сервером Mobile SMARTS внешнего соединения к 1С через COM-коннектор срабатывает обработчик глобального ядра «ИнициализацияПодключенияСМАРТС()», на вход приходит параметр «mXmlDoc» - строка в формате JSON, содержащая информацию о текущей сессии Mobile SMARTS (если в настройках Mobile SMARTS установлен режим JSON). Результатом функции будет либо строка «xml» либо строка «json» либо «Истина» в зависимости от значения входного параметра. В обработчик вызывается метод глобального ядра «ГлЯдро_Инициализация()», алгоритм его работы практически идентичен аналогичному методу локального ядра «_ЛокКонтекст.ЛокЯдро_Инициализация()».
-
Создать переменную ядра «АдресаПеременных».
-
Загрузить из хранилища общих настроек 1С (ХОН) значения переменных ядра «ПараметрыПодключенияMS» и «ТипИнтерфейса», дополнительно сохранить их значения в «АдресаПеременных» по соответствующим ключам.
-
Сохранить в «АдресаПеременных» флаг «ИспJSON_mXmlDoc», означающий, что для обмена будет использоваться REST_API и формат данных JSON.
-
Очистить переменные ядра «COMЧастнойБазыMS / COMВременнойБазыMS / COMБазыMS».
-
Пытаемся подключиться к базе Mobile SMARTS методом «ГлЯдро_ПроверитьСоединениеССерверомSMARTS()», если неуспешно, то заканчиваем инициализацию, иначе:
-
Получаем настройки Mobile SMARTS для инициализации ядра: либо из кэша, если прошло не более 900 секунд с момента последнего получения настроек или настройки не изменились, в противном случае - получаем настройки из базы Mobile SMARTS.
Начало инициализации ядра
-
В переменную ядра «КатегорииНастроекMS» получаем категории настроек: сериализуемые, узловые, настройки подключения, настройки справочников, настройки номенклатуры.
-
Получаем пустую структуру настроек в переменную ядра «ТекущиеНастройкиMS» – все возможные ключи настроек (например, «ВыгружатьНоменклатуруСразу», «НастройкиОбменаСправочников», «НастройкиБизнесПроцессов)».
-
Получаем значения настроек из базы Mobile SMARTS и заполняем ими пустую структуру настроек. Если выбран какой-либо текущий узел для текущей базы 1С, то получаем настройки из базы Mobile SMARTS, привязанной к этому узлу (это может быть как частная база Mobile SMARTS, так и основная).
Для онлайна дополнительно сохраняем эти данные в ХОН для быстрого доступа к ним впоследствии.
-
В переменную ядра «СтруктураМетаданных» сохраняем метаданные документов 1С, метаданные документов MS, пользователи MS, устройства MS, таблицы MS, UniПолейНоменклатуры.
Для онлайна дополнительно сохраняем эти данные в ХОН для быстрого доступа к ним впоследствии.
-
В переменную ядра «ДанныеТекущегоУзла» получаем Ид, Имя узла и Ид базы MS, привязанной к этому узлу.
-
В переменную ядра «ПраваПользователя» получаем права пользователя, например, «Администратор», «Пользователь». Механизм пока в разработке, является заготовкой для своей системы разграничения прав.
-
В переменную ядра «АдресаПеременных» копируем значения переменных «КатегорииНастроекMS», «ТекущиеНастройкиMS», «СтруктураМетаданных», «ДанныеТекущегоУзла».
-
Выполняем обновление структуры настроек, если структура настроек изменилась (описание механизма обновления структуры настроек приведено в статье).
-
Временная заплатка: объединяем произвольные коды, если произвольные коды лежат в 4-х ключах:
ПроизвольныеКоды_Выгрузка_ШапкаДокумента, ПроизвольныеКоды_Выгрузка_ТабличнаяЧастьДокумента, ПроизвольныеКоды_Загрузка_ШапкаДокумента, ПроизвольныеКоды_Загрузка_ТабличнаяЧастьДокумента
-
Проверяем обновление типовых бизнес-процессов.
-
Собираем общую структуру настроек бизнес-процессов из ключей «НастройкиБизнесПроцессов_ПоУмолчанию», «НастройкиБизнесПроцессов_Пользовательские», «НастройкиБизнесПроцессов_ПользовательскиеНастройки» в один ключ «НастройкиБизнесПроцессов» и сохраняем в кэш.
-
Собираем общую структуру произвольных кодов из ключей «ПроизвольныеКоды_ПоУмолчанию», «ПроизвольныеКоды_Пользовательские» в один ключ «ПроизвольныеКоды» и сохраняем в кэш.
Конец инициализации ядра
-
Сохраняем в ХОН дату и время последнего получения настроек из базы Mobile SMARTS по ключу «Cleverence_ДатаАктуальностиКэша».
-
Подключаем интеграционную обработку в методе «ГлЯдро_ПодключитьИнтеграционнуюОбработку()», результаты помещаем в переменную ядра «АдресаПеременных», по ключу «ИнтеграционнаяОбработка» сохраняем адрес интеграционной обработки во временном хранилище, путь к файлу, имя ИО. По ключу «ИнтеграционнаяОбработкаПодключена» сохраняем значение «Истина».
Для онлайн-обмена существует отдельная переменная глобального ядра «КэшАдресаПеременных», которая является копией переменной локального ядра «АдресаПеременных».