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

В событиях поисков «Удаление ссылки» и «Вставка ссылки» доступны следующие переменные:

Переменная

Тип

Описание

Dest

IContents

Список удаляемых/вставляемых элементов

Source

IObjectInfo

ИД объекта, если для него был выполнен поиск связанных объектов ISearchForObjectDescription, иначе nil

Показать пример Пример

Используя переменные Dest и Source, реализовать действие «Связанные документы» в карточке записи справочника. Выполняется с помощью поиска связанных документов.

В событии поиска OnPasteLinks через переменную Dest проверить, что будет вставлено, и запретить вставку документов с неподходящими типами карточек.

В событии поиска OnCutLinks через переменную Source проверить права доступа к записи справочника. Если нет прав на изменение записи, то запретить удалять ссылки из списка связанных документов.

 

// Инициализировать поиск.

SearchDesc = Searches.Load('BOUND_EDOCUMENT_SEARCH')

SearchDesc.InitializeSearch(Object.Info)

 

// Сформировать событие на вставку ссылок.

// Событие разрешает связывать с записью справочника только документы

// с типом карточки ДГВ_ДОК.

PasteLinksEventText = "

  AllowedCardTypeCode = 'ДГВ_ДОК'

  foreach Info in Dest

    if Info.ComponentType <> ctEDocument

      Exit('Связывать можно только документы.') 

    endif

    if Info.CardType.Code <<>> AllowedCardTypeCode

      Exit(Format('Связывать можно только документы с типом карточки %s.'; 

        ArrayOf(AllowedCardTypeCode)))

    endif

  endforeach"

  

// Код по проверке вставляемых ссылок добавить до стандартной части кода,

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

// При неуспешной проверке документ не будет привязан к записи справочника.

SearchDesc.OnPasteLinks = 

  Format('%s%s%s'; ArrayOf(PasteLinksEventText; CR; SearchDesc.OnPasteLinks))

  

// Сформировать событие на удаление ссылок. Событие запрещает удалять

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

// записи справочника.

CutLinksEventText = "

  SourceReferenceRecord = References.ReferenceFactory(Source.ComponentName).GetObjectByID(Source.ID)

  if not SourceReferenceRecord.AccessInfo.CanUpdate

    Exit('Недостаточно прав. Для удаления связанных документов нужны права на изменение справочника.')

  endif"

 

// Код по проверке прав на удаление ссылок добавить до стандартной части кода,

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

// При неуспешной проверке связь между документом и записью справочника не будет // разорвана.

SearchDesc.OnCutLinks = 

  Format('%s%s%s'; ArrayOf(CutLinksEventText; CR; SearchDesc.OnCutLinks))

  

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

SearchDesc.Show(ssmBrowse; False)

См. также

 

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