Имя: Пароль:
1C
1С v8
УФ. Табличная часть. Расчет выражения из значений в различных строках
0 YF
 
09.07.12
21:42
Есть УФ документа, на ней табличная часть документа.

При изменении значения реквизита в этой табличной части необходимо вывести в реквизит формы некое значение, оно расчитывается как сумма некоторых значений в некоторых строках этой ТЧ ...

Как это реализовать? И возможно ли на клиенте или нужно будет на сервер ходить?
1 rotting
 
09.07.12
22:11
Ау народ?
Я, например сходу не скажу способа чтоб на сервер не сбегать, толкайте идеи!
2 wade25
 
09.07.12
22:18
(1) По значению элемента формы отловить изменение первого. Ну а на сервер по идее и не нада, т.к. все изменения коснутся лишь формы, конфа нет дома. Поэтому не уточню)
3 YF
 
09.07.12
22:19
(2) Как? Мне нужно будет пробежаться по строкам табличной части
4 wade25
 
09.07.12
22:24
(3) Лан, а чего бы и на сервер не сходить?)
5 YF
 
09.07.12
22:26
(4) А нафига на него бегать-то? 1С слишком быстро работает? :-)
6 prosto-nik
 
09.07.12
22:40
(0) а попробовать не пробовал)) прежде чем тему заводить?
7 prosto-nik
 
09.07.12
22:42
и в описании темы все как то прибдизительно
8 ChAlex
 
09.07.12
23:53
Все равно будет обращение к серверу (во всяком случае если число строк табличной части больше 40, а то и несколько если строк еще больше). Так что шкурка выделки не стоит - лучше сделать серверную процедуру (в таком случае 1 гарантированный вызов сервера вместе с установкой реквизита и возможно еще какими-то сервисными функциями вместо потенциально нескольких)
9 sanja26
 
10.07.12
01:28
(0) а в чем проблема-то? приИзменении больше нет чтоли? текСтрока есть, полученное значение есть...
10 YF
 
10.07.12
09:58
(6) Пробовал. Ты скажи как пройтись по строкам табличной части на клиенте
11 YF
 
10.07.12
10:00
(9) Нужно данные вычислять не только по текущей строке, но, при изменении значения в одной "ячейке" пересчитывать вычисленное значение анализируя все строки
12 SUA
 
10.07.12
10:12
(10)для каждого строкаданных из объект.товары?
13 YF
 
10.07.12
10:27
(12) Попробуй
14 ChAlex
 
10.07.12
19:10
(13) - а что там пробовать. Смотри хелп. Табличная часть объекта есть объект типа "ДанныеФормыКоллекция"

Из справки:
ДанныеФормыКоллекция (FormDataCollection)
Элементы коллекции:

ДанныеФормыЭлементКоллекции
Для объекта доступен обход коллекции посредством оператора Для каждого … Из … Цикл. При обходе выбираются элементы.

Это касаемо доступности обхода на клиенте.

А теперь касаемо целесообразности: При открытии формы с сервера на клиент передается 40(если не изменяет память) строк табличной части. То есть на клиенте большего количества нет. При обращении к данным за пределами этих 40 строк с сервера на клиент передаются данные блоками по 40 строк. Таким образом если вы пробегите по всем строкам то получите неявные обращения к серверу по-любому. Ну в ракурсе такого поведения формы - посчитайте - целесообразно ли использовать метод на клиенте. Если вы изменили одну строчк табличной части, а в табличной части допустим 100 строк и вам нужно теперь их все просмотреть для расчета итога то вы получите 3 серверных вызова, если же итог считать на сервере - то только 1!! И что вы выигрываете использованием клиентских процедур?