Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
29 мар 2024, 01:26

Как программно отменить настройку в свойстве "Связи параметров выбора"?

Автор Archanurik, 19 авг 2011, 11:15

0 Пользователей и 1 гость просматривают эту тему.

Archanurik

Допустим в документе есть два реквизита типа СправочникСыллка. Один реквизит связан со справочником, который является владельцем другого справочника, на который ссылается второй реквизит. В свойстве второго реквизита "Связи параметров выбора" я настроил так, чтобы при выборе элемента для этого реквизита  все элементы справочника в форме выбора отбирались по значению первого реквизита. Но этот отбор мне не во всех случаях будет нужен. Поэтому мне надо сделать так, чтобы если в  первом реквизите содержалось определенное значение (в моем случае, предопределенный элемент справочника), то отбор данных по первому реквизиту отменялся.
Я предполагаю, что в событии ПриИзменении первого реквизита можно написать код, который будет проверять равно ли значение этого реквизита определенному значению (предопределенному элементу) справочника и если да, то будет отменять отбор данных для второго реквизита.

has

Почему первого реквизита? При начале выбора второго реквизита проверяешь условие, если первый реквизит предопределенный, тогда отменяешь.

Archanurik


has


Archanurik

Было бы здорово. Вопрос в том, действительно ли необходимо писать код или можно обойтись простой настройкой того же самого свойства "Связи параметров выбора"?

has

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

Archanurik

Кстати, то, что я сделал со свойством "Связи параметров отбора", хотели бы знать многие и я наталкивался в сети на несколько незакрытых тем, где видел, что люди пытались сделать отбор написав код внутри модуля самой формы выбора. Я и сам два дня искал как такое устроить и не нашел, пока вдруг не вспомнил нечто подобное в другой конфигурации. Оказалось все довольно просто.
Должен сказать что  у меня платформа 1C 8.2.12.75.  Так вот, пусть будет Реквизит1 и Реквизит2  у какого-то документа. Вот что мы с ними сделаем в модуле формы документа:


&НаКлиенте
Процедура Реквизит2НачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)

Если (Реквизит1=Справочник.Справочник1.ПредопЭлемент) //Если так прям здесь написать, то выдаст ошибку, поэтому в реале будем пользоваться функцией, которая будет храниться в отдельном модуле где установлен флажок на Сервер и ВызовСервера.
Тогда
   //вот тут будет код, где у реквизита Реквизит2 должны сбиться настройки в "Связи параметров выбора"
   //я пробовал писать вот так. ЭЛементы.Абонент.СвязиПараметровВыбора и когда после этого я ставил точку, то на выбор были предложены четыре функции
   //ВГраница()  Количество() Найти()   Получить()
   // как с ними быть я не знаю.

  КонецЕсли

КонецПроцедуры



Archanurik

Что касается "управляемого интерфейса", настроить так, чтобы в отборе были исключения - нельзя. Нужно писать именно код, отключающий (Ложь)  и включающий (истина) отбор.

has

Ну если ты не можешь программно отключить, то может пойти по обратному пути? Установить программно?

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск