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

11.07.19

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

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

Файлы

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

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

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

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

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

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

После переноса данных в новую базу возникла задача сравнить справочники между исходной и новой базами. Какие-то элементы не были перенесены по ссылкам, у каких-то элементов за время переноса изменились какие-либо реквизиты и т.д и т.п. В результате родилась эта обработка. Элементы ищутся по 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 Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист 1С:Предприятие 8 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. Не требуется синхронного обновления правил после обновления другой конфигурации, участвующей в обмене. Типовой обмен через планы обмена кнопкой Синхронизация вручную или автоматически по расписанию, или вручную обработкой.

27633 руб.

12.06.2017    161398    972    321    

482

SALE! 10%

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

Переносите справочную информацию, остатки и документы из УПП 1.3 в Бухгалтерию 3.0 с помощью готовых правил. Переносится более 50 видов документов. Простой интерфейс и понятные настройки.

42000 37800 руб.

15.12.2021    34554    258    64    

195

Внешние источники данных Кадровый учет Файловый обмен (TXT, XML, DBF), FTP Перенос данных 1C Программист 1С:Предприятие 8 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

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

85400 руб.

05.10.2022    13663    15    8    

16

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

Регулярный обмен, выгрузка, перенос из КА 1.1, УПП 1.3, УТ 10.3 для обмена с любыми конфигурациями, поддерживающими обмен в формате EnterpriseData (КД3) - БП 3.0, ERP, КА 2, УТ 11, Розница 3, УНФ 3 и другими. Правила для старых и доработанных конфигураций не требуют синхронного обновления и совместимы с новыми и будущими конфигурациями. Обмен по расписанию, через папку, FTP, почту.

16531 руб.

18.02.2016    204439    675    543    

563

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

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

122000 руб.

19.08.2020    29815    27    3    

29

Перенос данных 1C Системный администратор Программист Бухгалтер 1С:Предприятие 8 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 Россия Бухгалтерский учет Управленческий учет Платные (руб)

Не хочется настраивать штатный механизм переноса между УТ 11 и Бухгалтерией 3.0 после каждого обновления? Предлагаем удобное решение для одностороннего переноса данных из Управления торговлей 11 в Бухгалтерию 3.0.

24400 руб.

22.04.2015    100110    221    187    

201

Рабочее место Производство готовой продукции (работ, услуг) Перенос данных 1C Пользователь 1С:Предприятие 8 1С:Управление производственным предприятием 1С:Документооборот 1С:Комплексная автоматизация 2.х 1С:КА 1С:ДО Платные (руб)

Продукт "Интеграция с 1С:Документооборот" позволяет использовать функции программы "1С:Документооборот 8" напрямую из учетной системы (1С:УПП; 1С:КА, 1С:УТ 10.3, 1С:БГУ 1.0, 1С:ЗБУ 1.0, 1С:УПП для Казахстана и отраслевых решений, разработанных на их основе) на платформе "1С:Предприятие 8": выполнять и ставить задачи, просматривать документы, скан-копии и прочие файлы, штрих-кодировать документы отправлять письма, вести учет рабочего времени - не входя в "1С:Документооборот 8", работая в одной программе, что значительно сокращает время и делает работу более комфортной и эффективной. Продукт прошел сертификацию 1С-Совместимо

135530 руб.

11.06.2015    62841    38    20    

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

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

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

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