|
Связать два динамических списка | ☑ | ||
---|---|---|---|---|
0
lg2marvel
14.02.18
✎
12:36
|
Всем привет. Думаю довольно стандартная задача, есть два динамических списка на форме и соответственно 2 справочника, один подчинен другому.
Нужно установить отбор в динамическом списке в котором отображается подчиненный справочник. &НаКлиенте Процедура СписокПриАктивизацииСтроки(Элемент) Если Элемент.ТекущиеДанные <> Неопределено Тогда ТД = Элемент.ТекущиеДанные; СсылкаНаВладельца = ????; Модификации.Параметры.УстановитьЗначениеПараметра("Владелец",СсылкаНаВладельца); КонецЕсли; КонецПроцедуры Немогу понять как получить ссылку на владельца. Понимаю что надо брать на сервере. Создаю процедуру &НаСервереБезКонтекста Процедура СписокПриАктивизацииСтрокиНаСервере() КонецПроцедуры А как получить данные не понимаю |
|||
1
lg2marvel
14.02.18
✎
12:40
|
&НаКлиенте
Процедура СписокПриАктивизацииСтроки(Элемент) Если Элемент.ТекущиеДанные <> Неопределено Тогда ТД = Элемент.ТекущиеДанные; СсылкаНаВладельца = СписокПриАктивизацииСтрокиНаСервере(ТД); Модификации.Параметры.УстановитьЗначениеПараметра("Владелец",СсылкаНаВладельца); КонецЕсли; КонецПроцедуры &НаСервереБезКонтекста Функция СписокПриАктивизацииСтрокиНаСервере(Данные) Возврат Данные.Ссылка; КонецФункции Ошибка, Ссылка - нет такого реквизита |
|||
2
LordCMEPTb
14.02.18
✎
12:42
|
А если в режиме отладки поставить точку останова на строке "ТД = Элемент.ТекущиеДанные;" и глянуть, что же находится в переменной ТД?
|
|||
3
zuza
14.02.18
✎
12:42
|
(1) а если &НаСервере вместо &НаСервереБезКонтекста
|
|||
4
LordCMEPTb
14.02.18
✎
12:46
|
(3) Для получения значения без разницы, в текущих данных либо уже будет ссылка, либо список выведенных реквизитов (+ те, что получаются всегда).
|
|||
5
lg2marvel
14.02.18
✎
12:51
|
(3)
&НаСервереБезКонтекста Функция СписокПриАктивизацииСтрокиНаСервере(Данные) Возврат Данные.Ссылка; КонецФункции &НаКлиенте Процедура СписокПриАктивизацииСтроки(Элемент) Если Элемент.ТекущиеДанные <> Неопределено Тогда ТД = Элемент.ТекущиеДанные; СсылкаНаВладельца = СписокПриАктивизацииСтрокиНаСервере(ТД); Модификации.Параметры.УстановитьЗначениеПараметра("Владелец",СсылкаНаВладельца); КонецЕсли; КонецПроцедуры {Справочник.Оборудование.Форма.ФормаСписка.Форма(4)}: Поле объекта не обнаружено (Ссылка) Возврат Данные.Ссылка; |
|||
6
lg2marvel
14.02.18
✎
12:53
|
(3) Если просто НаСевере, Как будто ушло в закцикливание при открытии формы и выкинуло
|
|||
7
lg2marvel
14.02.18
✎
12:56
|
(2) Хм, Вы правы, надо было сразу проверять отладчиком. Есть только Наименование
|
|||
8
dezss
14.02.18
✎
12:57
|
(3) нельзя так делать ПриАктивизацииСтроки
|
|||
9
LordCMEPTb
14.02.18
✎
13:04
|
(7) Это уже лучше.
(8) Если нельзя, но очень хочется, то можно. По делу. В динамическом списке владельцев надо либо вывести ссылку, либо поставить флажок "Использовать всегда". Для смены параметра динамического списка вроде нужен серверный вызов (если я правильно понимаю, он будет контекстным). Как правильно сказал dezss, так делать нельзя, а потому в процедуре при активации лучше подключить обработчик ожидания, в котором уже вызвать процедуру с установкой нужного владельца, чтобы в бесконечный цикл не ушло. |
|||
10
lg2marvel
14.02.18
✎
13:05
|
(9) Спасибо буду пробовать
|
|||
11
Вафель
14.02.18
✎
13:06
|
ПриАктивизации лучше делать через обработчик ожидания
|
|||
12
lg2marvel
14.02.18
✎
13:22
|
(11) (8) спасибо. в процессе ;-)
|
|||
13
FIXXXL
15.02.18
✎
09:18
|
(9) не обяз сервер дергать
Синтаксис: УстановитьЗначениеПараметра(<Параметр>, <Значение>) Доступность: Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер). -------------------------------------------------------------------------------- но можно посмотреть, будет ли неявный вызов :) |
|||
14
Dilgorp
15.02.18
✎
09:43
|
Динамический список (если есть основная таблица - справочник) в
Элементы.Список.ТекущаяСтрока всегда имеет ссылку на элемент справочника достаточно будет при активизации строки списка 1 Список2.Отбор.Элементы.Очистить(); ЭлементОтбора = Список2.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ИмяПоля"); ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ЭлементОтбора.ПравоеЗначение = ПравоеЗначение; ЭлементОтбора.Использование = Истина; |
|||
15
Dilgorp
15.02.18
✎
09:47
|
(14) небольшое уточнение
Элементы.Список.ТекущаяСтрока будет Неопределено, если список пуст |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |