связи параметров выбора в расширении 1с
Связи параметров выбора программно
Добрый день, коллеги!
Вопрос по установки связи параметров выбора не в свойствах реквизита, а в коде. Как я делаю, написал процедуру:
И вставляю при открытии формы. Но при открытии он пишет ошибку:
Ошибка при установке значения атрибута контекста (СвязиПараметровВыбора)
Элементы.НоменклатураЗаказаПереработчика.СвязиПараметровВыбора = Новый ФиксированныйМассив(НовыйМассив);
по причине:
Недопустимое значение
В чем может быть проблема?
Заранее спасибо
(5) в серверный модуль. Взял из бп 3.0, увы вызова там нигде нет.
Вот попробовал сперва очистить параметры, а потом добавить как в Вашем примере, вроде установилось
(1) Судя по описанию там «Фиксированный массив из элементов типа СвязьПараметраВыбора.»
(5) в серверный модуль. Взял из бп 3.0, увы вызова там нигде нет.
Вот попробовал сперва очистить параметры, а потом добавить как в Вашем примере, вроде установилось
В ERP ХарактеристикаНоменклатуры может быть подчинена как самой Номенклатуре, так и быть общей для ВидаНоменклатуры, который является реквизитом Номенклатуры. В последнем случае связь с владельцем получается не прямая, и использовать «Отбор.Владелец» не имеет смысла. Попробуйте вместо «Отбор.Владелец» указать «Номенклатура». В этом случае в ФормеВыбора ХаракеристикиНоменклатуры в процедуре ПриСозданииНаСервере выполняется анализ, кто является настоящим владельцем Характеристики и устанавливается соответствующий отбор.
Если Параметры.Отбор.Свойство(«Владелец») Тогда
// Перенесем «стандартный» отбор по владельцу в свойство ПараметрВладелец
Параметры.ПараметрВладелец = Параметры.Отбор.Владелец;
Параметры.Отбор.Удалить(«Владелец»);
КонецЕсли;
Если Параметры.Свойство(«ПараметрВладелец», ВладелецХарактеристик) И ЗначениеЗаполнено(ВладелецХарактеристик) Тогда
ПодборТоваровСервер.УстановитьОтборПоВладельцуХарактеристик(ЭтаФорма);
ИначеЕсли Параметры.Свойство(«Номенклатура», Номенклатура) И ЗначениеЗаполнено(Номенклатура) Тогда
Если Справочники.Номенклатура.ПроверитьИспользованиеХарактеристикИПолучитьВладельцаДляВыбо ра(Номенклатура, ВладелецХарактеристик) Тогда
Если ВладелецХарактеристик = Неопределено Тогда
ТекстИсключения = НСтр(«ru = ‘Для данной номенклатуры характеристики не заданы.'»);
ВызватьИсключение ТекстИсключения;
Иначе
ПодборТоваровСервер.УстановитьОтборПоВладельцуХарактеристик(ЭтаФорма);
КонецЕсли;
Иначе
ТекстИсключения = НСтр(«ru = ‘Для данной номенклатуры отключено использование характеристик.'»);
ВызватьИсключение ТекстИсключения;
КонецЕсли;
КонецЕсли;
Связи параметров выбора в 1С
1. Свойство связи параметров выбора в 1С
С появлением механизма управляемых форм в 1С значительно расширились возможности настройки поведения форм и элементов форм прикладных объектов 1С (справочника, документа и пр.).
Формы прикладных объектов — это именно те элементы интерфейса программы, которые видит и с которыми работает пользователь.
Именно это обстоятельство является главным фактором требующего наличие как можно более развитого и гибкого механизма настройки поведения форм прикладных объектов при работе с ними пользователей (в пользовательском режиме, режиме 1С:Предприятие).
И вот начиная с версии платформы 1С 8.3 появилось большое количество настраиваемых свойств у реквизитов объектов метаданных конфигурации, а также реквизитов и элементов управляемых форм.
Зачастую в процессе работы пользователя с формами и элементами форм возникает необходимость ограничивать объем предлагаемых для выбора данных, другими словами, использовать фильтр.
Вот именно одним из таких «фильтров» является свойство «Связи параметров выбора» (Рисунок 1).
Это свойство предназначено для настройки фильтра формы выбора без написания кода программы, т.е. без программирования.
Другими словами, это свойство позволяет указать список реквизитов, которые будут поставлять значения, используемые при выборе значения реквизита, при открытии формы выбора, при отображении списка быстрого выбора и при выполнении ввода по строке.
2. Реквизиты объектов метаданных и элементы формы в 1С 8.3. Разница в использовании свойства «Связи параметров выбора»
Следует отметить, что свойство «Связи параметров выбора» есть и у реквизитов объектов метаданных в 1С (Рисунок 2).
И у элементов формы в 1С 8.3(Рисунок 3)
Разница в использовании этого свойства у реквизита объекта метаданных и элемента формы в том, что в случае использования свойства связи параметров выбора в 1С реквизита, установленные настройки будут распространяться (действовать) во всех формах объекта метаданных (справочника, документа и пр.) у реквизита, где это свойство настроено. В случае же использования этого свойства у элемента формы настройки будут распространяться только на данную форму объекта и в других формах действовать не будут.
В большинстве случаев с методологической точки зрения корректнее настраивать свойство «Связи параметров выбора» у реквизита объекта метаданных.
3. Как использовать свойства связи параметров выбора в 1С. Пример
Одним из типичных и распространенных примеров подобной ситуации является случай, когда после выбора в документе поступления товаров поставщика при последующем выборе договора не нужно выбирать из всех договоров, а необходимо ограничить список только договорами, заключенными именно с этим поставщиком.
Рассмотрим использование свойства связи параметров выбора в 1С на простейшем примере.
Вот данные справочника «Контрагенты» (Рисунок 4).
И соответственно данные справочника «Договоры» (Рисунок 5).
При пустом значении свойства «Связи параметров выбора» (Рисунок 6).
. В режиме 1С:Предприятия в документе «Приходная накладная» при выборе договора отображается полный список договоров, по всем контрагентам (Рисунок 7).
Теперь установим значение свойства «Связи параметров выбора» (Рисунок 8, Рисунок 9, Рисунок 10).
И вот что получаем (Рисунок 11).
Как видно на скрине, после настройки свойства «Связи параметров выбора» список договоров фильтруется по выбранному в документе контрагенту.
При настройке свойства в конфигураторе 1С Связи параметров выбора в форме настройки есть параметр «Режим изменения связанного значения» установленный в значение «Очищать» (Рисунок 12).
При таком параметре в случае изменения или очистки значения поля «Контрагент» значение поля «Договор» тоже будет очищено.
Такие настройки позволяют получить большую достоверность вводимых данных и минимизировать ошибки при вводе данных уменьшая влияние человеческого фактора.
Значения, указанные в данном свойстве, будут переданы в открываемую форму через структуру Параметры передавая их при вызове метода ОткрытьФорму()
4. Связи параметров выбора в 1С программно
Также у элементов формы можно устанавливать и изменять связи параметров выбора в коде 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С
1. Свойство связи параметров выбора в 1С
С появлением механизма управляемых форм в 1С значительно расширились возможности настройки поведения форм и элементов форм прикладных объектов 1С (справочника, документа и пр.).
Формы прикладных объектов — это именно те элементы интерфейса программы, которые видит и с которыми работает пользователь.
Именно это обстоятельство является главным фактором требующего наличие как можно более развитого и гибкого механизма настройки поведения форм прикладных объектов при работе с ними пользователей (в пользовательском режиме, режиме 1С:Предприятие).
И вот начиная с версии платформы 1С 8.3 появилось большое количество настраиваемых свойств у реквизитов объектов метаданных конфигурации, а также реквизитов и элементов управляемых форм.
Зачастую в процессе работы пользователя с формами и элементами форм возникает необходимость ограничивать объем предлагаемых для выбора данных, другими словами, использовать фильтр.
Вот именно одним из таких «фильтров» является свойство «Связи параметров выбора» (Рисунок 1).
Это свойство предназначено для настройки фильтра формы выбора без написания кода программы, т.е. без программирования.
Другими словами, это свойство позволяет указать список реквизитов, которые будут поставлять значения, используемые при выборе значения реквизита, при открытии формы выбора, при отображении списка быстрого выбора и при выполнении ввода по строке.
2. Реквизиты объектов метаданных и элементы формы в 1С 8.3. Разница в использовании свойства «Связи параметров выбора»
Следует отметить, что свойство «Связи параметров выбора» есть и у реквизитов объектов метаданных в 1С (Рисунок 2).
И у элементов формы в 1С 8.3(Рисунок 3)
Разница в использовании этого свойства у реквизита объекта метаданных и элемента формы в том, что в случае использования свойства связи параметров выбора в 1С реквизита, установленные настройки будут распространяться (действовать) во всех формах объекта метаданных (справочника, документа и пр.) у реквизита, где это свойство настроено. В случае же использования этого свойства у элемента формы настройки будут распространяться только на данную форму объекта и в других формах действовать не будут.
В большинстве случаев с методологической точки зрения корректнее настраивать свойство «Связи параметров выбора» у реквизита объекта метаданных.
3. Как использовать свойства связи параметров выбора в 1С. Пример
Одним из типичных и распространенных примеров подобной ситуации является случай, когда после выбора в документе поступления товаров поставщика при последующем выборе договора не нужно выбирать из всех договоров, а необходимо ограничить список только договорами, заключенными именно с этим поставщиком.
Рассмотрим использование свойства связи параметров выбора в 1С на простейшем примере.
Вот данные справочника «Контрагенты» (Рисунок 4).
И соответственно данные справочника «Договоры» (Рисунок 5).
При пустом значении свойства «Связи параметров выбора» (Рисунок 6).
. В режиме 1С:Предприятия в документе «Приходная накладная» при выборе договора отображается полный список договоров, по всем контрагентам (Рисунок 7).
Теперь установим значение свойства «Связи параметров выбора» (Рисунок 8, Рисунок 9, Рисунок 10).
И вот что получаем (Рисунок 11).
Как видно на скрине, после настройки свойства «Связи параметров выбора» список договоров фильтруется по выбранному в документе контрагенту.
При настройке свойства в конфигураторе 1С Связи параметров выбора в форме настройки есть параметр «Режим изменения связанного значения» установленный в значение «Очищать» (Рисунок 12).
При таком параметре в случае изменения или очистки значения поля «Контрагент» значение поля «Договор» тоже будет очищено.
Такие настройки позволяют получить большую достоверность вводимых данных и минимизировать ошибки при вводе данных уменьшая влияние человеческого фактора.
Значения, указанные в данном свойстве, будут переданы в открываемую форму через структуру Параметры передавая их при вызове метода ОткрытьФорму()
4. Связи параметров выбора в 1С программно
Также у элементов формы можно устанавливать и изменять связи параметров выбора в коде 1С программно.
Если рассматривать пример выше, то фрагмент программного кода будет выглядеть так:
Вызывать процедуру установки связи нужно из процедуры: