|
v7: На форме элементы с именами Флаг1, Флаг2, Флаг3 как в цикле с ними работать | ☑ | ||
---|---|---|---|---|
0
valdi77
26.07.12
✎
12:05
|
Добрый день.
Подскажите пожалуйста, видел пример кода а сейчас не могу найти и сообразить. Делаю отчет, на форме размещено много флажков, для выбора доп полей. Хочу обрабатывать эти значения в цикле, Для чего все флажки назвал флаг1, флаг2, итд Написал код Для Шаг=1 По 9 Цикл Если Форма.["Флаг"+Шаг] = 1 Тогда Таб.ВывестиСекцию("ТекущийДокумент|Флаг"+Шаг); КонецЕсли; КонецЦикла; Программа выдает ошибку Ожидался идентификатор Форма. ошибка ["Флаг"+Шаг] Пробовал и Метаданные.["Флаг"+Шаг] и просто ["Флаг"+Шаг] подскажите правильный синтаксис плиз |
|||
1
Rie
26.07.12
✎
12:06
|
(0) Шаблон("[Флаг"+Шаг+"]")
|
|||
2
1Сергей
26.07.12
✎
12:07
|
(1)+возвращает строку
|
|||
3
povar
26.07.12
✎
12:08
|
(1) неа
|
|||
4
Ork
26.07.12
✎
12:08
|
Для поз = 1 По НемеряноРеквизитовФлаг Цикл
Сообщить(Форма.ПолучитьАтрибут("Флаг"+поз)); КонецЦикла; |
|||
5
Ork
26.07.12
✎
12:08
|
+(4) Аналогично есть ПолучитьАтрибут().
|
|||
6
Ork
26.07.12
✎
12:10
|
Сорри. Установить
|
|||
7
Rie
26.07.12
✎
12:11
|
(2) И что страшного? Это ж флажок.
|
|||
8
Rie
26.07.12
✎
12:11
|
(4) Вернёт не значение элемента управления, а сам элемент управления.
|
|||
9
Pro-tone
модератор
26.07.12
✎
12:13
|
(4) а что будет если к строке число прибавить? Не будет ругаться хочешь сказать?
|
|||
10
Rie
26.07.12
✎
12:14
|
(9) Нет, не будет. Доблестно прибавит.
|
|||
11
Pro-tone
26.07.12
✎
12:15
|
(10)ну вообще-то должен =) разные ж типы
|
|||
12
valdi77
26.07.12
✎
12:15
|
Форма.ПолучитьАтрибут("Флаг"+поз)
Неа пишет неверное имя атрибута |
|||
13
Ork
26.07.12
✎
12:16
|
(8) Точно. Таки рабочий код - в (1).
|
|||
14
1Сергей
26.07.12
✎
12:18
|
(7) ничего страшного, просто предупреждаю 1С, а то у него сравнение с числом в тексте
|
|||
15
1Сергей
26.07.12
✎
12:18
|
*ТС
|
|||
16
Tatitutu
26.07.12
✎
12:19
|
(12) Потому что нет такого реквизита на форме
чему в данном случае равно ПОЗ |
|||
17
valdi77
26.07.12
✎
16:08
|
Если вызывается в контексте формы отчета
тогда не удается получить значение элемента Пример: такой код работает а прочитать какое значение (т-ть выбран или нет флажок не могу) Причем в справке написано что Форма.ПолучитьАтрибут(Возращает ссылку на элемент но когда я пишу ТекЭлемент = Форма.ПолучитьАтрибут(Элемент); ТекЭлемент -неизвестный объект а такие примеры работают Форма.ПолучитьАтрибут(Субконто).Видимость(0); Форма.ПолучитьАтрибут(тСубконто).Заголовок("Нет"); Форма.ПолучитьАтрибут(тСубконто).Видимость(1); Форма.ПолучитьАтрибут(АвтоСубконто).Доступность(0); Форма.ПолучитьАтрибут(Параметр).Доступность(0); возвращает ссылку на элемент, т-ть позволяет мне сделать его видимым, в виде |
|||
18
Rie
26.07.12
✎
19:41
|
(17) Форма.ПолучитьАтрибут(...) возвращает _элемент управления_ (объект), а не его значение.
Чтобы получить значение - варианты: а) используй Шаблон (см. (1)); б) используй внешнюю компоненту FormEx. |
|||
19
valdi77
27.07.12
✎
10:48
|
Я дико извиняюсь.
Обычно так не туплю, и понимаю подсказки со второго, ну точно с третьего раза. Сейчас же не пойму наверно жара или уже возраст, ведь вчера был очередной ДР. Уважаемый Rie вариант с FormEx понятен вариант с Шаблоном нет ведь шаблон возвращает строку т-ть Пример Шаг=1; Шаблон("Флаг[Шаг1]") = "Флаг1" строка "Флаг1" как мне её проверить на значение элемента формы типа флаг с идентификатором Флаг1 |
|||
20
Ork
27.07.12
✎
10:52
|
(19) Правильно расставь квадратные скобки.
Шаблон("[Флаг"+Шаг+"]") |
|||
21
valdi77
27.07.12
✎
11:13
|
Всем спасибо.
Особенно: Ork Rie То что нужно Шаблон("[Флаг"+Шаг+"]") |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |