Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Отбор в ФормеСписка
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование управляемых форм 1С 8.2
kosalex
Добрый день. Есть форма списка

Хочу установить отбор по полю "Подготовил"

Пишу так:




Вылазит ошибка:
{Справочник.ВнутренниеДокументы.Форма.ФормаСпискаСПапками.Форма(103)}: Поле объекта не обнаружено (Подготовил)
Список.Отбор.Подготовил.Установить(ТекПользователь);


Что я делаю не так?
logist
Цитата(kosalex @ 13.09.13, 9:05) необходимо зарегистрироваться для просмотра ссылки
Что я делаю не так?

Форма списка в УФ содержит динамический список, и если вы хотите работать с ним через отбор, то нужно понимать, что отбор в динамическом списке представляет собой поля компоновки данных. Собственно, если бы вы заглянули в синтаксис-помощник вы бы это увидели.
Если это сложно для понимания, то можно работать через параметры, в таком случае в ПриСозданииНаСервере необходимо передать в список параметр, а в запросе списка (включить произвольный запрос) указать использование этого параметра.
Fynjy
Цитата(logist @ 13.09.13, 9:25) необходимо зарегистрироваться для просмотра ссылки
Форма списка в УФ содержит динамический список, и если вы хотите работать с ним через отбор, то нужно понимать, что отбор в динамическом списке представляет собой поля компоновки данных. Собственно, если бы вы заглянули в синтаксис-помощник вы бы это увидели.
Если это сложно для понимания, то можно работать через параметры, в таком случае в ПриСозданииНаСервере необходимо передать в список параметр, а в запросе списка (включить произвольный запрос) указать использование этого параметра.

kosalex
Спасибо. Написал, работает. Вопрос, а как быть в ситуации если нужно отбирать сразу по нескольким полям? Т.е. если я хочу отбирать по полю "Подготовил" и "Вид Документа". Нужно создавать ещё один "ЭлементОтбора"?
&НаСервере
Функция ПолучитьТекущегоПользователя()
     ТекПользователь = ПользователиКлиентСервер.ТекущийПользователь();
     Возврат ТекПользователь;
КонецФункции


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


logist
Цитата(kosalex @ 13.09.13, 9:59) необходимо зарегистрироваться для просмотра ссылки
Нужно создавать ещё один "ЭлементОтбора"?

Да.

p.s.
&НаСервереБезКонтекста
Функция ПолучитьТекущегоПользователя()
     Возврат ПользователиКлиентСервер.ТекущийПользователь();
КонецФункции
kosalex
Цитата(logist @ 13.09.13, 10:28) необходимо зарегистрироваться для просмотра ссылки
Да.

p.s.
&НаСервереБезКонтекста
Функция ПолучитьТекущегоПользователя()
     Возврат ПользователиКлиентСервер.ТекущийПользователь();
КонецФункции



yes smile.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.