Имя: Пароль:
1C
1С v8
Битые ссылки при синхронизации
,
0 N-S-B
 
22.11.17
15:05
Настроена синхронизация между УТ 11.0 и БП 3.0. В УТ создается документ заказ поставщику, затем поступление товаров и услуг. Это поступление уходит в БП.
Периодически возникает такая проблема, в выгруженном в БП поступлении в табличной часть номенклатура может быть битой ссылкой.
Помогает повторная принудительная регистрация к обмену документа поступления и последующая синхронизация, и в БП пропадают битые ссылки в документе.
Куда копать? Что это может быть? Конфы нетиповые, поэтому запилить какой-нибудь костыль тоже можно)
1 sapphire
 
22.11.17
15:14
Написать выгрузку заново
2 N-S-B
 
23.11.17
08:18
Других вариантов нет? )
3 Митяйский
 
23.11.17
09:20
>Куда копать?
Залить правила в КД и копать конвертацию
4 Serg_1960
 
23.11.17
09:23
Вангую: а во всём виноват внутриплатформенный хаос с порядком записей в сообщениях обмена - ну не программиста же за это винить?!

Имхо, битые ссылки в документе возникают, когда записи на номенклатуру читаются из сообщения обмена и и пишутся в базу после принятого документа.

Самопроверка: ошибки возникают, когда добавляются новые записи справочника в документ.
5 Serg_1960
 
23.11.17
09:25
PS: рассуждения на тему вины - поясняю для особо одарённых: это был сарказм.
6 h-sp
 
23.11.17
09:47
(2) забить. Это так и задумано. Если документы грузятся не в том порядке, то возникает битая ссылка. А в тот момент, когда приходит второй документ, всё встает на место.
7 Митяйский
 
23.11.17
09:50
(6) Ну так а кто мешает переставить местами приоритеты в правилах выгрузки? Чтобы очередность была как надо, а не как попало?
8 h-sp
 
23.11.17
10:21
(7) не, ну я не против.
9 Starhan
 
23.11.17
10:22
синхронизация то на чем? КД 3?
10 N-S-B
 
26.11.17
11:39
(4)
>Имхо, битые ссылки в документе возникают, когда записи на номенклатуру читаются из сообщения обмена и и пишутся в базу после принятого документа.

Тоже думал об этом. Но специально указал в первом сообщение, что сначала создается документ заказ поставщику в УТ. Соответственно, если была создана новая номенклатура, то она уже на этом этапе уходит в БП. И когда уже создают поступление товаров, то в этот момент, вся номенклатура по идеи уже должна быть в БП.
Заказ поставщику и поступление создаются не одновременно, а с разницей в несколько часов/дней.
11 Cyberhawk
 
26.11.17
11:43
(10) Ты не понял: выгрузился документ1 и новая номенклатура, затем документ2 с этой же новой номенклатурой, а вот загружается сначала документ2, а затем уже документ1 и новая номенклатура
12 Cyberhawk
 
26.11.17
11:43
Но еще покури РС "Публичные идентификаторы", может у тебя и там битые ссылки...
13 N-S-B
 
26.11.17
11:52
(11) Да нет же. Я же написал в (10) - сначала создается заказ поставщику с новыми товарами, а поступление товаров уже через несколько часов/дней. Поэтому второй документ никак не может загрузиться первым, еще до номенклатуры.
14 Cyberhawk
 
26.11.17
12:07
(13) Эта номенклатура в приемник прилетает только с документом ПТУ? Больше у других документах не участвует? Попробуй после того, как заметил битую ссылку, создать в источнике фиктивное РТУ с этой номенклатурой и передать документ в приемник - битая ссылка тоже будет?
15 h-sp
 
26.11.17
12:21
(13) почему не может? если эти несколько дней не было загрузки, то вполне может.
16 N-S-B
 
26.11.17
12:58
(15) Синхронизация работает по расписанию каждые 15 минут. Если создают заказ поставщику с новыми товарами, то они соответственно регистрируются к обмену и уходят в БП (ну, теоретически). И, уже по прошествии какого-то времени, когда создают поступление, оно уходит в БП, где уже должна быть эта номенклатура.
17 Cyberhawk
 
26.11.17
13:11
(16) А проверь: создай фиктивную номенклатуру и ни в какой документ ее не подбирай. После очередного сеанса обмена эта номенклатура перенесется в приемник? Что-то кажется, что нет - работает какой-нибудь оптимизатор, который не выгружает объекты, которые не светятся в документах...
18 mistеr
 
26.11.17
19:41
(16) Ты проверь при очередном случае, есть уже в БП нужная номенклатура или нет.
19 MaxS
 
26.11.17
20:21
При создании новой номенклатуры она автоматически регистрируется на узле к обмену?
Ситуация может быть штатная. Настроили синхронизацию, отменили регистрацию всех объектов, начали обмениваться документами и опа, а справочников, то нету. Их потому и нету, что ни разу не передавали в другую базу.

Если в УТ настройка выгружать справочники с документами, то вроде бы они не сразу переезжают с документом, а в следующем сеансе после отправки документа.
Если как в (0), то какой-то глюк ))
20 N-S-B
 
26.11.17
20:47
(17) Проверял. Создавал в разные моменты времени номенклатуру, проверял обработкой регистрации объектов к обмену, что номенклатура зарегистрировалась к обмену. И создавал новые товары без проверки регистрации (корпускулярно-волновой дуализм, квантовая запутанность ))))
Все товары уходили синхронизацией в БП. И вручную создавал заказы поставщикам и отдельно поступления. Никак отловить ошибку не могу. А если и отловлю, то хз пока что, что с ней делать дальше...)
Казалось бы фигня и можно забить, ошибка появляется пару раз в неделю из всей кучи документов. Но клиента раздражает, так как нет теперь 100% уверенности в синхронизации и каждый документ приходится перепроверять в базе приемнике.

(19) Да, номенклатура регистрируется к обмену. Описанный случай штатной ситуации не подходит в этом случае, синхронизация работает уже который год, проблемы начались только последний месяц-два.
21 Cyberhawk
 
26.11.17
21:54
(20) Поставь в приемнике (через расширение) отладочный код, когда записывается документ с битой ссылкой в ТЧ. Отловишь потом в базе-источнике по номеру сообщения и проверишь, а была ли эта ссылка выгружена в этом же сообщении (с таким же номером). Главное успеть это сделать до следующего сеанса обмена.
22 Cyberhawk
 
26.11.17
21:55
(19) "выгружать справочники с документами, то вроде бы они не сразу переезжают с документом, а в следующем сеансе после отправки документа" // Так у ТС вроде так же или нет?
23 N-S-B
 
30.11.17
14:27
В итоге сделал костыль, в базе приемнике подписка на запись документа поступления, если в ТЧ документа встречается битая ссылка, то база конектится по COM к базе источнику и регистрирует к обмену повторно документ и все товары из его ТЧ.
А пока работает костыль, попробую разобраться в чем проблема: при обнаружении кривого поступления данной подпиской, так же сохраняет отдельно файл обмена, с которым пришел документ и всякую инфу, есть ли такой товар сейчас итд
Основная теорема систематики: Новые системы плодят новые проблемы.