множественный выбор из Справочника обычная форма
Здравствуйте!
есть на форме поле ввода Специфика с типом СправочникСсылка.Спец2
надо, чтобы при выборе нескольких значений из этого справочника, они записывались в этом поле ввода через знак препинания
делаю у поля ввода Специфика
далет выбрать несколько значений, НО -- ничего не записывается в поле ввода..
далее дописала:
но процедура ПолеВводаСпецификаОткрытие вообще не выполняется! что же не так делаю??
или ЕСЛИ делаю через Процедура ОбработкаВыбора(ЗначениеВыбора, ФормаПодбора) не работает все равно!
Пожалуйста помогите!!!
есть на форме поле ввода Специфика с типом СправочникСсылка.Спец2
надо, чтобы при выборе нескольких значений из этого справочника, они записывались в этом поле ввода через знак препинания
делаю у поля ввода Специфика
Процедура ПолеВводаСпецификаНачалоВыбора(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ФормаПодбора = Справочники.КВ_Спец2.ПолучитьФормуВыбора();
ФормаПодбора.РежимВыбора = Истина;
ФормаПодбора.ЗакрыватьПриВыборе = Истина;
ФормаПодбора.МножественныйВыбор = Истина;
ФормаПодбора.Открыть();
КонецПроцедуры
далет выбрать несколько значений, НО -- ничего не записывается в поле ввода..
далее дописала:
Процедура ПолеВводаСпецификаОткрытие(ЗначениеВыбора, СтандартнаяОбработка)
МассивВыбранныхЭлементов = Новый Массив;
Если ТипЗнч(ЗначениеВыбора) = Тип("СправочникСсылка.Спец2") Тогда
МассивВыбранныхЭлементов.Добавить(ЗначениеВыбора);
ОповеститьОВыборе(ЗначениеВыбора);
ИначеЕсли ТипЗнч(ЗначениеВыбора) = Тип("Массив") Тогда
МассивВыбранныхЭлементов = ЗначениеВыбора;
сообщить(2);
Иначе
сообщить(3);
КонецЕсли;
текст = "";
Для каждого Элемент Из МассивВыбранныхЭлементов Цикл
сообщить(элемент);
текст = текст + "-" + элемент;
КонецЦикла;
КонецПроцедуры
Показатьно процедура ПолеВводаСпецификаОткрытие вообще не выполняется! что же не так делаю??
или ЕСЛИ делаю через Процедура ОбработкаВыбора(ЗначениеВыбора, ФормаПодбора) не работает все равно!
Пожалуйста помогите!!!
По теме из базы знаний
- Подключаемые печатные формы с .DOCX макетом без Word'а
- Глобальное меню разработчика для управляемых форм
- Управление доступом к формам и элементам форм «УФОРМ-ЮГ» (БП, БП-КОРП, ЕРП, УНФ, УТ, КА, УХ) [Расширение]
- Множественные дополнительные реквизиты в УТ 11.5 (11.4)
- Расширяемый редактор форматированного текста для 1С (WYSIWYG)
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)
Во-первых, куда она будет возвращать выбранные значения?
Во-вторых, мой совет, сделать тип элемента на форме СписокЗначений, тип значения списка поставить нужный справочник, и не надо изобретать велосипед, останется лишь задача с сохранением этого реквизита в БД, если у него заранее другой тип.
ФормаПодбора.Открыть();
Во-первых, куда она будет возвращать выбранные значения?
Во-вторых, мой совет, сделать тип элемента на форме СписокЗначений, тип значения списка поставить нужный справочник, и не надо изобретать велосипед, останется лишь задача с сохранением этого реквизита в БД, если у него заранее другой тип.
(10) ну подскажите еще:
делаю так:
правильно выдает результат (сообщить(текст1);), НО А ЧТО НАДО СДЕЛАТЬ чтобы записывалосьт потом этот текст в это поле ввода???
делаю так:
Процедура ПолеВводаСпецификаНачалоВыбора(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ФормаПодбора = Справочники.КВ_СпецификаДляСИЗ.ПолучитьФормуВыбора();
ФормаПодбора.РежимВыбора = Истина;
ФормаПодбора.ЗакрыватьПриВыборе = Истина;
ФормаПодбора.МножественныйВыбор = Истина;
ФормаПодбора.ВладелецФормы = Элемент;
ФормаПодбора.Открыть();
КонецПроцедуры
Процедура ПолеВводаСпецификаОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
МассивВыбранныхЭлементов = Новый Массив;
Если ТипЗнч(ВыбранноеЗначение) = Тип("СправочникСсылка.Спец2") Тогда
МассивВыбранныхЭлементов.Добавить(ВыбранноеЗначение);
ОповеститьОВыборе(ВыбранноеЗначение);
ИначеЕсли ТипЗнч(ВыбранноеЗначение) = Тип("Массив") Тогда
МассивВыбранныхЭлементов = ВыбранноеЗначение;
КонецЕсли;
текст = "";
Для каждого Элемент Из МассивВыбранныхЭлементов Цикл
текст = текст + "," + элемент;
КонецЦикла;
текст1 = Сред(текст, 2, СтрДлина(текст));
сообщить(текст1);
КонецПроцедуры
Показатьправильно выдает результат (сообщить(текст1);), НО А ЧТО НАДО СДЕЛАТЬ чтобы записывалосьт потом этот текст в это поле ввода???
(15) да наверное текстом.. мне потом надо будет в зависимости от наименования и от специфики этого наименования данного справочника отчет делать и регистр накопления. если я поменяю тип значения на список значений, то потом не смогу вытащить данные запросом из отчета (отчет: в зависимости от наименования средства защиты(халат,сапоги,рукавицы) чтобы формировалась специфика по росту и размерам)
т.е. мне реквизит Специфика нужен в справочнике далее..
т.е. мне реквизит Специфика нужен в справочнике далее..
(22)если указать составной тип, то надо выбирать из двух и более объектов конфы к примеру или типов (это мне не надо!)..
если список значений, то я потом не смогу использовать данные этого поля ввода в регистрах (на сколько я знаю)..
мне надо чтобы в одном справочнике в поле ввода выбиралИСЬ несколько значений из др справочника и записывались через запятую (через знак препинания) в это самое поле ввода.
я пока работы множественного выбора не нахожу.. то есть через контрол могу выбрать несколько значений, но они не записываются в это самое поле ввода!!!!!!! в чем тогда суть, господа?? просто уже оочень интересно!
если список значений, то я потом не смогу использовать данные этого поля ввода в регистрах (на сколько я знаю)..
мне надо чтобы в одном справочнике в поле ввода выбиралИСЬ несколько значений из др справочника и записывались через запятую (через знак препинания) в это самое поле ввода.
я пока работы множественного выбора не нахожу.. то есть через контрол могу выбрать несколько значений, но они не записываются в это самое поле ввода!!!!!!! в чем тогда суть, господа?? просто уже оочень интересно!
(23)
В коллекцию запишется множество значений, а в один элемент - только один элемент. Все логично. А множественный выбор - свойство необходимое для того, чтобы форма выбора не закрывалась, после первого выбора.
я пока работы множественного выбора не нахожу.. то есть через контрол могу выбрать несколько значений, но они не записываются в это самое поле ввода!
В коллекцию запишется множество значений, а в один элемент - только один элемент. Все логично. А множественный выбор - свойство необходимое для того, чтобы форма выбора не закрывалась, после первого выбора.
если указать составной тип, то надо выбирать из двух и более объектов конфы к примеру или типов (это мне не надо!)
Все эти моменты можно обыграть через код, указывая ограничение типа и т.д. перед открытием формы например (или в дальнейшем), можно добавить еще одно поле рядом для выбора элемента или списка (ПолеВидаСравнения)
если список значений, то я потом не смогу использовать данные этого поля ввода в регистрах (на сколько я знаю)
сможете
(27) Можете и к реквизиту обращаться или сразу при выборе производить необходимые действия.
Формы обычные или управляемые ? На обычных можно было бы сделать как
Формы обычные или управляемые ? На обычных можно было бы сделать как
Результат = Форма.ОткрытьМодально();
Если Результат <> Неопределено Тогда
//тут делаете что угодно со списком выбора
КонецЕсли;
(28)форма обычная тут.
мне не критично модально или нет открывать.
"//тут делаете что угодно со списком выбора" --- вот тут то что писать?
т.е. я правильно поняла, как сказал Dream_kz, нельзя записать в эту ячейку (поля ввода) несколько значений??????????
Ну не будет оно записываться! -- Так?????
мне не критично модально или нет открывать.
"//тут делаете что угодно со списком выбора" --- вот тут то что писать?
т.е. я правильно поняла, как сказал Dream_kz, нельзя записать в эту ячейку (поля ввода) несколько значений??????????
Ну не будет оно записываться! -- Так?????
(29) Если не менять свойства реквизита то он так и будет хранить одно значение. Не понятно надо ли хранить список или можно его использовать сразу для каких-то действий (записи в регистр и т.д.). Табличную часть вроде предлагали уже.
Если критично что бы на форме было поле именно с текстом вида "Номенклатура1, Номенклатура2, Номенклатура3" можно добавить новое поле с типом строка и играться с записью значения в него либо с видимостью одного поля поверх второго. Или же как написал выше - сделать как в старых отчетах одно поле с типом СистемноеПеречисление.ВидСравнения, а второе с составным типом, Номенклатура + Список Значений.
Если критично что бы на форме было поле именно с текстом вида "Номенклатура1, Номенклатура2, Номенклатура3" можно добавить новое поле с типом строка и играться с записью значения в него либо с видимостью одного поля поверх второго. Или же как написал выше - сделать как в старых отчетах одно поле с типом СистемноеПеречисление.ВидСравнения, а второе с составным типом, Номенклатура + Список Значений.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот