Имя: Пароль:
1C
1С v8
Список полей для отбора в колонке
0 Pro100
 
31.01.17
14:29
Здравствуйте.
Подскажите пожалуйста по УФ.
НА форме есть ДеревоЗначений, одна из колонок с именем "Отбор" имеет тип ОтборКомпоновкиДанных.
Как можно заполнить программно это поле списком доступных полей?
Пытался сделать:
&НаСервере
Процедура ПолучитьПоляОтбора(ИмяМетаданных)
    ПостроительОтч = Новый ПостроительОтчета;
    ПостроительОтч.Текст = "ВЫБРАТЬ
            |    *
            |ИЗ
            |    " + ИмяМетаданных;
    ПостроительОтч.ЗаполнитьНастройки();
    Для Каждого Поле из ПостроительОтч.ДоступныеПоля Цикл
        НовоеПолеОтбора = Элементы.СписокДокументов.ТекущиеДанные.Отбор.ДоступныеПоляОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    КонецЦикла;
КонецПроцедуры

...Показать


Выходит ошибка:
{ВнешняяОбработка.ОчисткаБазы.Форма.ФормаУправляемая.Форма(88)}: Ошибка при получении значения атрибута контекста (ТекущиеДанные)
НовоеПолеОтбора = Элементы.СписокДокументов.ТекущиеДанные.Отбор.ДоступныеПоляОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
по причине:
Текущие данные таблицы недоступны на сервере

Как можно изменить, подскажите пожалуйста.
1 Жан Пердежон
 
31.01.17
14:49
>> Текущие данные таблицы недоступны на сервере
2 Pro100
 
31.01.17
14:52
(1) я уже это понял.
Как правильно работать с колонкой у которой тип "ОтборПомпоновкиДанных", вернее как ее правильно заполнить то? чтобы выбирались там поля...
Или хотя бы в каком направлении искать подскажите.
3 FIXXXL
 
31.01.17
14:55
(2) ты до этого еще не доехал, сначала наСервере получи список полей, верни на клиента
4 Pro100
 
31.01.17
14:58
(2) ТАк список полей я возвращаю через ПостроительОтч.ДоступныеПоля, или я чего-то не понимаю. Можно подробнее пожалуйста.
5 FIXXXL
 
31.01.17
17:16
(4) ну вот это в цикле сунь в СписокЗначений (можешь реквизит формы сделать, можешь так передать, тогда НаСервереБезКонтекста не забудь)
Список верни на клиента, его обходи и создавай ОтборПомпоновки :)

правда зачем тебе Построитель - я хз
может проще ИмяМетаданных.Реквизиты обойти в цикле?
6 Pro100
 
01.02.17
07:05
(5)
ИмяМетаданных - это строка, поэтому и нужен построитель, чтобы вытащить реквизиты, потому как простым обходом тут не обойтись ))
А вот по поводу "Список верни на клиента, его обходи и создавай" подробнее пожалуйста.
Потому что на момент когда я возвращаю список на клиент у меня тип у поля Элементы.СписокДокументов.ТекущиеДанные.Отбор.ДоступныеПоляОтбора - Неопределено.
Не пойму как его задать...
Хотя в СП написано, что этот объект может использоваться в реквизитах УФ....
7 Pro100
 
01.02.17
07:26
Просто читал тут же на форуме вот это v8: 8.3. УФ. Реквизит формы (табличной части) с типом ОтборКомпоновкиДанных.
и у человека тоже не получилось сделать ничего...
У меня такая же ситуация в каждой строке ТЧ должен быть свой отбор..
8 FIXXXL
 
01.02.17
08:55
(6) ну и замечательно
Метаданные[ИмяМетаданных] и обходи

построитель - отмирающий механизм, не надо его пользовать
9 Pro100
 
01.02.17
09:30
(8) Ок не буду использовать построитель. ))
Как инициализировать то эту колонку, чтобы по каждой строке был свой отбор?
Потому что У меня сейчас проблема с тем чтобы заполнить доступные поля в этом реквизите, чтобы стандартная форма отбора отработала.
10 Жан Пердежон
 
01.02.17
10:11
(7) храни в строке адрес отбора во временном хранилище; в общий реквизит/элемент загружай нужный отбор при смене строки...
11 Pro100
 
01.02.17
13:05
(10) Вопрос не в том как хранить, а в том как заполнить поля для отбора ?? Т.е. Как инициализировать это Поле с типом ОтборКомпоновкиДанных
Независимо от того, куда вы едете — это в гору и против ветра!