Когда нужна эта обработка
- Одну из организаций нужно выделить в отдельную базу — продать, передать другому собственнику, перевести на аутсорсинг учёта, разделить бизнес между участниками.
- Организация закрыта/ликвидирована, но её документы, справочники и записи регистров остаются в базе: мешают, тормозят закрытие месяца, раздувают объём, попадают в обмен и в отчётность.
- В базу набраны пробные/тестовые организации, и их данные надо убрать целиком.
- Нужно убрать лишние данные перед свёрткой или передачей базы заказчику/аудиторам, но так, чтобы данные остальных организаций не пострадали.
- Требуется понять, сколько вообще данных «сидит» по организации и что с чем связано, — до и после удаления.
Ручное решение этой задачи — перебрать метаданные, по каждому документу, справочнику и регистру найти связи, пометить их, корректно удалить и не сломать при этом чужие организации. Обработка делает этот перебор сама.
Что обработка делает за вас
- Вы отмечаете в списке одну или сразу несколько организаций.
- Обработка находит все данные, связанные с удаляемой организацией: документы, элементы справочников, записи регистров сведений, данные планов обмена.
- Помечает найденное на удаление; для независимых регистров сведений записи удаляются непосредственно.
- После пометки запускается штатная обработка «Удаление помеченных объектов» — то есть контроль ссылочной целостности выполняет типовой механизм 1С, а не «самопис».
- Даты запрета изменения данных снимаются автоматически и возвращаются на место после завершения работы — отдельно лезть в настройки запретов не нужно.
От вас остаётся одно действие: после завершения выполнить типовое «Тестирование и исправление ИБ» (в режиме Конфигуратора: «Администрирование» → «Тестирование и исправление»).
Разделение одной базы на базы по организациям — сценарий в 3 шага
- Шаг 1. Сделать копии базы — по одной на каждую организацию, которую нужно оставить (например, было «Фирма 1» + «Фирма 2» → две копии).
- Шаг 2. В первой копии запустить обработку и отметить к удалению «Фирму 2»; во второй — «Фирму 1».
- Шаг 3. В каждой копии выполнить тестирование и исправление базы.
Итог: две самостоятельные базы, в каждой — только своя организация, со своей историей, регистрами и остатками. Никакого ручного отбора документов по признаку «Организация».
Режимы удаления: как выбрать, чтобы не пожалеть
1. «Удалить в транзакции» (включён по умолчанию) — безопасный.
Все пометки на удаление выполняются в одной транзакции: если хотя бы одна пометка не прошла, база возвращается в исходное состояние. Ничего не «удаляется наполовину».
Когда переключить: если удаление прервалось ошибкой (например, конфликт транзакций, запрет со стороны механизма конфигурации) — снимите флаг и запустите повторно. Тогда будет удалено всё возможное, а остатки можно добить повторным запуском обработки или вручную.
2. Без флага «в транзакции» — «удаляет что может».
Работает устойчивее на «переплетённых» данных и больших базах: ошибка по одному объекту не откатывает всю работу.
3. «Без проверки ссылочной целостности» — быстрый и жёсткий, только на копиях базы.
Данные, связанные с организацией, удаляются непосредственно, без поиска ссылок на удаляемый объект.
Плюс: работает наверняка и быстрее.
Минус: могут удалиться данные, относящиеся к другим организациям, и появятся битые ссылки.
После такого удаления обязательно выполнить тестирование и исправление.
Как выбрать: разбор «живой» базы, которую нельзя потерять → режим 1, при отказе → режим 2. Разбор копии базы (разделение, выгрузка, свёртка) → можно режим 3, если первых двух мало.
Отчёт «Ссылки сводно» — контроль до и после
По одноимённой кнопке формируется отчёт, показывающий какие метаданные и в каком количестве связаны с удаляемой организацией. Нужен, чтобы:
- до удаления увидеть объём работы и «узкие места» — например, что с организацией связаны регистры, которые конфигурация отдавать не хочет;
- после удаления понять, что именно осталось недозакрытым, и довести удаление адресно.
Отчёт может формироваться достаточно долго — это плата за полный обход связей.
Требования и подготовка (проверьте до запуска)
- Конфигурации: 1С:Бухгалтерия предприятия 3.0 и 1С:ЗУП 3.1. Тестировалось на БП 3.0 (3.0.69.35), ЗУП 3.1 (3.1.8.216), платформа 8.3 (8.3.13.1513 и 8.3.13.1644); дополнительно проверено на БП 3.0 релиза 3.0.143.42.
- Обязательна резервная копия базы (или работа на копии) — операция необратима.
- Нужен монопольный доступ. Если в монопольный режим перейти не удалось, обработка выдаст предупреждение.
- Запускать под пользователем с полными правами и правом на открытие внешних отчётов/обработок.
- Фоновые задания перед запуском — отключить.
- Открытый исходный код — файл отдаётся как исходник разработки: можно прочитать, отладить, доработать под нетиповую конфигурацию, никакой защиты и «чёрных ящиков».
Честно об ограничениях (так дешевле, чем выяснять это в процессе)
- Перекрёстные ссылки разных организаций в одном объекте обработка не «разрезает». Классика: платёжное поручение оформлено на одну организацию, а ведомость в его реквизитах — на другую; или документы ввода начальных остатков/переноса, у которых в измерениях стоит другая организация. Такие места удаляются только после ручной правки — сначала их видно в отчёте «Ссылки сводно».
- Общие для всех организаций объекты не удалятся, пока они общие. Например, в ЗУП подразделение используется всеми организациями — оно блокирует пометку на удаление. Решение: создать клон общего подразделения и заменить ссылки в объектах удаляемой организации, либо (на копии базы) удалить без проверки ссылочной целостности и затем починить битые ссылки тестированием.
- Часть объектов закрыта для удаления самой конфигурацией. В ЗУП это, например, действующие позиции штатного расписания («Действующая позиция штатного расписания не может быть помечена на удаление»): надо отменить проведение документов «Утверждение штатного расписания» и «Изменение штатного расписания» либо снять признаки «Позиция утверждена» и «Подразделение сформировано» — и запускать обработку снова.
- Это не свёртка и не «сжатие» базы. Задача обработки — точечно удалить данные конкретной организации; уменьшение размера — следствие, а не функция.
- На других конфигурациях (УТ, ERP, КА, УНФ, бюджетные решения) не тестировалось. Механизм построен на типовом поиске по ссылкам и штатном удалении помеченных объектов, без специфики конкретной отрасли, — но гарантию корректной работы на нетиповом конфиге дать нельзя. Нужен запуск в другой конфигурации — закажите доработку/адаптацию на «Бирже заказов» Инфостарта (0% комиссии, оплата напрямую исполнителю).
- Файлы в Базе знаний — это исходный код разработки без гарантий работоспособности, без возврата и без технической поддержки (правила Инфостарта). Вопросы и замечания по работе — в комментариях к публикации: автор отвечает в них и выпускает исправления (исправления по замечаниям покупателей уже включались в обновлённые версии).
Частые вопросы и решения
«Конфликт транзакций» / ошибка в момент пометки на удаление.
Снимите флаг «Удалить в транзакции» и запустите повторно. В транзакции любая ошибка во вложенной попытке откатывает всю операцию — на больших и «переплетённых» базах это ожидаемое поведение, а не поломка обработки.
Удаление идёт очень долго.
Так и задумано на больших базах: время определяется объёмом, а не скоростью обработки. По опыту покупателей, на файловой базе процесс может идти сутками, на клиент-серверной (MS SQL) — в разы быстрее: например, из файловой базы 10 ГБ выделение одной организации в отдельную базу 2,7 ГБ заняло 2,5 часа. Фоновый режим и индикатора прогресса нет: выполнение идёт на сервере, поэтому в процессе форма «молчит» — это не зависание.
Организация осталась в справочнике после работы обработки.
Выполните «Администрирование» → «Удаление помеченных объектов» повторно. Не помогло — сформируйте отчёт «Ссылки сводно» и ищите перекрёстные ссылки между организациями: их правят вручную.
«Нельзя удалить единственный банковский счёт, т. к. он используется для автозаполнения документов».
Причина в том, что счёт защищается конфигурацией, пока сама организация не помечена на удаление. Отметьте организацию на удаление штатными средствами (или убедитесь, что обработка это сделала), затем повторите удаление.
Нужно удалить «действующую»/единственную организацию в ЗУП.
Да, так можно: отмечаете организацию в списке, обработка помечает её и всё связанное, затем удаляет помеченные объекты. Если организация осталась — повторить с опцией без проверки ссылочной целостности и выполнить тестирование и исправление.
Можно ли перед запуском посмотреть, сколько будет удалено?
Да: кнопка «Ссылки сводно» до удаления даёт список затронутых метаданных и количество связей по каждой организации.
Проверено на следующих конфигурациях и релизах:
- Бухгалтерия предприятия, редакция 3.0, релизы 3.0.143.42
Вступайте в нашу телеграмм-группу Инфостарт