Здравствуйте. ТиС 032. платформа 7.7 027 Есть необходимость создать на форме реквизит документа тип Строка, который будет связан с выпадающим списком, из которого можно выбрать одно значение из многих для этого реквизита, с последующим сохранением этого значения. И при открытии сохраненного документа этот реквизит отображал сохраненное значение. Как можно правильно такое реализовать?
Prospero @ Сегодня, 14:49
, Перечисления не подойдут, т.к таких реквизитов в форме будет до 50 штук. А видов документов, в которых такое надо применить будет не один десяток.
awp @ Сегодня, 15:09
, Можно принять как вариант. Есть у реквизита документа на вкладке Дополнительно такой параметр как "Имеет кнопку выбора". Для чего его можно использовать? Может на этой кнопке можно родить еще один вариант решения выбора из списка?
Почти ветеран
Группа: Местный
Сообщений: 522
Спасибо сказали: 70 раз
Рейтинг: 51.3
leonid_gun @ Сегодня, 15:24
,
Процедура ПриНачалеВыбораЗначения(<?>,) КонецПроцедуры Синтаксис: ПриНачалеВыбораЗначения(<ИдентЭлемДиалога>,<ФлагСтандОбр>) Назначение: Предопределенная процедура после выбора значения в форме выбора (выбор может быть инициирован в немодальном режиме интерактивно, при помощи элемента диалога с ''педалькой''). <ИдентЭлемДиалога> - идентификатор элемента диалога, которым инициализирован выбор значения. <ФлагСтандОбр> - флаг, изначально, при вызове процедуры равен 1, если в теле процедуры значение этого параметра поменять на 0, то стандартный процесс выбора значения не будет происходить. Замечание: Данная процедура может располагаться только в программном модуле формы.
Процедура ПриНачалеВыбораЗначения(Рекв,ФлагСтандОбр) Если Рекв = "ИмяВашегоРеквизита" Тогда Делаем тут что нужно КонецЕсли; КонецПроцедуры
А вот как быть если обрабатываем список для реквизита тип Число, еще и с дробной частью? ))
Цитата(leonid_gun @ 15.01.19, 23:41)
А вот как быть если обрабатываем список для реквизита тип Число, еще и с дробной частью? ))
при выборе "педальки" список выводится, но при выборе значения из списка, выпадает экранная цифровая калава, стандартная для цифрового поля ввода с кнопкой. Нужно менять тип на Строку? Но хотелось бы оставить ограничение по разрядности для проверки ввода от руки.
leonid_gun, Вы "от руки" вводите или выбираете из списка? На скорую руку, извините, если что:
// (с) awp :) Функция ТипДокИзм() Перем Зн; СпЗн = СоздатьОбъект("СписокЗначений"); СпЗн.ДобавитьЗначение("прозора"); СпЗн.ДобавитьЗначение("непрозора"); СпЗн.ДобавитьЗначение(0); СпЗн.ДобавитьЗначение(2); СпЗн.ДобавитьЗначение(1.1); СпЗн.ДобавитьЗначение(2.5); Рез = СпЗн.ВыбратьЗначение(Зн,,,,1); Если Рез = 1 Тогда Возврат Зн; КонецЕсли; КонецФункции
Процедура ПриНачалеВыбораЗначения() Сообщить("Перед появлением меню"); Зн = ТипДокИзм(); Сообщить("Зн="+Зн); Сообщить("Меняем Зн на Зн+Зн"); Если ТипЗначенияСтр(Зн)="Число" Тогда Зн = Число(Зн); КонецЕсли; Зн = Зн+Зн; Сообщить("А теперь Зн="+Зн); ТипДок = Зн; КонецПроцедуры
2 параметр убрал, лень выписывать его )) Получайте значение и делайте с ним что хотите...
Извиняюсь,вот чуть подправленный... Изменения:
Процедура ПриНачалеВыбораЗначения()
на
Процедура ПриНачалеВыбораЗначения(Рекв)
ТипДок = Зн;
на
УстановитьАтрибут(Рекв,Зн)
Должно для каждого реквизита выбирать свое значение. Рекв - Идентификатор Вашего реквизита, таким образом можно на все поля навесить обработку и каждому присвоить разные значения из списка.
Тыц.тыц.тыц... Недопонял вначале У Вас жменька разнотиповых реквизитов, и для них Вы хотите эту менюшку прикрутить?
хотя если реквизит тип Число с дробной частью, тогда число из списка выбирается только его целая часть. А надо, чтобы было полностью и целая м дробная части. Не знаю как это победить не переводя сам реквизит в тип Строка ((
Prospero @ Сегодня, 23:12
, Старнненько.У меня если оставить запятую вместо точки, то в числовое поле попадает только целая часть, дробную отсекает и оставляет просто нули и их количество соответствует заявленной точности поля. Но если точка, тогда все в порядке и работает четко. Но все равно благодарю за содействие и помощь.
leonid_gun @ Сегодня, 23:42
, Просто в меню высвечивается текстовое представление (2 параметр, а если он не указан, то равен значению (1 параметр)) У Вас в представлении запятые, а в значении точки. поэтому на картинке запятая в списке, а в поле точка Удачи.
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!