![]() |
![]() |
![]() |
|
Список выбора в 8.2 | ☑ | ||
---|---|---|---|---|
0
Minilaus
19.05.11
✎
10:36
|
Возникла такая проблема в дереве значений (да это в приницпе и не важно) есть реквизит целочисленный. На форме у колонки с этим реквизитом назначаю поле ввода с кнопкой списка выбора, самим списком выбора, свойство "Режим выбора из списка" назначено.
Пользователь заходит в колонку выбирает значение из списка выбора (каждому целому числу там назначено текстовое представление), но после выбора значения в колонке отражается число, а не назначенный ему текст-представление. В 8.1 я борол эту проблему установкой текста в эту ячейку при выводе строки табличного поля. В 8.2 такого события больше нет. Как же побороть это дело, неужели надо заменять значение реквизита с целого числа, на текст? |
|||
1
Minilaus
19.05.11
✎
10:46
|
Ап
|
|||
2
Рэйв
19.05.11
✎
10:47
|
>>реквизит целочисленный
и как ты предлагаешь туда утромбовать текст? |
|||
3
Minilaus
19.05.11
✎
10:53
|
В списке выбора задаем:
Значение: 0 Представление: "Будет сделано то-то" Мне нужно чтобы в этом реквизите было число для дальнешей обработки, но чтобы пользователь в списке и при выборе видел текст представления |
|||
4
Рэйв
19.05.11
✎
11:00
|
Так чтоли?
Процедура Реквизит1НачалоВыбораИзСписка(Элемент, СтандартнаяОбработка) сп=новый СписокЗначений; Сп.Добавить(1,"Адын"); Сп.Добавить(2,"Адын и адын"); Сп.Добавить(1,"Два адын и адын"); Элемент.СписокВыбора=Сп; КонецПроцедуры |
|||
5
Minilaus
19.05.11
✎
11:02
|
Угу, именно. Но в списке вместо "Адын" отображает число 1. А хотелось бы чтобы сам реквизит хранил значение 1, а пользователю отображал "Адын"
|
|||
6
Рэйв
19.05.11
✎
11:31
|
Перем Сп;
Процедура ТабличнаяЧасть1Реквизит1НачалоВыбораИзСписка(Элемент, СтандартнаяОбработка) сп=новый СписокЗначений; Сп.Добавить(1,"Адын"); Сп.Добавить(2,"Адын и адын"); Сп.Добавить(1,"Два адын и адын"); Элемент.СписокВыбора=Сп; КонецПроцедуры Процедура ТабличнаяЧасть1ПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки) Эл=сп.НайтиПоЗначению(ДанныеСтроки.Реквизит1); Если Эл<>Неопределено Тогда ОформлениеСтроки.Ячейки.Реквизит1.Текст=Эл.Представление; КонецЕсли; КонецПроцедуры сп=новый СписокЗначений; |
|||
7
Minilaus
19.05.11
✎
11:34
|
Ага, спасибо конечно за этот прекрасный и универсальный код. Надо его кстати взять на вооружение для версии 8.1. Но ты видимо не увидел, что мне это нужно провернуть все для 8.2 :) А там у табличных полей нет события ПриВыводеСтроки
|
|||
8
Рэйв
19.05.11
✎
11:35
|
(7)Я в 82 и делал. :-)
у тебя управляемое чтоли? |
|||
9
Minilaus
19.05.11
✎
11:35
|
Кстати у тебя здесь вот это не будет работать
Процедура ТабличнаяЧасть1ПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки) Эл=сп.НайтиПоЗначению(ДанныеСтроки.Реквизит1); Если Эл<>Неопределено Тогда ОформлениеСтроки.Ячейки.Реквизит1.Текст=Эл.Представление; КонецЕсли; КонецПроцедуры Нужно либо Процедура ТабличнаяЧасть1ПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки) Эл=сп.НайтиПоЗначению(ДанныеСтроки.Реквизит1); Если Эл<>Неопределено Тогда ОформлениеСтроки.Ячейки.Реквизит1.Текст=Эл.Представление; ОформлениеСтроки.Ячейки.Реквизит1.ОтображатьТекст = Истина; КонецЕсли; КонецПроцедуры либо Процедура ТабличнаяЧасть1ПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки) Эл=сп.НайтиПоЗначению(ДанныеСтроки.Реквизит1); Если Эл<>Неопределено Тогда ОформлениеСтроки.Ячейки.Реквизит1.УстанвоитьТекст(Эл.Представление); КонецЕсли; КонецПроцедуры |
|||
10
Minilaus
19.05.11
✎
11:36
|
Да, нужно чисто для управляемых форм, веб клиент нужен, мать его :)
|
|||
11
Рэйв
19.05.11
✎
11:37
|
(9)В неуправляемом все работает:)
(10)Тогда мои соболезнования:) |
|||
12
Minilaus
19.05.11
✎
11:38
|
Да, спасиб, за выделенное время :)
В обычных формах то да - проблем нету |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |