Имя: Пароль:
1C
1С v8
Как в цикле пройти по строкам ТабличногоПоля?
,
0 burrya
 
17.08.11
13:25
Только не по строкам значения табличного поля, а именно по строкам ТабличногоПоля.
1 zak555
 
17.08.11
13:26
чё ?
2 Vladal
 
17.08.11
13:27
Если я правильно понял, надо пройтись по видимым на форме строкам табличного поля. Для этого обработчик ПриВыводеСтроки
3 butterbean
 
17.08.11
13:27
никак, ибо бессмысленно
4 Vladal
 
17.08.11
13:29
(1) Если ТС правильно стелепатировал, а я првильно поймал его поток сознания, то "по строкам значения табличного поля" = по всей ТЗ, а "именно по строкам ТабличногоПоля" - это по видимым строкам.

Иначе

Для каждого СтрокаТЗ из ТабличноеПоле Цикл
...
КонецЦикла
5 burrya
 
17.08.11
13:38
это для того чтоб не дублировать и не разбирать например ТоварыСуммаПриИзменении(Элемент)
6 zak555
 
17.08.11
13:39
(5) это шняга вызывается при изменении одной текущей строки
7 Vladal
 
17.08.11
13:40
(5) С этого момента подробнее
8 Stim213
 
17.08.11
13:41
телепаты в отпуске(с)
9 burrya
 
17.08.11
13:42
(6)в форме да, но хочется что-то закинуть в Сумму цыклом по всем строкам и отработать корректное изменение связанных реквизитов ТабПоля
10 Reset
 
17.08.11
13:42
(0) Никак

(5) чё? (с)
11 Reset
 
17.08.11
13:43
(9) Перебирай данные. Зачем табличное поле то?
12 5 Элемент
 
17.08.11
13:44
Видимо автор недавно вступил всвязь с 1с
Опиши что ты хочешь сделать
13 zak555
 
17.08.11
13:44
(9) для каких целей ?


лучше сделать так : создать в ОМ процедуру, которая для тек строки пересчитывает сумму
и сделать вызов из процедуры формы ТоварыСуммаПриИзменении
14 zak555
 
17.08.11
13:44
+ открой радченко - главу с доками
15 burrya
 
17.08.11
13:47
Процедура ТоварыСуммаПриИзменении(Элемент)

   // Выполнить общие действия для всех документов при изменении Суммы.
   ПриИзмененииСуммыТабЧасти(ЭлементыФормы.Товары.ТекущиеДанные, ЭтотОбъект, глТекущийПользователь);

   // Рассчитать реквизиты табличной части.
   РассчитатьСуммуНДСТабЧасти(ЭлементыФормы.Товары.ТекущиеДанные, ЭтотОбъект);

КонецПроцедуры // ТоварыСуммаПриИзменении()

Там уже все есть :) Хотелось это использовать. Но похоже не получится :)
16 Reset
 
17.08.11
13:48
Что не получится?
17 burrya
 
17.08.11
13:49
(15) - (13)(10)
18 burrya
 
17.08.11
14:02
вот это
Для Каждого Стр_Продукция Из Товары Цикл
           Стр_Продукция.Сумма = СуммаФакт * Стр_Продукция.Количество / Товары.Итог("Количество") * Стр_Продукция.ЕдиницаИзмерения.ВысотаМ / Константы.МаксимальнаяВысотаБлокаЦелюлозы.Получить();
           ПриИзмененииСуммыТабЧасти(Стр_Продукция, ЭтотОбъект, глТекущийПользователь);
           РассчитатьСуммуНДСТабЧасти(Стр_Продукция, ЭтотОбъект);
       КонецЦикла;

хотелось сделать как-то так:
Для Каждого Стр_Продукция Из ЭлементыФормы.Товары Цикл
           Стр_Продукция.Сумма = СуммаФакт * Стр_Продукция.Количество / Товары.Итог("Количество") * Стр_Продукция.ЕдиницаИзмерения.ВысотаМ / Константы.МаксимальнаяВысотаБлокаЦелюлозы.Получить();
           ТоварыСуммаПриИзменении(ЭлементыФормы.Товары)
       КонецЦикла;
19 zak555
 
17.08.11
15:04
открыть радченко ?
20 5 Элемент
 
17.08.11
15:14
И чем не устраивает вариант 1?
21 burrya
 
17.08.11
17:42
(19) Радченко для (18) дает ответ
(20) Хочется чтоб система была более умной, вот например изменится алгоритм процедуры ТоварыСуммаПриИзменении(Элемент), и прийдется при таком подходе(вариант 1) переделывать остальные места где она дублируется в неявном виде, а так бы ничего переделывать не пришлось :)
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший