Имя: Пароль:
1C
1С v8
Как в цикле обратиться к области макета с номером?
0 Cray12
 
12.04.13
16:10
Всем доброго дня.

Опишу ситуацию: есть макет, в нем есть 5 вертикальных областей. В коде получаю, соответственно, те же 5 - на пересечении каждой из описанных с горизантальной областью - "строкой".

И вот в чем проблема - надо в цикле "Для...По" обратиться к некоторым областям.

Например, я пишу:

ОбластьСтрокаТипЦен1         = Макет.ПолучитьОбласть("Строка|СтолбецЦен1");
   ОбластьСтрокаТипЦен2         = Макет.ПолучитьОбласть("Строка|СтолбецЦен2");
   ОбластьСтрокаТипЦен3         = Макет.ПолучитьОбласть("Строка|СтолбецЦен3");
   ОбластьСтрокаТипЦен4         = Макет.ПолучитьОбласть("Строка|СтолбецЦен4");
   ОбластьСтрокаТипЦен5         = Макет.ПолучитьОбласть("Строка|СтолбецЦен5");

Затем запускаю цикл, например:

Для Инд = 0 По СоответствиеТиповЦен.Количество() - 1 Цикл
   ОбластьСтрока[Инд].Параметры.Цена = Цена;
КонецЦикла;

В этом примере неправильно написано обращение к области и вот вопрос: как в этом случае обратиться к ней правильно? Это вообще возможно?
1 Maxus43
 
12.04.13
16:11
ОбластьСтрокаТипЦен[Инд]
2 Cray12
 
12.04.13
16:15
(1) А, ну да, здесь я ошибся. Да, пытался именно так иии....не сработало. Пишет, что не определена переменная ОбластьСтрокаТипЦен.
3 and2
 
12.04.13
16:18
сформируй из них массив или структуру - и перебирай
4 Cray12
 
12.04.13
16:19
(3) Массив из областей?
5 НЕА123
 
12.04.13
16:19
ОбластьСтрокаТипЦен = Массив;
ОбластьСтрокаТипЦен.Добавить(Макет.ПолучитьОбласть("Строка|СтолбецЦен1");
ОбластьСтрокаТипЦен.Добавить(Макет.ПолучитьОбласть("Строка|СтолбецЦен2");
6 yanejsh
 
12.04.13
16:19
Для Инд = 0 По СоответствиеТиповЦен.Количество() - 1 Цикл
  НужнаяОбласть = Макет.ПолучитьОбласть("Строка|СтолбецЦен"+Строка(Инд)+);

   НужнаяОбласть.Параметры.Цена = Цена;
КонецЦикла;
7 НЕА123
 
12.04.13
16:20
(5)+
массив тоже в цикле можно, если как (0).
8 Cray12
 
12.04.13
16:21
(6) Да, так делал. Возникли проблемы, их действительно будет долго описывать, суть в том, что все уткнулось в необходимость именно обращения в цикле.
9 Maxus43
 
12.04.13
16:24
ИмяОбласти = "ОбластьСтрокаТипЦен" + Строка(Инд);
Область = Выполнить(ИмяОбласти);
10 Cray12
 
12.04.13
16:26
(5) Да, это сработало!
Огромное спасибо!

(9) Извини, бро, до этого не дошел.

Всем спасибо за помощь :)