|
КД: обмен предопределенных объектов | ☑ | ||
---|---|---|---|---|
0
Mikhail Volkov
24.11.12
✎
16:49
|
В типовых правилах вроде все логично сделано: синхронизация по гуидам, если по гуид не найден, по полям поиска. Но встречаются косяки у предопределенных объектов, которые дают сбои. Например, ВидыКонтактнойИнформации в наименованиях телефонов УПП "физ.лица", а УТ10.3 - "физ. лица"?! Исправлять эти баги после каждого обновления - не выход. Решил у предопределенных объектов во всех базах сделать одинаковые гуиды. В ПКО после загрузки прописал:
Если ОбъектНайден Тогда Если Объект.Ссылка.Предопределенный Тогда Отказ = Истина; // Не замещаем предопределенные. КонецЕсли; КонецЕсли; Не помогло: {Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(4795)}: Ошибка записи объекта ТипОбъекта = Виды контактной информации Объект = Телефон физ. лица служебный ОписаниеОшибки = Ошибка при вызове метода контекста (Записать): Ошибка при попытке вставки записи с неуникальным значением ссылки. Microsoft OLE DB Provider for SQL Server: Нарушение "PK___Referen__AC8ED0C4499C3B8A" ограничения PRIMARY KEY. Не удается вставить повторяющийся ключ в объект "dbo._Reference49". Повторяющееся значение ключа: (0xb9493d07ec2909514bd24a29a071e1b7). HRESULT=80040E2F, SQLSrvr: SQLSTATE=23000, state=1, Severity=E, native=2627, line=1 ПозицияМодуля = Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(4788) КодСообщения = 26 Получается, что по гуиду объект не найден, была попытка создать новый объект с эти гуид!? Почему? Есть более надежный способ, чтобы предопределенные объекты не замещались? |
|||
1
Mikhail Volkov
24.11.12
✎
18:16
|
Оказывается предопределенные объекты в КД прописаны на вкладке "Конвертация значений", а телефоны с "физ.лица" были "красными" - исправил...
И замена гуид предопределенных объектов не произошла, наверное средствами 1С это сделать невозжно!? (в SQL-таблицы лесть?) Но это отдельная тема... Я только одного не понял, дублей ВидыКонтактнойИнформации до обмена не было, появились при обмене. Получается, в процессе обмена они создались, но при загрузке последующей КИ не были найдены по гуид, и была попытка создать их вновь? |
|||
2
Сияющий Асинхраль
24.11.12
✎
19:16
|
Как много вам открытий чудных
Готовит просвещенья дух... :-) |
|||
3
Mikhail Volkov
24.11.12
✎
20:26
|
Выходит то, что прописано на вкладке "Конвертация значений", имеет более высокий приоритет, и правила синхронизации на них не действуют?
|
|||
4
Mikhail Volkov
25.11.12
✎
06:49
|
Теперь обмен работает надежно, не смотря на косяки в наименованиях. Но это годится только когда в обеих базах один и тот же объект определен как предопределенный.
Например, УПП консолидирующая база, для обмена с УТ11 КИ партнера можно сделать предопределенный. Но при этом гуид сменится!? Рухнет обмен с остальными УТ10.3... Как сделать имеющийся объект предопределенным, сохранив ему прежний гуид? |
|||
5
Mikhail Volkov
25.11.12
✎
10:30
|
Или средствами 1С это сделать невозможно, надо в SQL-таблицы лесть?
|
|||
6
Mikhail Volkov
28.11.12
✎
02:54
|
Похоже, надо новую тему открыть: Как сделать имеющийся объект предопределенным, сохранив ему прежний GUID?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |