Копировать ссылку на страницу

Поиск документов с определенным типом карточки, связанных с записью справочника

Постановка задачи

В справочник Договоры нужно добавить кнопку Запрос. При нажатии на кнопку должен выполняться поиск документов с ТКЭД Договорные документы, в карточке которых в поле Договоры указана текущая запись справочника. Результаты поиска обрабатываются следующим образом:

если не найдено ни одного документа, то выводится предупреждение;
если найден один документ, то открывается документ;
если найдено несколько документов, то открывается список найденных документов.

Программный код

 

  // Код ТКЭД Договорные документы

  EDocTypeCode = 'ДГД'

 

  // Имя реквизита типа карточки для записи справочника Договоры

  EDocTypeContactReqName = 'Договор'

 

  // Сформировать поиск документов

  Search = Searches.CreateNew(ckEDocument)

  Criteria = Search.SearchCriteria

 

  // Добавить в критерий поиска Тип карточки документа

  EDocTypeCriterion = Criteria.Add('PseudoEDocType')

  EDocTypeCriterion.Add(EDocTypeCode)

 

  // Искать по коду текущей записи

  UserPermissionsCriterion = Criteria.Add(EDocTypeContactReqName)

  UserPermissionsCriterion.Add(Object.SYSREQ_CODE)

 

  // Выполнить поиск.

  FindDocs = Search.Execute()

 

  // Получить количество найденных документов.

  FindDocsCount = FindDocs.Count

  if FindDocsCount = 0

 

    // Вывести предупреждение.

    MessageBox(ATTENTION_CAPTION;

    'Запрос на назначение прав доступа не найден.')

  endif

  if FindDocsCount = 1

 

    // Получить результат поиска как IEDocumentInfo.

    FindDocInfo = FindDocs.Value

    FindDoc = FindDocInfo.Document

 

    // Получить последнюю версию документа.

    LastDocNumber = GetLastEDocumentVersionNum(FindDoc)

 

    // Открыть последнюю версию документа для просмотра.

    FindDoc.Open(False; LastDocNumber)

  endif

 

  if FindDocsCount > 1

    // Показать результаты поиска.

    Search.Show(ssmSelect; True)

  endif

© 2016 Компания DIRECTUM Сообщество пользователей DIRECTUM