gifts2017

Удаление дубликатов из справочников в 1С8

Опубликовал Сергей Даульберг (daulberg) в раздел Управление - Пользователю системы

   Подробно описана процедура удаления дубликатов в справочниках 1С.
   Можно рассматривать как пример применения универсальных обработок с диска ИТС http://infostart.ru/public/22234/
   Эта жа статья в формате WORD в "прицепленом" файле.

 УДАЛЕНИЕ ДУБЛИКАТОВ В СПРАВОЧНИКАХ

 

                        1. Причины возникновения дубликатов в справочниках

 

            Проблема дубликатов в справочниках возникает во всех базах данных, не исключение и 1С (ИБ - информационные базы в терминах 1С). Основные причины возникновения дубликатов в справочниках следующие:

  • Человеческий фактор
  • Ошибки политики обмена

             При больших базах данных и большом количестве пользователей дублирование элементов справочника неизбежно. Чаще всего это происходит из-за отсутствия регламентных документов: за какие справочники кто должен отвечать и как эти справочники контролировать. Чаще всего ИБ – продукт коллективного творчества, за работу которой никто не несет ответственности. Это тема отдельной статьи.

 

            Рассмотрим возникновение дубликатов справочников на примере конфигурации «Бухгалтерия предприятия 8» (БП). Наиболее «захламленные» справочники это «Контрагенты» и «Номенклатура». Это естественно, т.к. с этими справочниками работают практически все пользователи.

 

            Простые повседневные примеры из работы небольшого предприятия.

 

  • Справочник номенклатуры достигает сотен тысяч наименований. Если он плохо структурирован, дубликаты неизбежны. Пришел товар на склад. Кладовщик не смог правильно выбрать товар из справочника (новый неопытный кладовщик или старый раздолбай). Заводит новую позицию в справочнике. Особенно актуально, когда складов много, работают с одной (не дай бог, распределенной) базой данных. В центральном офисе концы с концами свести не могут. Пример навскидку из реальной ИБ. Сравните номера 3148 и 3150. Найдите различия. 

 

 

 

 

00000003146

Лист оцинк. плоский 0.7*1250*2500

Лист оцинк. плоский 0.7*1250*2500

л.

00000003148

Лист оцинкованный

Лист оцинкованный

шт

00000003147

Лист оцинкованный

Лист оцинкованный

м2

00000003149

Лист оцинкованный   кг

Лист оцинкованный   кг

кг

00000003150

Лист оцинкованный   шт

Лист оцинкованный   шт

шт

00000003151

Лист оцинкованный 2,0-0,5 м

Лист оцинкованный 2,0-0,5 м

шт

 

  • Справочник клиентов достигает десятков тысяч наименований. Сотрудников, которые продают товар, почему-то везде называют «менеджеры», хотя слово «менеджер» переводится как «управляющий» - «приказчик» по-русски. По моим наблюдениям у этой категории сотрудников самая большая текучесть кадров. У хорошего менеджера есть свои клиенты. И фирмы переманивают успешных менеджеров с его клиентами. Новый сотрудник, плохо ориентируясь в новой для него ИБ, наплодит массу дубликатов. Без комментариев.

 

 

 

 

000006108

КАМАЗ-ЛИЗИНГ-Сервис-Ногинск ОО

ООО "КАМАЗ-ЛИЗИНГ-Сервис-Ногинск" Ногинское ОСБ 2557 г.Ногинск

5031079232

000006028

КамАз-Лизинг-Сервис-Ногинск ООО

ООО "КамАз-Лизинг-Сервис-Ногинск"

 

 

  • При обмене информацией между двумя ИБ должна строго соблюдать технология обмена данными. Для примера возьмем две самые распространенные конфигурации БП и ЗУП. Ввод в справочники и обмен данными между конфигурациями должен быть строго регламентирован. Если одновременно ввести два совершенно одинаковых элемента в справочники в обоих этих конфигурациях (например, в справочник «Физические лица»), а затем произвести обмен между конфигурациями, то произойдет дублирование элементов справочника. Причина в том, что каждая запись в 1С8 имеет свой уникальный идентификатор. Сравнение записей происходит по нему, а не по содержанию как в 1С7. Поэтому две совершенно идентичные с точки зрения пользователя записи для системы 1С8 будут различными. Сотрудник введен одновременно в БП и ЗУП (это видно по разной кодировке в конфигурациях). 

 

 

4536-0028

Комаров Юрий Николаевич

00004717

Комаров Юрий Николаевич

 

                        2. Поиск и замена дубликатов

 

            Для поиска дубликатов существует много обработок, в частности на сайте Инфостарт (выбраны только для 1С8):

           

Универсальная обработка для поиска дубликатов по любому справочнику и любому реквизиту

http://infostart.ru/public/14880/

Поиск дубликатов по справочнику «Физические лица» с учетом дней рождения

http://infostart.ru/public/21380/

Поиск дубликатов по справочнику «Контагенты» с учетом ИНН

http://infostart.ru/public/19802/

Поиск дубликатов по справочнику «Контагенты» с учетом реквизитов

http://infostart.ru/public/21386/

Поиск и замена дубликатов в справочниках

http://infostart.ru/public/14986/

 

            Чистку справочников от дубликатов необходимо производить регулярно. Настоятельно рекомендую это делать хотя бы один раз в месяц перед закрытием месяца.

 

            Предлагается следующая последовательность действий для каждого актуального справочника:

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

            Эти операции необходимо производить с помощью обработок, находящихся на диске ИТС, их список находится http://infostart.ru/public/22234/ .

 

            Замена ссылок производится с помощью обработки «ПоискИЗаменаЗначений.epf».

 

            Внимание! Эта обработка универсальная. Она меняет любые ссылки! Пользоваться ей нужно очень аккуратно (граната в руках обезьяны)!!! Потренируйтесь на тестовой ИБ.

 

            Запускаем обработку через основное меню «Файл/Открыть». На экране появится форма обработки. На ней жмем на значок «Добавить» (или на клавишу Insert). Добавится строка замены, в которой будем указывать «что заменять» и «на что заменять». Таких строк можно добавить несколько, но лучше не рисковать и менять ссылки по одной. 

            В верхнем окне обработки появится строчка. Настроим раздел «Что заменять».  Жмем на кнопку «Т» - выбор таблицы. 

 

     Появится окно с объектами конфигурации ИБ (справочники, документы). Выберем справочник «Контрагенты» для удаления из него дубликатов. 

 

     Аналогично настроим раздел «На что заменять». Щелкаем по пустому полю. Появляются аналогичные кнопки. Жмем на «Т», выбираем справочник «Контрагенты»



     Вернемся в раздел «Что заменять». В окне кнопка «Т» сменилась на кнопку «…» - выбор записи из справочника «Контрагенты»


 

 

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

 

    Выбираем элемент 6158. Система предупредит, что мы выбрали элемент, помеченный на удаление. Соглашаемся. 

 

    На форме обработки в разделе «Что заменять» появится название контрагента. 


 

    Переходим в раздел «На что менять» (щелкаем по пустому полю). Появляются аналогичные кнопки. Жмем на «…». Выбирает основной элемент справочника:   

    Экран обработки принял следующий вид:  

     Жмем на кнопку «Найти ссылки». Получим ссылки всех объектов ИБ на элемент, находящийся в разделе «Что заменить». В нижнем окне обработки появится список этих объектов. 

 

    Тщательно проверьте список! При нажатии на элемент этого списка, откроется соответствующий документ. Для замены ссылок, нажмите на кнопку «Выполнить замену значений».

 

    Если случай «не запущенный», то произойдет изменение ссылок всех объектов из списка на «правильный» элемент справочника. Если с ошибочным объектом уже «плотно» поработали, то необходимы дополнительные действия.

 

    Например, если у справочника есть подсправочник (например «Договоры контрагентов») и эти договора участвовали в операциях, то необходимо вместе с контрагентом менять и договор. Для этого в верхней части обработки добавляем еще одну строку, в которую выбираем объект из справочника «Договоры контрагентов» для этого контрагента.  

 

    В разделе «Что заменять» находится договор удаляемого контрагента, в разделе «На что заменять» - договор основного контрагента. При этой операции будут перекинуты не только ссылки справочника «Контрагенты», но и справочника «Договоры контрагентов».

           

    Замену лучше производить последовательно. Сначала выполняем замену для договора – снимаем «галочку» с первой строки. 


 

 

    Жмем «Найти ссылки», «Выполнить замену значений». Затем установить «галочку» на первой строке, снять со второй и выполнить те же операции.

 

   Для того, чтобы проверить выполнение операции можно повторно нажать кнопку «Найти ссылки». Список объектов должен остаться пустым.

 

    Таким образом, мы перевели все ссылки с ошибочного объекта на «правильный». Контроль справочников нужно делать регулярно, чтобы не возникали сложные исправления.

 

    Чтобы больше не путаться с ошибочным объектом, необходимо его удалить из ИБ. Для этого служит обработка на диске ИТС «Удаление помеченных объектов.epf». В отличие от встроенной в конфигурацию обработки, эта позволяет удалять объекты без блокировки ИБ.

 

    Запускаем обработку. Будет выдано предупреждение о том, что «Обработка может долго работать». Соглашайтесь. Обработка выберет все объекты, помеченные к удалению, и выведет их список в верхнем окне.  

 

 

    По умолчанию помечены к удалению все объекты. Можно «галочками» выбрать необходимые. Нажмите на кнопку «Контроль». Будет выдано сообщение: 



     Если сказать «Да» обработка попытается удалить помеченные объекты. Удаление произойдет, если на удаляемые объекты не имеется ссылок. Если сказать «Нет», то после контроля будет выведен список ссылок для каждого объекта, который можно просмотреть и проанализировать.

 

     Например для нашего контрагента «ВЕГА-М» ссылок не найдено и объект может быть удален из ИБ. Это отмечено зеленой «галочкой», список ссылок в нижнем окне пуст. 

 

    Объекты с красной «галочкой» удалить из ИБ невозможно. В нижнем окне показаны документы, ссылающиеся на этот объект. Так для контрагента «Техдиалстрой» имеется 15 ссылок. 

 

     Для этого контрагента необходимо проделать такие же операции, какие были проделаны для контрагента «ВЕГА-М».

 

     Для удаления объектов из ИБ необходимо нажать на кнопку «Удалить». Будут удалены все объекты, помеченные к удалению, на которые не имеется ссылок.

 

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

 

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

Наименование Файл Версия Размер Кол. Скачив.
Статья с картинками
.rar 142,38Kb
26.11.14
508
.rar 142,38Kb 508 Бесплатно

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Igоr Sаulеviсh (gutentag) 23.10.09 22:36
2. Сергей Старых (tormozit) 24.10.09 13:15
Кстати дубликаты возникают не только в справочниках. На практике часто встречал еще и в планах видов характеристик.
3. igorCool (itmind) 25.10.09 03:14
Документ не открывается
4. rasswet (rasswet) 28.10.09 09:42
(3) архив. zip rar ? указываете расширение файла. статья хорошая.
5. Сергей Даульберг (daulberg) 28.10.09 10:36
6. Аркадий Кучер (Abadonna) 30.10.09 17:55
Причина в том, что каждая запись в 1С8 имеет свой уникальный идентификатор. Сравнение записей происходит по нему, а не по содержанию как в 1С7.

В 1С7 сравнение записей тоже производится по уникальному идентификатору. ;)
7. Петр Сусоров (susorov) 27.12.09 19:16
Большое спасибо! С удовольствием распечатал статью и раздал своим инженерам и операторам Бюро справочников (НСИ).
8. Аркадий Кучер (Abadonna) 19.08.10 10:25
Основная, имхо, причина: использование иерархии в справочниках.
Особо меня бесит деление Контрагентов на Поставщиков и Покупателей. Как будто Контрагент не может быть и тем, и другим. Поэтому при вводе в папке Поставщики бухгалтер прихода (мат. группа, например), в упор не видит, что такой уже есть в папке Покупатели (если не отключил иерархию в форме списка).На мой взгляд: распихивание по разным (да еще и вложенным) папкам создает больше проблем, чем удобств.
Редко я встречал, чтобы особо был нужен (действительно нужен, не обойтись!) отчет по группе товара
9. Андрей Д. (detec) 19.08.10 11:31
Довольно интересная статья. В конторе, где я работаю, дубли возникают осознанно, когда необходимо вести отдельный баланс по дубликатам. Чтобы не возникали дубли товара и контрагентов стихийно, у нас действуют жёсткие ограничения на добавление карточек. У нас недопустима ситуация, когда кладовщик своими руками добавляет в справочник новую запись. Это делают закупщики по принесённым бумажкам.
То же самое касается и контрагентов. Никакой менеджер по продаже не может просто так взять и завести нового контрагента. Контрагента заводят бухгалтера по предоставлению клиентом своих регистрационных данных и договора.
Такая политика позволяет минимизировать воровство на складе и воровство с помощью левых отгрузок.
10. Андрей Д. (detec) 19.08.10 11:36
(8)
Для покупателей внутри страны при добавлении новой записи можно делать контроль уникальности по ИНН, ЕГРПОУ.

Для поставщиков и вообще любых справочников можно определить ключ уникальности и отбрасывать дубли в процедуре ПередЗаписью.

Может поэтому мы не сталкивались с проблемой дублей по причине папок контрагентов, товаров.
11. Аркадий Кучер (Abadonna) 19.08.10 11:39
(10) Могу привести примеры, когда контроль по реквизиту вообще невозможен.
Пришла накладная на материалы (на завод, например), в накладной только наименование и ТЧ. Всё остальное будет позже в сч-факт. А приходовать надо сейчас
P.S. И заводить его будет именно бухгалтер (никакой не менеджер), но все равно полупустышку будет вынужден завести
12. Андрей Д. (detec) 19.08.10 14:28
(11)
Речь идёт о накладной в бумажном виде? Если речь идёт о том, что пользователи не умеют идентифицировать товар в бумажках и товар в справочнике и плодят дубли (при условии, что обязанности более-менее чётко распределены), то наказывать нужно таких пользователей. Возможно, многое зависит от используемых традиций учёта, но разве под упомянутую накладную не составлялся заказ поставщику в учётной системе? Или каждый раз приходит совершенно разная номенклатура?
13. Аркадий Кучер (Abadonna) 19.08.10 14:31
(12) Скажи честно - ты с торгашами работаешь? С заводами работал?
Какие, на фиг, заявки? У кого урвали сей момент металл или пластмассу - у того и взяли.
Сегодня нужен алюминий А7, а завтра фибра такая-то...
P.S. У завода оборачиваемость оборотных средств чуть не на порядок ниже, к тому же необходимость в материалах сильно зависит от наличия заказов, никакой завод впрок их покупать не будет
14. Андрей Д. (detec) 19.08.10 16:38
(13) Работаю с торгашами. Со спецификой заводов не знаком, если честно.
15. Михаил Ражиков (tango) 19.08.10 17:18
+(13) оборотные средства у завода (если это не фасовка жареных семечек) - вещь вообще виртуальная
16. Михаил Ражиков (tango) 19.08.10 17:19
+(13) же. а вот "урвали" - не понял. неужели есть какой-то дефицит? проблема продать - да. но проблема купить? дасисфантасиш
17. Maria Goncharova (maria-goncharova@mail.ru) 21.09.11 14:46
18. Галя (galyausik1) 23.09.11 10:48
19. jorj jorj (zdrastvyitejorj) 17.11.11 15:45
Спасибо, отличная статья, прояснилось как быть с дублями контрагентов. Но есть один вопрос: нельзя ли как-либо ускорить возню с договорами в контрагентах?Нет ли какой-либо обработки которая автоматически бы меняла ссылки на договора, например если договор с таким же названием и свойствами уже есть, меняла бы ссылки на него, если же такого нету, то просто добавляла.
20. Алексей (1C_tradeomsk) 19.04.12 09:38
И что? Рассказать всем о том что все и так знают, а после этого бросить ссылки на несколько обработок. Обалдеть. И кто-то ещё плюсы ставит! Я наверное напишу пару заметок - "один эс желтая", Alt-F4 и 1С, ИТС диски - куда их вставлять ... после твоего шедевра меня заплюсуют на фиг ...

Сорри. Эмоции. Слабо!
21. Александр Тимофеев (ATimofeev1979) 26.01.16 12:58
Странно, я как программер со стажем, но не в 1С продуктах, а в SQL системах построенных на базе MSSQL, FireBird/InterBase, MySQL и т.п. никогда не встречался с дублированием записей в справочниках ибо всегда спасали ключи уникальности, работавшие наравне с первичным ключем. А в 1С это честно говоря вызвало шок.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа