Простой способ использовать ОтборСтрок в табличной части
В табличную часть можно выводить атрибуты реквизитов через точку, но ОтборСтрок по ним не работает.
Например, я выводил в табличную часть Номенклатура.БрендТовара, все хорошо, но программно сделать отбор нельзя.
Там работают совсем простые пользователи, научить их ALT+F сложно, а программно вызвать такой поиск тоже, по-моему нельзя. Им надо сделать поле отбора.

Поэтому решено было добавить в табличную часть колонка БрендТовара и ее заполнить.
В документе:
&НаКлиенте Процедура ВыбБрендПриИзменении(Элемент) ВыбБрендПриИзмененииНаСервере(); КонецПроцедуры &НаСервере Процедура ВыбБрендПриИзмененииНаСервере() ЛогикаСервер.ОбработатьВыборБренда(ЭтаФорма, ВыбБренд, Элементы.Материалы, Объект.Материалы); КонецПроцедуры
В модуле ЛогикаСервер:
Процедура ПроставитьБрендыТоваровСтрокТЧ(ТЧ) Экспорт З = Новый Запрос(); З.Текст = "ВЫБРАТЬ | Т.НомерСтроки КАК НомерСтроки, | Т.Номенклатура КАК Номенклатура |ПОМЕСТИТЬ ТЗ |ИЗ | &ТЗ КАК Т |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ТН.БрендТовара КАК БрендТовара, | ТЗ.НомерСтроки КАК НомерСтроки |ИЗ | ТЗ КАК ТЗ | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК ТН | ПО ТЗ.Номенклатура = ТН.Ссылка"; З.УстановитьПараметр("ТЗ", ТЧ.Выгрузить(, "Номенклатура, НомерСтроки")); Выборка = З.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл Строка = ТЧ[Выборка.НомерСтроки-1]; Строка.БрендТовара = Выборка.БрендТовара; КонецЦикла; КонецПроцедуры Процедура ОбработатьВыборБренда(Форма, ЗначениеОтбора, ЭлементТовары, ТЧТовары) Экспорт ТекОтборСтрок = ЭлементТовары.ОтборСтрок; Если ТекОтборСтрок = Неопределено Тогда ТекОтборСтрок = Новый Структура(); Иначе ТекОтборСтрок = Новый Структура(ТекОтборСтрок); КонецЕсли; Если ЗначениеЗаполнено(ЗначениеОтбора) Тогда ТекОтборСтрок.Вставить("БрендТовара", ЗначениеОтбора); ПроставитьБрендыТоваровСтрокТЧ(ТЧТовары); Иначе ТекОтборСтрок.Удалить("БрендТовара"); КонецЕсли; ЭлементТовары.ОтборСтрок = Новый ФиксированнаяСтруктура(ТекОтборСтрок); КонецПроцедуры
В коде максимально эффективно заполняется табличная часть и по ней выставляется отбор, не затрагивая другие колонки отборов в ОтборСтрок.
Среда: Нетленка Объем: 0.8 час.
