1С 8.2, обход табличной части формы в цикле

  • Автор темы SaschaL
  • Дата начала
S

SaschaL

Гость
#1
Добрый день!
Подскажите как обойти табличную часть формы обработки в цикле.
Объясняю подробно, есть форма обработки, на данной форме имеется табличная часть ТабСотр, я пытаюсь обойти данную табличную часть в цикле

Код:
Для Каждого Стр из ТабСотр цикл
ТекСтр = ЭлементыФормы.ТабСотр.ТекущиеДанные;
Сообщить(ТекСтр.Сотрудник);
КонецЦикла;
ТекСтр.Сотрудник - это поле таблично части ТабСотр
При этом выводиться сотрудник на котором стоит курсов в этой табличной части, но количество сообщений соответствует количеству строк в табличной части.
 

KiR

НЕ шибка опытный програмер)
11.09.2007
1 581
0
#2
ну во первых - отладчик в помощь! посмотреть надо меняется ли значение ТекСтр.Сотрудник, да и вообще не одинаков ли он во всей Таблице? очень похоже что программа отрабатывает правильно
 

puh14

Well-Known Member
11.07.2008
1 412
0
НеРезиновая
#3
ЭлементыФормы.ТабСотр.ТекущиеДанные - всегда будет тебе возвращать текущую строчку. Подсказка - а зачем ты цикл делал и что такое переменная стр?
 

KiR

НЕ шибка опытный програмер)
11.09.2007
1 581
0
#4
puh14, СТР - это по идее итератор. цикл - видимо автор хочет получить некое значение каждой строки. получается ошибка в ТекСтр = ЭлементыФормы.ТабСотр.ТекущиеДанные;
т.е. программа отрабатывает правильно, что и требовалось доказать :(
 
S

SaschaL

Гость
#6
Всем спасибо решение проблемы нашел сам.

Вот код:
Код:
Для Каждого Стр из ТабСотр цикл			  // получаем в цикле строки табличной части
ТекСтр = ЭлементыФормы.ТабСотр.ДанныеСтроки(Стр);
Сообщить(ТекСтр.Сотрудник);
КонецЦикла;

А вот метод ЭлементыФормы.ТабСотр.ТекущиеДанные возвращает значение, только одно и тоже причем количество раз возвращаемого значения соответствует количеству строк в таблице. Причем значение которое программа возвращает он берет из строки в которой стоит курсор.

Всем спасибо, вопрос можно считать закрытым
 

puh14

Well-Known Member
11.07.2008
1 412
0
НеРезиновая
#7
Эхх, не догадался - достаточно было Сообщить(Стр.Сотрудник);

Стр - это по сути строка табличной части, нафига еще строки кода ваять?
 
S

SaschaL

Гость
#9
;) В чем просматривается эта кривизна?
 

unknown181538

НеГуру
28.12.2008
1 417
0
30
Москва
#10
Можно так :
Для каждого Тек Из ТабСтр Цикл
Сообщить(Тек.Сотрудник);
КонецЦикла;

можно так:
Для каждого тек Из ЭлементыФормы.ТабСтр Цикл
Сообщить(Тек.ТекущиеДанные.Сотрудник);
КонецЦикла;