bdd2

Сверка справочников между базами 1С v8.1

Опубликовал Андрей Акулов (DrAku1a) в раздел Обработки - Обработка справочников

Сравнивает наименования элементов справочников между базами. Элементы сопоставляются по коду. Помимо точного соответствия наименований, выводит элементы "похожие", "мало похожие", "Не похожие", и отсутствующие в одной из баз.

Данный отчет - переделка на 8.1 аналогичного моего отчета под 7.7 (http://infostart.ru/public/79910/)

Применение отчета:

Есть две базы, например, бухгалтерия и производство (или бухгалтерия и торговля, или...). Перенос данных из одной в другую осуществляется вручную или "самописными обработками". Справочники  заполняются и синхронизируются пользователями самостоятельно. Элементы справочников сопоставляются по коду (например Контрагент "ООО Тяп-Ляп" в обеих базах заведен с кодом 10112). Естественно, возникают ситуации, когда наименования немного отличаются (из-за лишнего пробела или кавычки и т.п.). Необходимо такие элементы как-то выявлять и приводить в соответствие...

В блоке настроек "Коэффициенты" по умолчанию уже выставлены ИМХО оптимальные значения, хотя в конкретной задаче их возможно придется поднастроить на более точное восприятие. От глаз неискушенного в программировании бухгалтера рекомендую эти настройки спрятать.

Применяемый алгоритм неточного сравнения строк разработан не мною - я просто нашел его в интернете реализованным для 1С v77. Алгоритм показал хорошую скорость и эффективность сравнения.

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

Наименование Файл Версия Размер
Сверка справочников между базами
.zip 20,59Kb
06.07.12
341
.zip 20,59Kb 341 Скачать

См. также

Добавить вознаграждение
Комментарии
1. Артур Аюханов (artbear) 840 09.01.11 13:54 Сейчас в теме
Опиши, каким алгоритмов проверяешь "похожесть" или "непохожесть" наименований ?
2. Андрей Акулов (DrAku1a) 1182 10.01.11 09:33 Сейчас в теме
Данный отчет - переделка на 8.1 аналогичного моего отчета под 7.7
http://infostart.ru/public/80077/
Применяемый в данном отчете алгоритм неточного сравнения строк разработан не мною - я просто нашел его в интернете реализованным для 1С v77. Алгоритм показал хорошую скорость и эффективность сравнения.

Также подправил описание.
3. Ростислав Чирской (Rasty_) 106 11.01.11 11:43 Сейчас в теме
Данная обработка не воспринимает Коды в которых есть буквенные префиксы. чуток подправить и будет универсальной.
4. Андрей Акулов (DrAku1a) 1182 12.01.11 20:04 Сейчас в теме
Rasty_ пишет:
Данная обработка не воспринимает Коды в которых есть буквенные префиксы. чуток подправить и будет универсальной.

Спасибо, подправлю!
Делал специально - т.к. в моем случае в одной базе использовались числовое а в другой текстовое поле "Код".
Сделаю доп. настройкой.
5. Ростислав Чирской (Rasty_) 106 12.01.11 21:16 Сейчас в теме
По моему универсальней приводить в виду:
СокрЛП(Строка(СсылкаНаОбъект.КОД));
Тогда можно не париться) Всё будет сравнивать.
6. Андрей Акулов (DrAku1a) 1182 12.01.11 22:09 Сейчас в теме
СокрЛП(Строка( 1024 )) вернет "1 024" а не "1024" как хотелось бы...

все... нашел:

СокрЛП(СтрЗаменить(""+Спр.Код, Символы.НПП, ""))

Сейчас нет под рукой баз 1С, пожалуйста протестируйте:
Прикрепленные файлы:
Sverka spravochnikov mezhdu bazami.zip
7. Артур Аюханов (artbear) 840 13.01.11 09:14 Сейчас в теме
(6) А еще можно через Формат легко решить ту же задачу.
8. Ростислав Чирской (Rasty_) 106 13.01.11 17:10 Сейчас в теме
DrAku1a пишет:

СокрЛП(Строка( 1024 )) вернет "1 024" а не "1024" как хотелось бы...

все... нашел:

СокрЛП(СтрЗаменить(""+Спр.Код, Символы.НПП, ""))

Сейчас нет под рукой баз 1С, пожалуйста протестируйте:


Протестировал. поменял 103-ю строку с "НС = ТЗ.Найти(Число(СокрЛП(Спр.Код)), "Код");" на "НС = ТЗ.Найти(СокрЛП(СтрЗаменить(""+Спр.Код, Символы.НПП, "")), "Код");" в модуле "Форма отчета".

продукт готов)
9. Андрей Акулов (DrAku1a) 1182 14.01.11 18:19 Сейчас в теме
Заменил, проверил, обновил. Спасибо за участие!
10. Sergey (cuba8) 02.03.11 13:20 Сейчас в теме
Можно попробовать 103-ю строку с "НС = ТЗ.Найти(Число(СокрЛП(Спр.Код)), "Код");"
на "НС = ТЗ.Найти(Строка(СокрЛП(Спр.Код)), "Код");" Тоже работает.

Для платформы 8.2 выдает ошибку:
{Форма.ФормаОтчета.Форма(59)}: Ошибка при вызове метода контекста (Connect)
СОМ = V8COMConnector.Connect(ПараметрыПодключения);
по причине:
Произошла исключительная ситуация (V81.COMConnector.1): Ошибка при выполнении операции с информационной базой
Несовместимая версия файла базы данных 'D:\1cbase\82account/1Cv8.1CD'

Надо поменять (V81.COMConnector.1) на (V82.COMConnector.1)
11. Svetlana (vishenka) 18.12.11 12:28 Сейчас в теме
Хорошая обработка, добавила те справочники, которые необходимо было сравнить мне.
Еще лучше, если бы была возможность сравнивать справочники не через прямое подключение к базе.