Разделяем базу 1С: копия с очисткой, выгрузка в XML, свёртка
Содержание
Разрезать базу 1С — это из одной информационной базы сделать две или несколько самостоятельных. Рабочих способов три: снять полную копию базы и в каждой копии удалить чужие данные; перенести нужные объекты через выгрузку и загрузку данных в XML; свернуть базу по дате, если задача не разделить, а уменьшить объём.
Какой способ выбрать, зависит от цели. Делите учёт по организациям — копия с очисткой лишнего. Переносите всё в новую базу той же конфигурации — выгрузка и загрузка в XML. База тормозит из-за истории за много лет — свёртка.
Рабочую базу при разделении не трогаем. Все операции идут на копиях. Перед началом снимите резервную копию и убедитесь, что из базы вышли все пользователи.
С чего начать: копии и проверка базы
Разделение всегда начинается с двух вещей: свежей копии и проверки целостности. Если тащить в новые базы битые ссылки и ошибки структуры, они размножатся на все копии сразу.
Копию рабочей базы снимают через Конфигуратор: Администрирование → Выгрузить информационную базу — получится файл .dt. Из него разворачивают нужное число копий командой Администрирование → Загрузить информационную базу в заранее созданные пустые базы.
Перед выгрузкой стоит прогнать тестирование и исправление: в Конфигураторе это Администрирование → Тестирование и исправление. Для файловой базы дополнительно помогает утилита chdbfl.exe — она чинит физическую целостность файла 1Cv8.1CD.
Запишите номер релиза конфигурации и номер версии платформы. При переносе через XML они должны совпадать в обеих базах, иначе загрузка не пойдёт.
Три способа разрезать базу и когда какой подходит
Прежде чем резать, определитесь с методом — от этого зависит весь дальнейший порядок действий. Ниже сравнение по задаче, трудоёмкости и ограничениям.
| Способ | Когда подходит | Ограничения |
|---|---|---|
| Копия с очисткой | Разделить учёт нескольких организаций на отдельные базы | Долго при большом объёме, удаление идёт через контроль ссылок |
| Выгрузка/загрузка XML | Перенести данные целиком в новую базу той же конфигурации | Конфигурация и её версия должны совпадать |
| Свёртка базы | Уменьшить объём, отрезав старые периоды | Это не разделение: база остаётся одна |
Способы можно комбинировать. Частый сценарий: сначала свернуть разросшуюся базу по дате, а затем из облегчённой копии выделить организации. Так новые базы получаются и чистыми по составу, и компактными.
Копия базы с удалением лишних данных
Это основной способ, когда в одной базе ведётся несколько организаций, и их нужно развести по разным базам. Логика простая: делаем столько копий, сколько нужно баз, и в каждой копии оставляем «свою» организацию, а чужие документы удаляем.
Порядок для каждой копии:
- Разверните копию рабочей базы из файла
.dtв отдельную базу. - Через командную панель списков документов (команда
Ещё) или обработкой групповой обработки справочников и документов отберите документы по лишним организациям и пометьте их на удаление. - Запустите удаление помеченных объектов — в типовых конфигурациях это раздел
Администрирование, группа «Обслуживание». - Разберите объекты, которые не удалились из-за ссылок: программа покажет, что и где ещё используется.
- Проверьте остатки и итоги по оставшейся организации.
Главная сложность — общие справочники. Контрагенты, номенклатура, физлица часто относятся сразу к нескольким организациям, и документы на них ссылаются. Поэтому удаление идёт не «одной кнопкой», а с контролем ссылок: механизм удаления помеченных объектов не даст стереть элемент, пока на него ссылается хоть один документ.
Удаление помеченных объектов выполняется в монопольном режиме — когда в базе никто не работает. На большой базе проход может занять часы, планируйте его на нерабочее время.
Справочники (контрагентов, номенклатуру) обычно оставляют во всех базах как есть — лишние элементы не мешают. Чистят в первую очередь движения: документы, проводки, записи регистров. После удаления документов стоит пересчитать итоги и закрыть вопрос с вводом начальных остатков, если часть истории отрезана.
Если организаций много и чистить вручную тяжело, задачу решают настройкой обмена с отбором по организации через «Конвертацию данных». Это дольше в настройке, но переносит ровно нужные объекты в пустую базу.
Перенос данных выгрузкой и загрузкой в XML
Этот способ переносит данные между двумя базами с одинаковой конфигурацией. Его используют, когда нужно перелить содержимое в заново созданную базу — например, при переносе на другой сервер или когда структуру старой базы хочется оставить позади.
Инструмент — обработка «Выгрузка и загрузка данных XML», которую 1С распространяет отдельно. Она выгружает выбранные таблицы и объекты в набор XML-файлов, а затем загружает их в пустую базу.
Ключевое требование: конфигурация и её версия в приёмнике должны совпадать с источником до релиза. Если в источнике Бухгалтерия предприятия одного релиза, а в приёмнике — другого, загрузка упрётся в несовпадение метаданных.
Порядок в двух словах:
- Создайте пустую базу из того же шаблона конфигурации и того же релиза.
- Откройте обработку выгрузки в базе-источнике (
Файл → Открытьдля внешней обработки.epf). - Отметьте, что выгружать, и сохраните XML-файлы.
- В пустой базе откройте ту же обработку в режиме загрузки и укажите эти файлы.
- После загрузки выполните тестирование и исправление и пересчитайте итоги.
Такой перенос удобен для полной передачи данных, но плохо подходит для выборки «только одна организация»: обработка мыслит таблицами и объектами, а не бизнес-логикой отбора по организации. Для деления по организациям проще копия с очисткой.
Свёртка базы: как уменьшить объём без деления
Если цель не «разрезать на несколько баз», а убрать тормоза из-за гигантской истории, базу не делят, а сворачивают. Свёртка отрезает периоды до выбранной даты и формирует остатки документами ввода остатков — на дату свёртки.
В типовых конфигурациях для этого есть обработка «Свёртка информационной базы». Она проходит в несколько этапов:
- формирует остатки по регистрам на дату свёртки;
- помечает на удаление документы и движения за свёрнутый период;
- после проверки остатки проводятся, а старые документы удаляются.
Свёртку делают только на копии и только после сверки отчётности за закрываемые периоды. Отменить её штатно нельзя — откат лишь восстановлением из резервной копии. Запускают в монопольном режиме.
После свёртки база весит заметно меньше, отчёты за свёрнутый период уже не построить по первичным документам — только по сформированным остаткам. Поэтому дату свёртки обычно ставят так, чтобы она не задевала периоды, по которым возможны проверки и уточнённые декларации.
Файловая и клиент-серверная база: в чём разница при делении
Сам порядок разделения один и тот же, а вот как снимать и разворачивать копии — зависит от типа базы.
Файловая база. Все данные лежат в одном файле 1Cv8.1CD. Копию можно снять двумя путями: выгрузить в .dt через Конфигуратор либо, при остановленной работе, просто скопировать папку с файлом базы. Файловый вариант начинает капризничать, когда файл вырастает до нескольких гигабайт — это, кстати, частый повод делить базу или уходить на сервер.
Клиент-серверная база
. Данные хранит СУБД (PostgreSQL или MSSQL), а доступ идёт через кластер серверов
1С. Копию снимают либо через .dt, либо средствами СУБД (резервная копия и восстановление в новую базу данных). Затем новую информационную базу регистрируют в кластере и проверяют, что к ней подключаются сеансы.
| Операция | Файловая база | Клиент-серверная база |
|---|---|---|
| Снять копию | Выгрузка .dt или копия папки с 1Cv8.1CD | Выгрузка .dt или backup СУБД |
| Развернуть копию | Загрузка .dt в новую базу | Восстановление СУБД + регистрация базы в кластере |
| Кто выполняет | Пользователь с правами администратора | Администратор кластера и СУБД |
При делении серверной базы заранее прикиньте лицензии и мощность: вместо одной базы на кластере появятся две, и каждая будет держать свои сеансы. Операции восстановления СУБД и регистрацию новых баз согласуйте с администратором сервера.
Как убедиться, что базы разделились правильно
Пока результат не сверен, деление считается незаконченным. Проверку делают до того, как новые базы объявят рабочими и начнут в них вводить документы.
Что стоит сверить в каждой новой базе:
- Оборотно-сальдовую ведомость по оставшейся организации — итоги должны совпадать с теми, что были в исходной базе на ту же дату.
- Остатки по ключевым счетам: расчёты с контрагентами, касса и банк, товары и материалы. Расхождение обычно означает, что часть движений удалилась не полностью или, наоборот, лишнего.
- Отсутствие чужих документов: отфильтруйте журналы по удалённой организации — список должен быть пустым.
- Взаиморасчёты: если между бывшими соседями по базе были внутренние операции, проверьте, что они не повисли ссылками в разных базах.
Удобный приём — распечатать ОСВ из исходной базы до деления и сверить с суммой ОСВ по всем новым базам. Если валюта баланса сошлась, движения разошлись корректно.
Отдельно проверьте регистры: после массового удаления документов стоит выполнить пересчёт итогов, иначе отчёты могут показывать старые суммы, пока итоги не актуализированы.
Частые ошибки при разделении базы
Ниже то, на чём чаще всего спотыкаются — помимо шагов выше.
- 🧩 Делят рабочую базу напрямую. Любая ошибка становится необратимой. Правильно — работать только с копиями, рабочую базу оставить нетронутой до полной проверки результата.
- 🔗 Удаляют справочники, а не документы. Элемент с движениями не удалится из-за ссылок. Чистить нужно в первую очередь документы и записи регистров, а не контрагентов с номенклатурой.
- 🧮 Забывают пересчитать итоги. После массового удаления или свёртки остатки в отчётах могут разойтись, пока не выполнен пересчёт итогов.
- 🏷️ Сталкиваются с нумерацией. В разделённых базах нумерация документов идёт независимо. Если организации различались префиксом, проверьте настройки префиксов, чтобы номера не задваивались.
- ⚙️ Грузят XML в другую конфигурацию. Несовпадение релиза источника и приёмника — самая частая причина сбоя загрузки. Сверяйте релиз до начала.
- ⏱️ Запускают тяжёлые операции в рабочее время. Удаление помеченных объектов и свёртка требуют монопольного режима и обрывают сеансы пользователей — только когда в базе никто не работает .
Частые вопросы
Нужна ли одинаковая конфигурация в обеих базах?
Сохранятся ли права пользователей и настройки после разделения?
.dt переносится всё: пользователи, их права, настройки. При переносе данных через XML учётные записи и часть настроек, возможно, придётся завести заново — состав переносимого вы задаёте сами.