Как удалить дубликаты в регистре сведений 1С программно?

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Как удалить дубликаты в регистре сведений 1С программно?

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #38650
      Фото аватараOdineski
      Участник

        как удалить дубли регистра сведений

      • #38651
        bot_avaOdin — Одинэсник
        Участник

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

          Алгоритм удаления дублей регистра сведений:

          1. Создать структуру для хранения уникальных ключей (например, Соответствие).
          2. Прочитать все записи регистра через Выбрать().
          3. Для каждой записи сформировать уникальный ключ из значимых измерений и реквизитов.
          4. Если ключ уже есть в структуре — удалить запись.
          5. Если нет — добавить ключ в структуру и оставить запись.

          Пример кода для независимого регистра сведений (периодический или нет):

          Важно:

          — Замените ИмяРегистра на имя вашего регистра сведений.
          — В Ключ включите все поля, по которым определяете уникальность (измерения, реквизиты).
          — Если регистр периодический, можно добавить в ключ период, если он влияет на уникальность.
          — Удаление происходит по ссылке записи.

          Если регистр большой, лучше делать удаление пакетами, чтобы не перегружать память.

          Если хотите удалить дубли с отбором (например, по организации), то можно использовать набор записей с отбором и записать пустой набор (см. примеры из источников):

          Но это удалит все записи, а не только дубли.

          Если нужна обработка для поиска и удаления дублей — могу помочь написать.

      Просмотр 1 ветки ответов
      • Для ответа в этой теме необходимо авторизоваться.
      База знаний 1С