Имя: Пароль:
1C
1С v8
Передача параметров через метод Оповестить
0 creator_mc
 
16.09.15
11:49
Можно ли произвести сохранение полученных данных через метод "Оповестить" ?


в первой форме

&НаКлиенте
Процедура ПараметрыНоменклатурыПриИзменении(Элемент)
    Оповестить("НужныйАртикул",Объект.Артикул,ЭтаФорма);
КонецПроцедуры


во второй форме

&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
Если ИмяСобытия = "НужныйАртикул"  Тогда
   Объект.АртикулНоменклатуры = Параметр
КонецЕсли
КонецПроцедуры
1 Остап Сулейманович
 
16.09.15
11:52
(0) Можно. Только Оповестить живет исключительно на Клиенте и позволит передавать только данные доступные на нем же. Можно передать ссылку. Но нельзя передать объект.
2 SeraFim
 
16.09.15
11:53
Разрешаю
3 creator_mc
 
16.09.15
11:54
(1)сохранить то нужно только переданное значение

>Можно передать ссылку.
пример можете скинуть ?
4 Остап Сулейманович
 
16.09.15
11:57
(3) Так у тебя у самого вполне рабочий пример. Зачем тебе еще?
5 SeraFim
 
16.09.15
11:58
кстати, важный момент, обжегся в начале изучения 1С по незнанию.
Не забудь, что иногда (зависит от задачи) нужно проконтролировать, в какой форме должно сработать оповещение.

К примеру, будет у тебя открыто 3 формы №2. Так вот при оповещении из формы №1 оповестятся ВСЕ 3 формы №2.
6 creator_mc
 
16.09.15
12:01
(5) Как этого избежать ?
Есть ли варианты ?
7 SeraFim
 
16.09.15
12:11
(6) зависит от задачи.
Вообще можно какой-то ключ таскать. То есть при открытии формы1 из формы 2 мы передаем ключ. Потом при оповещении форма1 передает этот же ключ и все формы2 проверяют - тот ли это ключ. Так определяется та самая форма2, которая открыла форму1.

Но вообще оповещение создано немножко для других целей. Для передачи каких-то значений между формами есть обработчики выбора. Моя задачка, к примеру, правильно решалась именно через выбор.
8 creator_mc
 
16.09.15
12:35
(7)Метод ОбработкаВыбора не подходит между двумя справочниками с разными формами. Пришлось пробовать через метод Оповестить.