Интеграм дает возможность использования взаимозависимых списков: мы ограничиваем набор значений в подчиненном выпадающем списке, ориентируясь на ограничения родительского выпадающего списка.
Например, при заполнении адреса некоего объекта нам надо показать в списке только улицы выбранного города, а в списке домов – только дома выбранной улицы.
На скриншоте мы видим выбранный город, в котором в списке улиц только его улицы, а в списке домов только дома выбранной улицы этого города.
В меню Структура иерархия для этого примера выглядит так:
Обратите внимание, что у ссылок на Улицу и Дом есть ссылочный реквизит, указывающий на родительский объект: город улицы и улица дома.
Для добавления такого реквизита надо в меню Структура найти ссылку на справочник Улица, как показано на следующей картинке, и добавить ей колонку Город.
Аналогично добавляется Улица для Дома.
Без добавления такой колонки в ссылку связанные списки не будут работать зависимым образом, а будут обычными списками.
Причина в том, что улицы и дома, и даже города, не являются уникальными. Уникальны только комбинации Улица–Город и Дом–Улица, поэтому в списках необходимо отображать информацию о родителе.
В таблицах родители справочных значений не показываются для компактности, но в выпадающих списках мы видим детальную информацию. Вот набор данных для примера из этой заметки:
Глубина связанности списков может быть любой, например, можно также включить Область в набор полей Объекта и выбирать город после выбора области.
Есть ещё такое ограничение, что среди прочих колонок, если таковые есть, ссылка на родителя должна быть левее всех. То есть, если мы ограничиваем дома по улицам, то колонка Улица должна идти до колонки Серия, которая тоже является справочной.
Обращение по API
При обращении за данными для выпадающего списка методом _ref_reqs необходимо передать в запросе два параметра: ID текущего объекта (параметр id) и ID значения из родительского списка (параметр r):
Запрос АПИ будет выглядеть примерно так:
https://app.integram.io/dtp/_ref_reqs/4152?JSON&id=4182&r=4162