Имя: Пароль:
1C
1С v8
1С 8: Обычное приложение. Как прочитать параметр переданный при открытии формы?
,
0 KizerSoze
 
15.09.13
21:11
здравствуйте,
Создал документ "Прохождение конкурсов" и хочу добавить возможность автозаполнения его ТЧ с предварительным выбором периода. Для этого создал общую форму, в которой задаю стандартный период и заполняю документ. Для этого мне нужно передать в эту форму ссылку заполняемого документа. Как ее прочитать - не понятно.
Делаю так:

1.Добавляю кнопку на форму документа, по которой вызываю общую форму автозаполнения.

Пар=Новый Структура;
Пар.Вставить("ДокументОбъект",Ссылка);
ОткрытьФорму("ОбщаяФорма.ВыборПериода",Пар);

2. В процедуре "При открытии" или "Перед открытием" хочу прочитать переданный параметр, но не могу разобраться как.
1 Нуф-Нуф
 
15.09.13
21:12
параметры формы
2 KizerSoze
 
15.09.13
21:17
Как прочитать мне эти параметры формы?
В отладке в процедуре ПередОткрытием:
ПараметрыФормы - Поле объекта не обнаружено.
ЭтаФорма.ПараметрыФормы - то же самое.
3 hhhh
 
15.09.13
21:36
(2) наверно слово "формы" лишнее. Зчем 2 раза повторять?
4 KizerSoze
 
15.09.13
21:51
Пробовал и без "формы".
В отладке после точки появляется контекстное меню.

ЭтаФорма.

В нем мне не удалось ничего найти.
5 KizerSoze
 
15.09.13
21:53
Пробовал в поисковике порыться, там тоже не удалось найти решение. Для упр форм мне не подходит.
6 mistеr
 
15.09.13
22:10
(0) Как насчет посмотреть в типовых? Формы подбора, например.
7 ПТР
 
15.09.13
22:16
УФ."Параметры" в процедуре ОткрытьФорму() используются  Событием "При создании на сервере". Там их и лови. Но можно использовать ВременноеХранилище. Перед открытием формы помести данные во ВременноеХранилище, а при открытии Получи данные из ВременногоХранилища.
8 KizerSoze
 
15.09.13
22:32
(6) посмотрел подбор в документе НачислениеЗП (ЗУП).
Решил задачу так

Пар=Новый Структура;
Пар.Вставить("ДокументОбъект",Ссылка);    ФормаВыбораПериода=ПолучитьФорму("ОбщаяФорма.ВыборПериода");
ФормаВыбораПериода.ДокументОбъект=Ссылка;
ФормаВыбораПериода.Открыть();

Предварительно у общей формы создал реквизит "ДокументОбъект". Результат передаю обратно через оповещение.
Спасибо за идею, Мистер.

(7) у меня обычное приложение, так что процедуры при создании на сервере там нет. С временным хранилищем уженет смысла связываться тк задача решена. В любом случае спасибо, ПТР.

Благодарю всех кто не прошел мимо.
9 zak555
 
15.09.13
22:35
для обычного приложения используют реквизиты

Форма.МойРеквизит1 = Параметр1;
10 KizerSoze
 
15.09.13
22:37
(9) Я уже так и сделал (см 6).
11 Prilepsky
 
15.09.13
23:04
(10) а что бы не использовать ДиалогРедактированияСтандартногоПериода ?
И не нужно свою форму выдумывать.
12 KizerSoze
 
16.09.13
00:17
(10) Prilepsky, это самое лучшее решение!!!
Спасибо!!!
Переписал код, удалил лишние объекты конфигурации.

Диалог = Новый ДиалогРедактированияСтандартногоПериода();
Диалог.Редактировать();
Запрос = Новый Запрос;
Запрос.Текст ="ВЫБРАТЬ...";
Запрос.УстановитьПараметр("КонецПериода", Диалог.Период.ДатаОкончания);
Запрос.УстановитьПараметр("НачалоПериода", Диалог.Период.ДатаНачала);
РезультатЗапроса = Запрос.Выполнить();
2 + 2 = 3.9999999999999999999999999999999...