![]() |
![]() |
![]() |
|
ПодпискаНаСобытие и запись РС в открытой форме справочника | ☑ | ||
---|---|---|---|---|
0
John83
18.05.16
✎
15:40
|
УТ 10.3
Делаю подписку на событие ПриЗаписи договора контрагента. В подписке записываются данные в РС ЗначенияСвойствОбъекта, но почему-то в открытой форме договора запись не происходит, если же сделать запись из списка, то проблем нет. От чего так? |
|||
1
John83
18.05.16
✎
15:40
|
ПередЗаписью та же фигня
|
|||
2
John83
18.05.16
✎
15:41
|
вот код
Если ЗначениеЗаполнено(Источник.ОсновнойМенеджер) Тогда ОсновнойМенеджер = Источник.ОсновнойМенеджер; Иначе ОсновнойМенеджер = Источник.Владелец.ОсновнойМенеджерПокупателя; КонецЕсли; ПВХ_ОсновнойМенеджер = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Основной менеджер"); НаборЗаписей = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Объект.Установить(Источник.Ссылка); НаборЗаписей.Отбор.Свойство.Установить(ПВХ_ОсновнойМенеджер); //НаборЗаписей.Очистить(); Запись = НаборЗаписей.Добавить(); Запись.Объект = Источник.Ссылка; Запись.Свойство = ПВХ_ОсновнойМенеджер; Запись.Значение = ОсновнойМенеджер; НаборЗаписей.Записать(); |
|||
3
aleks_default
18.05.16
✎
15:45
|
Запись-то происходит, отображение - нет.
|
|||
4
John83
18.05.16
✎
16:07
|
(3) в списке РС тоже без изменений
|
|||
5
John83
18.05.16
✎
16:48
|
если этот же код прописать в форме ПриЗаписи, то все работает
какие будут мысли? |
|||
6
Nuobu
18.05.16
✎
16:50
|
(5) Мысли такие, что код в "ПриЗаписи" изменят отбор. Дело в Ссылке.
В "ПередЗаписью" ссылка еще старая, а в при - уже "новая". Поэтому отбор заставляет "Обновиться" список ПВХ. в (3) тебе дали правильный ответ: Делай всё в "ПередЗаписью", а в "послеЗаписи" поменяй отбор и список ПВХ обновится. |
|||
7
aleks_default
18.05.16
✎
16:52
|
(6) не-не, перед записью у нового элемента ссылка пустая, у него ничего не запишется.
все правильно. При записи должно работать. Отладка нужна. |
|||
8
John83
18.05.16
✎
16:55
|
(6) написал же, что ПередЗаписью тоже не работает
|
|||
9
John83
18.05.16
✎
16:55
|
(7) отладка все нормально показывает - и объект и свойство и значение заполнены
|
|||
10
Nuobu
18.05.16
✎
16:56
|
(7) а, не увидел, что именно он записывает.
тогдаа - да, нужно записывать в "ПриЗаписи". А не работает всё же из-за того, что список не обновлён. Обнови список ЗначенияСвойствОбъектов. |
|||
11
John83
18.05.16
✎
16:58
|
(10) уже десять раз F5 нажал
|
|||
12
Nuobu
18.05.16
✎
17:00
|
(11) ЭФ5 не поможет.
Чтобы обновить такой список, нужно перевыбрать отбор. Просто установи точно такой же отбор. |
|||
13
John83
18.05.16
✎
17:00
|
(12) заново открываю РС и там ничего нет по этому свойству
|
|||
14
aleks_default
18.05.16
✎
17:02
|
Отладкой убедись что все записывается без ошибок. Убедись что значения всех полей именно такие.
|
|||
15
aleks_default
18.05.16
✎
17:03
|
Уверен что свойство находится по этому наименованию?
|
|||
16
John83
18.05.16
✎
17:03
|
(15) да, по коду проверял
|
|||
17
John83
18.05.16
✎
17:04
|
(14) остановка по ошибке не останавливает
|
|||
18
John83
18.05.16
✎
17:04
|
и говорю же, что в форме этот же код нормально отрабатывает
|
|||
19
aleks_default
18.05.16
✎
17:04
|
Ты в отладке проверь. Че за предубеждения против отладки?
Потом консолью запросов проверь что записей по такому отбору точно нет. |
|||
20
aleks_default
18.05.16
✎
17:06
|
Точку останова на НаборЗаписей.Записать() и смотри значения полей у записи.
|
|||
21
aleks_default
18.05.16
✎
17:06
|
Код правильный, все должно записываться. Проблема в данных.
|
|||
22
John83
18.05.16
✎
17:16
|
||||
23
aleks_default
18.05.16
✎
17:27
|
(22)заблокирован у меня этот сайт... что там?
консолью делал выборку? при открытии формы какие отборы устанавливаются смотрел? |
|||
24
Nuobu
18.05.16
✎
17:30
|
Всё нормлаьно записалось.
Отказ там нигде не происходит? |
|||
25
John83
20.05.16
✎
10:18
|
(24) в самом регистре ПриЗаписи Отказ = Ложь
|
|||
26
John83
20.05.16
✎
10:19
|
(23) там результат набора записей
открываю ПВХ, перейти, значения свойств объекта - там пусто при чем тут ПриОткрытии? |
|||
27
aleks_default
20.05.16
✎
10:29
|
(26) Притом, что при открытии формы (не именно в событии ПриОткрытии) у тебя отбор, накладываемый на регистр ЗначенияСвойствОбъектов, при отображении на форме, отличается от того, с которым ты записываешь свой набор.
|
|||
28
John83
20.05.16
✎
10:32
|
(27) пля.. ну сделал, сделал я запрос к регистру - пусто там
|
|||
29
aleks_default
20.05.16
✎
10:36
|
Но запись же проходит? Ошибка не вываливается? Значит записываешь не то что ищешь. Может у тебя два свойства с наименованием "Основной менеджер"?
|
|||
30
John83
20.05.16
✎
10:40
|
(29) один и уже говорил, что по коду проверял
|
|||
31
aleks_default
20.05.16
✎
10:44
|
Не знаю. Возьми отладчик в руку и пройди всю процедуру записи и процедуру открытия формы сверяя состав отборов. Больше ничем помочь не могу.
|
|||
32
Cyberhawk
20.05.16
✎
10:49
|
В ЖР-то видно событие записи в РС?
|
|||
33
Cyberhawk
20.05.16
✎
10:49
|
В порядке бреда - в каких-нибудь других подписках код попадает в исключение (обрабатываемое) и транзакция из-за этого откатывается
|
|||
34
Cyberhawk
20.05.16
✎
10:50
|
По F11 после записи твоего набора отладчик не переходит на другие строчки кода?
|
|||
35
John83
20.05.16
✎
11:12
|
(32) да
|
|||
36
John83
20.05.16
✎
11:14
|
в форме объекта ПриЗаписи переходит в обработку записи свойств объекта, там еще раз происходит запись в РС, но никаких исключений и отказов не происходит
|
|||
37
Cyberhawk
20.05.16
✎
11:30
|
А в событиях записи флажок "Активность" у записей из набора проверь
|
|||
38
John83
20.05.16
✎
11:31
|
(37) истина
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |