Архитектура решения для работы продуктов на платформе Mobile SMARTS с «1С: Предприятием»
Сердцем обработки 1С от «Клеверенс» является так называемое ядро обработки — программный интерфейс для взаимодействия между товарно-учетными системами на базе 1С и программами на платформе Mobile SMARTS («Склад 15»). В нем заложены принципы функционирования всех основных операций, выполняемых с помощью обработки 1С: выгрузка справочников, выгрузка/загрузка документов, различные настройки.
Ядро недоступно для редактирования — для его интеграции с конфигурацией 1С нужно вносить изменения в интеграционную обработку.
Для того, чтобы помочь вам разобраться с принципами построения ядра (следовательно, и с принципами функционирования самой обработки 1С), был создан этот раздел.
Ядро и формы обработки 1С
Ядро
Ядро обработки представляет собой программный интерфейс для взаимодействия между товарно-учетными системами на базе 1С и «Складом 15» на платформе Mobile SMARTS.
Ядро полностью отвязано (абстрагировано, независимо) от конкретной конфигурации 1С. Для интеграции с конкретной конфигурацией предназначена отдельно поставляемая интеграционная обработка, содержащая в себе запросы для выгрузки справочников и обработчики загрузки документов из Mobile SMARTS в 1С.
Предполагается, что вносить изменения в ядро могут ТОЛЬКО разработчики «Клеверенс». Для интеграции ядра с конфигурацией 1С нужно вносить изменения в интеграционную обработку. Поэтому всегда используется одна и та же версия ядра, а разница лишь в интеграционных обработках и настройках Mobile SMARTS. Аналогично у платформы и конфигураций «1С: Предприятия» — платформа 1С предоставляет интерфейс для разработки конфигураций и закрыта от изменений разработчиками.
Весь функционал ядра разбит на глобальное ядро/ контекст (исполняется на сервере 1С) и локальное ядро/ контекст (исполняется на тонком клиенте):
- Глобальное ядро (контекст). Это модуль обработки, реквизиты и табличные части обработки. Здесь хранится основная часть ядра – механизмы работы с базой Mobile SMARTS, механизмы работы с настройками, универсальные и вспомогательные механизмы работы с данными. При работе в онлайн-режиме здесь же (в реквизитах) хранятся текущие настройки системы.
- Локальное ядро (контекст). Специально созданная форма обработки, в которой хранится мини-копия ядра – экспортные методы и функции, отвечающие ТОЛЬКО за работу с компонентой (обращение к методам COM-объекта Mobile SMARTS).
Для каждого из контекстов существует кэш — структуры данных, которые при запуске ядро получает из баз 1С и Mobile SMARTS, необходимые для дальнейшей работы ядра.
Локальное ядро необходимо только в случаях, когда сервер Mobile SMARTS (COM-компонента) установлен на локальной машине (там же, откуда запускается 1С). В иных случаях (файловая база 1С, сервер Mobile SMARTS установлен на сервере 1С) — используется глобальное ядро.
Техническая реализация данного механизма проста — в реквизитах объекта и в КАЖДОЙ форме создаются обязательные реквизиты «ЯдроОбщее» и «ЯдроКомпон енты» произвольного типа. Данные реквизиты содержат «транзитные» ссылки на используемый контекст.
- Реквизит «ЯдроОбщее» всегда содержит в себе значение «ОбработкаОбъект» для доступа к глобальному контексту.
- Реквизит «ЯдроКомпоненты» содержит в себе либо значение «ОбработкаОбъект» (в случае, если компонента установлена на сервере 1С), либо ссылку на форму с мини-копией ядра (в случае использования клиент-серверного варианта работы и компоненты, установленной на локальной машине).
Для исключения «перекрестного» обращения к контекстам в связи с идентичными именами реквизитов, содержащих в себе ссылки на контексты, жестко регламентируется обращение к ним:
- Из модуля объекта обращение к ядру производится только через предикат «ЭтотОбъект.»: «ЭтотОбъект.ЯдроОбщее» или «ЭтотОбъект.ЯдроКомпоненты».
- Из всех остальных модулей форм обращение производится только через предикат «ЭтаФорма.»: «ЭтаФорма.ЯдроОбщее» или «ЭтаФорма.ЯдроКомпоненты».
Процедуры и функции мини-ядра клиентского контекста полностью идентичны аналогичным процедурам и функциям серверного контекста (можно их просто копипастить). Разница будет только в их вызове, например «ЭтотОбъект.ЯдроОбщее.ПолучитьНастройку(ИмяНастройки)» или «ЭтаФорма.ЯдроКомпоненты.СохранитьДокументНаСервереSMARTS()».
Все процессы передачи данных между глобальным контекстом и остальными субъектами (формами и даже локальным контекстом, вне зависимости от месторасположения последнего) производятся строго через механизм временного хранилища 1С.
Порядок инициализации контекстов:
-
При запуске системы из модуля объекта инициализируется глобальный контекст«ЭтотОбъект.ЯдроОбщее = ЭтотОбъект»
-
Считывается настройка «Место установки сервера SMARTS».
Если место установки компоненты – на сервере, тогда инициализируется локальный контекст «ЭтотОбъект.ЯдроКомпоненты = ЭтотОбъект».
Если место установки компоненты – на клиенте, тогда локальный контекст не инициализируется, и будет инициализирован только при открытии главной формы обработки.
-
Если локальный контекст инициализирован – в кэш глобального контекста считываются все настройки из базы Mobile SMARTS («ЯдроОбщее.Настройки = ЯдроКомпоненты.ИнициализироватьНастройки»).
-
В случае работы в онлайн-режиме инициализация на этом заканчивается, ибо онлайн-режим может работать только в случае, когда компонента установлена на сервере (либо использование файлового варианта). В противном случае, при батч-режиме или при режиме автообмена – инициализация продолжается.
-
При открытии главной формы обработки мы повторно инициализируем глобальный контекст, но уже применительно к реквизитам формы – «ЭтаФорма.ЯдроОбщее = ЭтотОбъект».
-
Считывается настройка «Место установки сервера Mobile SMARTS».
Если место установки компоненты – на сервере, тогда инициализируется локальный контекст «ЭтаФорма.ЯдроКомпоненты = ЭтотОбъект».
Если место установки компоненты – на клиенте, тогда локальный контекст инициализируется как «ЭтаФорма.ЯдроКомпоненты = ПолучитьФорму(«ФормаЛокальногоКонтекста»)».
Реквизиты форм «ЯдроОбщее» и «ЯдроКомпоненты» являются наследуемыми, и должны всегда передаваться в подчиненную форму при ее открытии (например, при открытии формы обмена документами из главной формы обработки).
Локальная обработка не имеет доступа к глобальной, соответственно, все необходимые данные настроек (из глобальной обработки) для работы методов локального контекста должны передаваться непосредственно при их вызове.
Формы
Формы не являются непосредственной частью ядра. Они являются пользовательским интерфейсом для использования 3 главных функций ядра: работа с настройками, обмен справочниками, обмен документами.
Формы делятся на:
- ключевые формы — главная форма, форма обмена документами, форма списка отборов справочников, локальный контекст
- формы списков(для различных таблиц, т.е. сериализуемых настроек) — узлы, бп, отборы документов, глобальные параметры, произвольные коды, произвольные отборы документов. Содержимое этих форм хранится в настройках базы MS, далее, при старте обработке, помещается в кэш и хранится там до завер шения работы обработки. Эти формы доступны только для просмотра (за исключением формы списка отборов справочников) + опционально можно экспортировать/импортировать содержимое список во внешние файлы.
- формы настроек (формы карточек) — узла, бп, отбора справочников, отбора документов, правила выгрузки полей, правила загрузки полей, правила выгрузки ТЧ, правила загрузки ТЧ, связи выгрузки ТЧ, произвольный код, произвольный отбор документов. При открытии в данные формы передаётся содержимое текущей строки того списка, из которого она была открыта. Форма позволяет редактировать данные и сохранять их.
- формы просмотра (ReadOnly) — документа MS и шапки/строки документа MS
- служебные формы — выбор строки из таблицы, загрузки новых ШК, настройки подключения, выбор документа для загрузки в 1С, выбор пользователя или группы, редактирования текста запроса
Формы обработки НЕ ДОЛЖНЫ содержать никаких методов работы с объектными данными 1С или Mobile SMARTS. Вся работа с данными 1С происходит в глобальной обработке, а с данными Mobile SMARTS – в локальной обработке. Все промежуточные методы подготовки, обработки и прочего с полученными данными – находятся только в глобальной обработке.
Функционал ядра обработки 1С
Функционал ядра разбит на 3 крупных блока:
- Работа с настройками обмена (настройки бизнес-процессов, торговых объектов, глобальных параметров, отборов документов и справочников в разрезе торговых объектов и типов обмена и т.д.).
- Выгрузка справочников в режимах онлайн, оффлайн и по регламенту согласно настройкам обмена.
- Выгрузка/загрузка документов из 1С в Mobile SMARTS согласно настройкам обмена.
Все остальные блоки являются вспомогательными для работы с этими 3 блоками.
-
Транзитный блок — расположен на клиенте, нужен для передачи управления на сервер (при необходимости), параметры и результат функции передаются через временное хранилище
-
Блок сохранения/восстановления настроек подключения и параметров текущего узла в хранилище общих настроек (далее ХОН) — доступно только на сервере, с клиента доступны через транзитный блок.
-
Программный интерфейс для работы напрямую с MS (API) — полностью дублируются на клиенте и на сервере, т.к. база Mobile SMARTS может быть зарегистрирована на клиенте либо на сервере 1С. Фактически, это обмен данными с Mobile SMARTS непосредственно через COM-объекты и вызовы их методов: терминал коннектор, база, настройки, сторадж коннектор, среда.
- сохранение/восстановление настроек, удаление настроек, получение настроек по умолчанию;
- выгрузка справочников (номенклатуры и доп.таблиц);
- обмен документами — выгрузка, загрузка, удаление, получение списков документов;
- служебные — получение списка баз, базы по ид, настроек базы, получение текста ошибки, метаданных документов, пользователей, шаблонов весового товара.
-
Клиентские и серверные обёртки для работы с настройками MS:
- вызывают соответствующие методы API MS (инициализация кэшей, чтение, установка настроек, запись/чтение из кэша, получение настроек по умолчанию);
- вспомогательные механизмы;
- ТОЛЬКО КЛИЕНТСКИЕ МЕТОДЫ: сохранения/восстановления из файла таблиц из форм список, либо отдельных элементов таблиц из форм настроек.
-
Клиентские и серверные методы выгрузки справочников и номенклатуры:
- методы для получения данных из 1С есть ТОЛЬКО НА СЕРВЕРЕ, т.к. только оттуда можно получить данные из базы, поэтому они вызываются с клиента через транзитный блок;
- также методы для формирования текстов запроса, работы с СКД, постобработка таблиц данных выполняются ТОЛЬКО НА СЕРВЕРЕ;
- методы для взаимодействия с API MS одинаковые на клиенте и сервере.
-
Работа с документами 1С— аналогично п.5, получе ние документов из 1С, запись в 1С, получение списка документов и т.д. выполняется ТОЛЬКО НА СЕРВЕРЕ, с клиента вызываются через транзитный блок
-
Внешние вызовы — выполняются только на сервере или внешнем соединении, нужны для работы ТСД в онлайн-режиме. В свою очередь, решают следующие задачи:
- получение актуальных данных справочников из 1С согласно настройкам отборов,
- получение списка документов 1С согласно настройкам отборов,
- выгрузка документа 1С в Mobile SMARTS для его набора на терминале,
- загрузка (завершение) документа из Mobile SMARTS в 1C.
Хранение объектов и переменных
Переменные ядра
Переменные ядра хранят данные, к которы м требуется часто обращаться во многих методах ядра (фактически, это кэш). Необходимы для быстрого доступа к часто используемым данным, чтобы не получать их из баз Mobile SMARTS 1С при каждом обращении к ним.
Все данные, которые помещаются в переменные ядра при инициализации обработки (интерактивно или онлайн) откуда-то загружаются — из метаданных базы Mobile SMARTS, настроек базы Mobile SMARTS, из хранилища общих настроек 1С (ХОН), из метаданных конфигурации 1С или создаются программно и заполняются постоянными значениями-константами.
Для локального ядра это:
- клиентские переменные формы «ЛокальныйКонтекст», которые доступны в любых, но только клиентских методах формы
- реквизиты формы «ЛокальныйКонтекст», которые доступны в любых и клиентских, и серверных методах формы.
| Имя переменной | Для чего нужна | Откуда загружается | Может ли изменяться |
| Клиентские переменные формы «Локальный контекст» | |||
| РасположениеКомпонент | Тип — Строка, значения — «НаКлиенте» или «НаСервере». Означает, что с клиента 1С или с сервера 1С будет осуществляться взаимодействие с базой Mobile SMARTS. Для обмена через COM обязательно наличие зарегистрированной внешней компоненты на соответствующей стороне (клиент/сервер). Для REST API ничего дополнительно делать не нужно. | ХОН | Да, в форме настройки подключения |
| ДанныеТекущегоУзла | Тип — Структура. Содержит в себе ID узла, наименование (например, «Магазин на Ленина») и ID базы Mobile SMARTS, которая привязана к этому узлу. При этом, к узлу может быть привязана либо частная база, либо основная база. Необходимо для случая, когда к текущей базе 1С привязан определенный узел (торговый объект – магазин, склад) и необходимо осуществлять обмен документами и справочниками не с основной базой Mobile SMARTS, а с частной. В этом случае, в основной базе Mobile SMARTS хранятся только настройки, а справочники и докуме нты – в частной базе. | Настройки базы Mobile SMARTS | Да, на главной форме при выборе узла (торгового объекта) Категории НастроекMS |
| КатегорииНастроекMS | Тип – Структура. Содержит метадан- ные о настройках, сгруппированные по определенным критериям: - сериализуемые настройки– это настройки, которые являются таблицами. Нужны только для того чтобы знать, нужно ли сериализовывать/десериализо-вывать при экспорте/импорте настроек в файл/из файла - узловые настройки – это настройки, которые можно сохранять в разрезе узлов (магазинов, складов), например, настройки обмена справочниками – т.к. для каждого узла может быть необходимость выгружать только «свою» номенклатуру, склады, остатки и т.д. - настройки подключения– нужны, в первую очередь, для подключения к базе Mobile SMARTS – ID базы, имя базы, строка подключения, имя ИО, ID текущего узла, данные о конфигурации 1С - настройки справочников – хранит флажки, означающие, какие с правочники нужно выгружать – номенклатура, склады, остатки и т.д. - настройки номенклатуры – хранит настройки выгрузки справочника «номенклатура» – использовать шаблоны весового товара, префикс кода весового товара, длина кода весового товара, переписывать номенклатуру при выгрузке и т.д. | Программно | Нет |
| НастройкиИнициализированы | Тип – Булево. Означает, что настройки успешно загружены из базы Mobile SMARTS. Если флаг = Ложь, значит, необходимо перезагрузить настройки из базы | Программно | Да, если потеряна связь с сервером MS |
| ПараметрыПодключенияMS | Тип – Структура. Хранит настройки подключения к базе Mobile SMARTS — ID базы, Имя базы, ID приложения, Строка подключения, QR, Логин, Токен, имя ИО, путь ИО, тип ИО, тип установленного продукта, уровень приложения | ХОН | Да, в форме настройки подключения |
| СтруктураМетаданных | Тип – Структура. Хранит метаданные документов 1С, метаданные документов MS, пользователи MS, устройства MS, таблицы MS, UniПолейНоменклатуры | Метаданные базы 1С, метаданные базы MS, Настройки базы MS | Не т |
| COMЧастнойБазыMS | Тип – Структура. Хранит COM-объекты для работы с частной базой – TerminalConnector и StorageConnector. Заполняется, только если подключение к базе Mobile SMARTS осуществляется через COM. Для REST API не заполняется. | Программно | Да, если изменим базу, к которой будем подключаться для обмена |
| COMВременнойБазыMS | Аналогично COMЧастнойБазыMS, но используется только в форме подключения для проверки соединения, чтобы не затирать соединение с существующими базами | Программно | Да, т.к. служебная переменная |
| COMБазыMS | Аналогично COMЧастнойБазыMS, но используется для взаимодействия с основной базой MS | Программно | Да, если изменим базу, к которой будем подключаться для обмена |
| ТекущиеНастройкиMS | Тип – Структура. Содержит все настройки текущей базы MS в виде пар Ключ-Значение, например, ВыгружатьНоменклатуруСразу = Истина и т.д. | Настройки базы MS | Да, из всех форм, где могут редактироваться н астройки |
| ПутьКОбработке | НЕ ИСПОЛЬЗУЕТСЯ!!! Путь хранится в переменной ядра ПараметрыПодключенияMS. ПутьИнтеграционнойОбработки | — | — |
| КОМсоздан | Тип – Булево. Означает, что успешно созданы COM-объекты для работы с базами MS – TerminalConnector и StorageConnector и помещены в структуры COMЧастнойБазыMS/ COMБазыMS | Программно | Да, если потеряна связь с сервером MS |
| ПраваПользователя | Тип – Строка. Хранит роль пользователя в 1С – «Администратор», «Пользователь», влияет на отображение некоторых кнопок на главной форме – кнопки настройки, кнопки выбора ИО | Метаданные базы 1С | Нет |
| ФормаИнтеграционной Обработки | Тип – ФормаКлиентскогоПриложения. Используется для вызова клиентского обработчика «После открытия формы документа 1С» | Программно | Да, в форме настройки ИО |
| Реквизиты формы «Локальный контекст» | |||
| _ИнтеграционнаяОбработка Адрес | Тип – Строка. Хранит адрес интеграционной обработки во временном хранилище. Впоследствии, интеграционная обработка извлекается из временного хранилища на стороне сервера и из нее вызываются экспортные методы – обработчики загрузки документа и т.д. | Программно | Да, в форме настройки ИО |
| АдресаПеременных | Тип – Структура. Хранит в себе адреса во временном хранилище других переменных ядра. При изменении значений в самих переменных ядра параллельно изменяются эти же значения и во временном хранилище. Эту структуру можно передавать в глобальное ядро и оттуда иметь доступ практически ко всем переменным локального ядра. Состав структуры, жирным и подчеркнутым выделены пере- менные, хранящие адреса аналогичных переменных ядра: - ДанныеТекущегоУзла - ИдентификаторФормы – служебный УИД для хранения данных во временном храни- лище, пока открыта обработка - ИнтеграционнаяОбработка - см. _ИнтеграционнаяОбработка - Адрес - ИнформацияСовместимости– версия ИО, поддерживаемые конфигурации 1С, поддерживаемые версии конфигураций 1С, использу- ется для сообщения на главной форме о успешном/неуспешном подключении ИО и её совместимости с текущей базой 1С - ИспользоватьREST_API– флаг, означает возможность использования REST API - НастройкиИнициализированы - ПараметрыПодключенияMS - РасположениеКомпоненты - СтруктураМетаданных - СтруктураПодключения - БазыMS – аналог ПараметрыПодключенияMS - ТекущиеНастройкиMS - ТипИнтерфейса | Программно, т.к. в нее просто сохраняются другие, уже инициализи- рованные, переменные ядра | — |
| ЕстьЧастнаяБаза | Тип – Булево. Означает, что к текущей базе 1С привязан какой-либо узел и этот узел будет использовать частную базу для обмена документами и справочниками | Программно | Да, на главной форме при выборе узла (торгового объекта) |
| ИмяИнтеграционнойОбра- ботки | Тип – Строка, СправочникСсылка Для внешней ИО – путь к файлу внешней обработки. Для встроенной в конфигурацию 1С ИО – имя метаданных встроенной обработки. Для ИО из справочника «Дополнительные о тчеты и обработки» — ссылку на элемент справочника | ХОН | Да, в форме настройки ИО |
| ИнтеграционнаяОбработка Подключена | Тип – Булево. Означает, что интеграционная обработка успешно подключена. Флаг взводится при инициализации ядра | Программно | Да, если потеряна связь с сервером MS |
| П олноеИмяОбъекта | Тип – Строка. Полное имя обработки-ядра, например, «ВнешняяОбработка.КлеверенсТСД_ ОсновнаяОбработка» | Программно | Нет |
| ТипОбработки | Тип – Строка. Определяет расположение ИО — «ФайлНаДиске», «Встроенная» или «СправочникСсылка» | Настройки базы MS | Да, в форме настройки ИО |
Для глобального ядра это:
-
реквизиты обработки, доступны из любого метода модуля объекта;
- ЭтоWebСервис – флаг, означающий работу ядра из веб-сервиса;
- COMЧастнойБазыMS, COMВременнойБазыMS, COMБазыMS – аналоги одноименных переменных локального ядра.
-
серверные переменные модуля объекта, доступны из лю бого метода модуля объекта;
- КэшАдресаПеременных– копия переменной АдресаПеременных, но используется только для онлайн-режима, когда между вызовами ядра нужно сохранять значения переменных ядра.
-
переменная локального ядра АдресаПеременных, передающаяся в методы глобального ядра в качестве параметра, посредством которой есть доступ к большинству переменных локального ядра.
Что хранится в хранилище общих настроек 1С (ХОН)
Принцип сохранения/ загрузки данных в ХОН
Есл и у пользователя 1С есть право доступа «Администрирование данных», то сохраняется и индивидуальная настройка по имени пользователя, и общая (глобальная) настройка для всей базы 1С, с именем пользователя, равным пустой строке «».
Иначе сохраняется только индивидуальная настройка по имени пользователя.
Аналогичный принцип при загрузке данных из ХОН, но можно при загрузке указывать, загружать только пользовательскую настройку или дополнительно еще и общую настройку
| Ключ | Значение |
| Cleverence_ПараметрыПодключенияMS | Структура, содержащая Ид базы, имя базы, Ид приложения, строку подключения, путь и имя ИО, версию приложения и т.д. |
| Cleverence_РасположениеКомпоненты | Расположение внешней COM-компоненты для работы из 1С с базой MS: на клиенте 1С или на сервере 1С (файлы Cleverence.MobileSMARTS.ComConnector.dll, Cleverence.Infrastructure.dll, Cleverence.Warehouse.TerminalConnector.dll). При этом, сама база MS может быть расположена где угодно, главное, чтобы к ней был доступ |
| Cleverence_ДатаАктуально стиКэша | Дата и время, когда в последний раз из MS (файл customsettings.xml) в кэш были считаны настройки базы. Используется только для веб-сервиса либо внешнего соединения. Если прошло более 15 минут после последнего получения настроек, то нужно перечитать настройки из MS, т.к. за это время настройки могли поменять интерактивно из 1С или из панели MS |
| Cleverence_СтруктураМетаданныхДокументы1С | Mетаданные документов 1С – имена документов, их реквизиты, табличные части, реквизиты табличных частей |
| Cleverence_СтруктураНастроек | Все настройки базы MS, такие как: настройки отборов документов и справочников, бизнес-процесы, произвольные коды и т.д. |
| Cleverence_СтруктураНастроек_ + ID_ТекущегоУзла | Все настройки базы MS, но уже для конкретного торгового объекта |
| Cleverence_СтруктураМетаданныхДокументыMS | Метаданные документов MS – имена документов, их реквизиты, табличные части, реквизиты табличных частей |
| Cleverence_ПользователиMS | Пользователи и группы пользователей, которые заведены в подключенной базе MS |
| Cleverence_ТаблицыMS | Таблицы MS (имена таблиц, имена полей таблиц) таких как: «Склады», «Остатки», «Цены» и т.д. |
| Cleverence_УстройстваMS | Ид и имена устройств, подключенных к базе |
| Cleverence_ИмяИнтеграционнойОбработки | Имя ИО, например, «ИнтеграционнаяОбработка_УТ_11_4» |
| Cleverence_РежимВыбораБазы | По строке подключения ИЛИ из списка |
| Cleverence_ТипИнтерфейса | REST_API ИЛИ COM |
| Cleverence_REST_API_ДатаАктуальностиСое-динения | Дата и время последнего подключения по REST API к базе MS. Используется только для веб-сервиса либо внешнего соединения |
| Cleverence_ДатаАктуальностиНастроек_ + ПостфиксБазы | Дата, когда были сохранены/изменены настройки пользователем. Обновляется в методах КомЯдро_ЗаписатьНастройкиSMARTS. Проверка даты осуществляется в онлайн-вызовах со стороны MS, если настройки изменились, то происходит переинициализация настроек |
Описание хранения настроек в базе
В каждом шаблоне базы Mobile SMARTS (например «Клеверенс Магазин 15 Полный.mstmpl») в папке «\Обработки 1С\Настройки по умолчанию\» располагаются файлы с настройками по умолчанию (они же — типовые настройки) для разных конфигураций 1С:
В мастере создания новой базы из шаблона мы выбираем, с какой конфигурацией 1С будет обмениваться данными новая база Mobile SMARTS. Соответствие конфигураций 1С и файлов настроек хранится в файле шаблона «1CConfigs.xml»:
После распаковки данных из шабл она в папку базы Mobile SMARTS копируется папка «Обработки 1С» с файлами настроек для всех конфигураций 1С, копируется файл «1CConfigs.xml», а также копируется файл, соответствующий выбранной конфигурации 1С, и сохраняется с именем «default_customsettings.xml». Например, мы выбрали конфигурацию «Управление торговлей 11.4», поэтому в файле «default_customsettings.xml» хранятся данные из файла «ut114.xml» (на скриншоте можно увидеть, что размеры файлов совпадают с точностью до байта).
В файле «default_customsettings.xml» хранятся все настройки базы, которые будут использованы по умолчанию. Так как это типовые настройки, то их нельзя изменять программно в коде 1С.
После первого запуска обработки 1С в базу Mobile SMARTS записывается еще ряд настроек, которые уже считаются не типовыми, а пользовательскими, поэтому они сохраняются в отдельный файл — «customsettings.xml». Часть из них создает мастер первого запуска Mobile SMARTS, другая часть настр оек создается из обработки 1С при первом запуске.
Когда мы запрашиваем у сервера Mobile SMARTS какую-то настройку по ее ключу, то сперва данная настройка ищется в пользовательских настройках, и если там не была найдена, то ищется в типовых. Если нигде не найдена, то возвращается значение «Неопределено».
В обработке 1С явно указывается доступный список настроек, которые будут считаны из базы Mobile SMARTS (они же - метаданные настроек MS, структура настроек MS). Делается это в методе ГлЯдро_ПолучитьПустуюСтруктуруНастроекSMARTS(), поэтому, если в новом релизе того или иного продукта Mobile SMARTS (например, «Склад 15», «Магазин 15») обновляются метаданные настроек (добавляются новые настройки, удаляются существующие настройки, меняется тип значений существующих настроек), их также нужно явно модифицировать в этом методе для возможности корректной работы с ними в обработке:
