Добрый день.
Подскажите пожалуйста. можно ли одним запросом как-то получить все данные о разделе (все поля, указание на справочники если они используются в полях. а также указание какие детали используются).
К примеру есть разделе HR. на странице раздела есть поля для заполнения, и справочниками, и также есть деталь Задачи. Нужно одним запросом получить все что есть на странице. Возможно вообще такое получить?
Нравится
Если и можно, то не по OData. Там показывает Id для справочных полей, Name нужно тянуть из объекта справочника отдельно, то же самое и для объектов деталей.
Возможно, вместо OData больше подойдёт DataService, который используется в интерфейсе системы для отображения в разделах и карточках записей с сервера. Детали всё равно надо будет отдельно, но значения для отображения из справочников подтянутся. Наконец, несколько запросов к нему можно послать в одном пакетном. То есть можно предусмотреть выборку записи из раздела и связанных с ней записей деталей.
Пример одной записи того, что возвращает сервер при заходе в реестр раздела контактов:
{ "Id":"b9e98250-72c5-df11-b1ad-001d60e938c6", "Name":"\u0410\u0432\u0434\u043E\u0440\u043E\u0432 \u0421\u0435\u0440\u0433\u0435\u0439 \u0412\u0430\u043B\u0435\u043D\u0442\u0438\u043D\u043E\u0432\u0438\u0447", "Photo":{ "value":"dc0d78a5-18ce-4cbb-9afa-2d7d0143f4a6", "displayValue":"1.jpg", "primaryImageValue":"" }, "Job":{ "value":"34f48df9-56e6-df11-971b-001d60e938c6", "displayValue":"\u0414\u0438\u0440\u0435\u043A\u0442\u043E\u0440", "primaryImageValue":"" }, "Phone":"+7 495 780 80 82", "Account":{ "value":"4bcc8fce-9bde-44ec-a431-302befd28640", "displayValue":"\u0410\u043A\u0441\u0438\u043E\u043C\u0430", "primaryImageValue":"ac4aa0b0-c255-4c01-a544-741b74e2430e" }, "Email":"s.avdorov@yahoo.com", "MobilePhone":"+7 905 726 46 29", "EntryPointsCount":0 },
А если посмотреть на запросы, уходящие при открытии карточки контакта, там множество отдельных запросов как к данным отдельных деталей, так и общему справочнику свойств деталей, то есть стандартно пакетная выборка не используется, только для отдельных случаев.
Наконец, если нужно для интеграции с данными из конкретного раздела, можно создать свой сервис, возвращающий сразу нужные данные в нужном формате и обращаться к нему.
Если же Вы хотите автоматически получать не сами данные, а их структуру, какие поля есть в карточке и на деталях, то эта информация хранится в коде схем карточки и деталей, по ней генерируется веб-страница, видимая в браузере. Теоретически, их разбирать умеет мастер раздела, можно попробовать разобраться в схемах SectionWizard, SectionPageWizard, PageWizard, ApplicationStructureItemWizard и многих других схемах, его реализующих.