|
|
Сохранение и восстановление отбора в табличной части внешней обработки |
☑ |
|
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)
Для Каждого ЭлементОтбора Из Отбор Цикл
ЭлементыФормы.ТоварыПродажиИОстатки.ОтборСтрок[ЭлементОтбора.Имя].ВидСравнения = ЭлементОтбора.ВидСравнения;
ЭлементыФормы.ТоварыПродажиИОстатки.ОтборСтрок[ЭлементОтбора.Имя].Значение = ЭлементОтбора.Значение;
ЭлементыФормы.ТоварыПродажиИОстатки.ОтборСтрок[ЭлементОтбора.Имя].Использование = ЭлементОтбора.Использование;
КонецЦикла;
|
|
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший