Перейти к содержанию

Связи параметров

Параметры можно связывать между собой по принципу "родитель — подчиненный". Когда в карточке задачи присутствует родительский ДП, то допустимые значения для подчиненного определяются на основе этой связи. Связи между параметрами работают как в уже созданных задачах, так и при создании новой задачи.

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

Список всех настроенных в системе связей:

Для создания связи параметров нажмите кнопку Создать в правом верхнем углу.

Настройки связи параметров:

Название Описание
Родительский параметр Название родительского ДП
Подчиненный параметр Название подчиненного ДП
Источник данных Название результирующей таблицы в базе данных "Первая Форма"
Колонка для отбора Колонка, в которой хранятся значения родительского ДП
Значение подчиненного параметра Колонка, в которой хранятся значения подчиненного ДП
Текст подчиненного параметра Колонка, в которой хранятся отображаемые значения подчиненного ДП
Жесткая связь Параметр определяет возможность выбора значения дочернего ДП без выбора значения родительского:
-Если параметр активен, то если значение хотя бы одного из родительских ДП не выбрано, в дочернем ДП будет пустое множество (то есть сначала необходимо заполнить значения всех родительских ДП, а потом уже выбирать дочерний ДП);
-Если параметр выключен, то дочерний ДП будет содержать значения, отфильтрованные по тем родительским параметрам, которые заполнены.
Активно Связь активна. Поле может использоваться для временного отключения связи

Связи можно устанавливать между ДП в разных колонках одной строки таблицы. Например, в одной колонке выбирается тип продукции, в другой колонке доступны только артикулы, относящиеся к данному типу продукции.

ℹ️ Нельзя установить связь ДП, если подчиненный параметр находится в таблице, а родительский — вне таблицы

ℹ️ Во избежание нагрузки системы и возникновения ошибок запрещено создание связей между ДП, если такая связь приведет к образованию цикла. К примеру, если ДП "А" указывается родительским для ДП "Б", в то время, как ДП "Б" уже был указан ранее как родительский для ДП "А".

Для редактирования существующей связи параметров нажмите на нее в таблице.

Для удаления связи вызовите контекстное меню в таблице для соответствующей строки и выберите пункт Удалить.

ℹ️ Наличие связи параметров влияет на отображение быстрых подсказок. При наличии активной настройки связи между параметрами система не отображает подсказки с тремя последними выбранными значениями для подчиненных Lookup-полей и выпадающих списков

Возможные варианты связей между ДП

Связи одного родительского и одного дочернего ДП

Ж — жесткая связь между двумя ДП — сначала необходимо заполнить значения родительского ДП, а потом уже выбирать дочерний ДП.

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

Связи одного дочернего ДП с двумя родительскими ДП

ЖЖ — обе связи жесткие — сначала необходимо заполнить значения обоих родительских ДП, а потом уже выбирать дочерний ДП.

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

СЖ — первая связь слабая, вторая жесткая.

Варианты связей между ДП, которые поддерживает "Первая Форма":

Тип родительского ДП Тип дочернего ДП Тип связи
Lookup Lookup Ж, С
Выпадающий список Lookup Ж, С
Lookup Выпадающий список Ж, С
Текст\Число Lookup Ж, С
Текст\Число MultiLookup Ж, С
MultiLookup Выпадающий список Ж, С
MultiLookup Lookup Ж, С
Lookup MultiLookup Ж, С

Примеры настройки связей между ДП

Чаще всего связи между ДП строятся на основе таблицы значений ДП (ExtParamValues), таблицы задач определенной категории (TasksInSubcatXXXDenormalized) или собственной таблицы или представления (view), созданной для поддержания конкретной связи.

Примеры связи на основе таблицы значений ДП (ExtParamValues)

Связь между двумя ДП Lookup:

Параметр Значение
Родительский параметр ДП_Lookup_1
Подчиненный параметр ДП_Lookup_2
Жесткая связь да или нет
Источник данных ExtParamValues
Колонка для отбора SelectedTaskID
Значение подчиненного параметра TaskID
Текст подчиненного параметра TaskID

Связь между ДП Выпадающий список и Lookup:

Параметр Значение
Родительский параметр ДП_ВыпСписок
Подчиненный параметр ДП_Lookup
Жесткая связь да или нет
Источник данных ExtParamValues
Колонка для отбора ExtParamValue
Значение подчиненного параметра TaskID
Текст подчиненного параметра ExtParamValue

Связь между ДП Lookup и Выпадающий список:

Параметр Значение
Родительский параметр ДП_Lookup
Подчиненный параметр ДП_ВыпСписок
Жесткая связь да или нет
Источник данных ExtParamValues
Колонка для отбора SelectedTaskID
Значение подчиненного параметра ExtParamValue
Текст подчиненного параметра TaskID

Связь между ДП MultiLookup и Выпадающий список:

Параметр Значение
Родительский параметр ДП_MultiLookup
Подчиненный параметр ДП_ВыпСписок
Жесткая связь да или нет
Источник данных ExtParamValues
Колонка для отбора SelectedTaskID
Значение подчиненного параметра ExtParamValue
Текст подчиненного параметра TaskID

Связь между ДП Выпадающий список и MultiLookup:

Параметр Значение
Родительский параметр ДП_ВыпСписок
Подчиненный параметр ДП_MultiLookup
Жесткая связь да или нет
Источник данных ExtParamValues
Колонка для отбора ExtParamValue
Значение подчиненного параметра TaskID
Текст подчиненного параметра ExtParamValue

Связь между ДП Lookup и MultiLookup:

Параметр Значение
Родительский параметр ДП_Lookup
Подчиненный параметр ДП_MultiLookup
Жесткая связь да или нет
Источник данных ExtParamValues
Колонка для отбора SelectedTaskID
Значение подчиненного параметра TaskID
Текст подчиненного параметра ExtParamValue

Примеры связи на основе таблицы задач определённой категории

Используется таблица TasksInSubcatXXXDenormalized, где XXX — ID денормализованной категории.

Связь между двумя ДП Выпадающий список:

Параметр Значение
Родительский параметр ДП_ВыпСписок_123
Подчиненный параметр ДП_ВыпСписок_456
Жесткая связь да или нет
Источник данных TasksInSubcatXXXDenormalized
Колонка для отбора ExtParam123Value
Значение подчиненного параметра ExtParam456NativeValue
Текст подчиненного параметра ExtParam456Value

Связь между ДП Число и Lookup:

Параметр Значение
Родительский параметр ДП_Число_123
Подчиненный параметр ДП_Lookup (на категорию XXX)
Жесткая связь да или нет
Источник данных TasksInSubcatXXXDenormalized
Колонка для отбора ExtParam123Value
Значение подчиненного параметра TaskID
Текст подчиненного параметра TaskID

Связь между ДП Текст и Lookup:

Параметр Значение
Родительский параметр ДП_Текст_123. Находится в категориях А и Б
Подчиненный параметр ДП_Lookup (на категорию XXX). Находится в категории А
Жесткая связь да или нет
Источник данных TasksInSubcatXXXDenormalized
Колонка для отбора ExtParam123Value
Значение подчиненного параметра TaskID
Текст подчиненного параметра TaskID

Связь между ДП Выпадающий список и Lookup:

Параметр Значение
Родительский параметр ДП_ВыпСписок_123
Подчиненный параметр ДП_Lookup (на категорию XXX)
Жесткая связь да или нет
Источник данных TasksInSubcatXXXDenormalized
Колонка для отбора ExtParamValue123Value
Значение подчиненного параметра TaskID
Текст подчиненного параметра TaskID

Пример связи на основе собственной таблицы или представления (view)

Связь между двумя ДП Lookup:

Параметр Значение
Родительский параметр ДП_Lookup_Contract
Подчиненный параметр ДП_Lookup_Bill
Жесткая связь да или нет
Источник данных viewContractBills
Колонка для отбора ContractID
Значение подчиненного параметра TaskID
Текст подчиненного параметра BillDescription

Описание настройки связей параметров в прежнем интерфейсе администрирования