Здравствуйте!
На эту тему написано много, но почему-то ничего не помогает... Ситуация такая: есть обработка, в которой присутствует табличная часть (см рис.). Если галка "проживание" выставлена, то по нажатию кнопки "Рассчитать" табличная часть, помимо выполнения расчетов, должны отфильтроваться по полю "Постоянное проживание" (булево, естсественно). Пробовала разные варианты программного отбора, например
Элементы.Участки.ОтборСтрок = Новый ФиксированнаяСтруктура("УчасткиПостоянноеПроживание", Объект.Проживает);

(где Участки - наименование ТабЧасти) - пишет "Реквизит не найден"...
подскажите пожалуйста как сделать этот отбор..
---
не, только прочитал все ваши сообщения. Отбор такой будет работать только если ПостоянноеПроживание будет реквизитом ТЧ. Добавьте такой реквизит и устанавливайте его программно при изменении реквизата ТЧ "Участок " и все..
---
вот так вроде можно

```1c
    ТаблицаСОтбором = Элементы.Участки;

    Отбор = Новый Структура;
    Отбор.Вставить("ПостоянноеПроживание", Объект.Проживает);
    ТаблицаСОтбором.ОтборСтрок = Новый ФиксированнаяСтруктура(Отбор);
```

чтобы отключить отбор Отбор.Вставить("УчасткиПостоянноеПроживание", "");
---
попробовала. пишет "реквизит не найден". Хотя как он может быть не найден? (см. рис)
---
Я даже не знал, что в элементы формы можно переносить реквизиты "через точку". Удивительное рядом.
Раз я этого не знал, возможно есть и чудо-возможность сделать отбор по такому вычисляемому полю. Но сомневаюсь.
Стандартный путь для вашей хотелки - добавлять пользовательскую колонку в реквизиты формы и явно заполнять ее .
ЗЫ. Хм... Интерактивный отбор по такой колонке работает. Может, таки получится установить его и программно. Сейчас покручу...
---
думаю проблема в том что передаете "УчасткиПостоянноеПроживание", а надо "ПостоянноеПроживание"
---
Тоже пришла такая мысль и я ее проверила. Ноль. То есть, тоже самое (см рис). вот сижу и думаю, может это кэш какой-нибудь...
---
не, только прочитал все ваши сообщения. Отбор такой будет работать только если ПостоянноеПроживание будет реквизитом ТЧ. Добавьте такой реквизит и устанавливайте его программно при изменении реквизата ТЧ "Участок " и все..
---
ура, во так получилось! большое спасибо!
---
там же все просто.

```1c
    &НаКлиенте
    Процедура ПроживаетПриИзменении(Элемент)
    Элементы.Участки.ОтборСтрок = Новый ФиксированнаяСтруктура("ПостоянноеПроживание", ?(Проживает, Истина, "));
    КонецПроцедуры
```
---
ЭлементОтбора = Участки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Участки.УчасткиПостоянноеПроживание"); //поле которое вам нужно фильтровать
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
ЭлементОтбора.ПравоеЗначение = ИСТИНА; //ваше значение отбора

//очистка отбора
&НаКлиенте
Процедура ОчиститьОтбор(Команда)
    этаформа.Список.Отбор.Элементы.Очистить();
КонецПроцедуры
---
Это для динамического списка. У ТС другая ситуация.
---
ну может не самое идеальное решение, но можно поиском
НашлиУчастки = Объект.Участки.НайтиСтроки(Новый Структура("ПостоянноеПроживание",ИСТИНА);
Если НашлиУчастки.Количество() > 0 Тогда
      Объект.Участки.Очистить();
      Для каждого ТекЗнач Из НашлиУчастки Цикл
            ЗаполнитьЗначенияСвойств(Объект.Участки.Добавить(),ТекЗнач);
      КонецЦикла;
КонецЕсли;
---
1) ТС уже решила проблему более простым и прямым способом
2) НайтиСтроки() возвращает массив ссылок на строки, а не копию строк. Так что работающий алгоритм будет похитрее. Ну и установка отбора предполагает возможность его отмены, что все еще больше усложняет.
---
В табличной части отборы делаются методом НайтиСтроки. Синтакс-помощник ответит на все вопросы.
---
```1c
    Элементы.Участки.ОтборСтрок = Новый ФиксированнаяСтруктура("ПостоянноеПроживание", Объект.Проживает);
```
---
Дело в том, что в табличной части у меня есть реквизит Участок (тип - ссылка на элемент справочника), и уже у этой ссылки есть реквизит "ПостоянноеПроживание". а отбор НайтиСтроки, я так понимаю, надо делать только по одному из реквизитов самойТЧ...Внутрь ссылки же этим отбором не залезешь? Во всяком случае у меня сейчас не получается... потому и хотела делать отбор по элементу формы...Но там тоже не получается)
---
Не совсем понятно, как вы собирались сделать отбор "по элементу формы", если "ПостоянноеПроживание" отсутствует в реквизитах ТЧ. Если я правильно понял ваши слова.
---
нет, туда-то я его вывела (см предыдущий пост с рисунком). Просто мне предлагали сделать отбор методом НайтиСтроки, который есть только у Объект.ТабЧасть