Сравнение элементов справочников двух баз по COM соединению. Теперь на управляемых формах.

11.07.19

Интеграция - Перенос данных 1C

Сравнение идентичности элементов справочников по выбранным реквизитам в двух базах по COM соединению. Обработка может запускаться в режиме обычного и управляемого приложения.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Сравнение справочников в разных базах УФ
.epf 50,17Kb
241 1 850 руб. Купить
Сравнение справочников в двух базах
.epf 31,28Kb
529 1 850 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

После переноса данных в новую базу возникла задача сравнить справочники между исходной и новой базами. Какие-то элементы не были перенесены по ссылкам, у каких-то элементов за время переноса изменились какие-либо реквизиты и т.д и т.п. В результате родилась эта обработка. Элементы ищутся по UUID и сравниваются по выбранным реквизитам. Частично код заимствован (функции поиска COM объектов) из аналогичной публикации //infostart.ru/public/21382/ , за что автору огромное спасибо (плюс я поставил Laughing).

Подробности можно узнать из встроенной справки и/или посмотреть код обработки. Код открыт и комментирован, поэтому в обработку легко можно добавить, например, сравнение документов.

Управляемые формы не используют процедуры и функции из модуля объекта. Ни одна процедура из модуля объекта не пострадала Laughing

10.12.2010 Вер. 1.0.2

1) Добавлена возможность соединения с базами на платформе 8.2

2) Исправлена ошибка при выборе справочника, содержащего табличные части.

3) Косметические изменения.

 19.02.2011 Вер.1.0.3

1) Исправлена ошибка при выборке реквизитов справочников.

2) Исправлена ошибка - отсутствовала процедура "СообщитьИнформациюПользователю". Перенесена из общего модуля в модуль объекта.

19.02.2011 Вер. 1.0.4

1) Косметические изменения.

 10.04.2012 Вер.1.0.2 УФ

1) добавлена возможность запуска режиме УФ

11.07.2019 Вер 1.0.3 УФ

Исправлена ошибка при создании элементов формы динамического списка.

Вступайте в нашу телеграмм-группу Инфостарт

См. также

SALE! 10%

Перенос данных 1C Программист 1С v8.3 1С:Управление производственным предприятием 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

Перенос документов, начальных остатков и справочной информации из УПП 1.3 в ERP 2 | из УПП 1.3 в УТ 11 | из УПП в КА 2 | Правила конвертации (КД 2) | Более 360 предприятий выполнили переход с использованием этого продукта! | Сэкономьте время - используйте готовое решение для перехода! | Позволяет перенести из УПП 1.3 в ERP / УТ 11 / КА 2 всю возможную информацию | В переносе есть фильтр по организации и множество других опциональных параметров выгрузки | Есть несколько алгоритмов выгрузки остатков на выбор

55778 50200 руб.

04.08.2015    178393    398    293    

418

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист 1С v8.3 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Россия Платные (руб)

Правила в универсальном формате обмена для ERP 2.5, КА 2.5, УТ 11.5, БП 3.0, Розница, УНФ, для последних версий конфигураций. Ссылки на другие конфигурации в описании публикации. Правила совместимы со всеми другими версиями конфигураций новыми и старыми, поддерживающими обмен и синхронизацию в формате EnterpriseData. Не требуется синхронного обновления правил после обновления другой конфигурации, участвующей в обмене. Типовой обмен через планы обмена кнопкой Синхронизация вручную или автоматически по расписанию, или вручную обработкой.

27660 руб.

12.06.2017    152469    890    302    

462

SALE! 10%

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Программист 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

Перенос данных из ERP в БП 3 | из КА 2 в БП 3 | из УТ 11 в БП 3 | из ЕРП в БП 3 | Сэкономьте время - используйте готовое решение для перехода! | Перенос разработан в формате КД 2 (правила конвертации данных) | Переносятся все возможные виды документов, начальных остатков и нормативно-справочная информация| Можно опционально выгружать каждую пару "номенклатура+характеристика" как отдельную номенклатуру | Есть выгрузка настроек счетов учета и зарплатных данных из ERP / КА 2 | Можно проверить на вашем сервере перед покупкой

55778 50200 руб.

15.04.2019    78832    212    163    

150

SALE! 10%

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление производственным предприятием 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Перенос данных из 1С:Управление производственным предприятием 1.3 в 1С:Бухгалтерия предприятия 3.0 с помощью правил обмена | Можно выполнить переход с УПП на БП 3 или запускать выгрузку данных за выбранный период времени | Переносятся документы, начальные остатки и вся справочная информация | Есть фильтр по организации и множество других параметров выгрузки | Поддерживается несколько сценариев работы: как первичный полный перенос, так и перенос только новых документов | Перенос данных возможен в "1С: Бухгалтерия 3.0" версии ПРОФ, КОРП или базовую | Переход с "1С: УПП1.3" / "1С:КА 1.1" на "1С:БП3.0" с помощью правил конвертации будет максимально комфортным! | Можно бесплатно проверить перенос на вашем сервере!

48278 43450 руб.

25.02.2015    177997    327    275    

396

SALE! 10%

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Программист 1С v8.3 1С:ERP Управление предприятием 2 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет Управленческий учет Платные (руб)

Перенос данных из ERP в ЗУП 3 | из КА 2 в ЗУП | Готовые правила конвертации данных (КД 2) для переноса остатков, документов с движениями и справочной информации 3 | Есть перенос начальной задолженности по зарплате и начальной штатной расстановки на выбранную дату | Обороты за прошлые годы (данные для расчета среднего) переносятся свернуто в документ "Перенос данных" | Есть фильтр по организациям | Документы за текущий период переносятся сразу с движениями, поэтому не потребуется делать перерасчеты | Перенос можно проверить перед покупкой, обращайтесь!

53111 47800 руб.

03.12.2020    41841    119    75    

112

SALE! 10%

Перенос данных 1C Системный администратор Программист 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

Правила переноса данных из БП 3.0 в УТ 11 | из БП 3.0 в КА 2 | из БП 3.0 в ERP | Сэкономьте свое время - используйте готовое решение для перехода! | Постоянно работаем над развитием переноса данных | Обновляем на новые релизы 1С | Есть фильтр выгрузки по организациям | Переносятся начальные остатки на выбранную дату, документы за период времени и вся возможная справочная информация | Перенос сделан на технологии КД 2 (правила конвертации данных) Воспользовались более 122 предприятий! |

55778 50200 руб.

31.10.2014    242696    111    351    

316

SALE! 10%

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист 1С v8.3 Оперативный учет 1С:Управление торговлей 10 Россия Управленческий учет Платные (руб)

Перенос данных из 1С:Управление торговлей 10.3 в 1С:Управление торговлей 11.5 с помощью правил обмена. Переносятся остатки, документы (обороты за период), справочная информация. Правила проверены на конфигурациях УТ 10.3 (10.3.88.x) и УТ 11.5 (11.5.24.x).

38000 34200 руб.

23.07.2020    61404    289    81    

229

Перенос данных 1C Программист Бухгалтер 1С v8.3 Сложные периодические расчеты 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет НДФЛ ФОМС, ЕФС Платные (руб)

Обработки для быстрого перехода с конфигураций «КАМИН:Расчет заработной платы 3.0», «КАМИН:Зарплата для бизнеса 4.0» и «КАМИН:Зарплата 5.0» на конфигурацию «Зарплата и управление персоналом» версии 3.1.

12000 руб.

25.09.2016    86347    372    257    

311
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. OBEH 08.12.10 13:23 Сейчас в теме
"Идентичность" - Это код и наименование в справочниках разных конф?
2. ediks 338 08.12.10 21:49 Сейчас в теме
(1)Я вроде написал, что сравнение идет по выбранным реквизитам. Кнопка "Настройка" открывает форму выбора реквизитов.
3. OBEH 09.12.10 15:11 Сейчас в теме
(2)Я еще не смотрел обработку. Просто вопрос возник.
Если, например, по коду можно, то дело стоящее.
А если, например, одна база на платформе 8.1, а другая база на платформе 8.2?
И еще. Идея. Мне кажется, коль пошла такая пьянка, может быть стоит добавить
на форму кнопку, которая формирует отчет по несовпадающим элементам?
4. ediks 338 09.12.10 17:01 Сейчас в теме
(3)

1) Сравнение идет в том числе и по коду, если он используется у справочника и если он выбран для сравнения.
2) Добавить поддержку 8.2 достаточно легко - в списке выбора нужно добавить 8.2 так, как это сделано для 8.1. Но основное предназначение обработки - сравнение элементов справочников для баз, являющихся родственными. Например, в новую базу переносили данные и нужно проверить несовпадающие элементы.
3) В табличную часть выводятся только несовпадения. Во встроенной справке это описано. Если в контестном меню выбрать пункт "Вывести список", то получим отчет по несовпадениям. В моем случае я выводил коды несовпадающих элементов и перегружал их из исходной базы.
5. OBEH 09.12.10 17:47 Сейчас в теме
(4)Ну, так скоро и будет, переходы на "родственные" базы, но 8.1 на 8.2
Я так думаю, к новому году все потянутся на 8.2
6. OBEH 09.12.10 18:45 Сейчас в теме
Поверил человеку. А тут, оказывается, с 8.2 не работает
9. ediks 338 09.12.10 20:40 Сейчас в теме
(6) Насчет 8.2: я написал что нужно сделать на форме - добавить в список выбора строку 8.2. И ничего не нужно конвертировать - из под 8.1 прекрасно соединяется с 8.2.
(7) Процесс вывода занимает сравнительно небольшое время по сравнению с поиском COM объектов. Но код открыт - все в твоих руках.
(8) Попробуй уменьшить число сравниваемых реквизитов или задать фильтры в отборе. По умолчанию, сравнивается по всем реквизитам. Соответственно, если справочник содержит много реквизитов, то выборка получается очень большая. На 8 гигах оперативки при минимальном количестве сравниваемых реквизитов (1 - :D ) удавалось сравнить справочник договоров в 500-600 тыс. записей.
10. OBEH 10.12.10 09:29 Сейчас в теме
(9)У меня не получилось установить выбор на 8.2
Там показывалось только 8.1(по умолчанию) и 8.0
8.2, вообще, даже вручную, не проходит. Тем более "прекрасно" не соединяется с 8.2
Процесс вывода можешь сам проверить, установив шаг, например, сто.
Будешь удивлен.
Количество сравниваемых реквизитов я сделал два - Код и Наименование.
Меньше нет смысла, а больше не надо.
По поводу того, что все в моих руках - конечно, могу код править,
но, пока не вижу смысла большого
11. ediks 338 10.12.10 10:56 Сейчас в теме
(10) Добавлять в список выбора 8.2 нужно в режиме конфигуратора.
7. OBEH 09.12.10 19:02 Сейчас в теме
Переконвертировал под 8.2. Вроде, заработало.
Вот только шаг счетчика, наверное, надо бы на больших объемах ставить, например, 100
А то тормозит очень на выводе строки счетчика. Неужели не встречался с такой пакостью ни разу?
8. OBEH 09.12.10 19:06 Сейчас в теме
Во! Рухнула задача по ошибке "Недостаточно памяти".
Примерно, на 40 тысяче записи.
И чего делать?
12. Virsy 10.12.10 12:48 Сейчас в теме
Выпала ошибка при сравнении реквизитов табличной части справочника:
{ВнешняяОбработка.СравнениеСправочниковВРазныхБазах(32)}: Ошибка при установке значения атрибута контекста (Текст): {(41, 14)}: Поле не найдено "Справочники.НомерСтроки"
Справочники.<<?>>НомерСтроки,
Построитель.Текст = СформироватьТекстЗапроса(1, КоличествоВВыборке);
по причине:
{(41, 14)}: Поле не найдено "Справочники.НомерСтроки"
Справочники.<<?>>НомерСтроки,
13. ediks 338 10.12.10 12:55 Сейчас в теме
(12) Табличные части не сравниваются. Это описано во встроенной справке.
14. Virsy 10.12.10 13:16 Сейчас в теме
(13) тогда неплохо бы их не добавлять в список реквизитов
15. ediks 338 10.12.10 14:19 Сейчас в теме
(14) Был такой глюк :D . Исправился. Спасибо за наводку.
16. Tokiy 131 09.02.11 20:14 Сейчас в теме
Ешчо один "глюк": когда есть две табличные части, например "Образование" и "ДопОбразование", то в этом куске
//
// выкусим наименования табличных частей
Для каждого ТабличнаяЧасть Из Метаданные.Справочники[ТипОбъекта].ТабличныеЧасти Цикл
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, ТабличнаяЧасть.Имя + ".", "");
КонецЦикла;

