Имя: Пароль:
1C
1С v8
Список выбора
0 MonteCarlo
 
02.09.16
08:58
Парни, всем добрый день. Подскажите пожалуйста, вот есть у меня обычная форма. В ней ТЧ. В ТЧ есть поле ввода с кнопкой выбора из спика. Список выбора я забил в конфигураторе в свойствах. Далее в обработчике события ПриОТкрытии() я обрабатываю этот список и от некоторых условий удаляю одно из значений. А когда после этого щелкаю на кнопку выбора из списка то вижу это значение в списке. Все перепробовал, уже ставил точки останова во всех обработчиках ТЧ. Есть обработки ПриНАчалеРедактирования(), вот в конце этой процедуры этого элемента в списке еще нет, а при начале выбора из списка он уже есть. Делал замер производительности, чтобы посмотреть какой код выполняется между двумя этими событиями, но ничего не нашел. Может тут что то платформенное? Какая то особенность работы со списком выбора?
1 Fedor-1971
 
02.09.16
09:00
(0) Рули списком в ПриНачалеВыбораИзСписка() или в ПриНачалеВыбора(). Отладчиком посмотри в обеих процедурах.
2 lubitelxml
 
02.09.16
09:02
я бы в конфигураторе (в свойствах) не делал. в коде бы формировал список
3 MonteCarlo
 
02.09.16
09:11
(1) Была мысль удалять элемент из списка именно в этих обработчика. ТОлько вот ТЧ у меня 3 штуки, во всех есть похожий список. И хотелось бы в одном месте, при открытии формы один раз обратиться к базе данных, выяснить нужно ли в данном документе отображать этот элемент или нет и собвственно обработать все эти списки. А так либо три раза к базе обращаться, либо один раз и хранить значение в переменно формы. Хотел как красивее.
4 MonteCarlo
 
02.09.16
09:12
(2) Объясните почему Вы бы не делали настройку списка в конфигураторе?
5 Fedor-1971
 
02.09.16
09:31
(4) вынеси формирование своего списка в отдельную функцию и заполняй его в соответствии с нужными тебе условиями.

При наличии условий при использовании списка проще реализовать его формирование программно в одном месте. Если тебе придётся поменять состав списка - будешь бегать по всем ТЧ и изменять в каждой, а потом ещё и код поправлять для удаления элементов.
Гемора при удалении элементов списка больше чем просто заново сформировать нужный тебе список выбора
удаление: найти элемент, удалить найденный
создание: добавить элемент
что быстрее?
6 MonteCarlo
 
02.09.16
12:15
Вопрос решил. Если кому интересно. Я копировал изначально коллекцию СписокВыбора в переменную, с переменной работал, полагая, что это ссылка на элемент управления. Отладка в принципе и показала что в самом элементе управления нет этого элемента, что еще больше подтверждало мою уверенность. Но потом решил перезалить полученный список значений поверх старого списка выбора и все получилось.
7 MonteCarlo
 
02.09.16
12:16
Всем спасибо за участие.
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший