Дубликаты контрагентов — ищем, избавляемся

Проверьте свой справочник контрагентов на наличие двойников. И избавьтесь от близняшек.

Мои любимые бухгалтера без присмотра превратили справочник контрагентов в большую помойку. Так всегда случается, когда ответственных за внесение новой информации больше одного. Это означает, что ответственного не найдешь. А конфигурация то была «БП 1.6» — никакого контроля со стороны программы.

Однако, потребовалось этот справочник причесать. В первую очередь разобраться с дубликатами ИНН. Родилась такая вот обработка. Ищет дубли по ИНН или по наименованию (для этого переводит наименование в верхний регистр, выбрасывает всякие спецсимволы типа кавычек, пробелов и т.п.). Найденные дубли выводит в виде дерева. Для всех найденных дублей можно одной кнопкой найти ссылки (для принятия решения о том кто живой еще, а кто умер давно и реанимации не подлежит). Показывает есть ли на элемент справочника ссылки в документах, дату последнего документа, ссылающегося на элемент справочника и т.д.

Что потом можно сделать с неугодными — очистить ИНН, пометить на удаление, добавить к названию «(устар)», перебросить ссылки на живого контрагента.

Подробнее можно почитать во встроенной справке.

Тестировалось на конфигурации БП 1.6. По логике вещей должно работать на любой конфе, где есть справочник контрагентов, у которого есть такие реквизиты как НаименованиеПолное, ИНН, КПП, Комментарий.

Примечание. Флажок «пометка» используется только в операции переброса ссылок. Для этого предварительно необходимо эти ссылка найти.

 

PS Кому нужна обработка гораздо лучше, знающие люди советуют взять у Tormozit //infostart.ru/projects/1134/

58 Comments

  1. AXoxol

    пользительно

    Reply ↓
  2. Belomor

    Все гениальное уже придумали до Вас.

    Поиск рулит

    http://infostart.ru/projects/1134/

    Reply ↓
  3. Abadonna

    (2)>Все гениальное уже придумали до Вас.

    Все нормально. Первый ход начинающего — перенумератор, второй — как раз дубли контрагентов:))))))

    Reply ↓
  4. artmicro

    Все гениальное уже придумали до Вас. — ага в УТП — это встроенная штука, которая удаляет не только дубли в справочнике контрагенты, а любом справочнике. По функционалу не уступает Вашей 🙂

    Reply ↓
  5. profik777

    не проще было сделать контроль на уцникальность ИНН при вводе???

    Reply ↓
  6. Арчибальд

    Делим 252 скачивания не 12 плюсов, и получаем 21. Хороший результат, значит это кому-то нужно!

    Reply ↓
  7. Valerich

    Большое спасибо всем за добрые комментарии. Я проникся и больше таких вещей выкладывать не буду. Простите пожалуйста.

    А если по существу виноват я только в том, что ссылку в (2) не нашел. Хотя искал — очень было нужно и быстро. Пришлось быстро написать. Без особых изысков.

    Написал, решил поделиться. Может кто-то тоже не найдет (2), но увидит мою.

    (3) Уважаемый Абадонна. Я как первы раз попал сюда, сразу понял, что Вы местный гуру. Но нельзя при этом других называть новичками, если они недавно на ИС. Я уже давно не мальчик в 1с. Но далеко не все свои разработки сюда выкладываю, потому как по большей части не считаю их достаточно универсальными — ведь они пишутся под конкретный заказ.

    Reply ↓
  8. Valerich

    собственно на мисту давно не захожу по причние «дружественности» ее некоторых самых активных представителей, которые себя считают богами в 1с.

    Видимо придется и отсюда уйти.

    Reply ↓
  9. Арчибальд

    (7) см. 6. Там не ехидство, а конкретная оценка полезности. Сейчас к 15 частное подходит — это вообще хороший показатель.

    (8) … и пусть у моей тещи будет зять кривой

    Reply ↓
  10. Valerich

    (9) я как-то не заморачиваюсь на плюсики, их количество и т.п. Поэтому и не понял, что такое частное это хороший показатель. Извините, если Вас обидел.

    Reply ↓
  11. Abadonna

    >Но нельзя при этом других называть новичками

    Вообще-то, когда я ставлю в конце поста «:)))))» я расчитываю, что это будет расценено как шутка. Каковой она и была

    Reply ↓
  12. Арчибальд

    (10) Если бы я обиделся высказался бы.

    Чистая статистика. 20-25 считываний на плюсик — полезно, если >30, то уже не очень. А 10-15 — это супер.

    Reply ↓
  13. Valerich

    Спасибо. На ИС я действительно новичок, да и бываю редкою. Не оценил. Учту.

    Reply ↓
  14. Бади

    От тупого бухгалтера (коими нас считают умные программисты) спасибо за обработку. актуально очень.

    Reply ↓
  15. wassillek

    в УТ такая есть просто сохранить ее как внешнюю и работает в БП проверял

    Reply ↓
  16. Valerich

    (14) зря Вы так. Я бухгалтеров тупыми не считаю. А не очень умные люди есть среди всех профессий и специальностей.

    (15) мне советовали и из УПП взять. Теперь вот из УТ. Фишка в том, что для этого надо иметь эти конфигурации и поддерживать их в актуальном состоянии. Вот если бы такая штука была на диске ИТС, тогда то, что я написал было бы полной фигней. А теперь представьте себе пользователей, где нет штатных программистов, которые бы имели весь набор стандартных конфигураций. Ну нет у них под рукой УПП или УТ. Где им взять такую обработку?

    Reply ↓
  17. Ish_2

    Задержитесь на инфостарте , встретите новую тему с поиском дублей , отнесётесь спокойно — и то хорошо.

    Reply ↓
  18. logdog

    (5) как это реализовать?

    Reply ↓
  19. Cyberboy

    однозначно жирный +, но если бы была возможность выбирать между контрагентом или номенклатурой то цены не было бы этой обработки!!! Есть возможность для номенклатуры сделать такое???

    Reply ↓
  20. Valerich

    (19) легко. Но ведь во (2) комменте уже порекомендовали универсальную обработку для любого справочника.

    Если надо в моей, пишите в личку, сделаю

    (5) например, отловить событие перед записью объекта и проверить на существование других элементов с таким же ИНН.

    Например такой функцией:

    // Проверяет на наличие контрагентов с указанным ИНН

    //

    // Параметры

    // ВыводитьДиалог — <Булево> — выводить список контрагентов с дубликатом ИНН

    //

    // Возвращаемое значение:

    // <Булево> — дубликаты найдены

    //

    Функция ЕстьДубликатыИНН( ВыводитьДиалог = Истина ) Экспорт

    Если ОбменДанными.Загрузка Тогда

    Возврат Ложь;

    КонецЕсли;

    Если ПустаяСтрока(ИНН) Тогда

    // в данном случае нечего проверять

    Возврат Ложь;

    КонецЕсли;

    Запрос = Новый Запрос;

    Запрос.Текст =

    «ВЫБРАТЬ

    | Контрагенты.Ссылка,

    | Контрагенты.Наименование,

    | Контрагенты.НаименованиеПолное,

    | Контрагенты.ИНН,

    | Контрагенты.КПП

    |ИЗ

    | Справочник.Контрагенты КАК Контрагенты

    |ГДЕ

    | Контрагенты.Ссылка <> &Ссылка

    | И Контрагенты.ИНН = &ИНН

    | И Контрагенты.КПП = &КПП

    | И (НЕ Контрагенты.ЭтоГруппа)»;

    Запрос.УстановитьПараметр(«Ссылка», Ссылка );

    Запрос.УстановитьПараметр(«ИНН», ИНН );

    Запрос.УстановитьПараметр(«КПП», КПП );

    Результат = Запрос.Выполнить().Выгрузить();

    #Если Клиент Тогда

    Если Результат.Количество() <> 0 И ВыводитьДиалог = Истина Тогда

    Предупреждение(«Обнаружено » + Результат.Количество() + » эл. справочника с совпадающим ИНН и КПП»);

    Для каждого СтрокаРезультата Из Результат Цикл

    Сообщить(СтрокаРезультата.Наименование + » — » + СтрокаРезультата.НаименованиеПолное );

    КонецЦикла;

    КонецЕсли;

    #КонецЕсли

    Возврат Результат.Количество() <> 0;

    КонецФункции // ЕстьДубликатыИНН()

    и

    Процедура ПередЗаписью(Отказ)

    Если ОбменДанными.Загрузка Тогда

    Возврат;

    КонецЕсли;

    Если ЕстьДубликатыИНН(Истина) Тогда

    Отказ = Истина;

    Возврат;

    КонецЕсли;

    // дальнейшие проверки…

    КонецПроцедуры

    все это в модуле справочника Контрагенты

    Reply ↓
  21. Abadonna

    Посмотрел сейчас УТ, там есть супер-универсальная встроенная

    «Поиск и замена дублирующихся элементов». Для любого справочника и даже с настройкой уровня сходства.

    Reply ↓
  22. Abadonna

    +(21) Проверил на БП — заработало сходу. Рекомендую

    Reply ↓
  23. Valerich

    (22) дай и народу попользоваться

    Reply ↓
  24. Valerich

    (21) ну не у всех кому надо почистить справочник есть под рукой свежая УТ. Вот у меня нет :(. и УПП тоже :(((

    И что делать? Н уладно я — написал сам и сам себе почистил, а как же другие такие же? Тоже только для себя ваять?

    Выдрать из конфы и выложить здесь кто-нибудь хочет? Думаю нет, потому как

    1. это будет явный плагиат

    2. возможен конфликт в авторстве, лицензиях и т.п. с 1С

    Reply ↓
  25. Abadonna

    (23) Я ж не в укор, а просто для информации 😉

    Reply ↓
  26. Valerich

    да я не обижаюсь, просто мне непонятно как такой информацией воспользоваться можно (при отсутствии УТ)

    Reply ↓
  27. Valerich

    мы тут с младшим ребенком сказку читали про петушка, который подавился зернышком. Курочка за маслицем побежала к корове, та ее к косарям за сеном отправила, те еще куда-то за чем-то… в общем курочке пришлось дров нарубить для кузнеца, а потом в обратку заказы исполнять прежде чем маслица получила.

    Т.е. совет взять в УТ или еще где человеку у которого этого нет равносилен освету найти того, у кого это есть и пусть поделится, а он тоже может не альтруистом оказаться, попросит что-то взамен и т.д.

    А человеку нужна маленькая обработочка. И если можно быстро и бесплатно.

    Reply ↓
  28. Abadonna

    Ну, например, тебе по мыло могу выслать, если интересно 🙂

    Публиковать, конечно, не буду. Я и свои-то 1С-отчетики (за редкими исключениями) не публикую, а уж чужие — тем более не буду

    Reply ↓
  29. Valerich

    (28) вышли, интересно. Тем более про поиск по похожести. Мыло в личку скину.

    Reply ↓
  30. artbear

    (21), (22) Добавлю к этим постам:

    у Tormozit на этос сайте выложена замечательная доработка этой обработки от 1С.

    Рекомендую.

    ЗЫ также эта обработка входит в состав подсистемы «Инструменты разработчика» того же автора.

    Reply ↓
  31. artbear

    (30+) Кстати, вот эта обработка http://infostart.ru/projects/1134

    Reply ↓
  32. Valerich

    (30), (31) спасибо, мне в (2) это уже сообщили. Каюсь искал, но не нашел, видимо ключевые слова для поиска неправильно задал

    Reply ↓
  33. Valerich

    (31) добавил ссылку в описание.

    Reply ↓
  34. WWW123

    Отличная штука, а главное универсальная!

    Reply ↓
  35. YAN

    Хорошая обработка, но есть предложение в ТЧ «СсылкиНаКонтрагента» добавить колонки «Проведен» и «Удален», чтобы проще было анализировать значимость ссылок!

    Reply ↓
  36. gutentag

    А мне понравилась обработка — наглядно все!

    Пожелание: добавте проверку правильности ИНН,

    типа этой http://infostart.ru/projects/167/

    Reply ↓
  37. Арчибальд

    (34) Плюс за ссылку на конкурента.

    А коэффициент уже 13. Я слежу 😉

    Reply ↓
  38. Yashazz

    Меня вот удивляет не то, что эти баяны регулярно выкладывают всё новые и новые люди, а то, что рейтинг у таких баянных обработок (зачастую жутко неуниверсальных) подозрительно высок. Думаю, посетители просто не находят ничего лучше, натыкаются на последнее по хронологии и приходят в не совсем обоснованный восторг. А гораздо более интересные разработки остаются погребёнными в недрах.

    Не задумывались ли старожилы ИС о некоем the Best, где и бухгалтеру, и программеру, не имеющему времени кропать своё, было бы легче искать?

    Reply ↓
  39. Арчибальд

    (38) Пользователям обычно не нужны интересные разработки. Или, к примеру, универсальные. Им нужны конкретные, которые сегодня делают то, что им нужно. Еще вчера нужно.

    Это не потому, что пользователи тупые. Они просто занятые.

    А с поиском беда, имхо.

    Reply ↓
  40. Abadonna

    (39) >А с поиском беда, имхо.

    Раз понодобился…. перенумератор :))))))))))))))))))) Лень было копаться в своей файлопомойке, попробовал найти на ИС — фигушки. И свой дома болтался.

    Нашел в ExtForms — от старого проггера осталось

    Reply ↓
  41. Арчибальд

    (40)На такой случай держу повсеместно папку «Одноразовые». Перенумераторы, очистки справочников по реквизиту и т.д.

    Reply ↓
  42. Abadonna

    (40) А самое прикольное, что искал минут 30, а написал бы с нуля минут за 10 :)))

    Reply ↓
  43. Valerich

    (37) рейтинг стремительно падает 🙁

    (42) пожеланий по доработке куча. Что посоветуете, делать или все равно утонет в массе аналогов?

    Reply ↓
  44. Abadonna

    (43) Где он падает? 1:12.5

    вот сюда глянь и согласись, что чуток посложнее

    http://infostart.ru/projects/1191/

    1:17.

    Так что ты впереди, на белом коне ;))))

    На самом деле у рейтинга миллион оттенков: КТО, КОГДА, ПОЧЕМУ….

    Reply ↓
  45. Valerich

    (40) а с поиском действительно ведь беда. Может сделать возможность какие-то ключевые слова задавать для разработок, чтобы по ним искалось.

    Reply ↓
  46. gutentag

    (36+) имхо более полезный отчет http://infostart.ru/projects/258/

    Reply ↓
  47. Valerich

    (45) ок, на выходных прикручу такие бантики.

    Reply ↓
  48. Yashazz

    (39) Согласен, но потом опять по энному кругу: «а теперь для номенклату-у-уры, а ещё для ОС хотим» и так далее. Легче вооружить универсалом и обучить кого-нибудь толкового.

    (40) Программеры-то ладно, а вот когда бухгалтер ищет инструмент под конкретную задачу, а ему или ничегошеньки, или 10 схожих обработок, тогда сложновато. Особенно когда из 10 похожих неясно, чего выбрать, и выбирается зачастую не самая качественная.

    Reply ↓
  49. Yashazz

    (41) Вот поэтому я, например, вообще всё всегда пишу сам из таких мелочёвок. Искать дольше и себе дороже.

    (46) А что, тегирование на ИС не применяется?

    Reply ↓
  50. yuriyscr

    Чуть переделал, показал бухгалтерам. Нашли дубли контрагентов, перенесли остатки на одного, остальных перенесли в отдельную папку. Вообщем — им понравилось, периодически запускают на проверку дублей.

    Reply ↓
  51. Valerich

    (50) очень приятно, что кому-то это облегчает жизнь

    Reply ↓
  52. anna_irk

    очень пригодилась

    Reply ↓
  53. 1cBIT

    Отличная обработка, очень пригодилась. Особенно при настройке обменов в типовых конфигурациях, когда связи между ними нет.

    Перебрасывает движения с одного контрагента на другого удаляя лишнего.

    Reply ↓
  54. Sunhare

    спасибо, +

    Reply ↓
  55. AlekseiLeit

    норм обработка!

    Reply ↓
  56. curys

    А мне понравилась обработка — наглядно все! Отличная обработка, очень пригодилась. Особенно при настройке обменов в типовых конфигурациях, когда связи между ними нет.

    Reply ↓
  57. spectre1978

    качнул, конвертнул под 8.2, запустил. Нашел дубли, не очень много, строк 70. Запустил поиск ссылок. Обработка остыла уже примерно на час, никакого прогресса не показывается, что происходит и сколько будет происходить — никак не видно. Вообще это немножко странно, потому что при удалении помеченных объектов у меня помеченных больше на порядок — около 700 шт разных объектов, а поиск ссылок там за это время выполнился бы уже пару раз.

    UPD: уехал в магазин, вернулся. За пару часов все ссылки нашлись. Засел за исправления. Как и предыдущим ораторам, мне очень понравилась прозрачность интерфейса. Если в штатной обработке надо, полазив по закладкам, вкурить, как заменить ссылки на правильные, и к тому же это зачем-то делается по всем контрагентам сразу и по-другому нельзя, то здесь — все предельно очевидно, примерно как в приложениях для iOS. Тупануть и сделать что-то не так практически невозможно. За часок выправил все что хотел. Если не считать долгого поиска ссылок — обработка понравилась. Плюсую.

    Reply ↓
  58. Valerich

    (57) Спасибо за добрые слова.

    поиск ссылок выполняется штатной процедурой поиска ссылок, которая не предусматривает вывод какого-то прогресса.

    Почему она работает медленнее, чем в контроле при удалении — вопрос. Скорее всего дело в том, что контроль перед удалением выполняется всегда в монопольном режиме, а здесь такой режим не выставляется, чтобы не останавливать работу с базой.

    Reply ↓

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *