|
Описание оповещения , обычные формы | ☑ | ||
---|---|---|---|---|
0
Likons
14.01.20
✎
13:06
|
День добрый , коллеги.
В очередной раз , прошу совета ) Есть внешняя обработка , в ней на форме есть таблица значений , с параметром ТолькоПросмотр. При клике на конкретную колонку я создаю документ определенного типа , но не записываю. Основная задача заключается в том , что бы определить записал ли пользователь этот документ или нет. Если записал - то необходимо перезаполнить таблицу значений в обработке. Пытаюсь организовать сие действо таким образом : // Создание документа ДокПеремещение = Документы.ПеремещениеТоваров.СоздатьДокумент(); ДокПеремещение.Заполнить(ТекДанные.СсылкаЗаказ); ФормаПеремещения = ДокПеремещение.ПолучитьФорму("ФормаДокумента"); ФормаОбработки = ОбработкаОбъект.ЭтотОбъект.ПолучитьФорму("Форма"); ОповещениеПриЗакрытии = Новый ОписаниеОповещения("ДляОповещения",ФормаОбработки,Параметры); ОткрытьФорму(ФормаПеремещения,,,,,,ОповещениеПриЗакрытии); // Создание документ // Обработка для оповещения Процедура ДляОповещения (Результат , Параметры) Экспорт ОбновитьТаблицы(); КонецПроцедуры // обработка для оповещения При попытке запуска , ошибок никаких не выдает , но и процедура ДляОповещения не отрабатывает ( Подскажите пожалуйста , что я не так делаю ( Спасибо ) |
11 39 |
||
1
Likons
14.01.20
✎
13:09
|
P.S.
Прошу прощения , в этой строке : ОповещениеПриЗакрытии = Новый ОписаниеОповещения("ДляОповещения",ФормаОбработки,Параметры); Нет , последнего аргумента "Параметры" , добовлял от безысходности ) она выглядит так : ОповещениеПриЗакрытии = Новый ОписаниеОповещения("ДляОповещения",ФормаОбработки); |
|||
2
RomaH
naïve
14.01.20
✎
13:13
|
ОповещениеПриЗакрытии - это свойство формы
|
4 5 |
||
3
polosov
14.01.20
✎
13:14
|
У формы документа есть событие "После записи"
Вставь туда Оповестить("МойПрефикс_ОбновитьТаблицуДокументов"); В обработке оповещения формы обработки лови оповещение и обновляй ТЧ |
4 |
||
4
Likons
14.01.20
✎
13:17
|
||||
5
RomaH
naïve
14.01.20
✎
13:18
|
6 |
|||
6
Likons
14.01.20
✎
13:23
|
(5) именно.
Т.е. если только что созданный документ был записан - то обновлять таблицу , если не был записан - не обновлять. Нужно , что бы обработка ждала закрытия формы. |
7 |
||
7
RomaH
naïve
14.01.20
✎
13:28
|
(6) должно работать
|
|||
8
RomaH
naïve
14.01.20
✎
13:31
|
ФормаОбработки = ОбработкаОбъект.ЭтотОбъект.ПолучитьФорму("Форма");
ОповещениеПриЗакрытии = Новый ОписаниеОповещения("ДляОповещения",ФормаОбработки,Параметры); вот это смущает ты пытаешься привязать процедуру хз откуда уверен что оно так должно работать? либо ОМ либо форма клиентского приложения вроде а у тебя ФормаОбработки какого типа? |
9 |
||
9
Likons
14.01.20
✎
14:05
|
(8) а что значит "тип формы обработки"?
Пробовал передавать так : ОповещениеПриЗакрытии = Новый ОписаниеОповещения("ДляОповещения",ОбработкаОбъект.ЭтотОбъект,Параметры); результат тот же ( |
|||
10
RomaH
naïve
14.01.20
✎
14:10
|
ЭтаФорма
|
13 |
||
11
FIXXXL
14.01.20
✎
14:14
|
(0) чем тебе должен помочь такой вызов? как ты проверишь факт записи документа?
|
12 14 |
||
12
RomaH
naïve
14.01.20
✎
14:18
|
(11) ДокПеремещение.Ссылка будет заполнена
|
14 |
||
13
Likons
14.01.20
✎
14:23
|
(10) так тоже пробовал передавать , результат тот же (
|
|||
14
Likons
14.01.20
✎
14:23
|
||||
15
RomaH
naïve
14.01.20
✎
14:29
|
мать, у тебя Вариант синтаксиса: По форме
|
16 |
||
16
Likons
14.01.20
✎
15:19
|
(15) погуглил на этот счет. А разве можно открыть форму несохраненного документа с вариантом синтаксиса "По имени" ?
пробую так : ПараметрыФормы = Новый Структура("Ключ", ДокПеремещение.Ссылка); ОткрытьФорму("Документ.ПеремещениеТоваров.Форма.ФормаДокумента",ПараметрыФормы,,,,,ОповещениеПриЗакрытии); но ссылки на документ на момент открытия у меня то нет еще ( |
18 |
||
17
RomaH
naïve
14.01.20
✎
15:28
|
... в порядке бреда
ДокПеремещение = Документы.ПеремещениеТоваров.СоздатьДокумент(); ДокПеремещение.Заполнить(ТекДанные.СсылкаЗаказ); дальше записать и запомнить версию в параметрах в ключ передать ссылку после закрытия сравнить версию - если другая - значит записан если та же - удалить но это криво-косо и костыли надо смотреть в сторону открытия "объекта", но это вроде никак |
|||
18
RomaH
naïve
14.01.20
✎
15:29
|
(16) ну ты же открыл
|
19 20 |
||
19
Likons
14.01.20
✎
15:33
|
(18) получилось таким образом :
ДокПеремещение = Документы.ПеремещениеТоваров.СоздатьДокумент(); ДокПеремещение.Заполнить(ТекДанные.СсылкаЗаказ); ФормаПеремещения = ДокПеремещение.ПолучитьФорму("ФормаДокумента"); ФормаОбработки = ОбработкаОбъект.ЭтотОбъект.ПолучитьФорму("Форма"); ОповещениеПриЗакрытии = Новый ОписаниеОповещения("ДляОповещения",ЭтаФорма); ПараметрыФормы = Новый Структура("Ключ", ДокПеремещение); ОткрытьФорму("Документ.ПеремещениеТоваров.Форма.ФормаДокумента",ПараметрыФормы,,,,,ОповещениеПриЗакрытии); Но , процедура "ДляОповещения" все равно не отработала ( "дальше записать и запомнить версию" - не вариант , часто будут случаи , когда записывать документ не нужно вовсе. |
25 |
||
20
polosov
14.01.20
✎
15:33
|
(18) Рисуй свою форму документа во внешней обработке. Пусть с ней пользователь работает, а ты документы будешь создавать сам.
|
21 |
||
21
Likons
14.01.20
✎
15:50
|
(20) тоже не вариант , к сожалению ( на форме документа много всяких нужных неэкспортных штук (
|
|||
22
Likons
15.01.20
✎
10:59
|
я тут не давно , не знаю , надо ли апать темы , на всякий случа АП)
|
|||
23
pechkin
15.01.20
✎
11:01
|
юзай владельца и обработку выбора.
оповещения не работают в ОФ |
24 36 37 |
||
24
Ёпрст
15.01.20
✎
11:05
|
(23) работают
|
|||
25
RomaH
naïve
15.01.20
✎
11:31
|
(19) фишка в том, что 1С не озаботились написать обработку ошибок как для ОписаниеОповещения так и для ОткрытьФорму
ОповещениеПриЗакрытии = Новый ОписаниеОповещения("ДляОповещения",ЭтаФорма); у тебя тип не верный в первом параметре |
26 29 31 |
||
26
RomaH
naïve
15.01.20
✎
11:33
|
+(25) - во втором параметре
|
27 |
||
27
pechkin
15.01.20
✎
11:35
|
(26) а какой должен быть 2 параметр?
|
28 |
||
28
RomaH
naïve
15.01.20
✎
11:35
|
а конфу править нельзя?
(27) а СП открой и почитай |
34 |
||
29
RomaH
naïve
15.01.20
✎
11:36
|
+(25)... хотя... а зачем ты обработку на ОФ делаешь? - делай на УФ
|
34 |
||
30
Ёпрст
15.01.20
✎
11:47
|
Если открываемая форма документа - ОФ, то ты сам должен озаботится, и в ней ВыполнитьОбработкуОповещения сделать..
Хотя, это всё в ОФ не нужно |
|||
31
Likons
15.01.20
✎
11:56
|
(25) а какой нужен ? Если смущает , что я передаю строку - так это норм , так и должно быть , если не ошибаюсь. Или о чем речь ?
|
|||
32
RomaH
naïve
15.01.20
✎
11:57
|
ТипЗнч(ЭтаФорма) Форма Тип
|
|||
33
RomaH
naïve
15.01.20
✎
11:57
|
а должно быть?
|
35 |
||
34
Likons
15.01.20
✎
11:58
|
||||
35
Likons
15.01.20
✎
11:59
|
(33) должен быть модуль , наверное , но в типовых примерах видел , что передавали именно обьект (
Как тогда передать именно модуль ?( |
|||
36
Likons
15.01.20
✎
12:00
|
(23) а есть примеры ? или что погуглить ?
|
37 |
||
37
pechkin
15.01.20
✎
12:02
|
||||
38
RomaH
naïve
15.01.20
✎
12:08
|
должно быть одно из трех
"ФормаКлиентскогоПриложения" <> "Форма" ... ну и далее по СП |
|||
39
ptiz
15.01.20
✎
12:43
|
(0) ОбработкаЗаписиНовогоОбъекта() - смотрел?
|
|||
40
ptiz
15.01.20
✎
12:45
|
ФормаПеремещения = ДокПеремещение.ПолучитьФорму("ФормаДокумента", ЭтаФорма);
... и лови в форме в обработчике ОбработкаЗаписиНовогоОбъекта() |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |