Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
24 окт 2021, 16:33

множественный выбор из Справочника обычная форма

Автор katod, 18 июл 2017, 08:18

0 Пользователей и 1 гость просматривают эту тему.

katod

Здравствуйте!
есть на форме поле ввода Специфика с типом СправочникСсылка.Спец2
надо, чтобы при выборе нескольких значений из этого справочника, они записывались в этом поле ввода через знак препинания
делаю так:

Процедура ПолеВводаСпецификаНачалоВыбора(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ФормаПодбора  = Справочники.Спец2.ПолучитьФормуВыбора();
ФормаПодбора.РежимВыбора = Истина;
ФормаПодбора.ЗакрыватьПриВыборе = Истина;
ФормаПодбора.МножественныйВыбор = Истина;
ФормаПодбора.ВладелецФормы = Элемент;
ФормаПодбора.Открыть();
КонецПроцедуры

Процедура ПолеВводаСпецификаОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
МассивВыбранныхЭлементов = Новый Массив;
Если ТипЗнч(ВыбранноеЗначение) = Тип("СправочникСсылка.Спец2") Тогда
МассивВыбранныхЭлементов.Добавить(ВыбранноеЗначение);
ОповеститьОВыборе(ВыбранноеЗначение);
ИначеЕсли ТипЗнч(ВыбранноеЗначение) = Тип("Массив") Тогда
МассивВыбранныхЭлементов = ВыбранноеЗначение;
КонецЕсли;

текст = "";
Для каждого Элемент Из МассивВыбранныхЭлементов Цикл
текст = текст + "," + элемент;
КонецЦикла;
текст1 = Сред(текст, 2, СтрДлина(текст));
сообщить(текст1);
КонецПроцедуры

теперь через контрол могу выбрать несколько значений, но они не записываются в это самое поле ввода!
может не так что-то делаю? помогите разобраться.
мне надо чтобы в одном справочнике в поле ввода выбиралИСЬ несколько значений из др справочника и записывались через запятую (через знак препинания) в это самое поле ввода.
вариант для поля ввода Список Значений не предлагать!) - т.к. мне надо чтобы оно было из реквизита. т.е. я потом в регистре накопления буду учитывать данные из этого поля

katod


Golickoff

А если тип значения реквизита данных поля ввода поменять на СписокЗначений, а тип списка на СправочникСсылка.Спец2?
Правило поведения на форуме №6: Не следует пытаться привлечь внимание к своему сообщению ... рассылкой персональных сообщений и/или электронных писем отдельным участникам форума с просьбой ответить в теме.

LexaK

вообще есть вариант, не уверен все ли поймут его

1.делаем реквизит (ЭлементыСпец2)в котором планируется хранить список каких-то элементов, тип реквизита Строка длина=0 (неогр) возможны варианты,
2.получаем массив каких-то значений, ссылок, перечислений и т.д.
3.превращаем его в строку и присваиваем реквизиту: ЭлементыСпец2 = ЗначениеВСтрокуВнутр(МассивВыбранныхЭлементов);
4.при любом обращении, их этого реквизита легко получаем обратно массив: МассивЭлементов = ЗначениеИзСтрокиВнутр(ЭлементыСпец2);
ответ Понравился? (в смысле пригодился?)

Похожие темы (5)

Рейтинг@Mail.ru Rambler's Top100

Поиск