|
В каком событие правильно переопределить связи параметров выбора | ☑ | ||
---|---|---|---|---|
0
Zhora_Vlg
07.12.18
✎
10:57
|
УНФ, добавлен документ из БП Авизо по расчетам, оба.
В бухе договором был один объект справочник "Договор контрагента" и связи параметров выбора были настроены в реквизите таб части. В УНФ в это поле может попадать справочник "Договора контрагентов" или документ "Договор кридита и займа". В связи с различием имен полей отбора форм выбора, необходимо связи настроить программно после выбора типа значения реквизита таба части. Не могу найти событие где уже виден тип значения, но ещё не открылась форма выбора. Подскажите, как кто делал, я ведь не первый) |
|||
1
Zhora_Vlg
07.12.18
✎
11:27
|
Нашел обработчик "Обработка выбора" она вызывается 2 раза, первый после выбора типа, второй после выбора значения.
Так вот когда выбираю тип там не понятное мне значение в параметре выбранное значение. Не понятно оно мне тем что я не могу его создать чтобы сравнить с ним, пока вышел из положения тем что перевожу его в строку и сравниваю со строковым значение, но это не очень красиво. Там после выбора типа получается значение "Договор" а тип значения "Тип". Подскажите как создать такое значение программно что бы с ним сравнивать? &НаКлиенте Процедура СуммыДолгаДебиторскаяДоговорКонтрагентаОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) Если Строка(ВыбранноеЗначение) = "Договор" Тогда УстановитьСвязиПараметровВыбораСпр(); Иначе УстановитьСвязиПараметровВыбораДок(); КонецЕсли; КонецПроцедуры |
|||
2
Zhora_Vlg
07.12.18
✎
11:29
|
В метаданных "Договор" это представление справочника ДоговорыКонтрагентов. Именно представление, все остальное отличается.
|
|||
3
Filin
07.12.18
✎
11:30
|
Если ВыбранноеЗначение = Тип("СправочникСсылка.ДоговорыКонтрагентов") Тогда
Как то так |
|||
4
Zhora_Vlg
07.12.18
✎
11:35
|
Такое значение там после выбора значения, а не типа, т.е. во втором вызове.
|
|||
5
Zhora_Vlg
07.12.18
✎
11:38
|
(3) Извиняюсь, был не прав, Ваш вариант абсолютно верен. Спасибо!
|
|||
6
Zhora_Vlg
07.12.18
✎
12:38
|
Не пойму в чём дело, первый раз отрабатывает корректно, потом если выбираешь другой тип, связи устанавливаются, а форма открывается без отборов, закрываешь открываешь снова тот же тип уже с отбором.
Если каждый раз выбирать разный тип (после первого раза), все время открываются формы без отбора. Пока не выберешь один тип два раза подряд. |
|||
7
Zhora_Vlg
11.12.18
✎
07:16
|
В общем если кому будет интересно, без глюков работает вот такой код.
&НаКлиенте Процедура СуммыДолгаДебиторскаяДоговорКонтрагентаОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) ТекущиеДанные = Элементы.СуммыДолгаДебиторская.ТекущиеДанные; Если ВыбранноеЗначение = Тип("СправочникСсылка.ДоговорыКонтрагентов") Тогда СтандартнаяОбработка = Ложь; УстановитьСвязиПараметровВыбораСпр(); ЗавершениеВыбораДоговораСпр = Новый ОписаниеОповещения("ЗавершениеВыбораДоговораСпр", ЭтотОбъект); ПараметрыСпр = Новый Структура("Отбор", Новый Структура("Организация, Владелец", Объект.Организация, ТекущиеДанные.Контрагент)); ОткрытьФорму("Справочник.ДоговорыКонтрагентов.ФормаВыбора", ПараметрыСпр, Элемент,,,,ЗавершениеВыбораДоговораСпр); ИначеЕсли ВыбранноеЗначение = Тип("ДокументСсылка.ДоговорКредитаИЗайма") Тогда СтандартнаяОбработка = Ложь; УстановитьСвязиПараметровВыбораДок(); ЗавершениеВыбораДоговораДок = Новый ОписаниеОповещения("ЗавершениеВыбораДоговораДок", ЭтотОбъект); ПараметрыДок = Новый Структура("Отбор", Новый Структура("Организация, Контрагент", Объект.Организация, ТекущиеДанные.Контрагент)); ОткрытьФорму("Документ.ДоговорКредитаИЗайма.ФормаВыбора", ПараметрыДок, Элемент,,,,ЗавершениеВыбораДоговораДок); КонецЕсли; КонецПроцедуры Причем и связи нужно устанавливать отборы при открытии форм, потомучто то одно не отрабатывает, то другое, но в купе получилось что всегда открывается отфильтрованная форма. |
|||
8
Zhora_Vlg
11.12.18
✎
07:18
|
и связи нужно устанавливать и отборы при открытии форм*
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |