|
Связь значений реквизитов объекта | ☑ | ||
---|---|---|---|---|
0
veolent
28.05.12
✎
14:48
|
Есть документ, у которого имеются два реквизита «Контрагент», «Проект». При выборе контрагента, во втором реквизите «Проект», должен формироваться список проектов связанных с выбранным контрагентом. Контрагент и проект связаны непериодическим регистром сведений, т.е. регистр сведений выступает в качестве ассоциативной сущности (для связи многие ко многим). Подскажите, как грамотно решить данную задачу.
|
|||
1
butterbean
28.05.12
✎
14:49
|
передавай в форму выбора контрагента, а там уже отбор делай по ссылкам
|
|||
2
golden-pack
28.05.12
✎
14:50
|
(0) Проект - начало выбора - стандартная обработка = ложь + список ссылок отбором в форму выбора
|
|||
3
veolent
28.05.12
✎
14:52
|
Ок, спасибо. Буду пробовать
|
|||
4
veolent
28.05.12
✎
16:48
|
Сделал так:
&НаКлиенте Процедура ПроектНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) ПараметрыФормы = ПолучениеСпискаПроектов(Объект.Контрагент); Форма = ПолучитьФорму("Справочник.Проект.ФормаВыбора", ПараметрыФормы); Форма.Открыть(); СтандартнаяОбработка = Ложь; КонецПроцедуры &НаСервере Функция ПолучениеСпискаПроектов (ВыбранныйКонтрагент) ОтборПроектов = Новый Структура("Контрагент"); ОтборПроектов.Контрагент = ВыбранныйКонтрагент; ВыборкаПроектов = РегистрыСведений.АссоциацияПроектКонтрагент.Выбрать(ОтборПроектов); СписокПроектов = Новый СписокЗначений; Пока ВыборкаПроектов.Следующий() Цикл СписокПроектов.Добавить(ВыборкаПроектов.Проект); КонецЦикла; ОтборДляПараметров = Новый Структура; ОтборДляПараметров.Вставить("ВидСравнения", ВидСравнения.ВСписке); ОтборДляПараметров.Вставить("Ссылка", СписокПроектов); ПараметрыФормы = Новый Структура; ПараметрыФормы.Вставить("Отбор", ОтборДляПараметров); Возврат ПараметрыФормы КонецФункции |
|||
5
МишКа
28.05.12
✎
16:51
|
(4) А зачем отдельную форму открывать? Есть же свойство "список выбора".
|
|||
6
veolent
28.05.12
✎
17:04
|
А как с использованием свойства «Список выбора»?
|
|||
7
veolent
28.05.12
✎
21:37
|
Воспользовался свойством «ДанныеВыбора», да так будет лучше. А то с отбором колупаться (блокируя параметры фильтрации…)
&НаКлиенте Процедура ПроектНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; ДанныеВыбора = ПолучениеСпискаПроектов(Объект.Контрагент); КонецПроцедуры &НаСервере Функция ПолучениеСпискаПроектов (ВыбранныйКонтрагент) ОтборПроектов = Новый Структура("Контрагент"); ОтборПроектов.Контрагент = ВыбранныйКонтрагент; ВыборкаПроектов = РегистрыСведений.АссоциацияПроектКонтрагент.Выбрать(ОтборПроектов); СписокПроектов = Новый СписокЗначений; Пока ВыборкаПроектов.Следующий() Цикл СписокПроектов.Добавить(ВыборкаПроектов.Проект); КонецЦикла; Возврат СписокПроектов КонецФункции |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |