Имя: Пароль:
1C
1С v8
Помогите оптимизировать кусок кода
0 Маленький Вопросик
 
22.09.11
08:38
Читаем данные из макета в тч. хочу сделать более оптимизированно:

   ЕдиницыИзмерения = Новый ТаблицаЗначений();
   ЕдиницыИзмерения.Колонки.Добавить("ЕдИзмерения");
   ЕдиницыИзмерения.Колонки.Добавить("КодПоОКЕИ");
   
   МакетХранения = ПолучитьМакет("ЕдиницыИзмерения");
   ИндСтроки=3;
   Пока Истина Цикл
       ЕдИзмерения=МакетХранения.Область(Строка("R")+Строка(ИндСтроки)+Строка("C")+Строка("1")).Текст;
       КодПоОКЕИ=МакетХранения.Область(Строка("R")+Строка(ИндСтроки)+Строка("C")+Строка("2")).Текст;
       Если ПустаяСтрока(ЕдИзмерения) Тогда
           Прервать;
       КонецЕсли;
       НовСтр = ЕдиницыИзмерения.Добавить();
       НовСтр.ЕдИзмерения=ЕдИзмерения;
       НовСтр.КодПоОКЕИ=КодПоОКЕИ;
       ИндСтроки=ИндСтроки+1;
   КонецЦикла;
1 Jolly Roger
 
22.09.11
08:46
(0) а что, медленно работает, что ли?..
2 Маленький Вопросик
 
22.09.11
08:47
(1) хочу вот эту мутоту красивее записать

НовСтр = ЕдиницыИзмерения.Добавить();
НовСтр.ЕдИзмерения=ЕдИзмерения;
НовСтр.КодПоОКЕИ=КодПоОКЕИ;
3 guitar_player
 
22.09.11
08:49
(1) напиши вот так
НовСтр = ЕдиницыИзмерения.Добавить();
НовСтр.ЕдИзмерения = ЕдИзмерения;
НовСтр.КодПоОКЕИ   = КодПоОКЕИ;
4 guitar_player
 
22.09.11
08:49
(3) -> (2)
5 guitar_player
 
22.09.11
08:49
(2) а вообще оптимизировать надо в другом месте
6 ЛЮС
 
22.09.11
08:51
Если уж заговорили про красивости, то какой сакральный смысл имеет сие выражение: Строка("C")+Строка("1") ?
7 guitar_player
 
22.09.11
08:54
(6)и вообще строка...
8 guitar_player
 
22.09.11
08:54
ЕдИзмерения=МакетХранения.Область("R"+Строка(ИндСтроки)+"C1").Текст;
9 Fragster
 
гуру
22.09.11
09:03
Для Сч = 1 По МакетХранения.КоличествоСтрок() Цикл

КонецЦикла;

ну и в цикле без промежуточных присваиваний... хотя что тут оптимизировать...
10 ЛЮС
 
22.09.11
09:03
Хинт: проверь, что будет, если количество строк перевалит за тыщу.
11 Fragster
 
гуру
22.09.11
09:04
а, у тебя начальное значение цикла будет 3, да :)
12 Fragster
 
гуру
22.09.11
09:04
(10) будет ветка про "помогите убрать пробел"
13 Fragster
 
гуру
22.09.11
09:05
а еще лучше в макете сделать вертикальные области вместо RC
14 Axel2009
 
22.09.11
09:07
в 1 строчку все забахай, будет тебе оптимизация
Закон Брукера: Даже маленькая практика стоит большой теории.