Имя: Пароль:
1C
1С v8
Не срабатывает оповещение
0 PiotrLoginov
 
27.02.16
13:26
Здрасте всем.
Самописная конфигурация (такси). Свежий релиз платформы.


Код:

&НаКлиенте
МояПроцедура(ТекущиеДанныеНоменклатура)
ОписаниеОповещения = Новый ОписаниеОповещения("ПриЗакрытииФормы", ЭтотОбъект);
ПоказатьВопрос(ОписаниеОповещения, "Вопрос ?", РежимДиалогаВопрос.ДаНет);
КонецПроцедуры

&НаКлиенте
Процедура ПриЗакрытииФормы(РезультатЗакрытия, ДополнительныеПараметры) Экспорт
<...>
КонецПроцедуры

- Отрабатывает без проблем. После закрытия диалогового окна вызывается процедура ПриЗакрытииФормы


А вот код:

&НаКлиенте
МояПроцедура(ТекущиеДанныеНоменклатура)
ОписаниеОповещения = Новый ОписаниеОповещения("ПриЗакрытииФормы", ЭтотОбъект);
ПоказатьЗначение(ОписаниеОповещения, ТекущиеДанныеНоменклатура);
КонецПроцедуры

&НаКлиенте
Процедура ПриЗакрытииФормы(РезультатЗакрытия, ДополнительныеПараметры) Экспорт
<...>
КонецПроцедуры

- Показывает форму номенклатуры, но после закрытия номенклатуры не вызывает процедуру ПриЗакрытииФормы (сообщений об ошибках нет)

ЧЯДНТ ?  Копаюсь сейчас в своих ранее написанных обработках, где использовал ОписаниеОповещения. Все делаю как всегда, но результата нет.
1 RomanYS
 
27.02.16
13:29
Параметры:

<ОписаниеОповещенияОЗавершении> (необязательный)

Тип: ОписаниеОповещения.
Содержит описание процедуры, которая будет вызвана после закрытия окна ввода значения с параметром <ДополнительныеПараметры>, который содержит значение, указанное при создании объекта ОписаниеОповещения.
Если параметр не указан, то по завершении никакая процедура вызвана не будет.
2 PiotrLoginov
 
27.02.16
14:01
Ну так я же указал этот параметр в ПоказатьЗначение(). Первый параметр в ПоказатьЗначение - это как раз ОписаниеОповещения

Или я еще что-то упустил ?
3 PiotrLoginov
 
27.02.16
15:07
ап
4 PiotrLoginov
 
27.02.16
15:29
Почитал стандарты:
http://its.1c.ru/db/v8std#content:2149184053:hdoc

Ну соответствует мой нехитрый код написанному там. Так что же не срослось?
5 Fragster
 
гуру
27.02.16
16:19
ПоказатьЗначение плохо работает со значениями ссылочного типа. Надо через ОткрытьФорму("....ФормаОбъекта", Новый Структура("Ключ", Ссылка),.....,ОписаниеОповещения,...)
6 Fragster
 
гуру
27.02.16
16:19
можешь еще на v8@1c.ru написать, может проклевать им мозг можно будет...
7 RomanYS
 
27.02.16
16:49
(2) прочитай еще раз СП (в (1) ответ). Не так то, что у твоего оповещения нет <ДополнительныеПараметры>.
8 Fragster
 
гуру
27.02.16
17:06
(7) ничоси! правда, что ли? может все-таки речь не про параметр конструктура оповещения, а про сам параметр оповещения?
9 RomanYS
 
27.02.16
17:23
(8) Это ты так фразу "указанное при создании объекта ОписаниеОповещения" проинтерпретировал?
10 Fragster
 
гуру
27.02.16
17:26
(9) эта фраза относится к параметру, передаваемому в процедуру. к чему относится "параметр" в "Если параметр не указан, то по завершении никакая процедура вызвана не будет." - не очевидно. может - к конструктору оповещения, может к параметру-оповещению
11 RomanYS
 
27.02.16
17:28
(10) Что такое параметр-оповещение в данном контексте, выбранное значение?
12 Fragster
 
гуру
27.02.16
17:33
(11)

Параметры:

<ОписаниеОповещенияОЗавершении> (необязательный)
...
13 RomanYS
 
27.02.16
17:40
Я не понимаю в чем логика разработчиков платформы (задавать параметр в конструкторе оповещения). Однако моя интерпретация СП рабтает:

&НаКлиенте
Процедура Команда1(Команда)
    ОписаниеОповещения = Новый ОписаниеОповещения("ПриЗакрытииФормы", ЭтотОбъект, "КакойТоПараметр");
    ПоказатьЗначение(ОписаниеОповещения, "тест");
КонецПроцедуры

&НаКлиенте
Процедура ПриЗакрытииФормы(РезультатЗакрытия) Экспорт
    Сообщить("Работает");
КонецПроцедуры
14 Fragster
 
гуру
27.02.16
17:42
(13) попробуй и без параметра. а потом попробуй со ссылочным значением.
15 RomanYS
 
27.02.16
17:44
(14) без параметра тоже вызывается (РезультатЗакрытия = Неопределено)
16 Fragster
 
гуру
27.02.16
17:45
(15) вот именно. а теперь попробуй не со строкой, а со значением ссылочного типа.