Группа: Пользователи
Сообщений: 13
Спасибо сказали: 0 раз
Рейтинг: 0
Ув. коллеги,
у меня есть форма обработки. На ней в цикле создаются закладки. На всех этих закладках одинаковые элементы диалога. Мне нужо в цикле пробежаться по этим закладкам и прочитать или задать значение каждого из аналогичных элементов диалога. Закладок от 20 до 50. Если для каждого элемента писать:
то придется писать 50 строк. А если таких элементов на закладке несколько 3-5? А если закладок не 50 а 70-100?
ВОПРОС - как можно обратиться к свойству или методу элемента диалога не указывая имя этого элемента диалога явно, а задавать его имя в виде какой то переменной или как-то еще.
Группа: Основатель
Сообщений: 13981
Из: Киев
Спасибо сказали: 4549 раз
Рейтинг: 3678.1
ПолучитьАтрибут(<?>);
Синтаксис: Форма.ПолучитьАтрибут(ИмяРеквизита) Назначение: Возвращает ссылку на элемент формы. Параметры: ИмяРеквизита - строковое выражение, содержащее идентифика-тор элемента формы, как он задан в Конфигураторе. Замечание: Доступ к методу возможен только в контексте Модуля формы через атрибут Форма.
Группа: Пользователи
Сообщений: 13
Спасибо сказали: 0 раз
Рейтинг: 0
Цитата(Vofka @ 18.10.10, 9:25)
ПолучитьАтрибут(<?>);
Синтаксис: Форма.ПолучитьАтрибут(ИмяРеквизита) Назначение: Возвращает ссылку на элемент формы. Параметры: ИмяРеквизита - строковое выражение, содержащее идентифика-тор элемента формы, как он задан в Конфигураторе. Замечание: Доступ к методу возможен только в контексте Модуля формы через атрибут Форма.
Ув. VOFKA,
похоже что это сработает! Только не пойму как получив ссылку на данный элемент, изменить его параметры - Видимость, Доступность, Значение... Черкните пару строк примера.
Группа: Местный
Сообщений: 237
Спасибо сказали: 47 раз
Рейтинг: 42
ДокМД = Метаданные.Документ(ТекущийДокумент().Вид()); Для Ин = 2 По ДокМД.РеквизитТабличнойЧасти() Цикл ИдРекв = ДокМД.РеквизитТабличнойЧасти(Ин).Идентификатор; Форма.ПолучитьАтрибут(ИдРекв).Видимость(0); КонецЦикла;
Этот вариант работает точно. Обращаю внимание Форма.ПолучитьАтрибут(ИдРекв).Видимость(0);
Группа: Пользователи
Сообщений: 13
Спасибо сказали: 0 раз
Рейтинг: 0
Цитата(alex1c @ 18.10.10, 20:56)
ДокМД = Метаданные.Документ(ТекущийДокумент().Вид()); Для Ин = 2 По ДокМД.РеквизитТабличнойЧасти() Цикл ИдРекв = ДокМД.РеквизитТабличнойЧасти(Ин).Идентификатор; Форма.ПолучитьАтрибут(ИдРекв).Видимость(0); КонецЦикла;
Этот вариант работает точно. Обращаю внимание Форма.ПолучитьАтрибут(ИдРекв).Видимость(0);
Так я работаю с реквизитаим диалога на форме обоработки. Или я по молодости чего-то не понял?
Я вас уже наверное задолбал :-) Я работаю с реквизитом диалога, тип которого ПЕРЕЧИСЛЕНИЕ. И мне нужно получить .ПорядковыйНомер()
Строка НомерВариантаДляБронирВFS1.ПорядковыйНомер(); Дает нормальный результат
На строку Форма.ПолучитьАтрибут("НомерВариантаДляБронирВFS1").ПорядковыйНомер(); выдает ошибку: Поле агрегатного объекта не обнаружено (ПорядковыйНомер)
подозреваю что нужен какой-нибудь formex.dll "Методы для последовательного перебора и перебора по условию всех реквизитов формы " [необходимо зарегистрироваться для просмотра ссылки]
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!