Имя: Пароль:
1C
1C 7.7
v7: Вопрос от новичка по оптимизации кода
0 s-pc
 
19.08.11
12:13
Допустим у меня некая тестовая форма - в которой штук 10 кнопок - к01, к02,к03, ...... к09, к10
и вот такой г-но-Код

Перем а;
Перем б;

Процедура БалуемсяПеременными()

КонецПроцедуры

Процедура ПереименуемКнопки()
    БалуемсяПеременными();
Если а>б Тогда
    Форма.к01.Заголовок("к01");
    Форма.к02.Заголовок("к02");
    Форма.к03.Заголовок("к03");
    .......................
    Форма.к09.Заголовок("к09");
    Форма.к10.Заголовок("к10");
Иначе
    Форма.к01.Заголовок("- к01");
    Форма.к02.Заголовок("- к02");
    Форма.к03.Заголовок("- к03");
    .......................
    Форма.к09.Заголовок("- к09");
    Форма.к10.Заголовок("- к10");
КонецЕсли;
КонецПроцедуры


Что и как нужно (можно) сделать, чтобы в процедуре ПереименуемКнопки() было меньше строк? А то вдруг там будет не 10, а скажем, 100 кнопок (или строк, или полей, или еще чего - не важно). Мне важно принцип понять - уловить... Можете показать продемонстрировать этот принцип (оптимизации) вот на примере этого конкретного кода?
1 Cthulhu
 
19.08.11
12:14
не надо.
2 zak555
 
19.08.11
12:14
скрин формы
3 АЛьФ
 
19.08.11
12:16
Перем а;
Перем б;

Процедура БалуемсяПеременными()

КонецПроцедуры

Процедура ПереименуемКнопки()
    БалуемсяПеременными();
 Для инд = 1 По 10 Цикл
   имя = Формат(инд, "Ч(0)2");
   атр = Форма.ПолучитьАтрибут("к" + имя);
   Если а>б Тогда
     атр.Заголовок(имя);
   Иначе
     атр.Заголовок("- " + имя);
   КонецЕсли;
 КонецЦикла;
КонецПроцедуры
4 Ёпрст
 
гуру
19.08.11
12:17
(0)
Для к = 1 По 100 Цикл
  Форма.ПолучитьАтрибут("к"+к).Заголовок(?(a>b,"","-")+"к"+к);
КонецЦикла;
5 Ёпрст
 
гуру
19.08.11
12:18
+4 ну, можешь еще и формат влепить, как у АЛьФ - а
6 cViper
 
19.08.11
12:19
переменная "префикс", которая устанавливается в зависимости от условия. Этот префикс прибавляем к заголовку.
7 s-pc
 
19.08.11
12:32
БЛАГОДАРЮ за ответы! Всем спасибо.