Алгоритм получения настроек с сервера во внешнюю обработку — различия между версиями
(→Пункт 3. Переход в раздел:) |
|||
Строка 14: | Строка 14: | ||
** Параметры вызова: | ** Параметры вызова: | ||
*** service - идентификатор сервиса ВО 1С - Com1C82 | *** service - идентификатор сервиса ВО 1С - Com1C82 | ||
− | |||
*** URL - строка соединения базы данных. | *** URL - строка соединения базы данных. | ||
*** ini - массив со структурой, вида: ключ - строка "ini_type", значение - строка "Меню". | *** ini - массив со структурой, вида: ключ - строка "ini_type", значение - строка "Меню". | ||
Строка 26: | Строка 25: | ||
== Пункт 2. Если идентификатор имеется, то: == | == Пункт 2. Если идентификатор имеется, то: == | ||
− | '''Шаг 1.''' | + | '''Шаг 1.''' Получает меню соединения. |
* Проверяет наличие сбисМеню в кэше по выбранному ID, берёт его. | * Проверяет наличие сбисМеню в кэше по выбранному ID, берёт его. | ||
* Если меню нет, то вызывает метод [[ReadConnection_(IntegrationConnection)|readConnection]] | * Если меню нет, то вызывает метод [[ReadConnection_(IntegrationConnection)|readConnection]] | ||
Строка 43: | Строка 42: | ||
'''Шаг 3.''' Получает данные настроек и сбисПараметров. | '''Шаг 3.''' Получает данные настроек и сбисПараметров. | ||
* Проверяет наличие настроек в кэше по идентификатору и сформированному на Шаге 2 массиву "ini". | * Проверяет наличие настроек в кэше по идентификатору и сформированному на Шаге 2 массиву "ini". | ||
− | * | + | * Вызывает метод [[ReadConnection_(IntegrationConnection)|readConnection]] |
** Параметры вызова: | ** Параметры вызова: | ||
*** id - 128 битный идентификатор соединения. | *** id - 128 битный идентификатор соединения. | ||
*** version - числовое представление версии системы, где каждый разряд версии, кроме первого, дополнен нулями до 4 символов. Пример: 3.2.0.11 = 3000200000011. | *** version - числовое представление версии системы, где каждый разряд версии, кроме первого, дополнен нулями до 4 символов. Пример: 3.2.0.11 = 3000200000011. | ||
− | + | *** ini - массив объектов "ini", которые не удалось найти кэше. Если все файлы найдены, не передаётся. | |
− | |||
− | |||
− | |||
− | *** ini - массив объектов "ini", которые не удалось найти кэше. | ||
** Кэширует полученные настройки. | ** Кэширует полученные настройки. | ||
* Получает структуру сбисПараметров из поля "json_connection" | * Получает структуру сбисПараметров из поля "json_connection" | ||
− | '''Шаг 4.''' Выполняет проверку | + | '''Шаг 4.''' Выполняет проверку настроек. |
− | * Сравнивает значение | + | * Проверяет необходимость проверки. |
− | * Сравнивает | + | ** Проверяет изменение конфигурации базы данных: |
− | * | + | *** Сравнивает значение узла "ВерсияКонфигурации" в сбисПараметрах и текущую версию конфигурации - Метаданные.Версия. |
− | + | ** Проверяет необходимость создания нового подключения: | |
+ | *** Выбранные настройки являются общими. | ||
+ | ** Проверяет изменение файлов настроек: | ||
+ | *** Сравнивает дату последней проверки каждой включенной настройки в сбисПараметрах и поле соединения "update_date". | ||
+ | * Выполняет проверку, если требуется. | ||
** Выполняет функцию ПроверитьИниФайлы на формаНастроекОбщее. | ** Выполняет функцию ПроверитьИниФайлы на формаНастроекОбщее. | ||
− | ** Обновляет дату проверки в сбисПараметрах | + | ** Обновляет дату проверки в сбисПараметрах. |
** Обновляет поле "ВерсияКонфигурации" на текущую версию конфигурации - Метаданные.Версия. | ** Обновляет поле "ВерсияКонфигурации" на текущую версию конфигурации - Метаданные.Версия. | ||
'''Шаг 5.''' Сохраняет выбранное соединение. | '''Шаг 5.''' Сохраняет выбранное соединение. | ||
− | |||
− | |||
* Если проверка настроек проводилась. | * Если проверка настроек проводилась. | ||
− | ** В поле "json_connection" записываются сбисПараметры с учетом изменений. | + | ** Готовит структуру на запись. |
− | ** Если выбранное соединение является общим, то его идентификатор указывается в качестве параметра "parent". Поле "id" очищается. | + | *** Поле "ini" не указывается. |
− | ** | + | *** Все поля остальные поля берутся из выбранного соединения. |
− | * | + | ** Записывает сбисПараметры: |
− | ** Вызывает метод [[WriteConnection_(IntegrationConnection)|WriteConnection]]. | + | *** В поле "json_connection" записываются сбисПараметры с учетом изменений. |
− | ** | + | ** Определяет необходимость создания нового подключения. |
− | * | + | *** Если выбранное соединение является общим, то его идентификатор указывается в качестве параметра "parent". Поле "id" очищается. |
+ | ** Сохраняет изменения. | ||
+ | *** Вызывает метод [[WriteConnection_(IntegrationConnection)|WriteConnection]]. | ||
+ | * Сохраняет ID соединения в обработку | ||
+ | ** ID выбранного соединения сохраняет в пользовательский параметр и реквизит главного окна "ConnectionID". | ||
'''Шаг 6.''' Выполняет Пункт 3. | '''Шаг 6.''' Выполняет Пункт 3. |
Версия 14:16, 1 ноября 2017
Статья описывает алгоритм работы внешней обработки СБИС после изменения способа хранения настроек из "В каталоге" на "В СБИС".
Для видимости переключателя должен быть установлен способ обмена extSDK, либо extSDKCrypto. Переключатель способа хранения настроек доступен:
- На форме настройки соединения, которая открывается на стадии авторизации в СБИС при запуске обработки.
- На форме главного окна, в разделе "Настройки" - подраздел "Файлы настроек".
При изменении способа хранения настроек на "В СБИС", проверяет наличие готового соединения в параметрах - "ConnectionID", где хранится 128-битный идентификатор.
Пункт 1. Если идентификатор отсутствует, то:
Шаг 1. Получает список доступных соединений по URL.
- Вызывает метод ReadConnectionList
- Параметры вызова:
- service - идентификатор сервиса ВО 1С - Com1C82
- URL - строка соединения базы данных.
- ini - массив со структурой, вида: ключ - строка "ini_type", значение - строка "Меню".
- Параметры вызова:
Шаг 2. Берёт первое соединение из полученного списка.
- Если список соединений пуст, то переходит к Пункту 3.
- Кэширует меню выбранного соединения.
Шаг 3. Выполняет Пункт 2.
Пункт 2. Если идентификатор имеется, то:
Шаг 1. Получает меню соединения.
- Проверяет наличие сбисМеню в кэше по выбранному ID, берёт его.
- Если меню нет, то вызывает метод readConnection
- Параметры вызова:
- id - 128 битный идентификатор соединения.
- version - числовое представление версии системы, где каждый разряд версии, кроме первого, дополнен нулями до 4 символов. Пример: 3.2.0.11 = 3000200000011
- ini - массив со структурой, вида: ключ - строка "ini_type", значение - строка "Меню".
- Кэширует полученное меню.
- Параметры вызова:
Шаг 2. Формирует массив имен и типов включенных ини по полученному меню.
- Включенной считается ини с установленным флагом в поле "enable".
- Структура элементов массива "ini":
- Ключ - "ini_type", значение - тип ини.
- Ключ - "ini_name", значение - системное имя ини.
Шаг 3. Получает данные настроек и сбисПараметров.
- Проверяет наличие настроек в кэше по идентификатору и сформированному на Шаге 2 массиву "ini".
- Вызывает метод readConnection
- Параметры вызова:
- id - 128 битный идентификатор соединения.
- version - числовое представление версии системы, где каждый разряд версии, кроме первого, дополнен нулями до 4 символов. Пример: 3.2.0.11 = 3000200000011.
- ini - массив объектов "ini", которые не удалось найти кэше. Если все файлы найдены, не передаётся.
- Кэширует полученные настройки.
- Параметры вызова:
- Получает структуру сбисПараметров из поля "json_connection"
Шаг 4. Выполняет проверку настроек.
- Проверяет необходимость проверки.
- Проверяет изменение конфигурации базы данных:
- Сравнивает значение узла "ВерсияКонфигурации" в сбисПараметрах и текущую версию конфигурации - Метаданные.Версия.
- Проверяет необходимость создания нового подключения:
- Выбранные настройки являются общими.
- Проверяет изменение файлов настроек:
- Сравнивает дату последней проверки каждой включенной настройки в сбисПараметрах и поле соединения "update_date".
- Проверяет изменение конфигурации базы данных:
- Выполняет проверку, если требуется.
- Выполняет функцию ПроверитьИниФайлы на формаНастроекОбщее.
- Обновляет дату проверки в сбисПараметрах.
- Обновляет поле "ВерсияКонфигурации" на текущую версию конфигурации - Метаданные.Версия.
Шаг 5. Сохраняет выбранное соединение.
- Если проверка настроек проводилась.
- Готовит структуру на запись.
- Поле "ini" не указывается.
- Все поля остальные поля берутся из выбранного соединения.
- Записывает сбисПараметры:
- В поле "json_connection" записываются сбисПараметры с учетом изменений.
- Определяет необходимость создания нового подключения.
- Если выбранное соединение является общим, то его идентификатор указывается в качестве параметра "parent". Поле "id" очищается.
- Сохраняет изменения.
- Вызывает метод WriteConnection.
- Готовит структуру на запись.
- Сохраняет ID соединения в обработку
- ID выбранного соединения сохраняет в пользовательский параметр и реквизит главного окна "ConnectionID".
Шаг 6. Выполняет Пункт 3.
Пункт 3. Переход в раздел:
Если полученные файлы ини прошли проверку:
- Выполняет переход в раздел, установленный по-умолчанию.
Если настройки полученного соединения не прошли проверку:
- Шаг 1. Если были ошибки при проверке, показывает протокол об ошибках.
- ВывестиПротоколПроверкиИниФайлов на форме ФайлыНастроекОбщее.
- Шаг 2. Переходит в "Настройки", подраздел "Файлы настроек".
- ПерейтиВРаздел на форме ГлавноеОкно
- Шаг 3. Заполняет список доступных конфигураций.
- ОбновитьКонтент на форме Раздел_Настройки_ФайлыНастроек
- Вызывает ReadConfigList.
- Параметры вызова:
- service - идентификатор сервиса ВО 1С - Com1C82
- Параметры вызова:
- Заполняет список, кэширует.
- Вызывает ReadConfigList.
- ОбновитьКонтент на форме Раздел_Настройки_ФайлыНастроек
- Шаг 4. Проверяет наличие выбранного соединения.
- Если соединение не выбрано:
- а. Подбирает подходящую типовую конфигурацию.
- ОпределитьТипНастроекПоПрефиксу на форме ФормаНастроекОбщее.
- б. Получает меню выбранной конфигурации.
- Проверяет меню в кэше. Если есть, берёт.
- Если в кэше нет, вызывает ReadConfig
- Параметры вызова:
- service - идентификатор сервиса ВО 1С - Com1C82.
- subsystem - поле "subsystem" выбранной конфигурации.
- version - поле "version" выбранной конфигурации.
- ini - массив со структурой, вида: ключ - строка "ini_type", значение - строка "Меню".
- Параметры вызова:
- в. Формирует массив имен и типов включенных ини по меню.
- Включенной считается ини с установленным флагом в поле "enable".
- Структура элементов массива "ini":
- Ключ - "ini_type", значение - тип ини.
- Ключ - "ini_name", значение - системное имя ини.
- г. Получает ини выбранной конфигурации.
- Проверяет ини в кэше по сформированному массиву. Если есть, берёт.
- Если в кэше нет, вызывает ReadConfig
- Параметры вызова:
- service - идентификатор сервиса ВО 1С - Com1C82
- subsystem - поле "subsystem" выбранной конфигурации.
- version - поле "version" выбранной конфигурации.
- ini - массив объектов "ini", которые не удалось найти кэше.
- Параметры вызова:
- Кэширует полученные настройки
- д. Выбранная конфигурация назначается выбранным соединением с пометкой создания нового при записи.
- е. Выполняется проверка выбранного соединения.
- а. Подбирает подходящую типовую конфигурацию.
- Если соединение не выбрано:
- Шаг 5. Находит конфигурацию выбранного соединения.
- ОпределитьТипНастроекПоПрефиксу на форме ФормаНастроекОбщее.
- Шаг 6. Получает меню выбранной конфигурации.
- Проверяет меню в кэше. Если есть, берёт.
- Если в кэше нет, вызывает ReadConfig
- Параметры вызова:
- service - идентификатор сервиса ВО 1С - Com1C82
- subsystem - поле "subsystem" выбранной конфигурации.
- version - поле "version" выбранной конфигурации.
- ini - массив со структурой, вида: ключ - строка "ini_type", значение - строка "Меню".
- Кэширует полученное меню
- Параметры вызова:
- Шаг 7. Строит список доступных ини.
- ПолучитьМассивФайловДляКонфигурации на форме ФайлыНастроекСервер.
- ПолучитьМассивУстановленныхИниФайлов на форме ФайлыНастроекСервер.
- Шаг 8. Отображает выбранные ини соединения и конфигурации.
- сбисОбновитьТаблицыИниФайлов на форме ГлавноеОкно.
- В левой колонке список ини полученной конфигурации.
- В правой колонке список ини выбранного соединения.
- сбисОбновитьТаблицыИниФайлов на форме ГлавноеОкно.