Связи параметров выбора в 1С – примеры использования

В платформе 1С:Предприятие существует множество инструментов для настройки бизнес-логики и удобства работы пользователей. Одним из таких мощных механизмов являются связи параметров выбора . Они позволяют устанавливать взаимосвязь между различными реквизитами формы, что делает процесс выбора значений более логичным и контролируемым. В этой статье мы подробно рассмотрим, что такое связи параметров выбора, как их настраивать и использовать.

Что такое связи параметров выбора?

  1. Связи параметров выбора — это механизм, который позволяет ограничивать или фильтровать значения одного реквизита на основе значений другого реквизита. Другими словами, это свойство позволяет указать список реквизитов, которые будут поставлять значения, используемые при выборе значения реквизита. Например, если у вас есть два поля: “Контрагент” и “Договор”, то вы можете настроить связь так, чтобы при выборе контрагента автоматически отображались только те договоры, которые связаны с этим контрагентом.

Различия между связями параметров выбора для реквизитов объектов и для элементов форм в 1С

В 1С существует два основных варианта использования связей параметров выбора: для реквизитов объектов метаданных и для элементов форм. Хотя оба механизма служат одной цели — установлению взаимосвязи между реквизитами, их применение и настройка имеют некоторые различия. Рассмотрим их подробнее.

Связи параметров выбора для реквизитов объектов

Связи параметров выбора у реквизита в 1С

Этот механизм применяется на уровне объектов метаданных (например, справочников, документов или регистров). Он позволяет задать логические связи между реквизитами объекта, которые будут действовать независимо от конкретной формы.

Связи параметров выбора для элементов форм

Связи параметров выбора у элемента формы в 1С

Этот механизм применяется на уровне элементов форм. Он позволяет настраивать связи в конкретных формах, что делает такую настройку более гибкой и точечной. Если это свойство применяется к элементу формы, то настройки будут действовать только в рамках данной формы объекта и не затронут другие формы.

Пример использования связей параметров выбора в 1С у реквизита объекта

Одним из часто встречающихся примеров использования связей параметров выбора является ситуация, когда при выборе поставщика в документе поступления товаров система автоматически ограничивает список доступных договоров только теми, которые заключены с выбранным поставщиком. Это исключает необходимость просматривать все существующие договоры и упрощает работу пользователя.

 

Разберем применение свойства связей параметров выбора в 1С на простом примере. Имеется справочник контрагентов и справочник договоров. В договорах есть реквизит Контрагент, через который мы хотим организовать связь. Связи параметров выбора не настроены (см. примеры выше).

В пользовательском режиме при выборе договора отображаются все имеющиеся договоры, без фильтрации по контрагенту:

Далее установим связи параметров выбора в конфигураторе. Выберем реквизит Договор, откроем на редактирование свойство “Связи параметров выбора” и стрелкой вправо перенесем нужный реквизит. Обратите внимание на то, что платформа сама подставила свойство с подходящим типом – “Отбор.Контрагент”. Если бы Договоры были подчиненным справочником, а Контрагенты – владельцем, то подставилось бы “Отбор.Владелец”.

настройка связей параметров выбора в 1С

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

Связи параметров выбора в 1С программно

Связи параметров выбора можно настраивать не только в редакторе свойств реквизитов или у элементов формы, но и влиять на них программно. Например, мы можем переопределить связи параметров выбора в зависимости от каких-нибудь настроек. Допустим, мы хотим добавить возможность включать и выключать фильтр по контрагенту на форме, в зависимости от флажка “Все договоры”. Сделать это можно при помощи следующего кода:

&НаКлиенте
Процедура ВсеДоговорыПриИзменении(Элемент)
	НастроитьСвязиДоговора();
КонецПроцедуры

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	НастроитьСвязиДоговора();
КонецПроцедуры

&НаСервере
Процедура НастроитьСвязиДоговора()
	Перем МассивСвязей, НовыеСвязи, СвязьПараметровДоговора;
	МассивСвязей = Новый Массив;
	СвязьПараметровДоговора = Новый СвязьПараметраВыбора("Отбор.Контрагент", "Объект.Контрагент");
	Если Не ВсеДоговоры Тогда
		МассивСвязей.Добавить(СвязьПараметровДоговора);
	КонецЕсли;
	НовыеСвязи = Новый ФиксированныйМассив(МассивСвязей);
	Элементы.Договор.СвязиПараметровВыбора = НовыеСвязи;
КонецПроцедуры

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

1 комментарий к “Связи параметров выбора в 1С – примеры использования”

  1. Пингбэк: Использование аннотации #ИзменениеИКонтроль в расширениях конфигурации 1C - Alexcode

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

4 × три =

К НАЧАЛУ