Разыскивается 1C-Разработчик
1С 8.2, обход табличной части формы в цикле, 1С 8.2, обход табличной части формы в цикле
SaschaL
сообщение 1:03:2011, 05:02
Сообщение #1
Вставить ник
Новенький
Иконка группы

Репутация:     0  



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

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


ТекСтр.Сотрудник - это поле таблично части ТабСотр
При этом выводиться сотрудник на котором стоит курсов в этой табличной части, но количество сообщений соответствует количеству строк в табличной части.
Перейти в начало страницы
 
Цитата Цитировать сообщение
 
Start new topic
Ответов (1 - 9)
KiR
сообщение 1:03:2011, 08:12
Сообщение #2
Вставить ник
НЕ шибка опытный програмер)
Иконка группы

Репутация:     24  



ну во первых - отладчик в помощь! посмотреть надо меняется ли значение ТекСтр.Сотрудник, да и вообще не одинаков ли он во всей Таблице? очень похоже что программа отрабатывает правильно


--------------------
За мной ПЛЮСИКИ не заржавеют! Очень прошу помочь
]]>ASTERAmusic.ru]]>
Перейти в начало страницы
 
Цитата Цитировать сообщение
puh14
сообщение 1:03:2011, 08:47
Сообщение #3
Вставить ник
Божественный
Иконка группы

Репутация:     69  



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


--------------------
Перейти в начало страницы
 
Цитата Цитировать сообщение
KiR
сообщение 1:03:2011, 09:29
Сообщение #4
Вставить ник
НЕ шибка опытный програмер)
Иконка группы

Репутация:     24  



puh14, СТР - это по идее итератор. цикл - видимо автор хочет получить некое значение каждой строки. получается ошибка в ТекСтр = ЭлементыФормы.ТабСотр.ТекущиеДанные;
т.е. программа отрабатывает правильно, что и требовалось доказать post-29851-1275987098.gif


--------------------
За мной ПЛЮСИКИ не заржавеют! Очень прошу помочь
]]>ASTERAmusic.ru]]>
Перейти в начало страницы
 
Цитата Цитировать сообщение
puh14
сообщение 1:03:2011, 09:52
Сообщение #5
Вставить ник
Божественный
Иконка группы

Репутация:     69  




Цитата:
 
puh14, СТР - это по идее итератор


неа - можешь в отладчике проверить.
Собственно на этом вопрос и закончится.


--------------------
Перейти в начало страницы
 
Цитата Цитировать сообщение
SaschaL
сообщение 1:03:2011, 11:20
Сообщение #6
Вставить ник
Новенький
Иконка группы

Репутация:     0  



Всем спасибо решение проблемы нашел сам.

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



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

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

Перейти в начало страницы
 
Цитата Цитировать сообщение
puh14
сообщение 1:03:2011, 12:12
Сообщение #7
Вставить ник
Божественный
Иконка группы

Репутация:     69  



Эхх, не догадался - достаточно было Сообщить(Стр.Сотрудник);

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


--------------------
Перейти в начало страницы
 
Цитата Цитировать сообщение
unknown181538
сообщение 1:03:2011, 14:01
Сообщение #8

Репутация:     38  



Как-то криво сделали)


--------------------
Лыжи. Магадан.
Перейти в начало страницы
 
Цитата Цитировать сообщение
SaschaL
сообщение 1:03:2011, 15:28
Сообщение #9
Вставить ник
Новенький
Иконка группы

Репутация:     0  



rolleyes.gif В чем просматривается эта кривизна?
Перейти в начало страницы
 
Цитата Цитировать сообщение
unknown181538
сообщение 1:03:2011, 15:38
Сообщение #10

Репутация:     38  



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

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


--------------------
Лыжи. Магадан.
Перейти в начало страницы
 
Цитата Цитировать сообщение

Ссылка на тему:
BBCode: 
HTML:      
Fast ReplyReply to this topicStart new topic

 

> Быстрый ответ
 Отправлять уведомления об ответах на e-mail |  Включить смайлики |  Добавить подпись |  AJAX?
   


 



1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31|32|33|34|35|36|37|38|39|40|41|42|43|44|45|46|47|48|49|50
51|52|53|54|55|56|57|58|59|60|61|62|63|64|65|66|67|68|69|70|71|72|73|74|75|76|77|78|79|80|81|82|83|84|85|86|87|88|89|90|91|92|93|94|95|96|97|98|99|100
101|102|103|104|105|106|107|108|109|110|111|112|113|114|115|116|117|118|119|120|121|122|123|124|125|126|127|128|129|130|131|132|133|134|135|136|137|138|139|140|141|142|143|144|145|146|147|148|149
150|151|152|153|154|155|156|157|158|159|160|161|162|163|164|165|166|167|168|169|170|171|172|173|174|175|176|177|178|179|180|181|182|183|184|185|186|187|188|189|190|191|192|193|194|195|196|197|198|199
200|201|202|203|204|205|206|207|208|209|210|211|212|213|214|215|216|217|218|219|220|221|222|223|224|225|226|