Группа: Пользователи
Сообщений: 20
Спасибо сказали: 0 раз
Рейтинг: 0
Здравствуйте. ТиС 032. платформа 7.7 027 Есть необходимость создать на форме реквизит документа тип Строка, который будет связан с выпадающим списком, из которого можно выбрать одно значение из многих для этого реквизита, с последующим сохранением этого значения. И при открытии сохраненного документа этот реквизит отображал сохраненное значение. Как можно правильно такое реализовать?
Группа: Пользователи
Сообщений: 20
Спасибо сказали: 0 раз
Рейтинг: 0
Prospero @ Сегодня, 14:49
, Перечисления не подойдут, т.к таких реквизитов в форме будет до 50 штук. А видов документов, в которых такое надо применить будет не один десяток.
Группа: Пользователи
Сообщений: 20
Спасибо сказали: 0 раз
Рейтинг: 0
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 параметр убрал, лень выписывать его )) Получайте значение и делайте с ним что хотите...
Извиняюсь,вот чуть подправленный... Изменения:
Процедура ПриНачалеВыбораЗначения()
на
Процедура ПриНачалеВыбораЗначения(Рекв)
ТипДок = Зн;
на
УстановитьАтрибут(Рекв,Зн)
Должно для каждого реквизита выбирать свое значение. Рекв - Идентификатор Вашего реквизита, таким образом можно на все поля навесить обработку и каждому присвоить разные значения из списка.
Тыц.тыц.тыц... Недопонял вначале У Вас жменька разнотиповых реквизитов, и для них Вы хотите эту менюшку прикрутить?
Группа: Пользователи
Сообщений: 20
Спасибо сказали: 0 раз
Рейтинг: 0
хотя если реквизит тип Число с дробной частью, тогда число из списка выбирается только его целая часть. А надо, чтобы было полностью и целая м дробная части. Не знаю как это победить не переводя сам реквизит в тип Строка ((
Группа: Пользователи
Сообщений: 20
Спасибо сказали: 0 раз
Рейтинг: 0
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С форуме!