Имя: Пароль:
1C
 
Ошибка в регистрации изменений для узла обмена
,
0 mzelensky
 
26.04.18
10:07
Доброго времени суток!

Платформа 1С:Предприятие 8.2 (8.2.19.130). Конфа не типовая, на базе УТ 10.3

Имеется механизм регистрации изменений справочника "Номенклатура" - при записи элемента справочника, он регистрируется в нужных узлах обмена. Работает через подписку следующий код:

Если ТипОбъекта = Тип("СправочникОбъект.Товары") Тогда        
Если Объект.ЭтоГруппа = Ложь Тогда
   МассивУзлов = ПолучитьМассивУзловДляРегистрации(ПараметрыСеанса.ВсеУзлыДляОбменаССайтомТоварами);        
                  
   ПланыОбмена.ЗарегистрироватьИзменения(МассивУзлов, Объект.Ссылка);
КонецЕСли;
КонецЕСли;

Механизм рабочий, функционирует достаточно давно, но сейчас наткнулся на какой-то глюк. который объяснить не могу. Записываю определенный товар и начинаю проходить отладчиком - код полностью и без ошибок выполняется, все ОК.

НО данная номенклатура в списке зарегистрированных элементов не появляется. Записываю еще раз - снова весь код отрабатывает, но в списке зареганых опять пусто. Делал так раз 5 - ничего!!! Потом записал другую Номенклатуру - она успешно появилась. Затем снова записал "первую" - и только тогда она зарегалась в плане обмена.

В чем тут косяк? Куда капать и что смотреть?
1 mzelensky
 
26.04.18
10:08
(0) Для пояснения

В переменной "МассивУзлов" содержится 2 узла плана обмена. Массив НЕ пустой, это я проверял.

"Объект.Ссылка" - тоже заполнена.
2 mzelensky
 
26.04.18
10:34
ап
3 mzelensky
 
26.04.18
11:25
ап2
4 dezss
 
26.04.18
11:30
как смотрел список зареганых?
5 mzelensky
 
26.04.18
12:00
(4) Стандартной обработкой "РегистрацияИзмененийДляОбмена"

и запросом:

ВЫБРАТЬ
    ТоварыИзменения.Узел,
    ТоварыИзменения.Ссылка как Товар,
    ТоварыИзменения.Ссылка.Код как Код,
    ТоварыИзменения.Ссылка.Артикул как Артикул
ИЗ
    Справочник.Товары.Изменения КАК ТоварыИзменения
ГДЕ
    ТоварыИзменения.Узел = &Узел
    И ТоварыИзменения.Ссылка = &Товар
6 mzelensky
 
26.04.18
12:36
ап3
7 dezss
 
26.04.18
14:23
а такое происходит только с одной номенклатурой?
8 Cyberhawk
 
26.04.18
14:33
Думаю, что делает дело прикладной код, в котором прописано, что объект не регистрируется, если ключевые поля у него не изменились
9 dezss
 
26.04.18
14:35
(8) нифига, регаться должно все, что просто записано. Стопудова, сам проверял.
10 dezss
 
26.04.18
14:35
(9) + тем более при использовании
   ПланыОбмена.ЗарегистрироватьИзменения(МассивУзлов, Объект.Ссылка);
11 mzelensky
 
26.04.18
14:38
(7) Сегодня просто нактнулся на такую.

Явно случай какой-то частный. И даже если такая не одна, то их мало
12 mzelensky
 
26.04.18
14:39
(10) Да, согласен...я же регаю вручную, четка прописываю узел и обмен. Тут вопросов к "изменению" данных быть не должно
13 dezss
 
26.04.18
14:43
(11) попробуй выгрузить базу и загрузить в тестовую...а там глянуть, повторяется или нет...
может тебе тупо кэш надо почистить...или ТиИ.
14 mzelensky
 
26.04.18
15:04
(13) ДУмал уже об ТиИ...но делать ПОЛНУЮ проверку базы в монопольном режиме не вариант вообще.

Есть какой-нибудь другой вариант?
15 Cyberhawk
 
26.04.18
15:29
(9) Не тупи. В типовых не так.
16 Cyberhawk
 
26.04.18
15:29
После твоей подписки могут вызываться еще какие-нибудь, вот и думай
17 mzelensky
 
26.04.18
15:34
(16) Нет там больше ничего. В данном случае. Механизм полностью мой.
18 Cyberhawk
 
26.04.18
15:45
Регистрация может сниматься в промежуток времени между кодом в (0) и тем моментом, когда ты посмотришь на очередь на узле.
Ставь точку останова после кода регистрации и/или конца транзакции, а в другом сеансе посмотри очередь на узле (и на каком).
19 dezss
 
26.04.18
16:19
(15) я в (10) исправился)
20 mzelensky
 
26.04.18
16:31
(18) Так и буду делать
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.