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

20.03.26

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Результаты

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

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

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

Database Compression Tool

Инструмент для свертки и сжатия баз данных 1С

2–3 раза
Сокращение размера базы
1С
Поддержка любых конфигураций
Многопоточность
Параллельная обработка данных
Подробнее →

Доступна демо-версия с прогнозом результата

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

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

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

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

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

24900 руб.

20.08.2024    83174    431    171    

361

Информационная безопасность Чистка данных Системный администратор Разработчик Руководитель проекта 1С 8.3 1С:Бухгалтерия 3.0 Платные (руб)

Обезличивает копию рабочей базы 1С перед передачей наружу и возвращает настоящие данные обратно, когда база вернулась. Это обратимая псевдонимизация: соответствия «исходное - псевдоним» пишутся в отдельный зашифрованный датасет, который остаётся у владельца. Работает на любой конфигурации - обходит метаданные и находит персональные данные сам, без списка реквизитов под конкретную базу. Суммы, количества, даты и номера документов не трогает никогда, оборотно-сальдовая до и после совпадает до копейки. Проверено на трёх конфигурациях: 106 031 объект, 215 642 замены, ноль ошибок, возврат 100 процентов.

42700 руб.

18.08.2026    1472    3    0    

3

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

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

12139 руб.

16.03.2015    282867    271    84    

302

Свертка базы Системный администратор Разработчик 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    9588    61    40    

69

Чистка данных Разработчик Пользователь 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    31394    86    21    

100

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

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

12900 руб.

19.04.2013    187353    406    407    

346

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

Механизм обрезки (свертки) базы 1С. Описан процесс переноса среза остатков в новую базу. Реализован способ обмена между базами без длительного отключения рабочей базы. Представлено прикладное решение - обработка по переносу данных. Есть 2 варианта запуска: на обычных и управляемых формах.

7320 руб.

27.03.2023    12177    22    4    

25

Оптовая торговля Логистика, склад и ТМЦ Чистка данных Разработчик Бухгалтер Пользователь 1С:Предприятие 8 1С:Управление торговлей 11 Россия Управленческий учет Платные (руб)

Если вы начали работать в программном продукте Управление Торговлей, редакция 11 или Комплексная Автоматизация редакция 2 и включили механизм учёта серий, то перейти обратно в учёт без серий будет не так-то просто. Сложность заключается в том, что нужно очистить серии в табличной части документа, например, Реализация Товаров и услуг. Предлагаем алгоритм перехода на учет без серий для программного продукта УТ11. (Очистка серий.)

5084 руб.

09.04.2019    32911    51    15    

54
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Константин С. 685 21.03.26 09:00 Сейчас в теме
Такто с выводы изначально понятны. Вопрос чем и как это делать, инструмент?..
Без него ваша статья просто слова, не подтвержденная
3. 1c-izh 181 23.03.26 16:08 Сейчас в теме
(1) лицензионная политика, сами понимаете, приходится в общих словах методику описывать…
5. Константин С. 685 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 409 23.03.26 11:03 Сейчас в теме
В исходных условиях дано: Надо удалить из базы 80% организаций и связанных с ними данных и операций, количество операций оценивается в десятки миллионов (условно порог в 100 млн.), не должно увеличиться количество битых ссылок, учёт оставшихся организаций должен остаться работоспособным.

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

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

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

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

Лицензионная политика 1С запрещает прямое обращение к базам данных на уровне таблиц.
И не зря.
Особенно на больших объёмах данных.
Но кто не понимает и не пробовал - тот пробует, объяснять бесполезно.
Alien_RS_Forever; +1 – Ответить
4. 1c-izh 181 23.03.26 16:22 Сейчас в теме
(2) А) Ограничение условий задачи, заказчик захотел именно очищенную базу.
Б) Всё упирается во время — чтобы найти эти 20 процентов, необходимо проанализировать цепочки всех документов, а база большая, по 1 организации поиск ссылок на объект происходил свыше 6 часов. Политика — политикой, но другого быстрого и условно безболезненого решения на тот момент не было.
6. roman72 409 23.03.26 22:38 Сейчас в теме
(4) Правильно я понял из вашего ответа, что в реале оказался вариант А - на 20% оставляемых организаций пришлась бОльшая доля операций?
7. 1c-izh 181 24.03.26 13:11 Сейчас в теме
(6) ближе к А: в 80% удаляемых и 20% оставляемых организаций данных было поровну.
8. kasper076 116 05.05.26 14:18 Сейчас в теме
Как-то была задача вычленить из БП одну организацию в отдельную базу. Решилась задача созданием узла плана обмена по этой организации, выгрузки данных этого узла в отдельную базу и отвязкой новой базы от РИБ.
9. TC_Grand 27.05.26 08:49 Сейчас в теме
Сколько весила у вас центральная база из которой делали распределённую базу?
При создании РИБ базы по организации где изначально база весит много, то начальный образ делается ОЧЕНЬ долго и
в 90% выпадает в ошибку.
У нас база весит 100 ГБ и создание начального образа заняло 27ч после чего выпала ошибка (что то вроде недостаточно памяти, хотя визуально и дискового пространства и оперативки хватало) и образ не создался.
Пришлось делать копию базы и удалять данные других организаций, поэтому попали в поиске на данную статью: "Как удалить много организаций и их данных".

Если у вас есть рекомендации по 100% созданию образа из больших баз, прошу поделиться.

П.С. У автора статьи предполагаю база тоже не мало весила согласно условию задачи.
10. 1c-izh 181 28.05.26 15:38 Сейчас в теме
(9) В нашем случае не было задачи сделать РИБ, надо было только очистить базу размером 2 ТБ от лишних организаций.

Если сроки не критичны — можно создать пустую базу, привязать, сделать из нее РИБ, далее поочередно выгружать данные обменами.
Для отправки сообщения требуется регистрация/авторизация