Концепция разработки расширений
1. Универсальность
Цель: Создание универсальной базы расширения, независимой от конкретных решений, предоставляющей максимальный функционал для интеграции. Это упростит поддержку: доработки будут вноситься только в базу, с последующей адаптацией для конкретного решения с использованием сравнения и объединения.
1.1 Работа с объектами
Для каждого объекта в системе СУЛ 2.0 будет создан отдельный модуль. Под объектами подразумеваются, например, товары, карты, клиенты и т. д. Каждое решение имеет свою структуру метаданных, поэтому для корректного сопоставления объекта 1С с объектом СУЛ будет реализована следующая система:
- Для работы с объектом СУЛ создаётся общий модуль (например,
СУЛ_Номенклатура
). - В этом модуле реализуется функция для получения объекта в необходимой структуре для СУЛ.
- Общий модуль будет вызывать переопределяемый модуль, направляющий запрос в модуль, написанный для конкретной конфигурации.
- По названию и версии конфигурации, на которую устанавливается расширение, код однозначно определит необходимый модуль.
1.2 Выгрузка НСИ
Все выгружаемые сущности будут храниться в регистрах сведений. Для каждой сущности будет создан отдельный регистр.
1.3 Оповещения пользователю
Ошибки, предупреждения и другие уведомления будут выводиться пользователю в единой форме, разработанной в рамках расширения.
1.4 Поиск объектов при сканировании
Для поиска объектов СУЛ по ШК с помощью сканера будет использоваться форма поиска, реализованная в расширении. События стандартных конфигураций перехватываться не будут.
2. Подключение и авторизация в сервисе
Параметры подключения:
- Адрес сервера.
- Таймаут подключения.
- Опция защищённого соединения.
Параметры авторизации:
- ID клиента.
- Логин.
- Пароль.
Эти настройки будут храниться в константе в формате JSON-строки. Токен авторизации будет сохраняться в параметре сеанса.
3. Расчёт скидок
Точки входа для расчёта скидок в СУЛ:
- Нажатие стандартной кнопки "Рассчитать скидки" в форме документа продажи.
- Событие "Перед оплатой".
4. Оффлайн-режим
Основой для реализации послужит оффлайн-режим из первой версии СУЛ, с учётом следующих изменений:
- Статус оффлайн-режима будет храниться в параметре сеанса.
- Проверка доступности сервиса (
health
) будет выполняться перед каждым запросом с таймаутом 1 секунда.
5. Логирование
Все запросы будут логироваться в журнал регистрации. Предусмотрена возможность отключения логирования через настройку.
No Comments