Имя: Пароль:
1C
 
v8: Как ПриОткрытии задать значение Полю ввода? ПолеВвода, РежимВыбораИзСписка.
0 DownloadMASTER
 
03.04.09
15:45
На форме есть элемент поле ввода ПВ_ЕдИзм
Галочка на РежимВыбораИзСписка. Из при нажатии и выборе значения из выпавшего списка все прекрасно работает - поле ввода заполняется.
Вопрос такой: "Как мне это поле ввода заполнить значением при открытии формы?"

Вот это вот: ЭлементыФормы.ПВ_ЕдИзм.Значение = Сп[0].Представление;
не работает, значение-то заполнилось, но на форме поле пустое.
Что я делаю не так?





Перем Сп;

Процедура ПриОткрытии()
   //зададим поле вывода единицы измерения значение "л/100км"
   ЭлементыФормы.ПВ_ЕдИзм.Значение = Сп[0].Представление;
   ЕдИзм = Сп[0].Значение;
КонецПроцедуры  //ПриОткрытии

Процедура ПВ_ЕдИзмНачалоВыбораИзСписка(Элемент, СтандартнаяОбработка)
   Элемент.СписокВыбора = Сп;
КонецПроцедуры  //ПВ_ЕдИзмНачалоВыбораИзСписка

Процедура ПВ_ЕдИзмОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
   //Если никакой пункт не выбран из списка, то прерываемся
   Если ВыбранноеЗначение = Неопределено Тогда
       Возврат;
   Иначе
       Элемент.Значение = Сп[ВыбранноеЗначение].Представление;
       ЕдИзм = Сп[ВыбранноеЗначение].Значение;
   КонецЕсли;
КонецПроцедуры //ПВ_ЕдИзмОбработкаВыбора

//Пункты выпадающего списка для поля единицы измерения
Сп = Новый СписокЗначений;
Сп.Добавить(0,"л/100км");
Сп.Добавить(1,"л/ч");
1 DownloadMASTER
 
03.04.09
15:46
извините модераторы, ступил, забыл выбрать секцию восьмерки, исправьте пожалуйста
2 Рэйв
 
03.04.09
15:48
А ты заполняй не элемент формы, а реквизит.
3 Sakura
 
03.04.09
15:52
(2) +1
ну или пиши не Преставление, а просто имя переменной.
Кстати, а в какой момент у тебя список значений заполняется?
4 Sakura
 
03.04.09
15:56
а, все, заполнение увидела...
5 skunk
 
03.04.09
16:01
ЭлементыФормы.пвВыбраннаяБаза.СписокВыбора = ТвойСписокЗначений
6 DownloadMASTER
 
03.04.09
16:51
> А ты заполняй не элемент формы, а реквизит.
реквизит у меня называется также как и элемент формы, поэтому делаю
ПВ_ЕдИзм.Значение = Сп[0].Представление;
не заполняет значение при открытии

> ну или пиши не Преставление, а просто имя переменной
какой переменной? у меня все из списка берется

> ЭлементыФормы.пвВыбраннаяБаза.СписокВыбора = ТвойСписокЗначений
Мне надо заполнить значение поля ввода при открытии, а не список выбора задать этому полю при откртии, все-равно попоробовал - не помогло
----

Может и нельзя задать начальное значение полю ввода, если ему выставлен
РежимВыбораИзСписка = Истина?
потому как если я галку сниму и просто попробую при открытии заполнить поле ввода, все само-собой заполняется.....
7 DownloadMASTER
 
03.04.09
16:52
опечатался

> А ты заполняй не элемент формы, а реквизит.

вот так делаю
ПВ_ЕдИзм = Сп[0].Представление;
8 dimoff
 
03.04.09
16:53
Потому что едИзм вряд ли имеет тип число у тебя
9 DownloadMASTER
 
03.04.09
16:55
реквизит ПВ_ЕдИзм имеет тип Произвольный
платформа сама его выставляет, другой назначить нельзя
10 dimoff
 
03.04.09
16:56
Значит это не поле ввода, а поле списка
11 DownloadMASTER
 
03.04.09
16:57
Сп[0].Представление
передает в реквизит значение строка из Сп.Добавить(0,"л/100км");
= "л/100км"
оно записывается в ЭлементыФормы.ПВ_ЕдИзм.Значение
но не отображает на форме

Это точно поле ввода, щас только посмотрел
12 dimoff
 
03.04.09
16:57
Непонятно тогда почему ты делаешь тприсвоение
ЕдИзм = Сп[0].Значение;

если у тебя оно называется ПВ_ЕдИзм
13 SMakcik
 
03.04.09
16:58
ЭлементыФормы.ТвойРеквизит.СписокВыбора = СписокВыбора;
ЭлементыФормы.ТвойРеквизит.Значение = ЭлементыФормы.ТвойРеквизит.СписокВыбора.Получить(0).Значение;
14 dimoff
 
03.04.09
16:58
чем бы оно ни было непонятно зачем ты ему присваиваешь представление, а значение непонятной переменной ЕдИзм
15 DownloadMASTER
 
03.04.09
17:03
Спасибо всем кто помогал.
В особенности уважаемому SMakcik, его совет в точку.
16 dimoff
 
03.04.09
17:05
(15) Его совет - худшее из того что ты мог услышать, поскольку ты так и не понял почему твой код не работает а тупо скопипастил. Он тебе навредил.
17 dimoff
 
03.04.09
17:06
Это тупость писать
ЭлементыФормы.ТвойРеквизит.Значение = ЭлементыФормы.ТвойРеквизит.СписокВыбора.Получить(0).Значение;

вместо того чтобы написать
ПВ_ЕдИзм = Сп[0].Значение;
18 SMakcik
 
03.04.09
17:13
а(17) для Вас все тупость,
можете и
...
ЭлементыФормы.ТвойРеквизит.Значение = СписокВыбора.Получить(0).Значение;

написать.

и больше никак,

А если просто присвоите Значение, без присвоения списка, то Вам дорога на курсы
19 dimoff
 
03.04.09
17:20
Причем тут список, у тебя просто очень короткая строка
ЭлементыФормы.ТвойРеквизит.Значение =
так не пойдет, надо

ЭтаФорма.ЭтаФорма.ЭтаФорма.ЭлементыФормы.ТвойРеквизит.Значение =

никак не иначе, разве на курсах такому не учат?
20 SMakcik
 
03.04.09
17:42
Вы о чем вообще?
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.