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

11.07.19

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

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

Скачать файл

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

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

После переноса данных в новую базу возникла задача сравнить справочники между исходной и новой базами. Какие-то элементы не были перенесены по ссылкам, у каких-то элементов за время переноса изменились какие-либо реквизиты и т.д и т.п. В результате родилась эта обработка. Элементы ищутся по 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 всю возможную информацию | В переносе есть фильтр по организации и множество других опциональных параметров выгрузки | Есть несколько алгоритмов выгрузки остатков на выбор

50722 45650 руб.

04.08.2015    165287    386    276    

370

SALE! 10%

Перенос данных 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. Не требуется синхронного обновления правил после обновления другой конфигурации, участвующей в обмене. Типовой обмен через планы обмена кнопкой Синхронизация вручную или автоматически по расписанию, или вручную обработкой.

26280 23652 руб.

12.06.2017    140260    784    295    

410

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

Перенос данных из 1С:Управление производственным предприятием 1.3 в 1С:Бухгалтерия предприятия 3.0 с помощью правил обмена. Переносятся остатки, документы (обороты за период), справочная информация. Правила проверены на конфигурациях УПП 1.3 (1.3.234.x) и БП 3.0 (3.0.161.x). Правила подходят для версии ПРОФ и КОРП.

28000 руб.

15.12.2021    23211    161    48    

118

Зарплата Внешние источники данных Бюджетный учет Перенос данных 1C Системный администратор Программист Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактических удержаниях, НДФЛ, вычетах, страховых взносах из базы Парус 8 учреждений в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (ЗГУ) и начать с ней работать с любого месяца года.

84000 руб.

19.08.2020    24484    23    1    

25

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 | Можно проверить на вашем сервере перед покупкой

50722 45650 руб.

15.04.2019    71585    180    149    

121

SALE! 10%

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

Можно проверить до покупки, оставьте заявку! Воспользовались более 268 компаний! Перенос данных из УТ 10.3 в УТ 11 | из УТ 10.3 в КА 2 | из УТ 10.3 в ERP. Предлагаем качественное и проверенное временем решение для перехода с УТ 10.3. Можно перенести начальные остатки, нормативно-справочную информацию и все возможные документы. При выгрузке можно установить отбор по периоду, организациям и складам. При выходе новых релизов конфигураций 1C оперативно выпускаем обновление переноса данных.

50722 45650 руб.

24.04.2015    194258    149    242    

279

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 предприятий! |

50722 45650 руб.

31.10.2014    236141    99    334    

305

SALE! 10%

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

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

48278 43450 руб.

03.12.2020    36081    90    63    

87
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. OBEH 08.12.10 13:23 Сейчас в теме
"Идентичность" - Это код и наименование в справочниках разных конф?
2. ediks 337 08.12.10 21:49 Сейчас в теме
(1)Я вроде написал, что сравнение идет по выбранным реквизитам. Кнопка "Настройка" открывает форму выбора реквизитов.
3. OBEH 09.12.10 15:11 Сейчас в теме
(2)Я еще не смотрел обработку. Просто вопрос возник.
Если, например, по коду можно, то дело стоящее.
А если, например, одна база на платформе 8.1, а другая база на платформе 8.2?
И еще. Идея. Мне кажется, коль пошла такая пьянка, может быть стоит добавить
на форму кнопку, которая формирует отчет по несовпадающим элементам?
4. ediks 337 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 337 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 337 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 337 10.12.10 12:55 Сейчас в теме
(12) Табличные части не сравниваются. Это описано во встроенной справке.
14. Virsy 10.12.10 13:16 Сейчас в теме
(13) тогда неплохо бы их не добавлять в список реквизитов
15. ediks 337 10.12.10 14:19 Сейчас в теме
(14) Был такой глюк :D . Исправился. Спасибо за наводку.
16. Tokiy 131 09.02.11 20:14 Сейчас в теме
Ешчо один "глюк": когда есть две табличные части, например "Образование" и "ДопОбразование", то в этом куске
//
// выкусим наименования табличных частей
Для каждого ТабличнаяЧасть Из Метаданные.Справочники[ТипОбъекта].ТабличныеЧасти Цикл
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, ТабличнаяЧасть.Имя + ".", "");
КонецЦикла;

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

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

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

8.1 Две УТ 10.3
20. ediks 337 19.02.11 17:20 Сейчас в теме
(18) Исправил этот глюк. Действительно, в УТ нет такой процедуры. Спасибо, что подсказали.
21. v_id 106 19.02.11 19:42 Сейчас в теме
Я конечно придираюсь, но "1" и "-1" не очень наглядно, может использовать раскраску типа зеленый есть в текущей нет в копии, красный наоборот?
22. ediks 337 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 337 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 337 10.01.13 10:31 Сейчас в теме
(33) Попробовал воспроизвести ошибку - не получилось. Не могли бы Вы подробнее описать условия возникновения ошибки: какая конфигурация, какой справочник, в какой момент возникает (при выборе типа объекта, при нажатии на кнопку "Настройка" и т.д.)?
Светлый ум; +1 Ответить
35. Светлый ум 407 05.05.16 13:36 Сейчас в теме
{ВнешняяОбработка.СравнениеСправочниковВРазныхБазах.МодульОбъекта(577)}: Ошибка при установке значения атрибута контекста (Текст)
КомПостроитель.Текст = СформироватьТекстЗапроса(-1, КоличествоВВыборке);
по причине:
Произошла исключительная ситуация (1C:Enterprise 8.2.19.121): {(18, 14)}: Поле не найдено "Справочники.ФактическийАдресУдалить"
Справочники.<<?>>ФактическийАдресУдалить,
36. Светлый ум 407 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 337 11.07.19 09:50 Сейчас в теме
(37) Исправил, спасибо за информацию. Попробуйте скачать еще раз. Если возникнут проблемы, пишите, вышлю в личку.
39. echo77 1876 22.04.21 17:16 Сейчас в теме
Вариант подключения для 8.3 не пора ли добавить?
40. echo77 1876 22.04.21 18:43 Сейчас в теме
И было бы здорово иметь отчет, который показывает сгруппированные данные и подсвечивает что изменилось
Оставьте свое сообщение