Имя: Пароль:
1C
1С v8
Обработка заполнение табличной части и доступ к форме документа
, ,
0 Полька
 
20.03.15
13:43
Делаю внешнюю обработку заполнения табл.части документа.
По результатам заполнения подсчитываются итоги и их нужно вывести в документ ниже табличной части.
У меня форма документа. А как к ней обратиться?

ФормаДокумента = Документы.ИнвентаризацияРасчетовСконтрагентами.ПолучитьФорму????????;
1 Maxus43
 
20.03.15
13:45
ФормаДокумента = ОбъектДокумента.ПолучитьФорму...
2 sanja26
 
20.03.15
13:47
(1) так она девственно чистую форму получит...
3 Fish
 
20.03.15
13:49
А зачем вообще форму получать? Если форма открыта, то используй оповещение.
4 Полька
 
20.03.15
13:50
форма открыта. как в ее реквизит записать значение?
5 Полька
 
20.03.15
13:51
Элементыформы.НадписьИтогиДт.Заголовок = ИтогиТекст.СтрокаДт;
6 Fish
 
20.03.15
13:52
(4) 1. Оповестить форму о том, что изменились данные.
2. В форме в обработке оповещения обновить данные и рассчитать итог.
7 Полька
 
20.03.15
14:00
(6) не поняла :(
8 Fish
 
20.03.15
14:07
(7) Глобальный контекст (Global context)
Оповестить (Notify)
Синтаксис:

Оповестить(<ИмяСобытия>, <Параметр>, <Источник>)
Параметры:

<ИмяСобытия> (необязательный)

Тип: Строка.
Имя события. Может быть использовано для идентификации сообщений принимающими их формами.
<Параметр> (необязательный)

Тип: Произвольный.
Параметр сообщения. Могут быть переданы любые необходимые данные.
<Источник> (необязательный)

Тип: Произвольный.
Источник события. Например, в качестве источника может быть указана другая форма.
Описание:

Посылает оповещение всем созданным формам и всем подключенным через метод ПодключитьОбработчикОповещения процедурам модуля управляемого приложения (модуля обычного приложения) или общего модуля. Если для формы задана процедура-обработчик события ОбработкаОповещения, то она будет запущена, в процедуру будут переданы указанные параметры.
Данный механизм может, например, применяться для организации обмена сообщениями между открытыми формами.

Доступность:

Тонкий клиент, веб-клиент, толстый клиент.
Пример:

Оповестить("ЗакрытьФорму", , ЭтаФорма);


См. также:

Форма, событие ОбработкаОповещения
9 Полька
 
20.03.15
14:10
Это я читала.
Вопрос- какую форму оповещать то? Как к ней обратиться.
10 Fish
 
20.03.15
14:15
(9) Читай внимательней:
"Посылает оповещение всем созданным формам".

Никак не надо обращаться. Просто задаёшь имя события, например "ОбновитьИтогВформеМоегоДокумента"

А уже в форме документа в обработке оповещения пишешь:
Если Если ИмяСобытия = "ОбновитьИтогВформеМоегоДокумента" Тогда
....
И здесь обновляешь свой реквизит.
11 Полька
 
20.03.15
14:17
А в форме документа в обработке как писать, если документ стандартный и закрыт?
Все нужно сделать из внешней обработки
12 Fish
 
20.03.15
14:22
(11) Ну тогда получай форму из ссылки на документ. Но опять же, если у тебя в форме есть процедура расчета итогов, и она не экспортная, то вызвать ты её не сможешь, сможешь только обратиться к реквизиту формы.
Значит, смотри, как у тебя в форме получается значение ИтогиТекст.СтрокаДт и, при необходимости, копируй код в свою обработку.
13 Полька
 
20.03.15
14:24
так итоги у же посчитаны, не могу получить форму
14 Fish
 
20.03.15
14:26
(13) Как-то так: Форма = ДокСсыка.ПолучитьФорму()
15 Полька
 
20.03.15
14:27
вооооот :))) получилось
16 Fish
 
20.03.15
14:27
Ну а дальше Форма.Элементыформы.НадписьИтогиДт.Заголовок = НужноеЗначение;
17 Полька
 
20.03.15
14:28
все уже сидит на местах :))) спасибо