Имя: Пароль:
1C
1С v8
Как лучше задавать массив?
,
0 Nzzzz
 
12.02.19
15:48
Как лучше в плане оптимальности? Или без разницы?
1 вариант:
Массив = новый массив(2);
Массив[0] = ПланыВидовХарактеристик.Субконто.Номенклатура;
Массив[1] = ПланыВидовХарактеристик.Субконто.Склад;
2 вариант:
Массив = Новый Массив;
Массив.Добавить(ПланыВидовХарактеристик.Субконто.Номенклатура);
Массив.Добавить(ПланыВидовХарактеристик.Субконто.Склад);
1 formista2000
 
12.02.19
15:50
(0) 2
2 Сияющий в темноте
 
12.02.19
15:58
Создатели говорили,что некоторый набор строк в массиве выдается при создании,а потом растет,так что в вашем случае,разницы не будет.
3 unregistered
 
12.02.19
16:03
Массив = Новый Массив;
Массив.Добавить(ПланыВидовХарактеристик.Субконто.Номенклатура);
Массив.Добавить(ПланыВидовХарактеристик.Субконто.Склад);
Массив = Новый ФиксированныйМассив (Массив);
4 unregistered
 
12.02.19
16:04
>> лучше в плане оптимальности?

Что понимать под оптимальностью?
ИМХО, всё равно.
5 timurhv
 
12.02.19
16:06
В других языках 1-ый вариант заметно быстрее, как и работа со строками (stringbuilder, можно посмотреть как на самом деле все происходит). Как в 1С - не задавался вопросом.
6 lodger
 
12.02.19
16:08
(4) понимать количество потраченных байт, наносекунд и ватт.
7 timurhv
 
12.02.19
16:14
(0) Спецом проверил на 100000 объектах - в пределах погрешности.

МассивДанных = Новый Массив();
    Для Инд = 1 По 100000 Цикл
        МассивДанных.Добавить(ПланыВидовХарактеристик.ВидыСубконто.Номенклатура);
    КонецЦикла;
    
    МассивДанных = Новый Массив(100000);
    Для Инд = 1 По 100000 Цикл
        МассивДанных[Инд-1] = ПланыВидовХарактеристик.ВидыСубконто.Номенклатура;
    КонецЦикла;
8 lodger
 
15.02.19
13:13
(7) попробуй разместить это в разные процедуры и вызывай их. ну чтобы переменные и области памяти не одни и те же использовались.
9 OldCondom
 
15.02.19
13:36
У меня в УТ11 ПТУ проводится от 5 секунд. На эти наносекунды в массивах думаю всем насрать.
10 palsergeich
 
15.02.19
14:04
Монописсуально
Программист всегда исправляет последнюю ошибку.