Настройка интерфейса OData
Описание
Обработка «Настройка интерфейса OData» предназначена для управления составом данных ERP-системы «Мега», доступных через стандартный интерфейс OData платформы 1С:Предприятие.
С её помощью администратор или разработчик интеграции может без изменения конфигурации выбрать, какие справочники, документы, регистры и другие объекты метаданных должны быть опубликованы в OData. Это позволяет подготовить интерфейс для мобильного PWA-клиента, личного кабинета, внешнего сайта, аналитической системы или другого приложения.
Включение объекта в состав OData делает его доступным для обращения через стандартный REST-интерфейс 1С, но не отменяет проверку прав пользователя. Внешнее приложение получает только те данные и операции, которые разрешены учётной записи, под которой выполняется запрос.
Для чего ограничивать состав OData
Конфигурация «Мега» содержит большое количество взаимосвязанных объектов. Как правило, конкретной интеграции нужна только небольшая часть из них. Например, мобильному клиенту для управления задачами могут потребоваться задачи, сотрудники, статусы и связанные с ними регистры, но не данные бухгалтерского или производственного контура.
Выбор ограниченного состава позволяет:
- сократить объём метаданных, передаваемых внешнему приложению;
- упростить разработку и тестирование интеграции;
- уменьшить число объектов, видимых через OData;
- отделить техническую публикацию данных от настройки пользовательских прав;
- избежать случайного подключения внешнего приложения к неиспользуемым разделам системы.
Состав OData является общей настройкой информационной базы. Он не задаётся отдельно для каждого пользователя или приложения. Различия в доступе к данным должны дополнительно обеспечиваться ролями, правами и механизмами ограничения доступа на уровне записей.
Как открыть и прочитать форму
После открытия обработки система получает текущий состав стандартного интерфейса OData и строит дерево объектов метаданных. Объекты распределяются по группам:
- константы;
- справочники;
- документы;
- перечисления;
- журналы документов;
- регистры бухгалтерии;
- регистры сведений;
- регистры расчёта;
- регистры накопления;
- задачи;
- бизнес-процессы;
- планы обмена;
- планы счетов;
- планы видов расчёта;
- планы видов характеристик.
У каждого объекта отображается его полное имя метаданных, например:
Документ.УстановкаСтатуса Справочник.ЗначенияСтатусов РегистрСведений.ЗначенияСтатусовОбъекта
Флажок «Интерфейс включён» показывает, входит ли объект в действующий состав OData:
- флажок установлен - объект включён в интерфейс;
- флажок снят - объект не входит в состав интерфейса.
Флажок у группы позволяет одновременно установить или снять отметку у всех объектов этой группы.
Связи между объектами
Помимо дерева метаданных, обработка формирует таблицу ссылок между объектами. Для выбранного элемента дерева в ней можно увидеть, какие объекты содержат ссылочные реквизиты соответствующего типа.
Для каждой связи показываются:
| Поле | Содержание |
|---|---|
| Объект | Полное имя объекта метаданных, в котором найдена ссылка |
| Связь | Полное имя объекта, на который может ссылаться реквизит |
| Реквизит | Имя ссылочного реквизита |
| Табличная часть | Имя табличной части, если реквизит расположен в ней |
Например, если реквизит Ответственный документа имеет тип ссылки на справочник сотрудников, в таблице будет зафиксировано, что документ связан со справочником сотрудников через этот реквизит.
Для составного типа в таблицу попадает отдельная строка по каждому поддерживаемому ссылочному типу. Если один реквизит может содержать ссылку на справочник или документ, обе связи будут показаны отдельно.
Автоматическое включение зависимых объектов
При установке флажка у отдельного объекта обработка находит объекты, которые ссылаются на него, и также включает их в состав интерфейса. Проверка выполняется рекурсивно: если найденный объект используется другими объектами, они также могут быть добавлены.
Например:
- В интерфейс включается справочник, на который ссылается документ.
- Обработка автоматически включает этот документ как зависимый объект.
- Если на документ ссылается другой поддерживаемый объект, он также включается.
Зацикливание исключается: уже обработанные объекты запоминаются и повторно не обходятся.
Автоматическое включение работает в направлении от выбранного объекта к объектам, которые на него ссылаются. Оно не означает автоматического добавления всех типов, на которые ссылается сам выбранный объект.
Автоматический анализ ссылок выполняется для:
- типов констант;
- реквизитов и табличных частей справочников;
- реквизитов и табличных частей документов;
- реквизитов, измерений и ресурсов регистров сведений;
- реквизитов, измерений и ресурсов регистров накопления.
В качестве связанных типов учитываются ссылки на справочники, документы и значения перечислений. Для остальных групп объекты выводятся в дереве и могут быть выбраны вручную, но их внутренние зависимости текущая версия обработки не анализирует.
Порядок настройки
- Определите сценарии, которые должно выполнять внешнее приложение.
- Составьте перечень необходимых объектов метаданных.
- Откройте обработку «Настройка интерфейса OData».
- Раскройте нужные группы и установите флажки у объектов.
- Проверьте автоматически включённые зависимые объекты.
- Выбирая объекты в дереве, просмотрите таблицу ссылок и убедитесь, что в состав не попали лишние данные.
- Выполните команду «Обновить настройки интерфейса».
- Обновите описание сервиса
$metadataво внешнем приложении и проверьте контрольные запросы.
При выполнении команды система собирает полные имена всех отмеченных объектов, находит соответствующие объекты метаданных и передаёт их платформе 1С как новый состав стандартного интерфейса OData.
Пример: OData для мобильного управления задачами
Предположим, PWA-клиент должен:
- получать список задач пользователя;
- показывать постановщика, ответственного и наблюдателей;
- выводить текущий этап или статус;
- изменять статус через документ «Установка статуса»;
- обновлять представление задачи после изменения.
Для такого сценария недостаточно включить только объект задачи. В состав следует включить весь минимальный контур, который действительно читает или изменяет клиент: задачу или связанный бизнес-процесс, используемые справочники сотрудников, документ установки статуса, справочник значений статусов и регистры, из которых читаются текущее значение и представление статуса.
Пример контрольного перечня:
| Назначение | Возможный объект |
|---|---|
| Запись нового состояния | Документ.УстановкаСтатуса |
| Допустимые значения | Справочник.ЗначенияСтатусов |
| Текущее состояние объекта | РегистрСведений.ЗначенияСтатусовОбъекта |
| Готовое представление для интерфейса | РегистрСведений.ПредставлениеСтатусовОбъекта |
| Участники и исполнители | соответствующие справочники пользователей и сотрудников |
| Управляемый объект | задача, бизнес-процесс или иной объект, используемый PWA-клиентом |
Точный состав зависит от модели конкретного мобильного интерфейса и от того, какие данные клиент получает непосредственно, а какие возвращает серверный метод.
Проверка после изменения
После сохранения состава рекомендуется проверить интеграцию по следующему чек-листу:
- сервис OData опубликован и доступен по нужному адресу;
- запрос к
$metadataсодержит выбранные сущности; - чтение списка возвращает ожидаемые поля;
- переходы по ссылочным реквизитам работают;
- создание и изменение разрешены только там, где это предусмотрено сценарием;
- пользователь интеграции не видит записи, закрытые его правами;
- существующие интеграции продолжают работать после исключения объектов;
- журнал регистрации не содержит ошибок OData.
Если внешнее приложение сохраняет схему сервиса в кэше, после изменения состава необходимо заново получить $metadata или пересоздать подключение.
Важные особенности
Снятие флажков не выполняется каскадно
Автоматическая обработка зависимостей запускается только при включении объекта. Если флажок снять, связанные объекты останутся отмеченными, пока администратор не исключит их вручную. Это защищает состав от неожиданного массового удаления объектов, которые могут использоваться другими интеграциями.
Групповая отметка и зависимости
Флажок группы устанавливает отметку у всех её непосредственных элементов. Для контроля рекурсивных зависимостей надёжнее дополнительно проверить ключевые объекты по отдельности и просмотреть таблицу ссылок.
Пустой состав не записывается
Текущая реализация вызывает установку состава только тогда, когда отмечен хотя бы один объект. Если снять все флажки и выполнить команду обновления, ранее установленный состав не будет заменён пустым.
Обработка не публикует веб-сервис
Обработка управляет только составом стандартного интерфейса OData. Публикация информационной базы на веб-сервере, включение OData в настройках публикации, HTTPS, аутентификация и сетевой доступ настраиваются отдельно.
Состав OData не заменяет права доступа
Наличие объекта в $metadata не означает, что любой пользователь может читать или изменять все его данные. Итоговый доступ определяется одновременно:
- составом опубликованного интерфейса OData;
- ролями и правами пользователя интеграции;
- ограничениями доступа на уровне записей;
- поддерживаемыми платформой операциями для конкретного объекта.
Для каждой интеграции рекомендуется использовать отдельную техническую учётную запись с минимально необходимыми правами.
Рекомендации по эксплуатации
- Включайте только объекты, которые нужны действующим интеграциям.
- Перед исключением объекта проверьте все PWA-клиенты, сайты, обмены и фоновые задания, которые могут его использовать.
- Изменяйте состав сначала в тестовой базе, затем переносите проверенный перечень в рабочую.
- После обновления конфигурации повторно открывайте обработку и проверяйте новые или переименованные объекты.
- Фиксируйте назначение каждого включённого объекта в техническом описании интеграции.
- Не используйте административную учётную запись в мобильных и внешних приложениях.