Представление значения в поле ввода, заполняемом из списка значений #246215


#0 by lieut
1Сv8 Имеется поле ввода на форме, значение в котором выбирается из списка значений. Список значений формируется примерно так: ... Тип значения поля ввода - число. Можно ли сделать так, чтобы при выборе значения из списка выбора в поле отображалось не число, а его представление из списка выбора?
#1 by ТелепатБот
#2 by Рэйв
Не вижу в чем проблема. Формируешь список как надо,потом -- ЭлементыФормы.ТвойРеквизит.СписокВыбора=СписокИсточник; Все будет так как хочется в сабже
#3 by lieut
Нет, будет не так! Пока я выбираю из списка - в списке стоят представления ("один","два"...) Как только я значение выбрал - в поле ввода стоит числовое значение 1,2,... А хочется, чтобы стояло строковое представление, но при этом чтобы при программном обращении к значению поля выдавалось число.
#4 by Рэйв
Ну ты и захотел!:-) "Тип значения поля ввода - число." Интересно  как ты в число запихнешь строку? 1С конечно  не так типизтрована как Сишка , но это уже беспредел:)
#5 by Рэйв
+типизтрована =типизирована
#6 by Рэйв
Выход только сделать сам реквизит списком значений. Тогда видно будет представления, а по значению будешь получать число
#7 by Рэйв
+Или если ты любетель гемороя, то сделай реквизи строкой, а его значение либо загони в соответсвие либо через если.
#8 by lieut
Если рассуждать логически... При выборе из списка мы видим что? - строковые представления списка числовых значений. В процессе выбора значения пользователь не видит "реальные" значения, а видит только понятные ему представления. Но выбираем мы тем не менее из списка именно числовое значение. Вопрос: почему бы не показать в поле ввода опять же не само числовое значение, а взять из списка его представление? Ведь предполагается, что диапазон возможных значений поля ограничен элементами списка значений, т.е. у каждого элемента есть соответствующее представление, которое мы явно указали при создании списка. Прошу извинить за корявость изложения, просто башка уже болит от этого :) неужели только через ... Хочется-то сохранить тип числовой, чтобы не использовать лишний поиск по строке
#9 by Рэйв
Ты путаешь объект и его представление. вот тебе пример. Есть Объект-документ. У документа есть его текстовое представление. Тебе же не придет в голову работать с представлением как с объектом-документом? Как ты себе видишь например получить ссылку через представление?:) Также и напрямую присваивать переменной, содержащей объект-документ глупо, потому что переменная тут же потеряет свой тип(как объект) и преобретет новый(как строка). Но то что прокатывает с переменными в 1с , не прокатит с реквизитом.У него может быть составной тип но если это просто число, то хранить одновресенно и число и строку он не может
#10 by lieut
Как говорится, произошла типичная подена понятий... :) > Как ты себе видишь например получить ссылку через представление?:) В том-то и дело, что мне нужно наоборот. Если у нас реквизит типа "ссылка на документ", то при выборе значения мы видим представление этого документа. Хочется получить тот же эффект, когда значения реквизита выбираются из списка значений, т.е. выбрали значение, а увидели его представление.
#11 by lieut
+ подена = подмена
#12 by Рэйв
Повторяю для тех кто в танке:) Ты не сможешь в числе хранить строку.Прими это как аксиому и не парься.
#13 by Рэйв
+Хотя если быть педантичным, то можешь хранить символ:)..Вернее его код
#14 by lieut
От тех, кто в танке тем, кто снаружи: я не пытаюсь хранить строку в числовом реквизите. Я хочу, чтобы пользователь видел строку, соответствующую числу. В реквизите типа "ссылка" мы ведь не храним строку :) мы храним ссылку, но видим при этом на форме строку, являющуюся представлением этой ссылки
#15 by lieut
В общем, не поняли мы друг друга... :(
#16 by TormozIT
Сделай у поля ввода тип Произвольный.
#17 by lieut
Произвольный - это как? Это составной, который содержит все возможные? Или это никакой? На никакой ругается - говорит тип должен быть установлен
#18 by TormozIT
У реквизита формы можно установить тип Произвольный.
#19 by lieut
Спасибо! Так действительно работает. А теперь вопрос сложнее: А если рассматриваемое поле ввода - это элемент управления в ячейке таблицы значений? Тогда как?
#20 by Рэйв
Но ОНОВРЕМЕННО хранить и число и строку ты внем все равно не сможешь. ИЛИ число, ИЛИ строку
#21 by Рэйв
Нука-нука поподробнее с этого метса?:)
#22 by lieut
Так я и хочу хранить только число! А показывать пользователю строку Об этом и речь!
#23 by Рэйв
места
#24 by lieut
если завести на форме реквизит произвольного типа и поставить его как данные для поля ввода, значения которого выбираются из моего списка, то желаемый эффект достигается. Т.е. пользователь при выборе видит строковое представление значения, но при этом если вызвать функцию Сообщить(ИмяРеквизита), то увидим число. Т.о. в реквизите сохранилось число, но пользователь види его представление из списка значений.
#25 by lieut
+ види = видит
#26 by Рэйв
Вывернулся:) Но все равно при заявленных в сабже условиях (тип-число) задача нереализуема:)
#27 by lieut
Кстати остался открытым вопрос, как добиться такого же эффекта для ячейки таблицы значений
#28 by Рэйв
А ты сделай не Таблицу значений, а Табличную часть и с ее реквизитами, имхо, можно по тому же методу.
#29 by Рэйв
+Хотя я сам не пробовал список присобачить к табличной строке
#30 by lieut
попробовал - не получилось, т.к. у реквизита ТЧ нет типа "произвольный"
#31 by TormozIT
Не получится. Реквизиту табличной части нельзя назначить тип Произвольный.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С