Имя: Пароль:
1C
1С v8
ПодпискаНаСобытие и запись РС в открытой форме справочника
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) истина
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс