helpf.pro
Регистрация

Поклеточный обход таблицы значений - что быстрее работает?

IKSparrow
16.03.2010 14:30Прочитано: 5696
Надо обойти таблицу значений поклеточно. Что быстрее будет - использовать конструкцию типа:

Код 1C v 8.х
 
Для каждого СтрТЗ из ТЗПример Цикл
Для каждого КолТЗ из ТЗПример.Колонки Цикл
КонецЦикла;
КонецЦикла;

или

Код 1C v 8.х
 
Для стр = 0 По ТЗПример.Количество() Цикл
Для кол = 0 По ТЗПример.Колонки.Количество() Цикл
КонецЦикла;
КонецЦикла;
Yandex
Возможно, вас также заинтересует
Реклама на портале
E_Migachev
16.03.2010 16:43Ответ № 1
Сказать сложно, все будет зависеть от размеров таблицы и размеров данных в ячейках.
Тут нужно брать конкретную ТЗ и через Замер тестировать и так и так *09
E_Migachev
16.03.2010 16:49Ответ № 2
Как я понял, ты заранее не знаешь сколько строк и столбцов в таблице...
в данном случае, на мой взгляд, лучше использовать конструкцию типа:
Код 1C v 8.х
 
Для каждого СтрТЗ из ТЗПример Цикл
Для кол = 0 По ТЗПример.Колонки.Количество() Цикл
Сообщить(СтрТЗ[кол])
КонецЦикла;
КонецЦикла;


Как попробуешь, отпиши пожалуйста, что же все-таки быстрее...
IKSparrow
17.03.2010 08:59Ответ № 3
Попробовал твой вариант, он оказался быстрее. Что весьма странно, я полагал, что конструкция "для каждого" можно сказать специальный инструмент для оптимального по срокам выполнения обхода коллекции. А оказалось не так. Ну в общем-то, чего ещё от фирмы 1С ожидать )
E_Migachev
17.03.2010 10:38Ответ № 4
Ради интереса *13 скажи, когда тестировал, сколько было строк и колонок в ТЗ?
IKSparrow
17.03.2010 10:41Ответ № 5
16 колонок и 500 строк - выборка данных из регистров расчётов в ЗУПе ) Разница в скорости выполнения между методами составила 3 секунды в пользу твоего )
E_Migachev
18.03.2010 08:43Ответ № 6
Спасибо за инфу *06, добавил в FAQ Поклеточный обход, перебор Таблицы Значений
Подсказка: Для быстрого перемещения к последнему ответу или к вопросу используйте или .
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.