[ELMA3] Особенности использования связанных объектов в процессной задаче
Стандартный элемент Список связанных объектов конструктора форм предназначен для быстрого и удобного отображения данных из связанного объекта. Данный элемент изначально был разработан для объектов, поэтому не имеет особенностей при использовании (в т.ч. в документах). Пример использования см. в справке по системе.
В случае с процессной задачей появляется особенность в использовании. В объектах в качестве фильтра может быть использовано поле или EQL-запрос, а в процессной задаче только EQL. При этом EQL строится совсем неочевидным образом, а использование связанного поля для отображения в процессе и вовсе невозможно. Основная особенность в использовании – в EQL приходит модель WorkflowTask, а не контекст, как можно было бы ожидать.
В связи с этим для использования экземпляра процесса в EQL следует писать следующее:
WfInstance = {$WorkflowBookmark.Instance.Id}
В данном примере связанный справочник имеет поле WfInstance, в котором записан экземпляр процесса. Важно писать Id, иначе в EQL будет подставлено название Instance.
Для того, чтобы в запросе можно было использовать контекстные переменные, необходимо использовать следующий вариант написания EQL:
Contractor = {$WorkflowBookmark.Instance.Context.Contractor.Id}
В веб-приложении для выбранного контрагента будет отображен весь список его контактов:
Если существует два объекта со строковыми атрибутами attr1 и attr2 соответственно, и необходимо на форме object1 отобразить список связанных объектов, у которых поля attr1 и attr2 совпадают, то следует написать EQL-фильтр следующего вида:
- attr2 = ’{$attr1}’ при точном совпадении;
- attr2 like ’%{$attr1}%’, если требуется подстрока attr1 в строке attr2.