Получение экземпляра карточки из базы данных

Платформа Docsvision предоставляет несколько способов получения карточки: её можно запросить по уникальному идентификатору в формате Guid, либо получить из результата работы поискового запроса. Здесь рассмотрен первый способ, для которого необходимо знать идентификатор получаемой карточки.

Идентификатор карточки может быть получен, как минимум, двумя способами:
  • Значение можно посмотреть в свойствах карточки в Windows-клиенте, где идентификатор приведён в строке Ссылка.

  • Найти карточку при помощи программы "Docsvision Explorer". Идентификатор указан в строке Selected card ID.

Базовый API

Получить данные карточки методами базового API можно следующим образом:
CardData card = userSession.CardManager.GetCardData(cardId) (1) (2) (3)
1 userSession — пользовательская сессия.
2 CardManager — менеджер карточек, в котором собрана основная функциональность базового API для работы с карточками.
3 cardId — идентификатор запрашиваемой карточки. Обычно (как и GetCardData) методы принимают идентификаторы, приведенные к типу System.Guid:
Guid cardId = new Guid("00000000-0000-0000-0000-000000000000");
После получения данных карточки, можно:

Полный список доступных методов и свойств см. в описании типа CardData.

Объектная модель

Для получения данных карточки, а точнее её объектной модели, контекст объектов предоставляет метод GetObject, который может быть вызван следующим образом:

BaseCard card = objectContext.GetObject<BaseCard>(cardId); (1) (2) (3)
1 objectContext — проинициализированный контекст объектов (см. Подключение к серверу Docsvision).
2 BaseCard — класс объектной модели карточки. Здесь использован базовый класс карточек библиотеки Базовые объекты. В любом случае указываемый тип должен быть наследником типа ObjectBase — базовый класс для всех сущностей данного уровня API.

Список классов объектных моделей карточек библиотеки Базовые объекты приведён в разделе Библиотека карточек "Базовые объекты".

3 cardId — идентификатор запрашиваемой карточки.

Метод GetObject достаточно универсален и может вернуть из контекста объектов любой объект, для которого разработана объектная модель и в контексте объектов зарегистрирован преобразователь данных (будет рассмотрен позднее).

После получения объектной модели карточки, возможно:
  • Получить данные из её секций, если класс объектной модели карточки был унаследован от класса BaseCard или его потомков.

    Если класс карточки наследуется напрямую от ObjectBase, функциональность получения данных секций потребуется реализовать самостоятельно.

  • Получить объектную модель секций, если это предусмотрено объектной моделью карточки.

    Объектная модель секции карточки, а точнее её строк, позволяется работать с секцией как с объектом, обладающим набором определённых свойств, представляющих поля карточки. Это отличает данный способ от ранее приведенного, идеология которого ближе к принципам работы с секциями в базовом API. В базовом API необходимо знать идентификаторы секций и точные названий полей.