Имя: Пароль:
1C
 
Сохранение и восстановление отбора в табличной части внешней обработки
0 Ник ё занят
 
18.10.17
10:57
Есть внешняя обработка с табличной частью Товары
Есть две кнопки "сохранить настройки" и "восстановить настройки"

по нажатию кнопки сохраненить настройки я хочу записывать в хранилище настроек отбор, делаю вот так:
    ХранилищеОбщихНастроек.Сохранить(Строка(ЭтотОбъект), "ОтборСтрокВТаблицеТоварыОбработка", ЭлементыФормы.Товары.ОтборСтрок);

по нажатию кнопки восстановить настройки я хочу получить этот отбор и указать его же для этой же таблицы (восстановить ранее сохраненный) делаю так:
    Отбор = ХранилищеОбщихНастроек.Загрузить(Строка(ЭтотОбъект), "ОтборСтрокВТаблицеТоварыОбработка");
    ЭлементыФормы.ТоварыПродажиИОстатки.ОтборСтрок = Отбор; // вот здесь ошибка, "Поле объекта недоступно для записи (ОтборСтрок)"

В переменной Отбор хранятся все данные отбора с типом значений "Отбор"
Непонимание в том, как этот отбор указать таблице?
1 lodger
 
18.10.17
11:00
ничего в духе УстановитьОтбор(ТвойОтбор) не канает?
2 Ник ё занят
 
18.10.17
11:03
(1) к чему УстановитьОтбор(МойОтбор) прописать?
3 Гипервизор
 
18.10.17
11:06
(0) Попробуйте обойти элементы отбора в цикле, как-то так:

Для каждого ЭлементОтбора Из Отбор Цикл
    ЭлементыФормы.ТоварыПродажиИОстатки.ОтборСтрок[ЭлементОтбора.Имя].Установить(ЭлементОтбора.Значение);
КонецЦикла;
4 Ник ё занят
 
18.10.17
11:12
(3) спасибо, вроде работает, но с небольшой неточностью - там где галка у колонки в отборе не была указана при сохранении, при загрузке она указывается и получается везде она стоит и равно пустоте или нулю
5 Ник ё занят
 
18.10.17
11:16
(4) вроде как-то так лучше
    Для каждого ЭлементОтбора Из Отбор Цикл
        Если Не ЭлементОтбора.Значение = 0 Тогда
            Если Не ЭлементОтбора.Значение.Пустая() И Не ЭлементОтбора.Значение = Неопределено и Не ЭлементОтбора.Значение = null Тогда
                
  
  
  
  
  
  
  
  ЭлементыФормы.ТоварыПродажиИОстатки.ОтборСтрок[ЭлементОтбора.Имя].Установить(ЭлементОтбора.Значение);
            КонецЕсли;
        КонецЕсли;
    КонецЦикла;
6 Ник ё занят
 
18.10.17
11:17
ох какое форматирование
7 Ник ё занят
 
19.10.17
16:40
(4) конечный вариант:

    Для Каждого ЭлементОтбора Из Отбор Цикл
        ЭлементыФормы.ТоварыПродажиИОстатки.ОтборСтрок[ЭлементОтбора.Имя].Установить(ЭлементОтбора.Значение);
        ЭлементыФормы.ТоварыПродажиИОстатки.ОтборСтрок[ЭлементОтбора.Имя].Использование = ЭлементОтбора.Использование;
    КонецЦикла;
8 Михаил Козлов
 
19.10.17
16:44
(7) Отбор только "равно"? Лучше скопировать: использование, вид сравнения и значение.
9 Ник ё занят
 
23.10.17
11:49
(8)
    Для Каждого ЭлементОтбора Из Отбор Цикл
        ЭлементыФормы.ТоварыПродажиИОстатки.ОтборСтрок[ЭлементОтбора.Имя].ВидСравнения  = ЭлементОтбора.ВидСравнения;
        ЭлементыФормы.ТоварыПродажиИОстатки.ОтборСтрок[ЭлементОтбора.Имя].Значение      = ЭлементОтбора.Значение;
        ЭлементыФормы.ТоварыПродажиИОстатки.ОтборСтрок[ЭлементОтбора.Имя].Использование = ЭлементОтбора.Использование;
    КонецЦикла;
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой