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

20.03.26

База данных - Чистка данных

Однажды нам пришла задача: из сотни присутствующих в информационной базе 1С организаций удалить 80% вместе со всеми связанными документами, справочниками и прочими данными. И сделать это так, чтобы база сохранила целостность — количество битых ссылок не должно увеличиться.

Но, как говорится, есть один нюанс…

Казалось бы, решение такой задачи достаточно простое: инструментами разработчика найти все метаданные, где упоминаются необходимые организации, и удалить их.

На практике же… мы столкнулись с тем, что работы в базе ведутся давно. Записей было ОЧЕНЬ МНОГО, семизначное число. Найденные записи ещё и являлись владельцами других метаданных, которые также надо было удалить или отредактировать. Нам необходимо было получить все данные сразу, а не порциями по 1000–5000 записей — и это не получалось. Инструменты просто не справлялись с выполнением такого запроса: в лучшем случае получали данные слишком долго, а чаще просто зависали.

Решить задачу типовыми средствами в нужное технологическое окно в 24 часа и со сроком проекта 1 месяц, как хотел заказчик, виделось невозможным.
 

Ищем альтернативные способы удаления

Мы рассмотрели несколько моделей реализации удаления организаций:

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

То есть, основная проблема — это время получения. Коллективным решением разработчиков (в котором были, в том числе, специалисты по сверткам баз 1С) была рассмотрена еще одна модель.

  1. Работа напрямую с таблицами базы данных. Как бы свертка, которая будет не совсем свертка: получить прямыми запросами все данные и тем же способом проанализировать их и обработать. На этом способе и остановились.
     

Доступ к базе — не панацея

Чем хорош метод работы с базой напрямую? Можно не только получать данные, но и сразу оперировать ими: редактировать, удалять и т. п. — как всю таблицу, так и отдельные строки. Но, тут как в медицине, удалять без анализа — неправильно.

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

Следующий этап — работа с бизнес-пользователями. В нашем случае 3 раза в неделю проводились консультации с ИТ-отделом, аналитиками и бухгалтерами, добавляли дополнительные блоки для получения данных. То есть сам по себе прямой доступ к базе — не панацея.

Для оптимизации удаления мы выстроили следующий порядок удаления данных:

  1. Независимые регистры, связанные с удаляемыми документами.
  2. Документы и их движения. Зависимые регистры.
  3. Независимые регистры, связанные со справочниками.
  4. Справочники.

Повторим, что всё это делаем на примере одной организации, чтобы минимизировать возможные негативные последствия и быстро получить промежуточный результат. На этапе удаления также продолжаем консультации с бизнес-пользователями. И снова корректируем запрос.

После — обязательный поиск битых ссылок. Разворачиваем дополнительную копию базы, проверяем в ней количество «изначальных» битых ссылок — это будет эталон, с которым будем сравнивать дальнейшую работу. Битых ссылок в нашем проекте было до удаления: 42 000, после стало 45 000. Все эти ссылки проверяем и удостовериваемся, что они не мешают корректной работе всей базы:

  • проверяем, используется ли где-то битая ссылка — если нет, то ок;
  • если данная ссылка влияет на работу в базе, то:
    • восстановить битую ссылку из бекапа;
    • либо заменить на ссылку, которая будет служить заглушкой.

Например, подразделения организации — данный справочник используется в бухгалтерских регистрах и важно было его сохранить. Или договор контрагента, «зашитый» в коде — после удаления этого договора, механизм корректно не отрабатывал, пришлось такой договор заменять на «заглушку».

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

Результаты

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

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

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

Вступайте в нашу телеграмм-группу Инфостарт

удаление организаций свертка

См. также

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы. Может выполнять свертку одновременно в несколько потоков. А так же автоматически, без непосредственного участия пользователя. Решение в Реестре отечественного ПО

24900 руб.

20.08.2024    64939    343    168    

301

Перенос данных 1C Оптовая торговля Свертка базы Системный администратор Программист Бухгалтер 1С:Предприятие 8 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 Россия Бухгалтерский учет Управленческий учет Платные (руб)

Хотите точно знать, что вы выгружаете? Хотите сворачивать товары по НДС или фильтровать товары по доп. реквизиту? Вы волшебник, которому необходимо превращать одних контрагентов в других? Хотите при выгрузке превратить группу товаров в один? Или просто нужен удобный OLE обмен между 1C:Управление торговлей (ред. 11 или 10) и 1С:Бухгалтерия предприятия (ред. 2 или 3). Тогда эта обработка для вас!

12900 руб.

19.04.2013    181491    398    407    

342

Свертка базы Системный администратор Программист 1С:Предприятие 8 1С:Бухгалтерия государственного учреждения 1С:Бухгалтерия 3.0 1С:Управление производственным предприятием 1С:ERP Управление предприятием 2 1С:Зарплата и кадры государственного учреждения 3 1С:Зарплата и Управление Персоналом 3.x 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 1С:Управление торговлей 10 1С:Управление торговлей 11 1С:Розница 2 Платные (руб)

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

6000 руб.

22.05.2024    7764    43    39    

56

Чистка данных Системный администратор Программист 1С:Предприятие 8 1C:Бухгалтерия 1С:Бухгалтерия 1.6 1С:Бухгалтерия 3.0 1С:ERP Управление предприятием 2 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 1С:Управление торговлей 10 1С:Управление торговлей 11 1С:Розница 2 1С:Розница 3.0 Платные (руб)

