В исходной конфигурации существует и работает такая конструкция:
Существует таблица "Сотрудники", подчиненная таблице "Контрагенты". Из списка этих самых сотрудников в таблице "Контрагенты" можно выбирать контактное лицо. Сделано это было следующим образом: в таблице "Контрагенты", помимо поля-связи "Контактное лицо", добавлено поле-связь "Фильтр для конт.лица". Оба поля ссылаются на таблицу "Сотрудники". Поле "Контактное лицо" фильтруется по полю "Фильтр для конт.лица". В таблице Контрагентов создано вычисление, выполняющееся по условию Отображение поля "Контактное лицо":
$sotr = data_table("Сотрудники","`Контрагент`=$ID"); $line['Фильтр для конт.лица'] = $sotr['ID'];
Мне понадобилось немного развить этот механизм
Создана таблица "Заказы", в которой есть поле связи с таблицей "Контрагенты", называется "Заказчик".
Нужно было добавить возможность выбора контактного лица из сотрудников выбранного контрагента (Заказчика) при добавлении записи в таблицу "Заказы".
Сделал я это так: создал аналогичные поля-связи "Контактное лицо" и "Фильтр для конт.лица". Оба поля так же ссылаются на таблицу "Сотрудники" и поле "Контактное лицо" фильтруется по полю "Фильтр для конт.лица". В таблице "Заказы" создал вычисление, выполяющееся по условию Изменение поля "Заказчик":
$sotr = data_table("Сотрудники","`Контрагент`=".$line['Заказчик']['ID']); $line['Фильтр для конт.лица'] = $sotr['ID'];В принципе, эта схема работает. Но вычисление (а значит и заполнение поля "Фильтр для конт.лица") срабатывает только после сохранении записи в таблице Заказов. То есть при создании нового заказа я не могу выбрать контактное лицо сразу после выбора Заказчика (Контрагента). Только потом, отдельно открыв редактирование уже созданной записи я в поле "Контактное лицо" вижу корректно отфильтрованный список сотрудников. Та же проблема при изменении Заказчика - "перефильтровка" списка сотрудников в поле выбора контакта происходит только после сохранения записи.
Вопрос следующий - можно ли динамически менять значение в служебном поле "Фильтр для конт.лица" и, соответственно, результат "отфильтровки" сотрудников для поля "Контактное лицо"? То есть без промежуточного сохранения записи.