//
в слове "ДопОбразование." он обрезает "Образование." и потом ругается на слово "Доп":

{(25, 14)}: Поле не найдено "Справочники.Доп"
Справочники.<<?>>Доп

Т.е. не совсем корректный подход к определению реквизитов. Почему бы просто не перебрать реквизиты метаданных?
19. ediks 338 19.02.11 17:13 Сейчас в теме
(16) Спасибо за наводку. Вроде исправил.
Насчет корректности подхода: простой перебор реквизитов по метаданным не дает таких реквизитов, как Владелец, Родитель, Код, Наименование, Пометка удаления, Предопределенный и т.д. Соответственно, их наличие необходимо анализировать дополнительно. Мне показалось это несколько неудобным.
Конструктор запроса делает этот анализ за меня, корректно выбирая все реквизиты.
17. Tokiy 131 09.02.11 20:17 Сейчас в теме
А вообще качал в надежде что обрабатывает табличные части..
18. v_id 107 19.02.11 12:13 Сейчас в теме
{ВнешняяОбработка.СравнениеСправочниковВРазныхБазах(583)}: Метод объекта не обнаружен (СообщитьИнформациюПользователю)
ОбщегоНазначения.СообщитьИнформациюПользователю("Количество записей внешней базы: " + Количество);

8.1 Две УТ 10.3
20. ediks 338 19.02.11 17:20 Сейчас в теме
(18) Исправил этот глюк. Действительно, в УТ нет такой процедуры. Спасибо, что подсказали.
21. v_id 107 19.02.11 19:42 Сейчас в теме
Я конечно придираюсь, но "1" и "-1" не очень наглядно, может использовать раскраску типа зеленый есть в текущей нет в копии, красный наоборот?
22. ediks 338 19.02.11 23:12 Сейчас в теме
(21) Добавил "цветовую дифференциацию штанов строк" :D , попросту говоря, раскраску. А вообще я сразу делаю отбор по реквизиту "Свертка", вывожу список и копирую отобранные коды в какую-нибудь обработку обмена.
23. powerpc 225 22.09.11 09:51 Сейчас в теме
А для сравнения документов можно сделать такую же обработку ? Особенно необходимо для сравнения выгрузки УТ в Бухгалтерию. Спасибо заранее
24. pantera190 23.09.11 13:50 Сейчас в теме
25. slav4ek 19.10.11 08:23 Сейчас в теме
26. bar_s 20.11.11 16:28 Сейчас в теме
27. RTA 8 24.01.12 11:22 Сейчас в теме
кто может дать на нее прямую ссылку?
28. rasswet 82 11.04.12 12:35 Сейчас в теме
обычная форма. где там закладка "расхождения"? или таковой нет?
выбрал справочник валюты. в настройках указал "код, наименование" в итоге три строки с одной базы под ними три строки с другой базы, это не наглядно.
29. ediks 338 11.04.12 13:00 Сейчас в теме
(28)
1) В обычной форме нет закладки "Расхождения" - данные выводятся в табличной части ниже, под отбором.
2) Каждая строка идентифицируется полем ГУИД и свертка. -1 означает, что объект находится во внешней базе. Соответственно, у Вас получается, что элементы справочника различаются, например, по полю ГУИД, если у них одинаковые код и наименование. Это возможно, например, если в базах элементы заводились вручную.