Данные обработки помогут Вам легко и, главное быстро, выполнить удаление любых данных в Ваших базах 1С на платформах 8.1-8.3. Обработки помогут легко просмотреть связи ссылок в виде дерева, выбрать что удалять, а что нет, используя любые отборы. Это позволит уменьшить объем лишней и не нужной информации в справочниках и документах, планах видов характеристик и др. объектах и облегчит работу с данными пользователям и Вам. Понятное расположение команд и настроек, в сочетании с описанием и справкой, еще упростят процесс. (Обновление от 26.02.2026, версия 4.5, 4.6.0)

14640 руб.

22.02.2013    145940    290    153    

458

Чистка данных Системный администратор Программист 1С:Предприятие 8 1C:Бухгалтерия 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Розница 3.0 Платные (руб)

Позволяет удалить организации из любых из информационных баз 1С на управляемых формах (БП 3.0, УТ 11, КА 2, ERP 2, ЗУП 3, УНФ, Розница 3.0 и пр.). Главное требование - программа должна содержать справочник "Организации". Реализован самый быстрый алгоритм непосредственного удаления объектов. Работает даже на базах большого размера. Для ускорения работы алгоритма не запускается проверка контроля ссылочной целостности. Проверку учета можно запустить отдельно с помощью дополнительной обработки. Необходимо перед удалением самостоятельно проверить базу на наличие перекрестных ссылок разных организаций в одном документе. Эту дополнительную обработку проверки перекрестных ссылок по запросу предоставляем бесплатно нашим покупателям.

6100 руб.

16.03.2015    280657    252    83    

287

Чистка данных Инструменты администратора БД Администрирование 1С 8.3 1С:Документооборот 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление холдингом 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Платные (руб)

Решение представляет собой набор из 6 обработок для 1С по удалению организаций и справочников из базы по фильтрам, документов по фильтрам, универсальное сжатие данных, очистка битых движений регистратора, удаление устаревших регистров сведений, удаление устаревших документов "Электронное письмо входящее" и "Электронное письмо исходящее"

23999 руб.

20.02.2026    904    1    0    

4

Чистка данных Программист Пользователь 1С:Предприятие 8 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Зарплата и кадры государственного учреждения 3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x Платные (руб)

Обработка позволяет удобно и выборочно удалить данные из базы 1С на управляемых формах например БП 3.0, УТ 11, КА 2, ERP, УНФ, ЗУП 3, Розница и др. Это могут быть неактуальные организации или другие перечни объектов. При этом есть возможность провести анализ пересечений документов с другими организациями и таким образом уберечься от того, что при удалении обороты по другой организации изменятся. Объекты нужно выбирать вручную и после этого запускать команду удаления. Будут удалены все ссылки на них.

5000 руб.

28.11.2019    30400    82    21    

97
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Константин С. 684 21.03.26 09:00 Сейчас в теме
Такто с выводы изначально понятны. Вопрос чем и как это делать, инструмент?..
Без него ваша статья просто слова, не подтвержденная
3. 1c-izh 113 23.03.26 16:08 Сейчас в теме
(1) лицензионная политика, сами понимаете, приходится в общих словах методику описывать…
5. Константин С. 684 23.03.26 16:24 Сейчас в теме
(3) Лукавите, учитывая что применяете. Можно было и назвать.
https://infostart.ru/public/all/?search=%F3%E4%E0%EB%E5%ED%E8%E5+%E4%E0%ED%ED%FB%F5+sql+
2. roman72 404 23.03.26 11:03 Сейчас в теме
В исходных условиях дано: Надо удалить из базы 80% организаций и связанных с ними данных и операций, количество операций оценивается в десятки миллионов (условно порог в 100 млн.), не должно увеличиться количество битых ссылок, учёт оставшихся организаций должен остаться работоспособным.

Не дано: важная информация какая доля из 100 млн. операций приходится на остающиеся организации, а какая на удаляемые 80%.

Это сильно влияет на способ решения задачи.

А) Если на 80% удаляемых организаций приходится малая доля из 100 млн. операций, то выгоднее не удалять ничего, а просто закрыть доступ пользователям к "удаляемым" организациям и пусть работают с оставшимися. Другие организации и их операции пользователи тупо не будут видеть и знать.

Б) Если на 80% удаляемых организаций приходится большая доля из 100 млн. операций, то выгоднее удалить (выгрузить) из базы 20% организаций и их операции и данные и загрузить их в чистую базу 1С и там уже начинать чистку мусора, битых ссылок и косяков.
Для контроля сформировать набор одинаковых отчётов по выгруженным организациям в старой и новой базе и по ним автоматическим сравнением искать расхождения и решать уже их в новой базе.

Лицензионная политика 1С запрещает прямое обращение к базам данных на уровне таблиц.
И не зря.
Особенно на больших объёмах данных.
Но кто не понимает и не пробовал - тот пробует, объяснять бесполезно.
Alien_RS_Forever; +1 Ответить
4. 1c-izh 113 23.03.26 16:22 Сейчас в теме
(2) А) Ограничение условий задачи, заказчик захотел именно очищенную базу.
Б) Всё упирается во время — чтобы найти эти 20 процентов, необходимо проанализировать цепочки всех документов, а база большая, по 1 организации поиск ссылок на объект происходил свыше 6 часов. Политика — политикой, но другого быстрого и условно безболезненого решения на тот момент не было.
6. roman72 404 23.03.26 22:38 Сейчас в теме
(4) Правильно я понял из вашего ответа, что в реале оказался вариант А - на 20% оставляемых организаций пришлась бОльшая доля операций?
7. 1c-izh 113 24.03.26 13:11 Сейчас в теме
(6) ближе к А: в 80% удаляемых и 20% оставляемых организаций данных было поровну.
Для отправки сообщения требуется регистрация/авторизация