![]() |
|
Список значений | ☑ | ||
---|---|---|---|---|
0
1634344
13.08.14
✎
09:50
|
Столкнулся с такой проблемой, есть код:Процедура КлассТранспортногоСтредстваНачалоВыбора(Элемент, СтандартнаяОбработка)
Если ЗначениеЗаполнено(ВидТехники) тогда Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | КлассификаторТранспортныхСредств.Наименование, | КлассификаторТранспортныхСредств.ВидыТехники |ИЗ | Справочник.КлассификаторТранспортныхСредств КАК КлассификаторТранспортныхСредств |ГДЕ | КлассификаторТранспортныхСредств.ВидыТехники = &ВидыТехники" ; Запрос.УстановитьПараметр("ВидыТехники", ВидТехники); СписокЗнач = Новый СписокЗначений; СписокЗнач.Очистить(); СписокЗнач.ЗагрузитьЗначения(Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Наименование")); Если СписокЗнач.Количество() > 0 Тогда СтандартнаяОбработка=Ложь; ТекущееЗначение = СписокЗнач.ВыбратьЭлемент("Наименование"); Если ТекущееЗначение <> Неопределено тогда КлассТранспортногоСтредства = ТекущееЗначение.Значение; КонецЕсли; Иначе Сообщить("Необходимо заполнить поле: Вид техники"); СтандартнаяОбработка = Ложь; КонецЕсли; КонецЕсли; КонецПроцедуры запрос формируется, в список значений попадают элементы, но вот при выборе элементов в списке значений, выбранное значение не фиксируется в поле ввода на форме. Не могу понять где зарыта собака. |
|||
1
чувак
13.08.14
✎
09:52
|
" СписокЗнач = Новый СписокЗначений;
СписокЗнач.Очистить(); " Зачем очистка созданного объекта? |
|||
2
1634344
13.08.14
✎
09:53
|
(1) Логично, очистку уберу.
|
|||
3
чувак
13.08.14
✎
09:56
|
Видимо ты присваиваешь реквизиту с типом справочник строковое значение
|
|||
4
hhhh
13.08.14
✎
09:57
|
(2) КлассТранспортногоСтредства - это ссылка на справочник.
А вы тут КлассТранспортногоСтредства = ТекущееЗначение.Значение; туда строку впихиваете. ТекущееЗначение.Значение - это строка. Это не элемент справочника. Она не впихнется в КлассТранспортногоСтредства. Скажите это себе пять раз. И больше не делайте таких детсадовских ошибок. |
|||
5
1634344
13.08.14
✎
10:00
|
(4)(3) большое спасибо
|
|||
6
1634344
13.08.14
✎
10:16
|
Сделал так, конечно не изящно но работает
Процедура КлассТранспортногоСтредстваНачалоВыбора(Элемент, СтандартнаяОбработка) Если ЗначениеЗаполнено(ВидТехники) тогда Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | КлассификаторТранспортныхСредств.Наименование, | КлассификаторТранспортныхСредств.ВидыТехники |ИЗ | Справочник.КлассификаторТранспортныхСредств КАК КлассификаторТранспортныхСредств |ГДЕ | КлассификаторТранспортныхСредств.ВидыТехники = &ВидыТехники" ; Запрос.УстановитьПараметр("ВидыТехники", ВидТехники); СписокЗнач = Новый СписокЗначений; СписокЗнач.Очистить(); СписокЗнач.ЗагрузитьЗначения(Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Наименование")); Если СписокЗнач.Количество() > 0 Тогда СтандартнаяОбработка=Ложь; ТекущееЗначение = СписокЗнач.ВыбратьЭлемент("Наименование"); Если ТекущееЗначение <> Неопределено тогда РезультатПоиска = Справочники.КлассификаторТранспортныхСредств.НайтиПоНаименованию(ТекущееЗначение.Значение); Если РезультатПоиска.Пустая() Тогда Иначе КлассТранспортногоСтредства = РезультатПоиска; КонецЕсли; КонецЕсли; Иначе Сообщить("Необходимо заполнить поле: Вид техники"); СтандартнаяОбработка = Ложь; КонецЕсли; КонецЕсли; КонецПроцедуры |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |