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

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

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

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

Три основных метода разделения информационной базы

В практике администрирования и разработки 1С сложились три подхода к разделению баз данных:

  1. Создание Распределенной Информационной Базы (РИБ) с фильтрацией по организации. Платформа 1С берет на себя задачу автоматического отсечения документов и движений «чужих» организаций при формировании начального образа подчиненного узла.
  2. Метод «копирования и выметания» (удаление лишнего). Создаются копии исходной базы по числу разделяемых организаций, после чего в каждой копии специализированными обработками удаляются данные всех «чужих» юридических лиц.
  3. Перенос данных через XML / Конвертацию данных. Создаются пустые базы, в которые с помощью правил обмена или универсальных обработок перегружаются только нужные объекты, относящиеся к конкретной организации.

Выясним причину, почему для КА 1.1 наиболее жизнеспособными и безопасными являются первые два метода, а также детально разберем каждый из них.

---

Метод 1: Разделение через создание РИБ по организации

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

Рассмотрим по шагам процесс создания и последующей автономной настройки такой базы:

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

Шаг 2. Создание начального образа.
В режиме «1С:Предприятие» выполняем процедуру создания начального образа для созданного узла. Этот процесс может занять значительное время в зависимости от объема базы данных. Платформа запишет в новый файл базы данных только те документы, регистры и справочники, которые связаны с выбранной организацией.

Шаг 3. Снятие признака подчиненности («отвязка» узла).
Созданная периферийная база остается частью распределенной сети: в ней заблокировано изменение конфигурации, а также действуют ограничения на редактирование некоторых данных. Чтобы превратить эту базу в полноценную, автономную рабочую базу, нам необходимо разорвать связь с главным узлом. Сделать это можно двумя путями:

Шаг 4. Борьба с «битыми ссылками».
Поскольку платформа перенесла только те объекты, которые прошли фильтр, в базе неизбежно возникнут ситуации, когда общие справочники ссылаются на объекты «чужих» организаций (например, договоры контрагентов, где владельцем была удаленная организация). Такие ссылки будут отображаться в интерфейсе как <Объект не найден...>.

Для исправления этой проблемы запустим процедуру «Тестирование и исправление» (ТиИ) в Конфигураторе со следующими настройками: в разделе «При наличии ссылок на несуществующие объекты» выберем «Очищать ссылки» или «Создавать объекты» (в зависимости от логики конкретного реквизита).

---

Метод 2: Копирование базы и удаление лишних данных

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

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

Использование специализированных обработок.
Для очистки баз рекомендуется использовать специализированные внешние обработки (например, «Удаление данных по организации» или аналогичные решения с профессиональных ресурсов разработчиков). Такие обработки работают по следующему алгоритму:

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

---

Архитектурная специфика КА 1.1, о которой важно знать

Конфигурация «Комплексная автоматизация 1.1» имеет ряд архитектурных особенностей, которые усложняют процесс разделения баз. Независимо от выбранного метода (РИБ или удаление из копий), вам придется вручную скорректировать работу трех ключевых блоков системы: РАУЗ, ЗУП и Основных средств.

1. Расширенная аналитика учета затрат (РАУЗ)

В КА 1.1 учет затрат и себестоимости ведется с использованием механизмов РАУЗ. Вместо прямых аналитик в регистрах накопления система использует специальный справочник КлючиАналитикиУчетаЗатрат. В элементах этого справочника комбинируются данные об организации, складе, номенклатуре и качестве.

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

2. Блок расчета зарплаты и кадров (ЗУП)

В блоке расчета заработной платы справочники устроены особым образом:

3. Учет основных средств (ОС)

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

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

---

Оценка трудозатрат и рекомендации по выбору метода

Выбор оптимального метода напрямую зависит от объема базы данных и степени ее доработки:

Если в базе ведется небольшой документооборот (как у автора темы — около 1000 документов в год на каждую организацию, то есть всего около 12 000 документов за 4 года) и конфигурация является практически типовой, то метод создания РИБ по организации является приоритетным. Он позволит выполнить разделение быстро и с минимальным риском повреждения базы.

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

Для объема данных в 12 000 документов примерная оценка трудозатрат стороннего специалиста составит:

Обязательно делайте резервные копии (бэкапы) на каждом этапе разделения баз. Перед запуском разделенных баз в промышленную эксплуатацию обязательно сформируйте оборотно-сальдовую ведомость (ОСВ) по всем счетам учета и отчеты по остаткам ТМЦ в исходной и новых базах для детальной сверки данных.

← На главную