-
Notifications
You must be signed in to change notification settings - Fork 76
Связи параметров при вводе ссылочных данных
В 1С есть "параметры выбора" и "связи параметров выбора" - они задаются в конфигураторе и не имеют доступа к данным (только предопределенные значения). Наши параметры выбора, оказывают такое же влияние на интерфейс, но вместо статического отбора на равенство, могут использовать любые формулы и любые данные (папки, ссылки, выражения)
В metadata-react
для ввода ссылочных данных используется FieldInfinit
, в metadata-dhtmlx
, аналогичные задачи решает OCombo
. Оба компонента поддерживают такие позаимствованные из 1С свойства метаданных, как ПараметрыВыбора
- для статического отбора по значению некого реквизита и СвязиПараметровВыбора
- так же, для отбора, в котором можно сослаться на соседний или родительский реквизит.
Например:
- Через
ПараметрыВыбора
, легко организовать выбор только тех номенклатур, реквизитТипНоменклатуры
которых имеет значениеУслуга
- без программирования, просто указав нужное значение параметра выбора для поляНоменклатура
в табчастиУслуги
- Через
СвязиПараметровВыбора
, легко организовать выбор только тех характеристик, владельцем которых является номенклатура текущей строки - так же, без программирования, простым указанием пути к интересующему реквизиты в конструкторе метаданных
Эти свойства широко используются, экономят много строк кода в решениях с тысячами объектов метаданных, но их гибкости иногда не хватает, для организации сложных отборов. Тогда прикладные программисты начинают изобретать свои приёмы для фильтрации ввода - подписываются на различные события, формируют индивидуальные списки значений и прочие костыли.
Еще, в метадате есть план видов характеристик ДополнительныеРеквизитыИСведения
и справочники СвязиПараметров
и КлючиПараметров
Справочник очень тупой и абстрактный. Он ничего не знает про код, метаданные и свойства прикладного решения. Его назначение - хранить наборы вариантов отбора. Каждая строка такого варианта состоит из трёх полей:
-
Свойство
- ссылка на дополнительный реквизит или некое вычисляемое свойство -
Значение
- здесь может быть константа или ссылка на данные -
Вид сравнения
- правило (равно, не равно, содержит, в списке и т.д.)
Итак, в ключах - просто живут наборы условий
Кроме прямого назначения - описывать дополнительные реквизиты объектов, элементы этого плана видов характеристик, могут быть вычисляемыми - динамически рассчитываться по произвольным формулам с учетом текущего контекста. Например, допреквизит Подразделение
, может смотреть на значение подразделения текущего документа.
А еще, этот план видов характеристик, описывает произвольные свойства и связанные с ними наборы значений - позволяет строить Списки опций
, (например, для уточнения свойств параметрических изделий)
Содержит правила фильтрации значений в поле ввода, где:
-
Ведомый
- свойство или допреквизит, список доступных значений которого нужно отфильтровать -
Ведущий
и табчастьВедущие
- один или несколько ключей параметров - условие, определяющее, надо ли применять текущую связь в текущем контексте - Табчасть
Значения
с дополнительными колонкамиПо умолчанию
иПринудительно
- используется для ограничения списка перечислимых значений и в некоторых случаях - для установки значений
В ближайшем релизе, элементы этого справочника будут использоваться в тандеме с ПараметрамиВыбора
и СвязямиПараметровВыбора
для сложной фильтрации списков с учетом контекста приложения и свойств текущего пользователя