Имя: Пароль:
1C
1С v8
Прошу помощи в составлении цикла.
0 popoff17
 
25.10.11
06:23
Доброго времени суток, господа!

В обработке есть переменные:

Перем1, Перем2, Перем3, ..... Перем30;

В данный момент им присваевается значение так:

Перем1 = 1;
Перем2 = 2;
Перем3 = 3;
..........
Перем30 = 30;

Вопрос такой: как можно это присваивание проделать в цикле?
Просто там еще выполняется над ними много однотипных действий и код получается повторяющимся и очень нагроможденным, самому ориентироваться неудобно.

Просто хотелось бы получить что-то типа такого:

Пока N<30 Цикл
   ПеремN = N;
КонецЦикла;

Это я так наугад написал (не работает =)), в сети видел подобный пример, но вот что-то енайти не могу, а у самого не получается.

Заранее спасибо!
1 Гефест
 
25.10.11
06:25
Ну рассказывай, зачем тебе тридцать штук переменных
2 Kavar
 
25.10.11
06:26
(1)+1
Массивы придумали лохи?
3 popoff17
 
25.10.11
06:28
Ребят, я просто упростил. а так - правлю чужую обработку, где запрос из документа выводит данные, а поля в документе проименованы так, что на конце цифра.
4 popoff17
 
25.10.11
06:31
(1)(2)
По существу совет бы...
Так то оно понятно что было бы удобно все в массив засунуть и обрабатывать уже элемент массива, но сделано вот так уж
5 ZanderZ
 
25.10.11
06:32
(0) документ["имяполя"+номерполя]
6 Wobland
 
25.10.11
06:34
(4) ну, раз сделано, тогда: Выполнить("Перем"+й+"="й);
7 popoff17
 
25.10.11
06:48
(5)
n = 1;
Пока n < 30 Цикл

ВыборкаПоСотр.ПервыйЧасов[n] = n;

КонецЦикла;

не прошло =(
8 Wobland
 
25.10.11
06:49
(7) ВыборкаПоСотр.["ПервыйЧасов"+n] = n;
9 Гефест
 
25.10.11
06:49
(7) Внимательно читай (5)
10 Wobland
 
25.10.11
06:50
(7) 29 итераций будет. если н=н+1 сделаешь ;)
11 popoff17
 
25.10.11
07:04
Если (ВыборкаПоСотр.["ПервыйЧасов"+n] = n)

Вот именно так написал сейчас. Ошибки(цифрами ниже пометил):
Если (ВыборкаПоСотр.1[2"ПервыйЧасов"+n] = n)

1 - ожидается идентификатор
2 - ожидается символ ")"
12 Wobland
 
25.10.11
07:04
(11) точку убери
13 popoff17
 
25.10.11
07:20
Господа, всем премного благодарен!
Спасибо!
14 Ткачев
 
25.10.11
07:36
А разве так нельзя ?
Для n = 1 по 30 Цикл
   ВыборкаПоСотр.ПервыйЧасов[n] = n;
КонецЦикла;
15 Wobland
 
25.10.11
07:41
(14) не похоже.
Возможно обращение к полям выборки посредством оператора [...]. В качестве аргумента передается индекс (нумерация с 0) или имя поля выборки.
16 Ткачев
 
25.10.11
07:46
(15)Я в смысле цикла, сейчас видимо так.
n = 1;
Пока n < 30 Цикл

   ВыборкаПоСотр.ПервыйЧасов[n] = n;
   н=н+1;

КонецЦикла;
17 Wobland
 
25.10.11
07:49
(16) не понял меня. у автора имя поля "ПервыйЧасов1", "ПервыйЧасов2" и т.д. никакими индексами тут не пахнет, имя надо динамически генерить внутри []
18 Ткачев
 
25.10.11
07:54
(17)Я копипастю, а если так + цикл как Для n = 0 по 29 ?
ВыборкаПоСотр["ПервыйЧасов" + n] = n;
19 Wobland
 
25.10.11
07:55
(18) ну вот как-то так у него и взлетело
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший