helpf.pro
Регистрация

v8.2 УП: Два динамических списка на форме и отбор по владельцу

IKSparrow
04.12.2013 10:54Прочитано: 13358
Слегка запутался. Дано - справочник Контрагенты и подчиненный ему справочник Торговые точки. Оба справочника в виде динамических списков размещены на форме. Нужно в ходе работы делать отбор по владельцу в списке Торговых точек. Запрос написать или отбор сформировать - не проблема. Эти два подхода я знаю. Но как передать владельца для отбора?
Yandex
Возможно, вас также заинтересует
Реклама на портале
IKSparrow
04.12.2013 11:07Ответ № 1
Сделал таким образом. Но вижу, что такая конструкция не самая оптимальная - каждый раз дергать сервер это нормально? Какие варианты тут есть? Плюс проблема - не срабатывает отбор. Что не так сделал?

Код 1C v 8.2 УП
 

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

ЭлементОтбора.Использование = Истина;
ТД = Элемент.ТекущиеДанные;
СсылкаНаВладельца = УстановитьВладельцаТЧ(ТД);
ЭлементОтбора.ПравоеЗначение = СсылкаНаВладельца;

КонецЕсли;
КонецПроцедуры

&НаСервереБезКонтекста
Функция УстановитьВладельцаТЧ(Данные)
Возврат Данные.Ссылка;
КонецФункции
IKSparrow
04.12.2013 11:32Ответ № 2
А вот так работает. Торговые точки это динамический список но теперь с произвольным запросом. Но опять же. Не нравится мне, что каждый раз сервер дергается при активизации строки. Как можно оптимизировать данную структуру?

Код 1C v 8.2 УП
 

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

&НаСервереБезКонтекста
Функция УстановитьВладельцаТЧ(Данные)
Возврат Данные.Ссылка;
КонецФункции


Jonsony
04.12.2013 12:03Ответ № 3
(2) IKSparrow, а как ты иначе хочешь? из двух у тебя только через активизацию строки из первого списка, никак более, или делай для первого выпадающий список и при выборе нужного получишь отбор во втором

я бы чуток по другому сделал (чисто ИХМО) на форму над вторым спискок поместил реквизит, в виде текста (типа выбранный контрагент), и ему присваивал значение когда тыкаешь в строку в первом списке, и по этому значению отбор во втором.
заодно немного наглядно на форме
IKSparrow
04.12.2013 12:26Ответ № 4
(3) Да не, я думал мало ли чего то не знаю и есть более оптимальные пути по реализации такой задачи. У меня в итоге на форме три списка. Торговым точкам ещё один подчинен.
Jonsony
04.12.2013 17:15Ответ № 5
(4) IKSparrow, а 3-й зачем? при тыканьи в поле второго (торговые точки) инфу можно поле текста выводить на форме просто
подобным сделано в УТ в форме списка справочника Партнёры
Vladislav11
07.03.2015 19:25Ответ № 6

добрый день, а если справочники не подчиненные как организовать отбор торговых точек при активизации строки контрагента

Подсказка: Для выделения Кода используйте (в редакторе).
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.