В управляемой форме то же самое, но нет раскраски строк.
30. пользователь 11.05.12 05:50
Сообщение было скрыто модератором.
...
31. lees 14.05.12 15:41 Сейчас в теме
Спасибо! В хозяйстве пригодилось. Еще б была возможность сравнивать 8 с 7.7, тогда было б ваще круть.
32. www2007 23.10.12 17:32 Сейчас в теме
Спасибо, пригодилось, и времени сэкономило немало... Полезная вещь..
33. SkorikA 83 10.01.13 09:17 Сейчас в теме
Ошибочка:
{ВнешняяОбработка.СравнениеСправочниковВРазныхБазах.МодульОбъекта(60)}: Ошибка при вызове метода контекста (Добавить)
Построитель.Отбор.Добавить("Владелец",, "Владелец");
по причине:
Недопустимое значение параметра (параметр номер '1')
Я так понимаю, если справочник подчинен владельцу и его не выбрал - то не работает?
34. ediks 338 10.01.13 10:31 Сейчас в теме
(33) Попробовал воспроизвести ошибку - не получилось. Не могли бы Вы подробнее описать условия возникновения ошибки: какая конфигурация, какой справочник, в какой момент возникает (при выборе типа объекта, при нажатии на кнопку "Настройка" и т.д.)?
Светлый ум; +1 Ответить
35. Светлый ум 455 05.05.16 13:36 Сейчас в теме
{ВнешняяОбработка.СравнениеСправочниковВРазныхБазах.МодульОбъекта(577)}: Ошибка при установке значения атрибута контекста (Текст)
КомПостроитель.Текст = СформироватьТекстЗапроса(-1, КоличествоВВыборке);
по причине:
Произошла исключительная ситуация (1C:Enterprise 8.2.19.121): {(18, 14)}: Поле не найдено "Справочники.ФактическийАдресУдалить"
Справочники.<<?>>ФактическийАдресУдалить,
36. Светлый ум 455 05.05.16 14:10 Сейчас в теме
(35) Светлый ум,

Ошибка возникала при работе с Розница 1.0 --> БП 2.0
(сравнение справочника Контрагенты)

Поправил текст процедуры и заработало:
Функция СформироватьТекстЗапроса(пСвертка = 1, пКоличествоВВыборке = 0)

	Если НЕ ЗначениеЗаполнено(ТипОбъекта) Тогда	Возврат "" КонецЕсли;
	
	УсловиеПоКоличеству = ?(пКоличествоВВыборке = 0, "", "ПЕРВЫЕ " + Формат(пКоличествоВВыборке, "ЧГ=0"));
	ТекстЗапроса = 
	"ВЫБРАТЬ " + УсловиеПоКоличеству + "
	|	" + пСвертка + " КАК Свертка,
	|	Выразить("""" КАК Строка(36)) КАК ГУИД, Справочники.Ссылка КАК Ссылка, ";
	Для каждого СтрокаТЧ Из РеквизитыОбъекта Цикл
		
		Если Не Прав(СтрокаТЧ.Имя,7)= "Удалить" 
			И Не СтрокаТЧ.Имя = "БанковскиеРеквизиты"
			И Не СтрокаТЧ.Имя = "ГруппаПолучателейСкидки" 
			И Не СтрокаТЧ.Имя = "ПодписьДолжность" 
			И Не СтрокаТЧ.Имя = "ПодписьФИО"
			И Не СтрокаТЧ.Имя = "ГоловнаяОрганизация"  Тогда	
			
			Если СтрокаТЧ.Пометка Тогда
				ТекстЗапроса = ТекстЗапроса + "
				|	Справочники." + СтрокаТЧ.Имя + ",";
			КонецЕсли;
		КонецЕсли;
		
	КонецЦикла; 
	ТекстЗапроса = ЛЕВ(ТекстЗапроса, СтрДлина(ТекстЗапроса) - 1) + "
	|ИЗ
	|	Справочник." + ТипОбъекта + " КАК Справочники";
	
	Возврат ТекстЗапроса;

КонецФункции // СформироватьТекстЗапроса()
Показать
37. Yran 10.07.19 21:07 Сейчас в теме
Скачал, попробовал запустить на БП 3.0 - выдала ошибку: Основная таблица динамического списка задана не верно. Не задан ни текст запроса, ни основная таблица динамического списка.
При открытии зачем спрашивает?
38. ediks 338 11.07.19 09:50 Сейчас в теме
(37) Исправил, спасибо за информацию. Попробуйте скачать еще раз. Если возникнут проблемы, пишите, вышлю в личку.
39. echo77 1929 22.04.21 17:16 Сейчас в теме
Вариант подключения для 8.3 не пора ли добавить?
40. echo77 1929 22.04.21 18:43 Сейчас в теме
И было бы здорово иметь отчет, который показывает сгруппированные данные и подсвечивает что изменилось
Для отправки сообщения требуется регистрация/авторизация