Особенности использования связанных объектов в процессной задаче

Стандартный элемент Список связанных объектов конструктора форм предназначен для быстрого и удобного отображения данных из связанного объекта. Данный элемент изначально был разработан для объектов, поэтому не имеет особенностей при использовании (в т.ч. в документах). Пример использования см. в справке по системе.

В случае с процессной задачей появляется особенность в использовании. В объектах в качестве фильтра может быть использовано поле или EQL-запрос, а в процессной задаче только EQL. При этом EQL строится совсем неочевидным образом, а использование связанного поля для отображения в процессе и вовсе невозможно. Основная особенность в использовании – в EQL приходит модель WorkflowTask, а не контекст, как можно было бы ожидать.

В связи с этим для использования экземпляра процесса в EQL следует писать следующее:

WfInstance = {$WorkflowBookmark.Instance.Id}

В данном примере связанный справочник имеет поле WfInstance, в котором записан экземпляр процесса. Важно писать Id – иначе, в EQL будет подставлено название Instance’a.

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

Contractor = {$WorkflowBookmark.Instance.Context.Contractor.Id}

В веб-приложении для выбранного контрагента будет отображен весь список его контактов:

Если существует два объекта со строковыми атрибутами attr1 и attr2 соответственно, и необходимо на форме object1 отобразить список связанных объектов, у которых поля attr1 и attr2 совпадают, то следует написать EQL-фильтр следующего вида:

  • attr2 = ’{$attr1}’ при точном совпадении;
  • attr2 like ’%{$attr1}%’ если требуется подстрока attr1 в строке attr2.