Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
13 дек 2024, 03:04

Изменение передаваемого параметра на форму 1с

Автор esscargoott, 15 мар 2024, 11:49

0 Пользователей и 1 гость просматривают эту тему.

esscargoott

подскажите а можно при открытии формы передавать разные параметры и менять их в открываемой форме. Просто передаю параметр на форму и могу ее использовать только в приСозданииНаСервере. создал реквизит, занес параметр туда, но при повторном открытии формы параметр может быть другим, как изменить его при повторном открытии формы???

LexaK

esscargoott, обычно так ни кто не делает - не меняют переданные в форму параметры!
описывайте подробнее что за параметры, для чего они, как вы их используете или планируете использовать и т.д.
возможно ваша задача решается другим способом
если помогло нажмите: Спасибо!

esscargoott

LexaK, у меня программно создаются кнопки которые открывают обработчик, при нажатии на кнопку передается название курса (на кнопке написано название), чтобы потом пихнуть его в запрос и вывести вопросы только для этого курса. при нажатии на другую кнопку должен открываться этот же обработчик но вопросы должны быть по другому курсу. у меня есть обработка для каждой кнопки но мне кажется это не верно. если что то непонятно я готов пояснить. помогите только пожалуйста :trhregerhg:

fruitella

Если правильно понял суть вопроса. Открыл форму с одними параметрами, нужно повторно открыть эту же форму, но передать другие параметры при условии, что эта форма была уже открыта.
Если так, то можно сделать через
Оповестить("ИмяТвоегоСобытия", Параметры); //Имя события должно быть уникальным, чтобы не было конфликтов при вызове из других форм, включая типовые оповещения.

В этой уже открытой форме обрабатываешь событие "ОбработкаОповещения" и делаешь проверку.

&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)

Если ИмяСобытия = "ИмяТвоегоСобытия" Тогда //Делаешь условие на проверку, что это именно твое событие
//Перезаполняем реквизиты новыми параметрами;
  МойРеквизит = Параметр; - В параметры можешь передавать структуру, массив и тд.
КонецЕсли;

КонецПроцедуры;

esscargoott

fruitella, да, вы так поняли вопрос. а подскажите первый кусок кода надо вставить туда где я открываю другую форму (или в при выполнении на сервере или при открытии), а второй в форму которая открывается?

fruitella

Оповестить(); пишешь в основной форме, откуда мы собираемся передавать повторно данные. - Вызов на клиенте
Можешь добавить дополнительный реквизит с булевым типом на основную форму, откуда ты открываешь другие формы перед тем как повторно передавать нужные данные. Назвать его как-нибудь типа ФормаУжеБылаОткрыта или что-то в этом роде.

Делаешь проверку перед повторной передачей данных, типа:
Если ФормаУжеБылаОткрыта Тогда // - Передаем повторно нужные нам данные
  Оповестить("НазваниеТвоегособытия", ТвоиПараметрыКоторыеТыСобираешьсяПовторноПередавать); //Любой тип данных, хоть ссылку
КонецЕсли;

Во второй форме, которая уже открыта, в которой тебе надо перезаписать реквизиты обрабатываешь событие, оно прям так и называется "ОбработкаОповещения" в нем делаешь проверку.

&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
  Если ИмяСобытия= "НазваниеТвоегособытия" Тогда
     //Заполняем нужные нам реквизиты реквизиты // Они в параметрах, это второй аргумент в этой процедуре он так и называется [b]Параметр[/b]
  КонецЕсли;
КонецПроцедуры;

Надеюсь доступно объяснил...

esscargoott


Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск