• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

Помогите передать контекст формы

  • Автор темы shane13
  • Дата начала
S

shane13

Дело обстоит так: Есть справочник Объекты, в котором при нажатии на кнопку "Новый контакт", открывается форма списка справочника "Контакты". При этом из спр.Объекты передается контекст в Контакты так:

ПараметрПодбора = СоздатьОбъект("СписокЗначений");
ПараметрПодбора.ДобавитьЗначение(ТекущийЭлемент(), "Объект");
ПараметрПодбора.ДобавитьЗначение(Область, "Область");

В справочнике контакты я принимаю контекст так:

Процедура ПриОткрытии()
Параметры = Форма.Параметр;
Если ТипЗначенияСтр(Параметры) = "СписокЗначений" Тогда
Объект = Параметры.Получить("Объект");
Область = Параметры.Получить("Область");
КонецЕсли;
КонецПроцедуры

Всё нормально принимается. И я записываю принятые значения куда мне надо. Вопрос в следующем:
Если я хочу создать новый элемент в справочнике Контакты (редактируется только в диалоге), то как мне получить этот же контекст в форме элемента???

Фишка в том, что новый элемент создается так:
Процедура ВводНового(Ск)
глПриВводеНового(Контекст, Ск);
КонецПроцедуры,
т.е. фактического открытия формы нет... Как же мне передать туда параметры??? ПОМОГИТЕ!!!!
 
P

puh14

переменную в начале модуля формы и она у тебя будет видна во всех процедурах формы. Типа

перем параметр;

Процедура ПриОТкрытии()
параметр = Форма.Параметр;
КонецПроцедуры

процедура ВВодНового()
Если ПустоеЗначение(параметр) = 0 Тогда
КонецЕсли;
КонецПроцедуры
 
S

shane13

переменную в начале модуля формы и она у тебя будет видна во всех процедурах формы. Типа

перем параметр;

Процедура ПриОТкрытии()
параметр = Форма.Параметр;
КонецПроцедуры

процедура ВВодНового()
Если ПустоеЗначение(параметр) = 0 Тогда
КонецЕсли;
КонецПроцедуры

Это понятно, так и сделано. Только формы то разные. Мне нужно в Форме Элемента получить параметры, переданные в Форму Списка...
 
P

puh14

Тогда через переменную в глобальном модуле с очищением при закрытии форм.
 
S

shane13

Не получается тоже... Я делаю так:
В ФормеСписка ПриОткрытии()
Параметры = Форма.Параметр;
МойКонтекст = Параметры; (МойКонтекст - глобальная переменная)

Далее в ФормеЭлемента при открытии присваиваю значение МойКонтекст нужной мне переменной...
Что-то не так??
 
P

puh14

ну не знаю - у меня всё работает . вот тебе пример - по красной кнопке в справочнике товары

"Далее в ФормеЭлемента при открытии присваиваю значение МойКонтекст нужной мне переменной..." - а если в процедуре вводНового попробовать? через глобальную всё нормально епередается.
 

Вложения

  • 1.rar
    20,8 КБ · Просмотры: 109
S

shane13

Спасибо! Действительно получилось. Просто я написала много лишнего и забыла убрать... оно-то всё и портило!!
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!