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

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

Мои любимые бухгалтера без присмотра превратили справочник контрагентов в большую помойку. Так всегда случается, когда ответственных за внесение новой информации больше одного. Это означает, что ответственного не найдешь. А конфигурация то была «БП 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 не будет опубликован. Обязательные поля помечены *