Отображение данных из связанных карточек

Данный раздел содержит описание примера серверного расширения. Пример содержит серверное расширение для отображения данных из связанных карточек в табличном контроле. В разметку карточки Документ УД/Исходящий добавляется таблица контрагентов, в колонках которой автоматически показываются e-mail и телефон выбранной в строке организации, загружаемые с сервера отдельным запросом.

Ссылка на пример на GitHub: TableControl.

Пример рассчитан на версию Web-клиента 6.1 или выше.

Перечень необходимых инструментов:

Сборка и установка

  1. Откройте /Samples.sln.

  2. Соберите проект ServerExtensions > TableControl > TableControlServerExtension.

  3. Откройте консоль в папке ServerExtensions > TableControl > TableControlWebExtension и выполнить команду npm install, затем npm update и в конце npm run build:prod.

  4. Скопируйте каталог SamplesOutput\Content\Modules\TableControlWebExtension в каталог Путь к сайту Web-клиента\Content\Modules.

  5. Скопируйте каталог SamplesOutput\Extensions\TableControlServerExtension в каталог Путь к сайту Web-клиента\Extensions.

  6. Перезапустите dvwebclient.

Проверка примера

  1. Запустите конструктор разметок.

  2. Скопируйте разметку просмотра исходящего документа.

  3. Выберите условия использования этой разметки.

  4. Откройте разметку и добавить в нее элемент управления Таблица в режиме Редактирование по месту и 3 столбца. Для таблицы в поле Источник данных секцию Partners Receivers.

  5. В первый столбец поместите элемент управления Подразделение котрагента в режиме Редактирование по месту, задайте имя samplePartnersDepartment. Значение Поле данных выберите Partner company.

  6. Во второй столбец поместить элемент управления Метка, задайте имя sampleDepartmentEmail.

  7. В третий столбец поместить элемент управления Метка, задайте имя sampleDepartmentPhone.

  8. На событие После открытия карточки элемента root задайте функцию sampleDocumentViewCardOpened.

  9. Сохранить разметку.

  10. Перезапустите dvwebclient.

  11. Откройте карточку с этой разметкой, добавить строку в таблицу, выбрать контрагента, обновить страницу.

  12. Убедиться, что почта и телефон контрагента заполнились.

Проект "TableControlServerExtension"

Проект-расширение для Web-клиента. Содержит бизнес-логику и скрипт для отображения данных из связанных карточек в табличном контроле. Демонстрирует расширение функционала с помощью добавления новых сервисов, контроллеров. Реализован контроллер SamplePartnersController с методом GetPartnersInfo, который вызывает сервис ISamplePartnersService, для получения информации о контрагентах: Phone, Email, Name.

Проект "TableControlWebExtension"

Содержит клиентский скрипт с функцией sampleDocumentViewCardOpened, которая вызывается на событие После открытия карточки. Функция отправляет запрос на сервер getPartnersInfo и заполняет таблицу вернувшимися данными.