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

Системный администратор 1С v8.3 (Управляемые формы) 1С:Комплексная автоматизация Управленческий учет
← На главную

Ситуация, когда в одной информационной базе велся учет по нескольким организациям, а со временем возникла необходимость их разделить, является классической для растущего бизнеса. В рамках данной статьи мы подробно разберем, как правильно перевести учет каждой компании в свою базу, сохраняя при этом целостность данных и не нарушая лицензионную политику компании «1С».

Лицензионный вопрос: нужно ли докупать программу?

Прежде чем приступать к техническим работам, проанализируем юридическую сторону вопроса. Если обе организации находятся в одной локальной сети и используют один сервер, то покупать вторую основную поставку «1С:Комплексная автоматизация» (КА) не требуется. Согласно лицензионному соглашению, основная поставка позволяет создавать неограниченное количество информационных баз на одном сервере или в локальной сети.

Однако стоит учитывать следующие ограничения:

  1. Клиентские лицензии: Лицензируется количество одновременно работающих пользователей. Если у вас куплена лицензия на 5 рабочих мест, то суммарно в обеих базах одновременно смогут работать не более 5 человек.
  2. Серверная лицензия: Она распространяется на весь экземпляр сервера «1С:Предприятия», поэтому количество баз в консоли администрирования не ограничено.

Метод 1: Разделение через создание копии и удаление лишних данных

Рассмотрим самый простой, но трудозатратный с точки зрения очистки данных способ. Он заключается в создании идентичного клона базы и последующем удалении информации, которая не относится к конкретной организации.

Шаг 1: Подготовка копии
Сначала создадим полную копию текущей базы. Для этого в консоли управления сервером или через файл .dt развернем новую базу под вторым именем. При первом запуске новой базы система задаст критически важный вопрос: «Информационная база перемещена или является копией?». Мы обязательно выбираем вариант «Это копия».

Выясним причину, почему это так важно: при выборе варианта «Это копия» система автоматически блокирует регламентные задания, такие как:

Это предотвратит отправку ошибочных или дублирующих данных во внешние системы в процессе нашей работы по разделению.

Шаг 2: Удаление данных в обеих базах
Теперь у нас есть две идентичные базы (База А и База Б). В Базе А нам нужно оставить данные только Организации 1, а в Базе Б — только Организации 2. Проанализируем процесс удаления. В «1С:Комплексная автоматизация» данные тесно переплетены. Нам потребуется:

  1. Пометить на удаление все документы, относящиеся к «чужой» организации.
  2. Использовать типовую обработку «Удаление помеченных объектов».
  3. В случае возникновения ссылок, которые не дают удалить объект, необходимо вручную очищать эти связи или использовать специализированные обработки по поиску и замене ссылок.

Шаг 3: Проверка целостности (ТиИ)
После массового удаления данных обязательно запустим Тестирование и исправление информационной базы (меню «Администрирование» — «Выгрузка/Загрузка данных» в режиме Конфигуратора или через меню «Тестирование и исправление»). Это поможет восстановить ссылочную целостность и пересчитать итоги.

Метод 2: Использование РИБ по организациям (наиболее чистый способ)

Разберем по шагам более профессиональный метод, который позволяет минимизировать объем ручной очистки. Механизм распределенных информационных баз (РИБ) с фильтром по организации позволяет «выгрузить» из центральной базы только те данные, которые относятся к конкретному юридическому лицу.

  1. В исходной базе перейдем в раздел «Синхронизация данных» и создадим новую настройку обмена по плану обмена «По организации».
  2. В настройках укажем конкретную организацию, которую мы хотим выделить в отдельную базу.
  3. Создадим «Начальный образ» информационной базы. Система сформирует новую базу, куда попадут только документы этой организации и все необходимые справочники.
  4. После создания образа запустим новую базу и выполним отрыв от главного узла. Для этого в новой базе нужно выполнить следующий код (например, через внешнюю обработку):

ПланыОбмена.УстановитьГлавныйУзел(Неопределено);

После выполнения этой команды база станет полностью автономной. Рассмотрим преимущество этого метода: система сама отфильтрует документы, и вам не придется вручную помечать тысячи записей на удаление. Однако помните, что справочники (Номенклатура, Контрагенты) чаще всего переносятся целиком, и лишние элементы придется удалять отдельно, если они мешают.

Технические нюансы работы с PostgreSQL

Проанализируем ситуацию с дисковым пространством. Если ваша база данных работает на СУБД PostgreSQL и имеет размер, например, 6 Гб, то после удаления данных (в первом методе) размер файла на диске не уменьшится сам по себе. Postgres помечает место как свободное внутри себя, но не отдает его операционной системе.

Чтобы физически уменьшить размер базы на диске, после завершения всех процедур по разделению и очистке, рекомендуется выполнить команду VACUUM FULL. Это можно сделать через утилиту pgAdmin или консоль запросов:


VACUUM FULL;
ANALYZE;

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

Проблемные зоны в «1С:Комплексная автоматизация» при разделении

Посмотрим на специфические механизмы КА, которые могут потребовать ручного контроля после разделения баз:

  1. Интеркампани (Intercompany): Если организации торговали между собой, в базах останутся документы передачи между организациями. После разделения они перестанут «видеть» вторую сторону как внутреннюю компанию. Проверьте настройки договоров и типов этих документов.
  2. Настройки прав доступа: Пользователи и их права перенесутся полностью. Не забудьте в каждой из баз деактивировать учетные записи сотрудников, которым не положен доступ к конкретной организации.
  3. Сервис 1С-Отчетность: Поскольку идентификатор информационной базы изменится, потребуется перенастройка подключения к отчетности. Рекомендуем заранее связаться с обслуживающим партнером 1С для перерегистрации учетной записи в новой базе.
  4. Банковские счета и кассы: Убедитесь, что в каждой базе остались только те расчетные счета, которые принадлежат соответствующей организации, чтобы избежать ошибок при создании платежных поручений.

Заключение: Какой бы путь вы ни выбрали — ручную очистку копии или использование РИБ — всегда начинайте работу с создания полной резервной копии. Оптимальным для «1С:Комплексная автоматизация» считается метод через РИБ, так как он обеспечивает более высокую чистоту данных «на выходе».

← На главную