gifts2017

Сравнение GUID Справочников Номенклатура, Контрагенты, Подразделения в разных информационных базах

Опубликовал Gusev Grigory (1cmailru) в раздел Обмен - Перенос данных из 1C8 в 1C8

Есть две базы Управление торговлей 10.3 и Бухгалтерия предприятия 2.0. Между ними настроен обмен. "Бухгалтерия предприятия": документ "Поступление на расчетный счет" - указан контрагент Иванов с кодом Б0001. Делаем обмен. "Управление торговлей": документ "Платежное поручение входящее" - указан контрагент Иванов с кодом Т0002. Вопрос: Почему у контрагента Иванов разные коды?

Доброго времени суток.

Мне достались базы "Бухгалтерия предприятия 2.0" и "Управлние торговлей 10.3", между которыми настроен обмен. Пользователи заметили, что есть контрагенты, которые в разных базах имеют разные коды 1С, орфографически разные наименования, но при выгрузке документов, машина каким то образом понимает что контрагент "ИП Иванов" с кодом Б0001 в "Бухгалтерии" соответствует контрагенту "Иванов И.И." с кодом Т0002 в "Торговле". Попросили разобраться почему такое происходит.

Ответ конечно лежит на поверхности. GUID у этих объектов в "Торговле" и в "Бухгалтерии" одинаковый. Для того чтобы понять как исправлять данную ситуацию, было решено получить список объектов, у которых GUID одинаковый, а код и/или наименование не совпадают.

Собственно эту адачу и решает представленная в этой публикации обработка.

Как пользоваться:

1. открываем обработку в двух базах.

2. Выбираем Справочник, который будем сарвнивать, и кликаем на кнопке "Выполнить"

3. Если необходимо пользуемся отбором.

4. Кликаем по кнопке "Заполнить т отчета".

5. Выделяем заполненную таблицу отчета в одной из баз, и через буфер обмена переносим ее во вторую базу в таблицу для сравнения.

6. Кликаем по кнопке "Сравнить", получаем заполненную таблицу - резултат сравнения. Если результ сравнения необходимо вывести на печать, вызываем контекстное меню, кликнув правой кнопкой мыши на таблице "Результат сравнения", выбираем "Вывести список".

Имея список несовпадений, можно уже решать что с ними делать.

Все.

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

Скачать файлы

Наименование Файл Версия Размер
Сравнение GUID справочников 61
.epf 11,80Kb
08.10.13
61
.epf 1.0 11,80Kb Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Максим Зудин (kasper076) 08.10.13 13:04
А в РС "СоответствиеОбъектовДляОбмена" смотрели?
2. Жека Moscow (SpartakM) 08.10.13 16:16
(1)если выгрузка идет не через план обмена, то там вряд ли что-то можно увидеть.
полезная может быть вещь...
3. Максим Зудин (kasper076) 08.10.13 16:51
(2) SpartakM, а при чем план обмена?
4. Жека Moscow (SpartakM) 09.10.13 01:45
(3)а как по Вашему данные попадают в этот регистр?
и к чему идет привязка объектов в этом регистре?
5. Максим Зудин (kasper076) 09.10.13 07:21
Обработка.ОбменДаннымиXML.Модуль
Процедура ЗарегистрироватьСоответствиеОбъектовДляОбмена(СсылкаНаОбъект, СвойстваПоиска)
        ...
	НаборЗаписей = мМенеджерРегистраСоответстствийОбъектов.СоздатьНаборЗаписей();
	НаборЗаписей.Отбор.УзелОбмена.Установить(УзелОбменаЗагрузкаДанных);
	НаборЗаписей.Отбор.СсылкаВДругойИБ.Установить(КлючВИсточнике);
	НаборЗаписей.Отбор.СобственнаяСсылка.Установить(СсылкаНаОбъект);
	
	СтрокаНабора = НаборЗаписей.Добавить();
	СтрокаНабора.УзелОбмена = УзелОбменаЗагрузкаДанных;
	СтрокаНабора.СсылкаВДругойИБ = КлючВИсточнике;
	СтрокаНабора.СобственнаяСсылка = СсылкаНаОбъект;
	СтрокаНабора.ИмяТипаПриемника = ИмяТипаВИсточнике;
	
	НаборЗаписей.Записать();	
	
КонецПроцедуры
...Показать Скрыть

Вот так можно данные туда записать.
УзелОбменаЗагрузкаДанных - узел плана обмена. Используется для логического разделения данных между базами, с которыми осуществляется обмен.
КлючВИсточнике - ГУИД объекта в базе источнике.
СсылкаНаОбъект - Ссылка на объект в базе приемнике.
ИмяТипаВИсточнике - строковое представление типа объекта в базе источнике, для более удобного получения доп информации о загружаемом объекте из файла переноса данных.
6. Ирли Бёрд (EarlyBird) 09.10.13 12:27
(3) kasper076,
а при чем план обмена?

обмен не всегда делается через план обмена, представляешь? Бывает, люди сами пишут правила в КД.
И в этом случае РС СоответствиеОбъектовДляОбмена не используется вообще.
7. Максим Зудин (kasper076) 09.10.13 13:20
(6) EarlyBird, представляю. Потому и не понимаю при чем тут план обмена. Я использую этот РС в самописном обмене без использования плана обмена.
8. Жека Moscow (SpartakM) 10.10.13 10:48
(7)Пример:
из разных УТ, в базу БП должны загружаться данные. План обмена не используется.
ТоварА - в баз УТ1 называется как ТоварА, а в Базе УТ2 - ТовА. в БП уже есть этот товар, как ТоварА (ссылка совпадает с УТ1).
что запишется в твой регистр а этом случае?
9. Максим Зудин (kasper076) 10.10.13 10:58
(8) SpartakM, зависит от того, по какому ключу синхронизирутся данные. Может у них Коды одинаковые.
10. Жека Moscow (SpartakM) 10.10.13 11:10
(9)коды, ссылки и наименование - разные.
11. Анатолий О. (DeepSnorkler) 10.10.13 11:49
(10) SpartakM, и как в этом случае поможет план обмена?
12. Максим Зудин (kasper076) 10.10.13 11:57
(10) Вот что запишется
    НаборЗаписей = мМенеджерРегистраСоответстствийОбъектов.СоздатьНаборЗаписей();
    //НаборЗаписей.Отбор.УзелОбмена.Установить(УзелОбменаЗагрузкаДанных);
    НаборЗаписей.Отбор.СсылкаВДругойИБ.Установить(КлючВИсточнике);
    НаборЗаписей.Отбор.СобственнаяСсылка.Установить(СсылкаНаОбъект);
    
    СтрокаНабора = НаборЗаписей.Добавить();
    //СтрокаНабора.УзелОбмена = УзелОбменаЗагрузкаДанных;
    СтрокаНабора.СсылкаВДругойИБ = КлючВИсточнике;
    СтрокаНабора.СобственнаяСсылка = СсылкаНаОбъект;
    СтрокаНабора.ИмяТипаПриемника = ИмяТипаВИсточнике;
    
    НаборЗаписей.Записать();
...Показать Скрыть
13. Жека Moscow (SpartakM) 10.10.13 11:59
(11) вообще-то к узлу обмена идет привязка...
каждому узлу - свое соответствие объектов...
14. Максим Зудин (kasper076) 10.10.13 12:00
(13) SpartakM, это же справочник. Так? Соответственно разделение его по узлам не требуется. Он один для всех баз. Данных записанных в этот РС хватит для идентификации объекта в приемнике.
15. Анатолий О. (DeepSnorkler) 10.10.13 12:02
(13) SpartakM, как я понимаю, речь шла о том, чтобы не использовать план обмена для регистрации объектов и их выгрузки, используя стандартные механизмы…
16. Максим Зудин (kasper076) 10.10.13 12:05
(15) DeepSnorkler, вообще изначально речь шла о том, почему элемент справочника в одной базе, соответствует элементу справочника в другой, не смотря на то, что у них разные коды. Автор решил, что такое возможно только при одинаковых ГУИДах у этих объектов. А я с ним не согласился.
17. Анатолий О. (DeepSnorkler) 10.10.13 12:15
(16) kasper076, описанное изначально могло случиться по разным причинам. Например, сделали обмен БП=>УТ, ручками или обработкой поменяли у контрагента Иванов код в УТ, в правилах обмена прописано искать контрагента по уникальному идентификатору, с документом переносится ссылка, контрагент не переписывается, а берется из справочника в УТ, а там стоит код Т0002… Ну как-то так…
18. Анатолий О. (DeepSnorkler) 10.10.13 12:17
(16) kasper076, и таки да - вы правы, виноват в таком случае РС "СоответствиеОбъектовДляОбмена"…
19. Максим Зудин (kasper076) 10.10.13 12:27
(18) DeepSnorkler, да вариантов получения такой ситуации может быть несколько. Я лишь предложил один из возможных.
20. Марина Чирина (chmv) 14.10.13 16:38
Супер нужная вещь. Не могли Бы Вы мне прислать на chmv2005@mail.ru
Заранее огромное спасибо
21. Антон Собейко (sobeyko2008) 27.12.13 22:54
А как обработку развернуть на весь экран?
22. Антон Собейко (sobeyko2008) 27.12.13 23:24
Чето обработка вообще не соответсвует картинкам и описанию. Или я Туплю...
23. Олег К. (kiberiq) 11.02.14 21:35
А если необходимо сравнить не по GUID'ам, а сопоставить иные реквизиты? Данная обработка уже не поможет. Зато придет на помощь обработка http://infostart.ru/public/257211/ позволяющая делать это и многое другое.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа