Разделяем базу 1С: копия с очисткой, выгрузка в XML, свёртка

· 9 мин

Содержание

Разрезать базу 1С — это из одной информационной базы сделать две или несколько самостоятельных. Рабочих способов три: снять полную копию базы и в каждой копии удалить чужие данные; перенести нужные объекты через выгрузку и загрузку данных в XML; свернуть базу по дате, если задача не разделить, а уменьшить объём.

Какой способ выбрать, зависит от цели. Делите учёт по организациям — копия с очисткой лишнего. Переносите всё в новую базу той же конфигурации — выгрузка и загрузка в XML. База тормозит из-за истории за много лет — свёртка.

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

С чего начать: копии и проверка базы

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

Копию рабочей базы снимают через Конфигуратор: Администрирование → Выгрузить информационную базу — получится файл .dt. Из него разворачивают нужное число копий командой Администрирование → Загрузить информационную базу в заранее созданные пустые базы.

Перед выгрузкой стоит прогнать тестирование и исправление: в Конфигураторе это Администрирование → Тестирование и исправление. Для файловой базы дополнительно помогает утилита chdbfl.exe — она чинит физическую целостность файла 1Cv8.1CD.

Подготовка к разделению базы
Выполнено: 0 / 5

Запишите номер релиза конфигурации и номер версии платформы. При переносе через XML они должны совпадать в обеих базах, иначе загрузка не пойдёт.

Три способа разрезать базу и когда какой подходит

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

СпособКогда подходитОграничения
Копия с очисткойРазделить учёт нескольких организаций на отдельные базыДолго при большом объёме, удаление идёт через контроль ссылок
Выгрузка/загрузка XMLПеренести данные целиком в новую базу той же конфигурацииКонфигурация и её версия должны совпадать
Свёртка базыУменьшить объём, отрезав старые периодыЭто не разделение: база остаётся одна

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

Зачем вы делите базу?

Копия базы с удалением лишних данных

Это основной способ, когда в одной базе ведётся несколько организаций, и их нужно развести по разным базам. Логика простая: делаем столько копий, сколько нужно баз, и в каждой копии оставляем «свою» организацию, а чужие документы удаляем.

Порядок для каждой копии:

  1. Разверните копию рабочей базы из файла .dt в отдельную базу.
  2. Через командную панель списков документов (команда Ещё) или обработкой групповой обработки справочников и документов отберите документы по лишним организациям и пометьте их на удаление.
  3. Запустите удаление помеченных объектов — в типовых конфигурациях это раздел Администрирование, группа «Обслуживание».
  4. Разберите объекты, которые не удалились из-за ссылок: программа покажет, что и где ещё используется.
  5. Проверьте остатки и итоги по оставшейся организации.

Главная сложность — общие справочники. Контрагенты, номенклатура, физлица часто относятся сразу к нескольким организациям, и документы на них ссылаются. Поэтому удаление идёт не «одной кнопкой», а с контролем ссылок: механизм удаления помеченных объектов не даст стереть элемент, пока на него ссылается хоть один документ.

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

Справочники (контрагентов, номенклатуру) обычно оставляют во всех базах как есть — лишние элементы не мешают. Чистят в первую очередь движения: документы, проводки, записи регистров. После удаления документов стоит пересчитать итоги и закрыть вопрос с вводом начальных остатков, если часть истории отрезана.

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

Перенос данных выгрузкой и загрузкой в XML

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

Инструмент — обработка «Выгрузка и загрузка данных XML», которую 1С распространяет отдельно. Она выгружает выбранные таблицы и объекты в набор XML-файлов, а затем загружает их в пустую базу.

Ключевое требование: конфигурация и её версия в приёмнике должны совпадать с источником до релиза. Если в источнике Бухгалтерия предприятия одного релиза, а в приёмнике — другого, загрузка упрётся в несовпадение метаданных.

Порядок в двух словах:

  1. Создайте пустую базу из того же шаблона конфигурации и того же релиза.
  2. Откройте обработку выгрузки в базе-источнике (Файл → Открыть для внешней обработки .epf).
  3. Отметьте, что выгружать, и сохраните XML-файлы.
  4. В пустой базе откройте ту же обработку в режиме загрузки и укажите эти файлы.
  5. После загрузки выполните тестирование и исправление и пересчитайте итоги.

Такой перенос удобен для полной передачи данных, но плохо подходит для выборки «только одна организация»: обработка мыслит таблицами и объектами, а не бизнес-логикой отбора по организации. Для деления по организациям проще копия с очисткой.

Свёртка базы: как уменьшить объём без деления

Если цель не «разрезать на несколько баз», а убрать тормоза из-за гигантской истории, базу не делят, а сворачивают. Свёртка отрезает периоды до выбранной даты и формирует остатки документами ввода остатков — на дату свёртки.

В типовых конфигурациях для этого есть обработка «Свёртка информационной базы». Она проходит в несколько этапов:

  • формирует остатки по регистрам на дату свёртки;
  • помечает на удаление документы и движения за свёрнутый период;
  • после проверки остатки проводятся, а старые документы удаляются.

Свёртку делают только на копии и только после сверки отчётности за закрываемые периоды. Отменить её штатно нельзя — откат лишь восстановлением из резервной копии. Запускают в монопольном режиме.

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

Файловая и клиент-серверная база: в чём разница при делении

Сам порядок разделения один и тот же, а вот как снимать и разворачивать копии — зависит от типа базы.

Файловая база. Все данные лежат в одном файле 1Cv8.1CD. Копию можно снять двумя путями: выгрузить в .dt через Конфигуратор либо, при остановленной работе, просто скопировать папку с файлом базы. Файловый вариант начинает капризничать, когда файл вырастает до нескольких гигабайт — это, кстати, частый повод делить базу или уходить на сервер.

Клиент-серверная база . Данные хранит СУБД (PostgreSQL или MSSQL), а доступ идёт через кластер серверов 1С. Копию снимают либо через .dt, либо средствами СУБД (резервная копия и восстановление в новую базу данных). Затем новую информационную базу регистрируют в кластере и проверяют, что к ней подключаются сеансы.

ОперацияФайловая базаКлиент-серверная база
Снять копиюВыгрузка .dt или копия папки с 1Cv8.1CDВыгрузка .dt или backup СУБД
Развернуть копиюЗагрузка .dt в новую базуВосстановление СУБД + регистрация базы в кластере
Кто выполняетПользователь с правами администратораАдминистратор кластера и СУБД

При делении серверной базы заранее прикиньте лицензии и мощность: вместо одной базы на кластере появятся две, и каждая будет держать свои сеансы. Операции восстановления СУБД и регистрацию новых баз согласуйте с администратором сервера.

Как убедиться, что базы разделились правильно

Пока результат не сверен, деление считается незаконченным. Проверку делают до того, как новые базы объявят рабочими и начнут в них вводить документы.

Что стоит сверить в каждой новой базе:

  • Оборотно-сальдовую ведомость по оставшейся организации — итоги должны совпадать с теми, что были в исходной базе на ту же дату.
  • Остатки по ключевым счетам: расчёты с контрагентами, касса и банк, товары и материалы. Расхождение обычно означает, что часть движений удалилась не полностью или, наоборот, лишнего.
  • Отсутствие чужих документов: отфильтруйте журналы по удалённой организации — список должен быть пустым.
  • Взаиморасчёты: если между бывшими соседями по базе были внутренние операции, проверьте, что они не повисли ссылками в разных базах.

Удобный приём — распечатать ОСВ из исходной базы до деления и сверить с суммой ОСВ по всем новым базам. Если валюта баланса сошлась, движения разошлись корректно.

Отдельно проверьте регистры: после массового удаления документов стоит выполнить пересчёт итогов, иначе отчёты могут показывать старые суммы, пока итоги не актуализированы.

Частые ошибки при разделении базы

Ниже то, на чём чаще всего спотыкаются — помимо шагов выше.

  • 🧩 Делят рабочую базу напрямую. Любая ошибка становится необратимой. Правильно — работать только с копиями, рабочую базу оставить нетронутой до полной проверки результата.
  • 🔗 Удаляют справочники, а не документы. Элемент с движениями не удалится из-за ссылок. Чистить нужно в первую очередь документы и записи регистров, а не контрагентов с номенклатурой.
  • 🧮 Забывают пересчитать итоги. После массового удаления или свёртки остатки в отчётах могут разойтись, пока не выполнен пересчёт итогов.
  • 🏷️ Сталкиваются с нумерацией. В разделённых базах нумерация документов идёт независимо. Если организации различались префиксом, проверьте настройки префиксов, чтобы номера не задваивались.
  • ⚙️ Грузят XML в другую конфигурацию. Несовпадение релиза источника и приёмника — самая частая причина сбоя загрузки. Сверяйте релиз до начала.
  • ⏱️ Запускают тяжёлые операции в рабочее время. Удаление помеченных объектов и свёртка требуют монопольного режима и обрывают сеансы пользователей — только когда в базе никто не работает .

Частые вопросы

Нужна ли одинаковая конфигурация в обеих базах?
Для переноса через XML — да, конфигурация и релиз должны совпадать с источником. Для способа «копия с очисткой» вопрос не стоит: копии и так разворачиваются из одной базы.
Сохранятся ли права пользователей и настройки после разделения?
При копировании через .dt переносится всё: пользователи, их права, настройки. При переносе данных через XML учётные записи и часть настроек, возможно, придётся завести заново — состав переносимого вы задаёте сами.
Что будет с нумерацией документов?
После разделения каждая база нумерует документы самостоятельно. Если нужна сквозная или непересекающаяся нумерация между базами, её настраивают префиксами организаций и информационной базы.
Можно ли потом снова объединить базы?
Можно — через те же механизмы обмена или выгрузки/загрузки данных. Но обратное объединение сложнее деления: придётся сопоставлять общие справочники, чтобы не задвоить контрагентов и номенклатуру.
Повлияет ли разделение на закрытые периоды и отчётность?
Само деление по организациям отчётность не меняет — данные просто разъезжаются по базам. А вот свёртка отрезает историю: после неё отчёты за свёрнутый период строятся только по остаткам, поэтому дату свёртки выбирают вне периодов возможных проверок.