0
Len1vec
04.03.23
✎
14:15
|
Добрый день!
Подскажите, пожалуйста, как правильно реализовать открытие формы в обычном приложении (толстый клиент).
Есть документ. В форме документа вызывается проверка. По результатам этой проверки, если найдены соответствующие записи в табличной части документа, то надо открыть произвольную форму, принадлежащую этому документа.
Функция Проверка()
МассивЗначений = ИмяТЧ.НайтиСтроки(Отбор);
Если МассивЗначений .Количество() > 0 Тогда
Форма = ПолучитьФорму("ПроизвольнаяФормаДокумента");
Форма.ПеременнаяФормыЭкспорт = МассивЗначений;
Форма.Открыть();
КонецЕсли;
КонецФункции
На произвольной форме документа создал табличное поле, у которого в поле "Данные" указал тип данных "РеквизитФормы". Код обработки формы перед открытием:
Перем ПеременнаяФормыЭкспорт Экспорт;
Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
РеквизитФормы = ПеременнаяФормыЭкспорт;
Для Каждого Стр Из ПеременнаяФормыЭкспорт Цикл
ЭлементыФормы.ИмяТабличногоПоля.ДобавитьСтроку();
//И тут я застопорился
КонецЦикла;
КонецПроцедуры
Как правильно во время выполнения процедуры "ПередОткрытием" произвольной формы документа заполнить табличное поле из массива значений, который был передан в переменную ПеременнаяФормыЭкспорт?
|
|
2
Lexandr
05.03.23
✎
06:59
|
Создаешь реквизит формы ИмяТабличногоПоля, присваиваешь тип ТаблицаЗначений. Создаешь на форме элемент табличноеполе с именем ИмяТабличногоПоля и в поле "данные" выбираешь ИмяТабличногоПоля.
Процедура ПриОткрытии()
ИмяТабличногоПоля.Колонки.Добавить("Номер");
Для Каждого Стр Из ПеременнаяФормыЭкспорт Цикл
Стр = ИмяТабличногоПоля.Добавить();
КонецЦикла;
ЭлементыФормы.ИмяТабличногоПоля.Значение = ИмяТабличногоПоля
ЭлементыФормы.ИмяТабличногоПоля.СоздатьКолонки();
КонецПроцедуры
|
|