Инициализация локального или глобального ядра, в зависимости от того, откуда доступна база Mobile SMARTS (с клиента или с сервера). Для глобального ядра будут вызываться методы, аналогичные методам локального ядра.
Открывается главная форма, срабатывает обработчик ПриОткрытии(), в нем:
- 
	создаем форму «ЛокальныйКонтекст» и сохраняем ее в переменную ядра «ЛокКонтекст»; 
- 
	создаем пустую структуру «ЛокКонтекст.АдресаПеременных», куда будут закэшированы данные, необходимых для работы ядра и интеграционной обработки; 
- 
	получаем из хранилища общих настроек 1С (ХОН) сохраненные при первом запуске «ПараметрыПодключенияMS» - и общую, и пользовательскую настройки; 
- 
	если удалось получить пользовательскую настройку, используем ее, иначе - общую настройку; 
- 
	сохраняем их в структуру «_ЛокКонтекст.ПараметрыПодключенияMS»; 
- 
	аналогичным алгоритмом получаем из ХОН значение переменной ядра «РасположениеКомпоненты», если в ХОН отсутствует значение, тогда «РасположениеКомпоненты» = «НаСервере» (по умолчанию), сохраняем переменную в «_ЛокКонтекст.РасположениеКомпоненты»; 
- 
	аналогичным алгоритмом получаем из ХОН значение переменной ядра «ТипИнтерфейса», сохраняем значение в «_ЛокКонтекст.ТипИнтерфейса»; Здесь не устанавливается значение по умолчанию, поэтому, если в ХОН не найден тип интерфейса, то будет «Неопределено»). СтатусОбработки = «НачалоВыполненияПроцедурыЗапускаОбработки». 
- 
	Проверяем соединение с сервером MS, стек вызовов: _ЛокКонтекст.ЛокЯдро_ПроверитьСоединениеССерверомSMARTS() если подключение через COM, то: _ЛокКонтекст.КомЯдро_ПроверитьСоединениеССерверомSMARTS() → _ЛокКонтекст.КомЯдро_ПодключитьсяКСерверуSMARTS() - помещение COM-объектов «TerminalConnector» и «StorageConnector» в соответствующую переменную ядра → COMЧастнойБазыMS / COMВременнойБазыMS / COMБазыMS, подключение базы MS к COM-объектам и авторизуемся по токену, если авторизация сохранена → _ЛокКонтекст.КомЯдро_ПолучитьСтруктуруПодключенияБазыСМАРТС() - создание COM-объектов «TerminalConnector» и «StorageConnector» → _ЛокКонтекст.КомЯдро_ПодключитьсяКБазеSMARTS() - подключение базы Mobile SMARTS к COM-объектам и авторизуемся по токену, если авторизация сохранена → _ЛокКонтекст.КомЯдро_ПодключитьсяКБазеSMARTSНаСервереЗавершение() - получаем структуру описания базы и проверяем соединение с базой. если подключение через REST_API, то: _ЛокКонтекст.REST_API_ПодключитьсяКБазеSMARTS() - устанавливаем HTTP-соединение с сервером Mobile SMARTS по строке подключения и выполняем авторизацию HTTP-методом GET Если требуется авторизация для подключения к серверу Mobile SMARTS и она не сохранена, тогда открываем форму для ввода логина и пароля и после ее закрытия снова проверяем соединение с сервером Mobile SMARTS - _ЛокКонтекст.ЛокЯдро_ПроверитьСоединениеССерверомSMARTS(). Если не удалось подключиться с пользовательской настройкой, пробуем подключиться с общей настройкой. Если проверка соединения с сервером Mobile SMARTS прошла успешно, тогда меняем статус обработки: СтатусОбработки = «БезОшибок» Иначе - меняем статус обработки: СтатусОбработки = «РаботаССерверомБазаНедоступна» Для подключения через COM проверяем, что были созданы COM-объекты «TerminalConnector» и «StorageConnector». Далее проверяем, что заполнена строка подключения базы в методе _ЛокКонтекст.ЛокЯдро_ПроверитьСозданиеКОМОбъекта(), меняем статус обработки: СтатусОбработки = «НачалоПодключенияИнтеграционнойОбработкиСообщениеБезопасности» 
- 
	Подключаем интеграционную обработку в методе _ЛокКонтекст.ЛокЯдро_ПодключитьИнтеграционнуюОбработку(), результаты помещаем в соответствующие переменные ядра ИмяИнтеграционнойОбработки, _ИнтеграционнаяОбработкаАдрес, ИнтеграционнаяОбработкаПодключена, ФормаИнтеграционнойОбработки, ТипОбработки, АдресаПеременных.ИнтеграционнаяОбработка 
- 
	Для подключения через COM проверяем, что созданы COM-объекты «TerminalConnector» и «StorageConnector», в методе _ЛокКонтекст.ЛокЯдро_ПроверитьСозданиеКОМОбъекта(). Если COM-объекты не созданы, тогда выдается сообщение пользователю о том, что не удалось подключить внешнюю компоненту 
- 
	Если COM-объекты созданы, но сервер недоступен, открывается форма настройки подключения и меняем статус обработки: СтатусОбработки = «КоннекторMSСозданПроверяемДоступностьБазы» Если COM-объекты созданы, сервер доступен, но недоступна текущая база, открываем форму настройки подключения Если COM-объекты созданы, сервер доступен и доступна текущая база, тогда запускаем инициализацию ядра, метод _ЛокКонтекст.ЛокЯдро_Инициализация(). 
Начало инициализации ядра
- 
	В переменную ядра «КатегорииНастроекMS» получаем категории настроек: сериализуемые, узловые, настройки подключения, настройки справочников, настройки номенклатуры. 
- 
	Получаем пустую структуру настроек в переменную ядра «ТекущиеНастройкиMS» – все возможные ключи настроек (например, «ВыгружатьНоменклатуруСразу», «НастройкиОбменаСправочников», «НастройкиБизнесПроцессов»). 
- 
	Получаем значения настроек из базы Mobile SMARTS и заполняем ими пустую структуру настроек. Если выбран какой-либо текущий узел для текущей базы 1С, то получаем настройки из базы Mobile SMARTS, привязанной к этому узлу (это может быть как частная база, так и основная). 
- 
	В переменную ядра «СтруктураМетаданных» сохраняем метаданные документов 1С, метаданные документов Mobile SMARTS, пользователи, устройства, таблицы Mobile SMARTS, UniПолейНоменклатуры. 
- 
	В переменную ядра «ДанныеТекущегоУзла» получаем ID, Имя узла и ID базы Mobile SMARTS, привязанной к этому узлу. 
- 
	В переменную ядра «ПраваПользователя» получаем права пользователя, например, «Администратор», «Пользователь». Механизм пока в разработке, является заготовкой для своей системы разграничения прав. 
- 
	Если инициализация проходит в локальном контексте, то вызываем метод «ГлЯдро_ОтправитьДанныеДляИнициализацииВГлКонтекст». 
- 
	Выполняем обновление структуры настроек, если структура настроек изменилась (описание механизма обновления структуры настроек приведено в статье). 
- 
	Временная заплатка: объединяем произвольные коды, если произвольные коды лежат в 4-х ключах: ПроизвольныеКоды_Выгрузка_ШапкаДокумента. 
 ПроизвольныеКоды_Выгрузка_ТабличнаяЧастьДокумента.
 ПроизвольныеКоды_Загрузка_ШапкаДокумента.
 ПроизвольныеКоды_Загрузка_ТабличнаяЧастьДокумента.
 
- 
	Проверяем обновление типовых бизнес-процессов. 
- 
	Собираем общую структуру настроек бизнес-процессов из ключей «НастройкиБизнесПроцессов_ПоУмолчанию», «НастройкиБизнесПроцессов_Пользовательские», «НастройкиБизнесПроцессов_ПользовательскиеНастройки» в один ключ «НастройкиБизнесПроцессов» и сохраняем в кэш. 
- 
	Собираем общую структуру произвольных кодов из ключей «ПроизвольныеКоды_ПоУмолчанию», «ПроизвольныеКоды_Пользовательские» в один ключ «ПроизвольныеКоды» и сохраняем в кэш. 
- 
	Заполняем список выбора узлов (торговых объектов) на главной форме для возможности смены узла для текущей базы 1С. 
- 
	Устанавливаем заголовок формы в зависимости от продукта — «Магазин 15», «Склад 15» и т.д. 
- 
	Устанавливаем ссылку на базу знаний в зависимости от продукта — «Магазин 15», «Склад 15» и т.д. 
- 
	Установливаем QR-код на главной форме для быстрого подключения к нужной базе путем сканирования кода терминалом сбора данных. 
- 
	Устанавливаем статус обработки: Конец инициализации ядра. СтатусОбработки = “БезОшибок” 
Обновление информации о интеграционной обработке (ИО)
Если интеграционная обработка не соответствует конфигурации (версии конфигурации) или её версия не подходит для текущей версии обработки-ядра, то меняем статус обработки и меняем текст и цвет статуса на соответствующий.
Например, СтатусОбработки = “ПодключеннаяИнтеграционнаяОбработкаДляДругойКонфигурации”, цвет текста - томатный и т.д. для того чтобы пользователь понял, в чем ошибка, насколько она критична и как ее можно устранить.
Если интеграционную обработку не удалось подключить, то аналогично, меняем статус (“ПодключеннаяИнтеграционнаяОбработкаНеТотФайл”, “ОшибкаПриЗапускеИнтеграционнойОбработки”) и выводим соответствующее сообщение об ошибке.
