|
передача параметров из формы в форму | ☑ | ||
---|---|---|---|---|
0
етк
01.10.12
✎
01:31
|
Нужно организовать некоторую интерактивность обычных форм.
Есть форма документа, при определенных условиях из нее нужно вызывать другую форму, для выбора некоторых параметров и\или опций. вторая форма должна получить ссыль на текущий документ, а потом в форму документа вернуть установленные параметры и полученные данные. форму открываю так: форма=документы.приход.получитьформу("МояФорма"); форма.открытьмодально(); а как запихнуть в открытую форму ссыль не ясно... про возвращение данных уже и не говорю.. подскажите как такое реализовать. по возможности простым языком =) |
|||
1
Rusty Nail
01.10.12
✎
01:45
|
>>подскажите как такое реализовать. по возможности простым языком:
Глобальный контекст.ПолучитьФорму (Global context.GetForm) Глобальный контекст (Global context) ПолучитьФорму (GetForm) Синтаксис: ПолучитьФорму(<ИмяФормы>, <Параметры>, <Владелец>, <Уникальность>, <Окно>) Параметры: <ИмяФормы> (обязательный) Тип: Строка. Имя формы. Образуется как полный путь к объекту метаданных Форма (например, "Справочник.Контрагенты.Форма.ФормаОбъекта", "ОбщаяФорма.ФормаСохраненияФайла") или как полный путь к прикладному объекту, дополненный именем формы по умолчанию (например, "Справочник.Товары.ФормаВыбора"). Имена форм по умолчанию: ФормаОбъекта (ObjectForm) - форма объекта по умолчанию; ФормаГруппы (FolderForm) - форма группы по умолчанию; ФормаЗаписи (RecordForm) - форма записи регистра по умолчанию; ФормаСписка (ListForm) - форма списка по умолчанию; ФормаВыбора (ChoiceForm) - форма выбора по умолчанию; ФормаВыбораГруппы (FolderChoiceForm) - форма выбора группы по умолчанию; ФормаКонстант (ConstantsForm) - форма констант по умолчанию для обычного режима, установленная как форма констант для конфигурации; Форма (Form) - форма константы, отчета и обработки по умолчанию; ОбщаяФорма (CommonForm) - общая форма; ФормаНастроек (SettingsForm) - форма настроек отчета по умолчанию; ФормаЗагрузки (LoadForm) - форма загрузки настроек; ФормаСохранения (SaveForm) - форма сохранения настроек; ФормаВарианта (VariantForm) - форма редактирования варианта отчета; ФормаЗагрузкиПользовательскихНастроекОтчетов (ReportUserSettingsLoadForm) - форма загрузки настроек отчета; ФормаСохраненияПользовательскихНастроекОтчетов (ReportUserSettingsSaveForm) - форма сохранения настроек отчета; ФормаЗагрузкиВариантовОтчетов (ReportVariantsLoadForm) - форма загрузки варианта отчета; ФормаСохраненияВариантовОтчетов (ReportVariantsSaveForm) - форма сохранения варианта отчета; ФормаЗагрузкиНастроекДанныхФорм (FormDataSettingsLoadForm) - форма загрузки настроек данных форм; ФормаСохраненияНастроекДанныхФорм (FormDataSettingsSaveForm) - форма сохранения настроек данных форм. Например, для получения общей формы "ОбщиеНастройки" следует в модуле написать код: Форма = ПолучитьФорму("ОбщаяФорма.ОбщиеНастройки"); Имена ФормаЗагрузкиПользовательскихНастроекОтчетов, ФормаСохраненияПользовательскихНастроекОтчетов, ФормаЗагрузкиВариантовОтчетов, ФормаСохраненияВариантовОтчетов, ФормаЗагрузкиНастроекДанныхФорм и ФормаСохраненияНастроекДанныхФорм нужно использовать без имени объектов метаданных. Для внешних отчетов и обработок имя формы задается следующим образом: ВнешнийОтчет.<имя отчета>.Форма.<имя формы>; ВнешнийОтчет.<имя отчета>.<имя стандартной формы>; ВнешняяОбработка.<имя обработки>.Форма.<имя формы>; ВнешняяОбработка.<имя обработки>.<имя стандартной формы>. При этом внешний отчет или обработка должны быть предварительно зарегистрированы в системе. <Параметры> (необязательный) Тип: Структура. Параметры формы. Ключ структуры - имя параметра, а значение - значение параметра формы. Имя элемента должно совпадать с именем параметра структуры. П = Новый Структура("Ключ", Поставщик); Форма = ПолучитьФорму("Справочник.Контрагенты.ФормаОбъекта", П); Форма.Открыть(); <Владелец> (необязательный) Владелец формы - форма или элемент управления другой формы. <Уникальность> (необязательный) Тип: Произвольный. В данном параметре может быть задан некоторый ключ, значение которого будет использоваться для поиска уже открытых форм. Если будет найдена форма с таким же ключом уникальности, вместо открытия новой формы будет активизирована найденная форма. Ложь - искать форму с ключом уникальности по умолчанию, Истина - не искать форму вообще, любое другое значение устанавливает ключ уникальности, по которому будет произведен поиск. Значение по умолчанию: Ложь <Окно> (необязательный) Тип: ОкноКлиентскогоПриложения; ВариантОткрытияОкна. Окно приложения, в котором будет открыта форма. Применимо только для управляемой формы. Окном может быть только основное окно приложения или вспомогательное окно формы. Если указан тип ВариантОткрытияОкна, окно формы будет создано согласно выбранному варианту. Возвращаемое значение: Тип: Форма; УправляемаяФорма. Описание: Получает форму или управляемую форму. Перед получением осуществляется поиск уже открытой такой же формы. Поиск осуществляется по типу формы, значениям ключевых параметров формы, владельцу формы, пользовательскому ключу уникальности. Если в параметре <Уникальность> передано значение Истина, то поиск уже открытых форм не осуществляется. Доступность: Тонкий клиент, веб-клиент, толстый клиент. Примечание: В тонком и веб-клиенте получает только управляемую форму. Обычные формы внешних обработок не поддерживаются. Если при получении обычной формы в параметре <ИмяФормы> указано не стандартное имя формы, передаваемые параметры не обрабатываются. В процессе выполнения может быть несколько обращений к серверу. Часть из них кэшируются. Как минимум одно обращение к серверу есть всегда и оно не кэшируется. Кэширование зависит от версии платформы и версии конфигурации в целом. Если установлена низкая скорость соединения и не указывается текущая строка, то кэшируется форма выбора. Очистка кэша осуществляется с периодичностью в 20 мин. Удаляются формы, которые не использовались в этот период времени. См. также: Глобальный контекст, метод ОткрытьФорму Глобальный контекст, метод ОткрытьФормуМодально Глобальный контекст, метод ПолучитьОбщуюФорму |
|||
2
kot_bcc
01.10.12
✎
01:58
|
А теперь "по возможности простым языком" )))
У каждой формы есть реквизиты формы (в окне редактора формы закладка "Реквизиты"). Также доступны (после "ПолучитьФорму") на запись все переменные модуля формы, объявленные с постфиксом "Экспорт". Этого вполне достаточно, чтобы передать любые значения. Пример: форма.ПараметрыФормы = новый структура("ВызывающаяФорма,ВозвращаемыеЗначения", ЭтаФорма, неопределено); здесь "ПараметрыФормы" - реквизит или переменная с постфиксом "Экспорт" формы "МояФорма" произвольного типа, остальное тривиально, надеюсь. |
|||
3
Web00001
01.10.12
✎
05:17
|
8.1 или 8.2?
|
|||
4
Web00001
01.10.12
✎
05:44
|
Откуда вызываешь?
(0) форму открываю так: форма=документы.приход.получитьформу("МояФорма"); форма.открытьмодально(); Зачем ты это делаешь? "МояФорма" это форма документа или просто произвольная? |
|||
5
kosts
01.10.12
✎
06:23
|
форма=документы.приход.получитьформу<Выбора>("МояФорма");
Значение = форма.открытьмодально(); Если Значение <> Неопределено Тогда |
|||
6
kosts
01.10.12
✎
06:35
|
Но модальные окна не есть хорошо. Лучше пользоваться "обработкой выбора".
Как-то так примерно.
Процедура НачисленияОбработкаВыбора повешена на событие ТЧ обработка выбора. |
|||
7
Web00001
01.10.12
✎
07:10
|
(6) мысль в том как я понимаю, что нельзя пользоваться модальными окнами, просто если хочешь получить результат ввода пользователя, а пользоваться нужно тогда, когда нет возможности продолжить работу обработчика до тех пор пока пользователь не сделает какой то выбор.
|
|||
8
kosts
01.10.12
✎
07:19
|
(7) Ну да
|
|||
9
Web00001
01.10.12
✎
07:24
|
(6) я не српашивал, я поправил ))) модальные окна это не "не есть хорошо", это вообще не хорошо, не плохо, у них просто своя специфика.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |