Имя: Пароль:
1C
 
Как перебрать все значение колонок в таблице значений
0 PaulProject
 
20.04.10
19:05
Доброго времени суток форумчане. Есть небольшая сложность: в таблице значений есть всего одна строка, нужно найти в каких колонках этой сроки пустое значение, сообщить их наименование и выйти. Помогите пожалуйста.
1 Prikum
 
20.04.10
19:27
Есть коллекция колонок, в цикле бегай по ней и смотри свое значение! Как то так!
2 ilgizinjo
 
20.04.10
19:29
ТЗ = Новый ТаблицаЗначений;
   Строка = ТЗ.Получить(0);
   к = 0;
   Пока к <ТЗ.Колонки.Количество() цикл
       Если Строка.Получить(к) = "" тогда
           Прервать;
       Иначе
           к= 1+к;
       КонецЕсли;
   КонецЦикла;
   Сообщить(к);
3 Just4Fun
 
20.04.10
20:01
Колонки = ТЗ.Колонки;
Для каждого колонка из Колонки Цикл
   ЗначениеПоля = ТЗ[0][Колонка.Имя];
КонецЦикла
4 PaulProject
 
20.04.10
23:21
А как понять строку которая заключена в цикл?
5 Лефмихалыч
 
20.04.10
23:23
(4) а как понять этот пост?
6 PaulProject
 
20.04.10
23:50
Функция ПроверкаДанных(Результат)
   Колонки = Результат.Колонки;
   Ошибка = Ложь;
   Для Каждого колонка из Колонки Цикл
       Если Результат[0][Колонка.Имя] = Неопределено Тогда
           Сообщить("Данное поле не заполнено: " + Колонка.Имя);
           Ошибка = Истина;
       КонецЕсли;
   КонецЦикла;
   Возврат Ошибка;
КонецФункции

Я написал так, пишет ошибку
Индекс находится за границами массива
       Если Результат[0][Колонка.Имя] = Неопределено Тогда
7 Птица
 
20.04.10
23:53
значит, таблица пустая
8 Abracadabra
 
21.04.10
00:27
МассивИменКолонок = Новый Массив;
Для Каждого Колонка Из ТаблицаЗначений.Колонки Цикл
   МассивИменКолонок.Добавить(Колонка.Имя);
КонецЦикла;

//Обходим всю таблицу
Для Каждого СтрокаТаблицы Из ТаблицаЗначений Цикл
   Для Сч = 0 По МассивИменКолонок.ВГраница() Цикл
       Если Не ЗначениеЗаполнен(СтрокаТаблицы[МассивИменКолонок[Сч]]) Тогда
           Сообщить(МассивИменКолонок[Сч] + " в строке ~ " + СтрокаТаблицы.Индекс());
       Прервать;
       КонецЕсли;
   КонецЦикла;
КонецЦикла;

Примерно так.
9 Птица
 
21.04.10
00:33
(8) а зачем имена в массив? думаешь , по скорости большая разница?
единственное, имеет смысл перед циклом сохранить коолекцию колонки в переменной, чтобы не обращаться заново каждый раз. и то не факт, что это нужно
10 Abracadabra
 
21.04.10
03:59
(9) для удобства в основном. В скорости весомого выигрыша не будет.