helpf.pro
Регистрация
 0 
Распечатать

Поклеточный обход, перебор Таблицы Значений

Возможные варианты обхода:

Код 1C v 8.х
 //Во всех примерах ТЗПример - обрабатываемая Таблица значений

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

// Пример 2
Для стр = 0 По ТЗПример.Количество() Цикл
Для кол = 0 По ТЗПример.Колонки.Количество() Цикл
//...
КонецЦикла;
КонецЦикла;

//Пример 3
Для каждого СтрТЗ из ТЗПример Цикл
Для кол = 0 По ТЗПример.Колонки.Количество() Цикл
Сообщить(СтрТЗ[кол]);
КонецЦикла;
КонецЦикла;


При обработке Таблицы значений в 16 колонок и 500 строк - Разница в скорости выполнения между методами составила 3 секунды в пользу Примера № 3 (тестировал IKSparrow )

Тема обсуждения в Вопросах Поклеточный обход таблицы значений - что быстрее работает?
Разместил:   Версии: | 8.x |  Дата:   Прочитано: 45339
 0 
Распечатать
Возможно, вас также заинтересует
17 правил для составления оптимального ЗАПРОСа к данным базы 1С 50
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ
1C и Google Maps 21
была поставлена задача отображения на географической карте медицинских учреждений. После обзора предлагаемых решений был выбран сервис google. Но так же подобного рода подход будет работать и с картами сервиса yandex. Во время решения задачи было реш
1Cv8.1CD - Файл данных достиг максимального размера! 9
1С выдает предупреждение " Файл данных достиг максимального размера" . Подскажите из - за чего это и как можно решить ? Превышен размер файла, обычно это сообщение возникает, когда размер файла 1Cv8.1CD приближается к 10 гигабайтам или размер ка
1С 7.x : Как получить курсы валют с сайта НБУ http://www.bank.gov.ua/ за любую дату ? 6
Функция ПолучитьТаблицуКурсовНБУ(ДатаКурса, Ежедневно = 1) // если в качестве второго параметра указать число отличное от 1 - получем валюты, которые котируются на ежемесячной основе Перем Reader, Url, Точки, HtmlTab, Строк, Р, НомСтроки, НомЯче
COM-подключение к базе 7.7 из 8.2 1С 7
Если код выполняется на стороне клиента, то необходимо наличие базы 7.7 на локальной машине. Пример (На форме объекта присутствует реквизит Таблица(ТаблицаЗначений)): НаКлиенте Процедура Загрузки() ПутьКБазе=" D:ВашаБаза1с77" ; Пользователь=
Посмотреть все результаты поиска похожих
Комментарии
E_Migachev
10.06.2010 11:02Комментарий: 6
E_Migachev
хм... а не должно! В строке точно пробел?
СтрВывода = СтрВывода+ " " + Строка(СтрТЗ[кол]);

Ну тогда перед выводом добавь:
Код 1C v 8.х
 СтрВывода = СтрЗаменить(СтрВывода, Симвалы.ПС, " ");
Сообщить(СтрВывода); // Выводим целиком строку
ShamanNet
10.06.2010 10:51Комментарий: 5
ShamanNet
Печально. Теперь у меня вместо ожидаемого результата ->
Наименование Количество Комментарий
получается ->
Наименование
Количество
Комментарий
E_Migachev
10.06.2010 10:14Комментарий: 4
E_Migachev
ShamanNet, да, мой косяк *08 нужно так:
Код 1C v 8.х
  Для каждого СтрТЗ из ТЗПример Цикл // Перебираем Строки ТЗ
СтрВывода=""; // Очищаем строку вывода
Для кол = 0 По ТЗПример.Колонки.Количество()-1 Цикл // Перебираем Колонки ТЗ
СтрВывода = СтрВывода+ " " + Строка(СтрТЗ[кол]); //Прибавляем значение текущей строки/колонки
КонецЦикла;
Сообщить( СтрВывода); // Выводим целиком строку
КонецЦикла;
ShamanNet
10.06.2010 10:07Комментарий: 3
ShamanNet
Попробовал и получил сообщение об ошибке: Индекс находится за границами массива
СтрВывода = СтрВывода+ " " + Строка(СтрТЗ[кол]); //Прибавляем значение текущей строки/колонки
E_Migachev
10.06.2010 09:32Комментарий: 2
E_Migachev
Можно конечно ), примерный код такой:
Код 1C v 8.х
 Для каждого СтрТЗ из ТЗПример Цикл // Перебираем Строки ТЗ
СтрВывода=""; // Очищаем строку вывода
Для кол = 0 По ТЗПример.Колонки.Количество() Цикл // Перебираем Колонки ТЗ
СтрВывода = СтрВывода+ " " + Строка(СтрТЗ[кол]); //Прибавляем значение текущей строки/колонки
КонецЦикла;
Сообщить( СтрВывода); // Выводим целиком строку
КонецЦикла;
ShamanNet
10.06.2010 08:32Комментарий: 1
ShamanNet
А можно ли при обходе таблицы значений выводить все строки таблицы (по всем колонкам), не зная точного количества и заголовков колонок?
Мне нужно, чтобы на выходе было что-то вроде:
Сообщить(" "+Строка[0]+" "+Строка[1]+" "+Строка[2]+" "+Строка[3]+.....);
Причём количество индексов может быть разным.
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.