Имя: Пароль:
1C
1С v8
Обмен ЗУП 2.5 и БП 2.0. При загрузке контрагента ...: код не уникален
0 es3000
 
06.03.14
12:00
Есть база ЗУП и БП.
Эти две базы работают вместе очень давно, между ними всегда выполнялся обмен, все было нормально.

При последнем обмене выдал ошибку:

Ошибка в обработчике события ПослеЗагрузкиОбъекта
                ИмяПКО                 =  Контрагенты
                ТипОбъекта             =  Контрагенты
                Объект                 =  Банк "Санкт-Петербург"
                Обработчик             =  ПослеЗагрузкиОбъекта
                ОписаниеОшибки         =  Ошибка при вызове метода контекста (Записать): Значение поля "Код" не уникально
                ПозицияМодуля          =  (2)
                КодСообщения           =  21

Ошибка при загрузке данных: {Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(1630)}: Ошибка в обработчике события ПослеЗагрузкиОбъекта
                ИмяПКО                 =  Контрагенты
                ТипОбъекта             =  Контрагенты
                Объект                 =  Банк "Санкт-Петербург"
                Обработчик             =  ПослеЗагрузкиОбъекта
                ОписаниеОшибки         =  Ошибка при вызове метода контекста (Записать): Значение поля "Код" не уникально
                ПозицияМодуля          =  (2)
                КодСообщения           =  21

Как я понимаю, синхронизация контрагентов между базами выполняется по коду.
Так вот и в одной и в другой базе есть такой контрагент, код и них одинаковый. Так и должно быть, так как обмен выполнялся ранее неоднократно.

Помогите пожалуйста разобраться из-за чего могла возникнуть эта ошибка?
1 fmrlex
 
06.03.14
12:03
(0) Судя по всему классификатор банков обновили только в одной конфе.
2 es3000
 
06.03.14
13:17
(1) а как классификатор повлиял на процесс обмена?

коды ведь одинаковые, а судя по правилу:
- если в БП такого кода нет, то контрагент добавляется
- а если в БП такой код есть, то ничего не происходит

ничего не должно происходить
3 M_Flint
 
06.03.14
13:19
У нас вылазит такое достаточно давно. Меняла правила.
4 es3000
 
06.03.14
13:20
(3) какие правила и на какие вы меняли?
5 M_Flint
 
06.03.14
13:21
в обработке выгрузки данных в БП есть правила обмена, где прописано как искать и прочие прелести. Выгружала их в текстовый файл, правила, потом загружала в обработку.
6 es3000
 
06.03.14
14:10
(5) это понятно, я тоже там смотрел,

только там ничего не написано, там просто указано что поиск ведется по реквизитам "этогруппа + код + наименование"

и на что вы этот критерий поиска меняли?
7 es3000
 
06.03.14
14:19
хотя есть одна интересная вещь в правилах:

в обработчике "ПередВыгрузкой" правила конвертации свойства "КОД" все закомментировано:

//Если СтрДлина(СокрЛП(Источник.Код)) > 8 Тогда
//    Значение = ПривестиНомерКДлине(Источник.Код, 8)
//Иначе
//    Значение = Источник.Код;
//КонецЕсли;

Это в типовых правилах так сделано?
Или кто-то передо мной "потрудился"?
8 es3000
 
06.03.14
14:20
где лучше взять последние правила обмена чтобы поизучать?
9 es3000
 
06.03.14
15:57
поднимаю...
10 es3000
 
07.03.14
03:58
Проверил правила в последней конфигурации ЗУП 2.5.78.1 - в части контрагентов ничего не изменилось.
Значит правила в рабочей базе правильные.
Из-за чего может быть ошибка?
11 denk
 
07.03.14
04:01
Зачем такие сложности? Достаточно руками в обеих базах сделать одинаковыми Код и Наименование контрагента.
12 es3000
 
07.03.14
04:13
(11) они одинаковые в обеих базах
13 es3000
 
07.03.14
04:15
Было подозрение на то что возможно в этих двух конфигурациях разный размер реквизита "код".
Но оказалось что он тоже одинаковый - 9 знаков
14 denk
 
07.03.14
04:29
Проверьте в БП в контрагентах, что элемент с таким кодом там один.
15 es3000
 
07.03.14
04:37
(14) Вы правы!
действительно, оказалось что в БП есть еще один контрагент с таким же кодом. Большое спасибо.
А как такое могло получиться?
16 denk
 
07.03.14
05:25
(15) ОбменДанными.Загрузка = Истина;
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший