Добрый день. Хотел бы задать следующий вопрос.
Обычные формы.
Есть справочник, в нем есть два табличных поля. В первом табличном поле находятся непосредственно записи номенклатуры. Вторая табличная часть представляет собой регистр сведений.
Регистр сведений это аналоги номенклатуры.
Мне нужно сделать отбор, когда выбираешь какую либо строку в первой табличной части, что бы выводило только аналоги во второй табличной части, а не все сразу скопом.
Как такое можно реализовать?
Заранее спасибо за ответ и не сильно пинайте ногами...
---
Должно работать

ЭлементыФормы.ТабличноеПолеАналоги.Значение.Отбор.Номенклатура.Установить(Элемент.ТекущаяСтрока.Ссылка)
---
В событии ПриАктивизацииСтроки первой ТЧ, устанавливаете отбор недоступный для пользователя во второй.
---
р недоступный для пользователя во в

Что "ПриАктивацииСтроки" это понятно, мне интересен сам механизм...
пишу например
ТабличноеПолеАналоги.Отбор.Аналог.Установить("Значение");
В результате не выводит ничего...
---
Так и написано "Значение"? Или
```1c
    Элемент.ТекущаяСтрока[ИмяРеквизитаНоменклатура]
```
---
(4)
Вообщем у меня запрос выглядит так...

```1c
    Процедура СправочникСписокПриАктивизацииСтроки(Элемент)
    СтрокаТаблицы = ЭлементыФормы.СправочникСписок.ТекущаяСтрока;

    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | Аналоги.Аналог
    |ИЗ
    | РегистрСведений.Аналоги КАК Аналоги
    |ГДЕ
    | Аналоги.Номенклатура = &Номенклатура";
    Запрос.УстановитьПараметр("Номенклатура", СтрокаТаблицы.Наименование);
    Результат = Запрос.Выполнить();
    Выборка = Результат.Выбрать();
    Выборка.Следующий();

    ТабличноеПолеАналоги.Отбор.Аналог.Установить(Выборка.Аналог);
    КонецПроцедуры
```

Вывод во вторую таблицу нулевой
---
Может

```1c
    СтрокаТаблицы = ЭлементыФормы.СправочникСписок.ТекущаяСтрока;

    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | Аналоги.Аналог
    |ИЗ
    | РегистрСведений.Аналоги КАК Аналоги
    |ГДЕ
    | Аналоги.Номенклатура = &Номенклатура";
    Запрос.УстановитьПараметр("Номенклатура", СтрокаТаблицы.Наименование);

    ТабличноеПолеАналоги = Запрос.Выполнить().Выгрузить();
```
---
А если все таки нужен отбор то на "ПриАктивацииСтроки"
```1c
    ЭлементыФормы.ТЗ1.ОтборСтрок.Номенклатура.Установить(Элемент.ТекущаяСтрока.Номенклатура)
```
---
Пишет
{Справочник.Номенклатура.Форма.ФормаСписка.Форма(4)}: Поле объекта не обнаружено (ОтборСтрок)
ЭлементыФормы.ТабличноеПолеАналоги.ОтборСтрок.Аналог.Установить(Элемент.ТекущаяСтрока.Номенклатура)
---
Может, я что то неправильно объяснил...
Справочник номенклатура состоит из 2х табличных полей...
Первое поле - это непосредственно сам список номенклатуры, имеет тип "СправочникСписок".
Второе поле - это "РегистрСведенийСписок.Аналоги".

Регистр непереодический, независимый, состоит из 2х измерений: Номенклатура (справочник номенклатура) и Аналоги (справочник номенклатура).

Так вот мне нужно, что бы при выделении строки в 1 табличной части справочника номенклатура, во второй табличной части (РегистрСведенийСписок.Аналоги) выбирались только аналоги на эту позицию...
Я уже всю голову сломал, как это сделать...
Я понимаю, что это делается через "ПриАктивацииСтроки", но, что дальше делать вообще ума не приложу
---
Должно работать

ЭлементыФормы.ТабличноеПолеАналоги.Значение.Отбор.Номенклатура.Установить(Элемент.ТекущаяСтрока.Ссылка)
---
Спасибо, действительно, все работает...
А если нужен еще один отбор... Что бы не выводило аналоги с нулевыми остатками

Например есть регистр накопления "ОстаткиНоменклатуры".
Я в табличное поле аналоги добавил два своих реквизита "артикул" (справочник номенклатура) и "остатки" (регистр накопления ОстаткиНоменклатуры)... через код

```1c
    Процедура ТабличноеПолеАналогиПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | ОстаткиНоменклатурыОстатки.КоличествоОстаток КАК Остаток,
    | ВложенныйЗапрос.Артикул
    |ИЗ
    | (ВЫБРАТЬ
    | Номенклатура.Ссылка КАК Ссылка,
    | Номенклатура.Артикул КАК Артикул
    | ИЗ
    | Справочник.Номенклатура КАК Номенклатура) КАК ВложенныйЗапрос
    | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиНоменклатуры.Остатки КАК ОстаткиНоменклатурыОстатки
    | ПО ВложенныйЗапрос.Ссылка = ОстаткиНоменклатурыОстатки.Номенклатура
    |ГДЕ
    | ВложенныйЗапрос.Ссылка = &Аналог";
    Запрос.УстановитьПараметр("Аналог", ОформлениеСтроки.Ячейки.Аналог.Значение);
    Результат = Запрос.Выполнить();
    Если НЕ Результат.Пустой() Тогда
    Выборка = Результат.Выбрать();
    Выборка.Следующий();
    ОформлениеСтроки.Ячейки.Артикул.Значение = Выборка.Артикул;
    ОформлениеСтроки.Ячейки.Остаток.Значение = Выборка.Остаток;

    КонецЕсли;

    КонецПроцедуры
```
---
1. Работу с базой данных нужно выполнять в процедуре ПриПолученииДанных.
2. Бездумное использование вложенных запросов, как в примере, может сильно тормозить работу с формой у пользователей, если оптимизатор не сможет подобрать правильный план выполнения.
---
Отбор только по измерениям, ресурсам и реквизитам регистра. А чтобы не выводило аналоги с нулевыми - добавьте условие в запрос