Программное управление элементами поля выбора на форме #15320


#0 by Японский городовой
Доброго времени суток всем. 1. Есть обработка, у нее есть форма, на которой лежит интерфейсный элемент ПолеВыбора. В конфигураторе в свойстве СтрокиСпискаВыбора вношу в список необходимые мне элементы. 2. У обработки есть реквизит типа СписокЗначений, и именно этот реквизит установлен в качестве источника данных для интерфейсного элемента ПолеВыбора. 3. В свойстве формы СохраняемыеЗначения отмечен реквизит обработки типа СписокЗначений, однако в runtime значения не запоминаются, хотя другие реквизиты, более простых типов (число, строка, дата, булево), запоминаются без проблем. В момент открытия формы обработки реквизит типа ПолеВыбора всегда пуст. Этот казус можно было бы обойти, если бы была возможность программного управления текущим элементом в списке выбора на форме, или непосредственно самим реквизитом обработки, однако... 4. Считывать текущие значения у меня получается, например работают такие конструкции: ЭФ = ЭлементыФормы, пвФорматИмени - это интерфейсный элемент ПолеВыбора. 5. А вот устанавливать программно значения ни реквизита обработки, ни интефейсного элемента не получается. Вернее, это ничего не дает. То есть если интерактивно выбрать какое-либо значение в списке выбоа, то после выполнения программной конструкции ЭФ.пвФорматИмени.Значение = 3; - поле выбора очищается... Кто знает, как решать эту проблему? Спасибо.
#1 by Японский городовой
up
#2 by Японский городовой
Забыл сказать, релиз платформы 8.0.8.7 :-)
#3 by Волшебник
Слушай, у тебя чувствуется грамотный подход к решению проблем... Неужели с помощью Отладчика и какой-то там матери ты сам не разберёшься?
#4 by Японский городовой
За комплемент спасибо. Волшебник, ковырялся я в отладчике... Не нашел я там нужного мне. Уж будь другом, ткни носом, а?
#5 by Волшебник
Попробуй СписокВыбора заполнять в модуле формы в блоке основной программы или ПередОткрытием.
#6 by Японский городовой
ну надо же... об одном и том же подумали. сейчас попробую.
#7 by Волшебник
Не сдержался я пару минут... Надо работать над собой... :)
#8 by Японский городовой
Работаю... Процесс идет, но не обнадеживает. О результатах доложу.
#9 by Японский городовой
Тащ Волшебник! Докладую большими буквами!!! Ни хрена не помогает! :-) Пробовал по-разному. 1. Сначала в свойстве СтрокиСпискаВыбора интерфейсного элемента пвФорматИмени (ПолеВыбора) очистил все строки. Программно заполнил их в блоке основной программы модуля формы. Визуально все работает, но системное сохранение значений не функционирует. Опять же вызов ЭФ.пвФорматИмени.Значение = 3 ничего не дает. При этом выпадающий список с элементами остается, но поле для текущего выбранного элемента очищается. 2. Тогда решил заполнять программно сам реквизит обработки типа СписокЗначений Результат - такой же. 3. Тогда я решил убрать связь по данным, то есть у интерфейсного элемента пвФорматИмени очистил свойство Данные, ссылающиеся на реквизит обработки ФорматИмени. Вот тогда-то конструкция ЭФ.пвФорматИмени.Значение = 3 заработала. Однако сохранение значений не работало никак. 4. Тогда я решил вообще "вернуть все взад", то есть отказаться от программного заполнения СтрокСпискаВыбора, и заполнил их в конфигураторе. Тогда при открытии формы обработки поле выбора было уже не пустым, а показывало первый, набранный в конфигураторе, вариант из списка. То есть сохранение не заработало, как полагается, но так как ЭФ.пвФорматИмени.Значение = 3 уже работает, то можно воспользоваться СохранитьЗначение и т.д. Кстати, заметил странную особенность, которую я не могу ни понять, ни объяснить. Когда я программно заполнял реквизит обработки (со снятой связью по данным), то в отладчике он мне показывал количество элементов 4 и все их значения. Однако стоило (например) нажать на какую-либо кнопку на форме, как этот список значений обнулялся, о чем отладчик не задумываясь сообщал. При этом у меня в коде больше нигде не было дополнительных манипуляций с этим списком значений. Вот такая заморочка.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям