Вход | Регистрация

1С:Предприятие ::

Метки: 

Связать два динамических списка

Я
   lg2marvel
 
14.02.18 - 12:36
Всем привет. Думаю довольно стандартная задача, есть два динамических списка на форме и соответственно 2 справочника, один подчинен другому.
Нужно установить отбор в динамическом списке в котором отображается подчиненный справочник.
&НаКлиенте
Процедура СписокПриАктивизацииСтроки(Элемент)
    Если Элемент.ТекущиеДанные <> Неопределено Тогда
        ТД = Элемент.ТекущиеДанные;
        СсылкаНаВладельца = ????;
        Модификации.Параметры.УстановитьЗначениеПараметра("Владелец",СсылкаНаВладельца);
    КонецЕсли;

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

Немогу понять как получить ссылку на владельца. Понимаю что надо брать на сервере.
Создаю процедуру 

&НаСервереБезКонтекста
Процедура СписокПриАктивизацииСтрокиНаСервере()
    
КонецПроцедуры

А как получить данные не понимаю
 
 
   lg2marvel
 
1 - 14.02.18 - 12:40
&НаКлиенте
Процедура СписокПриАктивизацииСтроки(Элемент)
    Если Элемент.ТекущиеДанные <> Неопределено Тогда
        ТД = Элемент.ТекущиеДанные;
        СсылкаНаВладельца = СписокПриАктивизацииСтрокиНаСервере(ТД);
        Модификации.Параметры.УстановитьЗначениеПараметра("Владелец",СсылкаНаВладельца);
    КонецЕсли;

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

&НаСервереБезКонтекста
Функция СписокПриАктивизацииСтрокиНаСервере(Данные)
    Возврат Данные.Ссылка;
КонецФункции

Ошибка, Ссылка - нет такого реквизита
   LordCMEPTb
 
2 - 14.02.18 - 12:42
А если в режиме отладки поставить точку останова на строке "ТД = Элемент.ТекущиеДанные;" и глянуть, что же находится в переменной ТД?
   zuza
 
3 - 14.02.18 - 12:42
(1) а если &НаСервере вместо &НаСервереБезКонтекста
   LordCMEPTb
 
4 - 14.02.18 - 12:46
(3) Для получения значения без разницы, в текущих данных либо уже будет ссылка, либо список выведенных реквизитов (+ те, что получаются всегда).
   lg2marvel
 
5 - 14.02.18 - 12:51
(3)

&НаСервереБезКонтекста
Функция СписокПриАктивизацииСтрокиНаСервере(Данные)
    Возврат Данные.Ссылка;
КонецФункции


&НаКлиенте
Процедура СписокПриАктивизацииСтроки(Элемент)
    Если Элемент.ТекущиеДанные <> Неопределено Тогда
        ТД = Элемент.ТекущиеДанные;
        СсылкаНаВладельца = СписокПриАктивизацииСтрокиНаСервере(ТД);
        Модификации.Параметры.УстановитьЗначениеПараметра("Владелец",СсылкаНаВладельца);
    КонецЕсли;

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

{Справочник.Оборудование.Форма.ФормаСписка.Форма(4)}: Поле объекта не обнаружено (Ссылка)
    Возврат Данные.Ссылка;
   lg2marvel
 
6 - 14.02.18 - 12:53
(3) Если просто НаСевере, Как будто ушло в закцикливание при открытии формы и выкинуло
   lg2marvel
 
7 - 14.02.18 - 12:56
(2) Хм, Вы правы, надо было сразу проверять отладчиком. Есть только Наименование
   dezss
 
8 - 14.02.18 - 12:57
(3) нельзя так делать ПриАктивизацииСтроки
   LordCMEPTb
 
9 - 14.02.18 - 13:04
(7) Это уже лучше.
(8) Если нельзя, но очень хочется, то можно.
По делу. В динамическом списке владельцев надо либо вывести ссылку, либо поставить флажок "Использовать всегда".
Для смены параметра динамического списка вроде нужен серверный вызов (если я правильно понимаю, он будет контекстным). Как правильно сказал dezss, так делать нельзя, а потому в процедуре при активации лучше подключить обработчик ожидания, в котором уже вызвать процедуру с установкой нужного владельца, чтобы в бесконечный цикл не ушло.
   lg2marvel
 
10 - 14.02.18 - 13:05
(9) Спасибо буду пробовать
 
 
   Вафель
 
11 - 14.02.18 - 13:06
ПриАктивизации лучше делать через обработчик ожидания
   lg2marvel
 
12 - 14.02.18 - 13:22
(11) (8) спасибо. в процессе ;-)
   FIXXXL
 
13 - 15.02.18 - 09:18
(9) не обяз сервер дергать

Синтаксис:
УстановитьЗначениеПараметра(<Параметр>, <Значение>) 

Доступность:

Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер).
--------------------------------------------------------------------------------

но можно посмотреть, будет ли неявный вызов :)
   Dilgorp
 
14 - 15.02.18 - 09:43
Динамический список (если есть основная таблица - справочник) в
Элементы.Список.ТекущаяСтрока
всегда имеет ссылку на элемент справочника

достаточно будет при активизации строки списка 1

Список2.Отбор.Элементы.Очистить();

ЭлементОтбора = Список2.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение  = Новый ПолеКомпоновкиДанных("ИмяПоля");
ЭлементОтбора.ВидСравнения   = ВидСравненияКомпоновкиДанных.Равно;
ЭлементОтбора.ПравоеЗначение = ПравоеЗначение;
ЭлементОтбора.Использование  = Истина;
   Dilgorp
 
15 - 15.02.18 - 09:47
(14) небольшое уточнение
Элементы.Список.ТекущаяСтрока
будет Неопределено, если список пуст


Список тем форума
  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует