Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
18 апр 2024, 14:51

Список выбора

Автор omahi, 26 окт 2014, 01:10

0 Пользователей и 1 гость просматривают эту тему.

omahi

Всем привет!

Имею УТ 10.3, неуправляемая форма. На форме имеется Поле выбора, программно добавляю в него возможные значения. Подскажите, пожалуйста, способ ПриОткрытии формы установить для этого поля определенное значение из списка.

Пробовал по-разному. Вот завершающая на сегодня попытка:


Для Каждого Элемент Из СписокЭлементов Цикл
     Если МояФункция() Тогда
          ЭлементыФормы.МоеПолеВыбора.ВыделенныйТекст = Элемент.Значение;
     КонецЕсли;
КонецЦикла;


Итог: Отражается значение в Поле выбора формы и только.
Форма ведет себя так как-будто Поле выбора пустое, пока не перевыберешь значение из списка интерактивно.

cska-fanat-kz

Цитата: omahi от 26 окт 2014, 01:10Форма ведет себя так как-будто Поле выбора пустое, пока не перевыберешь значение из списка интерактивно.

переведите
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Luzer1C

Если программно добавляете, то может попробовать так:
В процедуре "ПриЗакрытии" прописать - СохранитьЗначение("ПолеВыбора", ЭлементыФормы.ПолеВыбора.Значение);
А потом в процедуре "ПриОткрытии" - ПолеВыбора = ВосстановитьЗначение("ПолеВыбора").
Немного не ясна задача. Вы хотите программно добавить значения в список выбора, а потом при открытии указывать их заполнение? В таком случае список придётся где-то сохранять.
Халамбалам.

omahi

Согласен, немного неясно выразил мысли. В 2 часа ночи, когда я создавал тему, в голове было очень туманно.
Немного поясню. Передо мной стоят задачи:

1). программно наполнить список выбора на форме Обработки значениями, перечень которых устанавливался бы ПриОткрытии и зависел от ряда обстоятельств, не имеющих прямого отношения к вопросу (выполнено).
2). (Этот пункт - суть вопроса.) При открытии формы Обработки, значение в списке выбора не заполнено - нужно выбирать руками, но заказчик не хочет выбирать руками, хочет чтобы значение в этом списке выбора проставлялось по некоему условию уже ПриОткрытии.

Допустим: список выбора программно наполнен тремя значениями: Стол, Стул, Шкаф. ПриОткрытии на форме в поле выбора должно выбраться без участия пользователя значение: "Шкаф". Пишу для этого: ЭлементыФормы.МоеПолеВыбора.ВыделенныйТекст = "Шкаф". Форма открылась, в поле выбора вписано "Шкаф", но если я смотрю в отладчике ЭлементыФормы.МоеПолеВыбора, то нигде нет даже намека на значение "Шкаф". Стоит мне руками на форме открыть список выбора и выбрать "Шкаф" и все сразу становится на свои места. Элемент формы приобретает значение "Шкаф" и с этим значением дальше можно работать.

К слову сказать были попытки решить так: ЭлементыФормы.МоеПолеВыбора.Значение = "Шкаф" - безрезультатно. В то время как ЭлементыФормы.МоеПолеВыбора.Значение = "" работает. Может потому что установить значение поля выбора я пытаюсь ПриОткрытии, а очищаю его Кнопкой на уже открытой форме.

Эта проблема была решена в рамках задуманного изначально функционала несколько иным способом (через назначение дополнительной глобальной переменной в модуле формы), но это скорее костыль, чем нормальное решение. Так что вопрос как при заданных параметрах выбрать значение из списка выбора программно для меня актуален.           

cska-fanat-kz

что за данные отображает поле выбора?
1. реквизит документа (справочника или пр.)?
2. реквизит формы?

в первом случае присвойте ему значение через
    Объект.МойРеквизитСвязанныйСПолем = "Шкаф";
во втором
    МойРеквизитФормыСвязанныйСПолем = "Шкаф";
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Luzer1C

Если не получается, значит тип данных поля выбора и тип данных, которыми надо заполнить из базы данных не совпадает.
Добавлено: 28 окт 2014, 05:17


Кароче. Самому даже интересно стало.
СписокЗнач = Новый СписокЗначений;
СписокЗнач.Добавить("Шкаф");
СписокЗнач.Добавить("Стол");
СписокЗнач.Добавить("Стул");
ЭлементыФормы.ПолеВыбора1.СписокВыбора = СписокЗнач;
ЭлементыФормы.ПолеВыбора1.Значение = "Стул"; // Шкаф или Стол
Добавлено: 28 окт 2014, 05:19


Надеюсь хоть что-то понятно?
Халамбалам.

omahi

Цитата: cska-fanat-kz от 28 окт 2014, 04:24
что за данные отображает поле выбора?
1. реквизит документа (справочника или пр.)?
2. реквизит формы?


Как же я тебе признателен за пинок в нужную сторону!!! Забыл включить поле в состав реквизитов формы, от этого все глюки. Нужно больше отдыхать.

cska-fanat-kz

Цитата: omahi от 28 окт 2014, 12:23Забыл включить поле в состав реквизитов формы

Обычно сперва создается реквизит формы, а потом он мышью переносится в элементы формы... :zebzdr:
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск