Вход | Регистрация
 

Описание оповещения , обычные формы

Описание оповещения , обычные формы
Я
   Likons
 
14.01.20 - 13:06
День добрый , коллеги.
В очередной раз , прошу совета )

Есть внешняя обработка , в ней на форме есть таблица значений , с параметром ТолькоПросмотр. При клике на конкретную колонку я создаю документ определенного типа , но не записываю.
Основная задача заключается в том , что бы определить записал ли пользователь этот документ или нет. Если записал - то необходимо перезаполнить таблицу значений в обработке.
Пытаюсь организовать сие действо таким образом :

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

// Обработка для оповещения

Процедура ДляОповещения (Результат , Параметры) Экспорт
    ОбновитьТаблицы();    
КонецПроцедуры

// обработка для оповещения

При попытке запуска , ошибок никаких не выдает , но и процедура ДляОповещения не отрабатывает (
Подскажите пожалуйста , что я не так делаю (
Спасибо )
   Likons
 
1 - 14.01.20 - 13:09
P.S.
Прошу прощения , в этой строке :
ОповещениеПриЗакрытии = Новый ОписаниеОповещения("ДляОповещения",ФормаОбработки,Параметры); 
Нет , последнего аргумента "Параметры" , добовлял от безысходности ) она выглядит так :
ОповещениеПриЗакрытии = Новый ОписаниеОповещения("ДляОповещения",ФормаОбработки);
   RomaH
 
2 - 14.01.20 - 13:13
ОповещениеПриЗакрытии - это свойство формы
   polosov
 
3 - 14.01.20 - 13:14
У формы документа есть событие "После записи"
Вставь туда 
Оповестить("МойПрефикс_ОбновитьТаблицуДокументов");

В обработке оповещения формы обработки лови оповещение и обновляй ТЧ
   Likons
 
4 - 14.01.20 - 13:17
(2) (3) Думал об этом , но , к сожалению , нет возможности менять конфигурацию (
   RomaH
 
5 - 14.01.20 - 13:18
+(2)  - не угадал

процедура должна отработать, но только после закрытия открытой формы?
   Likons
 
6 - 14.01.20 - 13:23
(5) именно.
Т.е. если только что созданный документ был записан - то обновлять таблицу , если не был записан - не обновлять.
Нужно , что бы обработка ждала закрытия формы.
   RomaH
 
7 - 14.01.20 - 13:28
(6) должно работать
   RomaH
 
8 - 14.01.20 - 13:31
ФормаОбработки = ОбработкаОбъект.ЭтотОбъект.ПолучитьФорму("Форма");
            ОповещениеПриЗакрытии = Новый ОписаниеОповещения("ДляОповещения",ФормаОбработки,Параметры); 

вот это смущает
ты пытаешься привязать процедуру хз откуда 

уверен что оно так должно работать? 

либо ОМ либо форма клиентского приложения вроде 

а у тебя ФормаОбработки  какого типа?
   Likons
 
9 - 14.01.20 - 14:05
(8) а что значит "тип формы обработки"?
Пробовал передавать так :
ОповещениеПриЗакрытии = Новый ОписаниеОповещения("ДляОповещения",ОбработкаОбъект.ЭтотОбъект,Параметры); 
результат тот же (
   RomaH
 
10 - 14.01.20 - 14:10
ЭтаФорма
   FIXXXL
 
11 - 14.01.20 - 14:14
(0) чем тебе должен помочь такой вызов? как ты проверишь факт записи документа?
   RomaH
 
12 - 14.01.20 - 14:18
(11) ДокПеремещение.Ссылка будет заполнена
   Likons
 
13 - 14.01.20 - 14:23
(10) так тоже пробовал передавать , результат тот же (
   Likons
 
14 - 14.01.20 - 14:23
(11) (12) да , как то так )
   RomaH
 
15 - 14.01.20 - 14:29
мать, у тебя Вариант синтаксиса: По форме
   Likons
 
16 - 14.01.20 - 15:19
(15) погуглил на этот счет. А разве можно открыть форму несохраненного документа с вариантом синтаксиса "По имени" ?
пробую так :
                        ПараметрыФормы = Новый Структура("Ключ", ДокПеремещение.Ссылка);
            ОткрытьФорму("Документ.ПеремещениеТоваров.Форма.ФормаДокумента",ПараметрыФормы,,,,,ОповещениеПриЗакрытии);
но ссылки на документ на момент открытия у меня то нет еще (
   RomaH
 
17 - 14.01.20 - 15:28
... в порядке бреда
ДокПеремещение = Документы.ПеремещениеТоваров.СоздатьДокумент();
ДокПеремещение.Заполнить(ТекДанные.СсылкаЗаказ); 

дальше записать и запомнить версию

в параметрах в ключ передать ссылку

после закрытия сравнить версию - если другая - значит записан
если та  же - удалить

но это криво-косо и костыли
надо смотреть в сторону открытия "объекта", но это вроде никак
   RomaH
 
18 - 14.01.20 - 15:29
(16) ну ты же открыл
   Likons
 
19 - 14.01.20 - 15:33
(18) получилось таким образом :

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

Но , процедура "ДляОповещения" все равно не отработала (

"дальше записать и запомнить версию" - не вариант , часто будут случаи , когда записывать документ не нужно вовсе.
   polosov
 
20 - 14.01.20 - 15:33
(18) Рисуй свою форму документа во внешней обработке. Пусть с ней пользователь работает, а ты документы будешь создавать сам.
   Likons
 
21 - 14.01.20 - 15:50
(20) тоже не вариант , к сожалению ( на форме документа много всяких нужных неэкспортных штук (
   Likons
 
22 - 15.01.20 - 10:59
я тут не давно , не знаю , надо ли апать темы , на всякий случа АП)
   pechkin
 
23 - 15.01.20 - 11:01
юзай владельца и обработку выбора.
оповещения не работают в ОФ
   Ёпрст
 
24 - 15.01.20 - 11:05
(23) работают
   RomaH
 
25 - 15.01.20 - 11:31
(19) фишка в том, что 1С не озаботились написать обработку ошибок как для ОписаниеОповещения так и для ОткрытьФорму

ОповещениеПриЗакрытии = Новый ОписаниеОповещения("ДляОповещения",ЭтаФорма);

у тебя тип не верный в первом параметре
   RomaH
 
26 - 15.01.20 - 11:33
+(25) - во втором параметре
   pechkin
 
27 - 15.01.20 - 11:35
(26) а какой должен быть 2 параметр?
   RomaH
 
28 - 15.01.20 - 11:35
а конфу править нельзя?
(27) а СП открой и почитай
   RomaH
 
29 - 15.01.20 - 11:36
+(25)... хотя... а зачем ты обработку на ОФ делаешь? - делай на УФ
   Ёпрст
 
30 - 15.01.20 - 11:47
Если открываемая форма документа - ОФ, то ты сам должен озаботится, и в ней ВыполнитьОбработкуОповещения сделать..
Хотя, это всё в ОФ не нужно
 
 Рекламное место пустует
   Likons
 
31 - 15.01.20 - 11:56
(25) а какой нужен ? Если смущает , что я передаю строку - так это норм , так и должно быть , если не ошибаюсь. Или о чем речь ?
   RomaH
 
32 - 15.01.20 - 11:57
ТипЗнч(ЭтаФорма)    Форма    Тип
   RomaH
 
33 - 15.01.20 - 11:57
а должно быть?
   Likons
 
34 - 15.01.20 - 11:58
(28) (29) Конфу править , к сожалению нельзя ( а можно делать обработку на УФ , если конфа на ОФ и платформа 8.2 ?
   Likons
 
35 - 15.01.20 - 11:59
(33) должен быть модуль , наверное , но в типовых примерах видел , что передавали именно обьект (
Как тогда передать именно модуль ?(
   Likons
 
36 - 15.01.20 - 12:00
(23) а есть примеры ? или что погуглить ?
   pechkin
 
37 - 15.01.20 - 12:02
(36) см (23)
   RomaH
 
38 - 15.01.20 - 12:08
должно быть одно из трех
"ФормаКлиентскогоПриложения" <> "Форма"
... ну и далее по СП
   ptiz
 
39 - 15.01.20 - 12:43
(0) ОбработкаЗаписиНовогоОбъекта() - смотрел?
   ptiz
 
40 - 15.01.20 - 12:45
ФормаПеремещения = ДокПеремещение.ПолучитьФорму("ФормаДокумента", ЭтаФорма);
...
и лови в форме в обработчике ОбработкаЗаписиНовогоОбъекта()


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.