Имя: Пароль:
1C
1С v8
Внешняя обработка табличных частей ФОРМЫ
0 Смешной 1С
 
23.09.11
08:41
Добрый день!
Поле НоваяСумма есть только в табличной части формы. Как мне обойти эту табличную часть чтобы записать в это поле значение

Процедура Инициализировать(Объект,ИмяТабличнойЧасти,ТабличноеПолеОбъекта) Экспорт
   
   Для каждого Строка из ТабличноеПолеОбъекта(???) цикл
       Попытка
           Строка.НоваяСумма = Окр(Строка.Сумма, 2);
       Исключение    
       КонецПопытки;    
   КонецЦикла;    
КонецПроцедуры    
#КонецЕсли
1 MaxiM072
 
23.09.11
08:46
формы чего? документа, справочника или чего?
2 Смешной 1С
 
23.09.11
08:47
(1) Документа.
3 MaxiM072
 
23.09.11
08:51
так никто не делает, обращение идёт через объект документа, типа такого:
ДокОбъект = Документы.ТвойДок.ПолучитьОбъект();
ТаблЧасть = ДокОбъект.ТвояТабЧасть;

и идёшь циклом по строкам или через [индекс] если что то разовое и потом записать ДокОбъект.Записать(РежимЗаписиДокумента.Запись)

как то так
4 Смешной 1С
 
23.09.11
08:54
(3) ты сейчас о чем? Я об внешней обработке заполнения табЧастей.
5 MaxiM072
 
23.09.11
08:56
ну перед тем как тебе что менять в документах, даже из внешеё обработки, надо получить объект документа, чтобы ты что мог в нём поменять, табличная часть закреплена за реквезитом этого документа, ты разве не задумывался над тем, что почему ты документ открываешь, а данные в нём какие то уже есть, они берутся и хранятся в реквезитах,а форма это всего лишь визульное отоьражение!
6 Смешной 1С
 
23.09.11
09:00
(5) ты пользовался обработкой заполнения(!) таб. частей?

Мне не нужно получать объект. Обработка вызывается из документа.
и процедура Инициализировать содержит уже нужные параметры.

Инициализировать(Объект,ИмяТабличнойЧасти,ТабличноеПолеОбъекта)
7 Maxus43
 
23.09.11
09:06
>>Поле НоваяСумма есть только в табличной части формы
Только оформлением строки вроде можно менять текст в произвольных колонках... надо попробовать
8 Maxus43
 
23.09.11
09:09
хотя... так не пашет?

Для каждого Строка из ТабличноеПолеОбъекта.Значение цикл
9 Смешной 1С
 
23.09.11
09:10
(8) пробовал так. Почему то это поле не видит. Сумму видит, а новуюСумму нет...
10 hhhh
 
23.09.11
09:21
(9) так эта сумма у тебя заполняется в процедуре ПриВыводеСтроки. Или ПриПолученииДанных. Здесь-то какой смысл ее заполнять? Это же заполнение табличной части ОБЪЕКТА, а не формы.
11 Maxus43
 
23.09.11
09:23
(10) имхо ему как раз и надо заполнять её в ПриВыводеСтроки а не этой обработкой. если я правильно понял суть ветки
12 Смешной 1С
 
23.09.11
09:25
(10) Там она по своему заполняется. обработкой нужно по-другому.

Нужно обработкой заполнять
13 Maxus43
 
23.09.11
09:27
(12) а ты не подумал что после заполнения обработкой события из (10) опять перекроят по своему?
14 Смешной 1С
 
23.09.11
09:29
У меня там не такие события.  Там события: При изменении суммы, цены и т.п. Так что они не повлияют
15 hhhh
 
23.09.11
10:09
(14) ну там как заполняется эта НоваяСумма? В какой процедуре?
16 Администратор 1С
 
23.09.11
10:26
(0)

Для Каждого СтрокаДок из Объект.товары Цикл

СтрокаДок.НоваяСумма = Окр(СтрокаДок.Сумма, 2);        

КонецЦикла;
17 Администратор 1С
 
23.09.11
10:28
вернее:
Для Каждого СтрокаДок из Объект[ИмяТабличнойЧасти] Цикл
СтрокаДок.НоваяСумма = Окр(СтрокаДок.Сумма, 2);        

КонецЦикла;
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс