Имя: Пароль:
1C
1С v8
Передача параметров в форму
,
0 AllJoke
 
31.10.11
16:46
Вечер добрый. Вот какая задачи интересует. Есть две формы - обе управляемые. Одна - форма списка, другая - форма элемента. При двойном клике на ФормеСписка вызывается процедура:


Процедура СписокВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
   ТекОхотник = Элемент.ТекущиеДанные.ФизЛицо;
   ТекДата       = Элемент.ТекущиеДанные.Период;
   ФЛ = Новый Структура("Ключ, ДатаИстории", ТекОхотник, ТекДата);
   Форма = ПолучитьФорму("Справочник.ФизическиеЛица.Форма.ФормаЭлементаУправляемаяИстория", ФЛ);
   Форма.Открыть();
КонецПроцедуры

В ней я хочу передать два параметра - ФизЛицо и ДатаИстории. Первый ередается, а вот второй никак не могу. На ФормеЭлемента в вкладке "Параметры" также добавил Параметр - ДатаИстории. Как мне его использовать. Я просто хочу на эту дату заполнить данные из РегистраСведений в ФормуЭлемента.

Вообщем подитог желания - передать два параметра в форму, чтобы со вторым была возможность работать.
1 SuperMario
 
31.10.11
16:55
Через владельца формы.

Синтаксис:

ПолучитьФорму(<Форма>, <Владелец>, <КлючУникальности>)
Параметры:

<Форма> (обязательный)

Тип: Строка; ОбъектМетаданных: Форма . Имя формы, как оно задано в конфигураторе, или объект описания метаданного требуемой формы.
<Владелец> (необязательный)

Тип: Форма; Элемент управления. Объект, который будет являться владельцем открываемой формы.
2 SuperMario
 
31.10.11
16:56
+(1) только для толстого
3 spiteful41
 
31.10.11
16:59
Можно так:
4 spiteful41
 
31.10.11
16:59
Глобальный контекст.Оповестить (Global context.Notify)
Глобальный контекст (Global context)
Оповестить (Notify)
Синтаксис:

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

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

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

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

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

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

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

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

Оповестить("ЗакрытьФорму", , ЭтаФорма);
5 ll13
 
31.10.11
17:02
(0) Все неключевые параметры, переданные в форму через структуру Параметры, доступны в открываемой форме только в событии ПриСозданииНаСервере(), там их и необходимо обработать, если логика работы программы предполагает дальнейшее использование неключевых параметров, то их необходимо где-нибудь сохранить.
6 AllJoke
 
31.10.11
17:04
(1) ну а как получить данные списка. Именно те, на которые происходит двойное щелкание?
7 AllJoke
 
31.10.11
17:05
(5) А для чего тогда в управляемой форме есть вкладка - "Параметры"?
8 SuperMario
 
31.10.11
17:12
(6) в открываемой форме будет доступен ее владелец (т.е. форма из которой ты открыл справочник физиков) со всеми вытекающими....
Не поленись отладчиком посмотреть что там есть ;)
9 mikecool
 
31.10.11
17:14
ФЛ = Новый Структура("Ключ, ДатаИстории", ТекОхотник, ТекДата);
   Форма = ОткрытьФорму("Справочник.ФизическиеЛица.Форма.ФормаЭлементаУправляемаяИстория", ФЛ);

в при создании на сервере анализируешь "Параметры"
10 AllJoke
 
31.10.11
17:18
(8) так то там много чего есть. И тот самый Список, из которго данные хочу вытащить. Но нет поля - "ТекущяСтрока". Есть ТекущиеДанные, как вытащить период оттуда - ума не приложу.
11 Defender aka LINN
 
31.10.11
17:23
(7) Параметры, которые указаны на этой вкладке будут в структуре "Параметры" при создании формы всегда - даже если их никто не передавал. Можно не заморачиваться с проверками - "а передали ли параметр в форму, или нет его в тут нифига"
12 AllJoke
 
31.10.11
17:44
Вообще разобрался я с параметрами. Через владельца формы. Небольшой вопрос не в тему - как мне дату указать число, а то он мне с нулями часами выдает.
13 AllJoke
 
31.10.11
17:44
Поясню - дату эту я в заголовок формы кидаю. Для читабельности.
14 SUA
 
31.10.11
17:48
Формат
15 AllJoke
 
31.10.11
17:56
(14) Спасибо.