Запуск обработки 1С в режиме онлайн-обмена

Последние изменения: 20.01.2021

Только для глобального ядра, т.к. в онлайн-режиме 1С запускается в режиме внешнего соединения через COM-коннектор.

При запуске сервером Mobile SMARTS внешнего соединения к 1С через COM-коннектор срабатывает обработчик глобального ядра «ИнициализацияПодключенияСМАРТС()», на вход приходит параметр «mXmlDoc» - строка в формате JSON, содержащая информацию о текущей сессии Mobile SMARTS (если в настройках Mobile SMARTS установлен режим JSON). Результатом функции будет либо строка «xml» либо строка «json» либо «Истина» в зависимости от значения входного параметра. В обработчик вызывается метод глобального ядра «ГлЯдро_Инициализация()», алгоритм его работы практически идентичен аналогичному методу локального ядра «_ЛокКонтекст.ЛокЯдро_Инициализация()».

  1. Создать переменную ядра «АдресаПеременных».

  2. Загрузить из хранилища общих настроек 1С (ХОН) значения переменных ядра «ПараметрыПодключенияMS» и «ТипИнтерфейса», дополнительно сохранить их значения в «АдресаПеременных» по соответствующим ключам.

  3. Сохранить в «АдресаПеременных» флаг «ИспJSON_mXmlDoc», означающий, что для обмена будет использоваться REST_API и формат данных JSON.

  4. Очистить переменные ядра «COMЧастнойБазыMS / COMВременнойБазыMS / COMБазыMS».

  5. Пытаемся подключиться к базе Mobile SMARTS методом «ГлЯдро_ПроверитьСоединениеССерверомSMARTS()», если неуспешно, то заканчиваем инициализацию, иначе:

  6. Получаем настройки Mobile SMARTS для инициализации ядра: либо из кэша, если прошло не более 900 секунд с момента последнего получения настроек или настройки не изменились, в противном случае - получаем настройки из базы Mobile SMARTS.

Начало инициализации ядра

  1. В переменную ядра «КатегорииНастроекMS» получаем категории настроек: сериализуемые, узловые, настройки подключения, настройки справочников, настройки номенклатуры.

  2. Получаем пустую структуру настроек в переменную ядра «ТекущиеНастройкиMS» – все возможные ключи настроек (например, «ВыгружатьНоменклатуруСразу», «НастройкиОбменаСправочников», «НастройкиБизнесПроцессов)».

  3. Получаем значения настроек из базы Mobile SMARTS и заполняем ими пустую структуру настроек. Если выбран какой-либо текущий узел для текущей базы 1С, то получаем настройки из базы Mobile SMARTS, привязанной к этому узлу (это может быть как частная база Mobile SMARTS, так и основная).

    Для онлайна дополнительно сохраняем эти данные в ХОН для быстрого доступа к ним впоследствии.

  4. В переменную ядра «СтруктураМетаданных» сохраняем метаданные документов 1С, метаданные документов MS, пользователи MS, устройства MS, таблицы MS, UniПолейНоменклатуры.

    Для онлайна дополнительно сохраняем эти данные в ХОН для быстрого доступа к ним впоследствии.

  5. В переменную ядра «ДанныеТекущегоУзла» получаем Ид, Имя узла и Ид базы MS, привязанной к этому узлу.

  6. В переменную ядра «ПраваПользователя» получаем права пользователя, например, «Администратор», «Пользователь». Механизм пока в разработке, является заготовкой для своей системы разграничения прав.

  7. В переменную ядра «АдресаПеременных» копируем значения переменных «КатегорииНастроекMS», «ТекущиеНастройкиMS», «СтруктураМетаданных», «ДанныеТекущегоУзла»

  8. Выполняем обновление структуры настроек, если структура настроек изменилась (описание механизма обновления структуры настроек приведено в статье).

  9. Временная заплатка: объединяем произвольные коды, если произвольные коды лежат в 4-х ключах:

    ПроизвольныеКоды_Выгрузка_ШапкаДокумента, ПроизвольныеКоды_Выгрузка_ТабличнаяЧастьДокумента, ПроизвольныеКоды_Загрузка_ШапкаДокумента, ПроизвольныеКоды_Загрузка_ТабличнаяЧастьДокумента

  10. Проверяем обновление типовых бизнес-процессов.

  11. Собираем общую структуру настроек бизнес-процессов из ключей «НастройкиБизнесПроцессов_ПоУмолчанию», «НастройкиБизнесПроцессов_Пользовательские», «НастройкиБизнесПроцессов_ПользовательскиеНастройки» в один ключ «НастройкиБизнесПроцессов» и сохраняем в кэш.

  12. Собираем общую структуру произвольных кодов из ключей «ПроизвольныеКоды_ПоУмолчанию», «ПроизвольныеКоды_Пользовательские» в один ключ «ПроизвольныеКоды» и сохраняем в кэш. 

Конец инициализации ядра

  1. Сохраняем в ХОН дату и время последнего получения настроек из базы Mobile SMARTS по ключу «Cleverence_ДатаАктуальностиКэша».

  2. Подключаем интеграционную обработку в методе «ГлЯдро_ПодключитьИнтеграционнуюОбработку()», результаты помещаем в переменную ядра «АдресаПеременных», по ключу «ИнтеграционнаяОбработка» сохраняем адрес  интеграционной обработки во временном хранилище, путь к файлу, имя ИО. По ключу «ИнтеграционнаяОбработкаПодключена» сохраняем значение «Истина».

    Для онлайн-обмена существует отдельная переменная глобального ядра «КэшАдресаПеременных», которая является копией переменной локального ядра «АдресаПеременных».

Была ли статья полезна?
Спасибо за ваш отзыв!
Отзыв
Заполните, пожалуйста, данную форму, что конкретно вы не нашли, оставьте свои комментарии о работе сайта / полезности / сложности с навигацией
0/500