1с связи параметров выбора простейший пример
Свойство элемента формы ‘СвязиПараметровВыбора’
Автор: Admin 25 сентября, 2019 0 комментария
Продолжаем наполнять рубрику ‘Джуниор 1с’ полезными заметками. Сегодня у нас так на рассмотрении такое простое свойства элемента формы как ‘Связи параметров выбора’ (ChoiceParameterLinks), которое облегчает жизнь пользователю при выборе значений реквизита формы.
По простому – это свойство отвечает за формирование списка элементов в форме выбора по установленном отбору. Рассмотрим простой пример.
У нас есть справочник [Футбольные клубы] и у него есть реквизит [Страна]:
Пользователь хочет, что бы при выборе футбольного клуба в обработке, появлялся только список из клубов, указанной ранее страны:
Делается это очень просто через свойство элемента формы ‘Клуб’ / ‘Связи параметров выбора’:
Программа нам уже сама подсказывает, через какие поля мы сможем сделать нужный нам отбор. В данном примере делаем отбор через реквизит формы ‘Страна’:
По-простому: указываем какой отбор мы будем применять в списке выбора и реквизит, откуда отбор возьмет необходимое значение. Параметр ‘Режим изменения связанного значения’ определяет, будет ли при изменении реквизита отбора ‘Страна’ очищаться значение в реквизите ‘Клуб’.
Так же стоит заметить что здесь мы можем задать одновременно несколько необходимых нам отборов!
Если конфигурация типовая и не хочется сильно напрягаться с обновлением форм, то эти связи параметров выбора можно сделать и программно:
Программирование в 1С для всех
В этой статье я расскажу, что такое параметры выбора и связи параметров выбора в 1С 8.3, и как с их помощью можно сделать работу пользователей более комфортной.
Связи параметров выбора в 1С
Начнем со связей параметров выбора.
Для большей наглядности, реализуем небольшую задачу. Пусть у нас есть два справочника Контрагенты и ДоговорыКонтрагентов.
Причем справочник Контрагенты является владельцем справочника ДоговорыКонтрагентов.
А также, я создам документ Оплата, в котором нужно указывать контрагента, договор контрагента и сумму.
Если с такими настройками, мы попробуем выбрать договор контрагента, то в форме выбора отобразятся все договоры всех контрагентов.
Что, согласитесь может быть неудобно. И гораздо удобнее, чтобы выходили только договоры выбранного контрагента. Для того, чтобы пользователи могли видеть договоры контрагента, который указан в поле Контрагент, необходимо настроить связи параметров выбора. Для этого, нужно зайти в палитру свойств реквизита Договор, в которой интересует свойство Связи параметров выбора. Если нажать на кнопку «…» этого свойства, то откроется окно «Связи параметров выбора». В этом окне можно настраивать различные связи реквизита, палитру свойств которого мы открыли, с остальными реквизитами. Мы настроим связь с реквизитом Контрагент.
После выбора реквизита Контрагент таблица «Параметры» заполнится автоматически.
В результате, свойство реквизита Связи параметров выбора должно быть заполнено следующим образом.
Всё! Теперь, когда мы будем выбирать договоры в документе Оплата, то будут выходить только договоры выбранного контрагента.
Параметры выбора в 1С
Помимо настроек связи параметра выбора со значением другого реквизита, в 1С 8.3. можно настраивать параметры выбора. Например, можно сделать так, чтобы для выбора были доступны только непомеченные на удаление элементы.
К примеру, у нас бывают договоры контрагентов, которые помечены на удаление.
Эти же элементы отображаются в форме выбора договоров в документе Оплата.
Если мы хотим, чтобы в форме выбора договоров контрагента отображались только непомеченные на удаление элементы справочника, то нужно открыть свойство Параметры выбора реквизита Договор. Откроется форма, в которой необходимо настроить параметры выбора. В моем случае, установить, что Пометка на удаление Ложь.
Если всё сделано правильно, то свойство Параметры выбора реквизита документа Договор должно заполниться.
Если сейчас, мы попытаемся выбрать договор контрагента, то откроется форма выбора, в которой будут отсутствовать элементы, помеченные на удаление.
О том, как работать с проверкой заполнения реквизитов объектов, читайте в этой статье:
Более подробно и основательно начальные вопросы программирования в 1С есть вы можете изучить в
Книга «Программировать в 1С за 11 шагов»
Изучайте программирование в 1С в месте с моей книгой «Программировать в 1С за 11 шагов»
Книга написана понятным и простым языком — для новичка.
О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»
Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.
Промо-код на скидку в 15% — 48PVXHeYu
Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog
Если Вам понравился этот урок, был полезен или помог решить какую-нибудь проблему, то Вы можете поддержать мой проект, перечислив любую сумму.
можно оплатить вручную:
Яндекс.Деньги — 410012882996301
Web Money — R955262494655
Разбираемся с параметрами редактирования СКД
Вступление
В конструкторе СКД на некоторых вкладках есть колонка Параметры редактирования (или Параметры ввода, что то же самое по сути).
Настройка этого значения выполняется через специальное окно с одноименным названием.
Некоторые элементы списка этих параметров не имеют конструкторов, а также имеют неочевидные названия.
Настройка этих параметров может вызывать трудности.
Достаточно подробного описания данного механизма с доступными примерами мне найти не удалось, поэтому разбирался самостояетельно.
Самые простые параметры редактирования
Наиболее простыми для использования являются следующие параметры: Формат редактирования, Быстрый выбор, Выбор групп и элементов. С ними все понятно, поэтому их пропустим.
Связи параметров выбора
Настраиваются через специальное окно Редактирование связей параметров выбора.
Рассмотрим на примере как заполнять поля этой формы.
Пример 1
Тогда достаточно в поле Параметр выбора указать имя реквизита из справочника Договоры контрагентов, в нашем случае это Владелец, поэтому запишем: Отбор.Владелец.
Зачем добавлять слово Отбор, опишу ниже.
Теперь, если у параметра Контрагент стоит флаг Использование и контрагент выбран, то при выборе договора, будет накладываться отбор по владельцу.
Если же Контрагент не выбран или флаг у контрагента не установлен, то при выборе договора будут отображаться все договоры.
Поле Изменение значения влияет на то, очищать ли договор, если пользователь выбрал другого контрагента или не очищать.
Параметры выбора
Настраиваются через специальное окно Редактирование параметров выбора.
Рассмотрим на примере как заполнять поля этой формы.
Пример 2
Поля Контрагент и Договор из первого примера.
Мы хотим, чтобы пользователь мог выбрать только договор с видом С покупателем или Прочее и не помеченный на удаление.
Добавляем два параметра:
1. Параметр выбора = Отбор.ПометкаУдаления; Значение = ЛОЖЬ
2. Параметр выбора = Отбор.ВидДоговора; Значение = список из двух элементов : С покупателем, Прочее
Эти два параметра будут устанавливаться всегда независимо от выбранности/невыбранности параметра Контрагент.
Зачем нужно слово Отбор?
Почему в поле Параметр выбора необходимо использовать приставку Отбор? Какие еще параметры можно указывать и на что это влияет?
Это один из ключевых вопросов данной статьи, который и стал поводом к ее написанию.
Для ответа на этот вопрос предположим, что у нас есть независимая обработка без СКД с реквизитами Контрагент и Договор.
Какой код нам потребовалось бы написать, чтобы при подборе в поле Договор на нашей обработке устанавливались нужные отборы и передавались параметры?
Один из вариантов этого кода выглядит следующим образом.
Чтобы получше разобраться поэкспериментируем
Пример 3
Добавим по два параметра в Параметры выбора и в Связи параметров выбора.
Поставим точку останова в форме выбора при создании на сервере
Видим, что параметры, переданные без точек пришли как отдельные, а параметры, имеющие точки пришли в виде структуры.
Связь по типу
В настройке данного параметра сбивает с толку наличие поля Элемент связи с типом число.
Чтобы понять как его настраивать разберем два примера.
Пример 4
Создадим в СКД параметр Счет.
И еще три параметра Субконто1, Субконто2, Субконто3.
Мы хотим, чтобы если выбран Счет, то во параметре СубконтоN автоматически устанавливался отбор со значениями соответствующего субконто.
В этом случае для параметра Субконто1 настраиваем Связь по типу:
Поле = Счет (ПараметрыДанных.Счет), Элемент связи = 1 (номер субконто)
Для остальных двух параметров аналогично, только Элемент связи будет 2 и 3.
Теперь при выбранном параметре Счет, в полях СубконтоN будут доступны только значения, соответствующие типу субконто
Пример 5
Создадим в СКД параметры Вид субконто и Субконто.
Мы хотим, чтобы при выборе вида, были доступны только значения соответствующие виду субконто.
В этом случае для параметра Субконто1 настраиваем Связь по типу:
Поле = ВидСубконто (ПараметрыДанных.ВидСубконто), Элемент связи = 0 (не имеет значение в данном случае)
Заключение
Данный механизм в СКД аналогичен тому, который позволяет настраивать параметры реквизитов в справочниках, документах и т.д.
Но такие связи приходится настраивать довольно редко, и часто в таких случаях проще решить задачу с помощью кода, чем разбираться как это все настраивается.
Думаю, что данное описание поможет разобраться в этом механизме и начать его применять.
























