gifts2017

Сверка справочников между базами 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 Скачать

См. также

Contragent+ 5.0 от 2 500
Подписаться Добавить вознаграждение

Комментарии

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

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

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

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

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

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

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

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

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

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


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

продукт готов)
9. Андрей Акулов (DrAku1a) 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
Хорошая обработка, добавила те справочники, которые необходимо было сравнить мне.
Еще лучше, если бы была возможность сравнивать справочники не через прямое подключение к базе.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа