Как передать значение в форму 1С?
У меня есть массив ролей. Я хочу сделать так, чтобы открылась форма создания профиля группы доступа и в ней были выбраны роли из массива (чтобы стояли галочки).
Форму можно открыть и передать в нее массив так:
ПараметрыФормы = Новый Структура("КоллекцияРолей", МассивРолей);
ОткрытьФорму("Справочник.ПрофилиГруппДоступа.Форма.ФормаЭлемента", ПараметрыФормы);
Но есть два вопроса. В какой именно реквизит нужно передать роли? В КоллекцияРолей?
Если я правильно понял, что в коллекцию ролей, то как тогда преобразовать массив в таблицу значений. Так как КоллекцияРолей - это таблица значений.
Написал такой код, но вылетает ошибка и пишет, что итератор не определен.
Функция ПреобразоватьМассивВТаблицуЗначений(мсДанные) Экспорт
тзДанные = Новый ТаблицаЗначений;
Для Каждого ЭлементМассива Из мсДанные Цикл
// Рисуем колонки для таблицы
Если тзДанные.Колонки.Количество() = 0 Тогда
Для Каждого ЗначениеСтруктуры Из ЭлементМассива Цикл
тзДанные.Колонки.Добавить(ЗначениеСтруктуры.Ключ);
КонецЦикла;
КонецЕсли;
// Добавляем данные в таблицу
НоваяСтрока = тзДанные.Добавить();
Для Каждого ЗначениеСтруктуры Из ЭлементМассива Цикл
НоваяСтрока[ЗначениеСтруктуры.Ключ] = ЗначениеСтруктуры.Значение;
КонецЦикла;
КонецЦикла;
Возврат тзДанные;
КонецФункции
Ответы (1 шт):
Автор решения: santavital
→ Ссылка
Эта задача решается в два этапа:
- Передать параметры в форму - с этой частью Вы справились
- Обработать параметры внутри формы ! Для этого открываем модуль Формы ищем процедуру ПриСозданииНаСервере; Если конфигурация недоступна для редактирования, добавляем свой код в Расширение;
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Параметры.Свойство("КоллекцияРолей") Тогда
// Добавляем в ТЗ формы данные из переденного параметра
КонецЕсли;
КонецПроцедуры