Разделение крупной информационной базы (особенно такой «тяжелой» конфигурации, как «1С:Комплексная автоматизация 1.1» или «1С:Управление производственным предприятием 1.3» объемом 65 ГБ и более) — это сложная техническая задача. Часто возникает ситуация, когда из тридцати-сорока организаций две компании продают, и по ним необходимо полностью перенести все исторические данные в чистую, отдельную базу данных. В этой статье мы подробно и по шагам разберем проверенные практические методы решения этой задачи, проанализируем архитектурные сложности конфигурации и выясним, как оптимизировать процесс очистки базы.
Этот способ является наиболее гибким и показал отличные практические результаты. С его помощью можно перенести только те объекты, которые непосредственно относятся к выбранным организациям, сохранив при этом ссылочную целостность.
Рассмотрим алгоритм работы с обработкой подробнее:
ВыгрузкаЗагрузкаДанныхXML82.epf (или аналогичную версию для вашей платформы) в базе-источнике.Организация для одного ключевого документа.Важный нюанс: после загрузки данных обязательно проверяем оборотно-сальдовую ведомость и ключевые отчеты по продажам и взаиморасчетам. Данные должны полностью сойтись с базой-источником.
Создание подчиненного узла РИБ с фильтром по организации — это классический штатный инструмент 1С. Однако при его использовании на практике часто возникает проблема: документы переносятся, но в базе-приемнике они оказываются непроведенными. Выясним причину этого поведения.
В планах обмена по умолчанию регистрируются сами ссылочные объекты (документы), но не их движения по регистрам. Кроме того, в базе-приемнике могут отсутствовать связанные аналитики (например, договоры контрагентов других организаций), из-за чего документы теряют ссылочную целостность и не могут провестись автоматически.
Для успешного разделения базы через РИБ выполним следующие шаги:
ПланыОбмена.УстановитьГлавныйУзел(Неопределено);
Проанализируем ключевое препятствие, с которым сталкиваются разработчики при попытке автоматической выгрузки данных из «1С:Комплексная автоматизация 1.1». В отличие от регламентированного (бухгалтерского) учета, в ключевых регистрах управленческого учета (таких как ПартииТоваровНаСкладах, ВзаиморасчетыПоУправленческомуУчету) отсутствует измерение «Организация».
Из-за этого стандартные фильтры планов обмена или простые XML-выгрузки не могут определить принадлежность записей регистров к конкретной фирме. Данные либо теряются, либо переносятся некорректно.
Для решения этой проблемы мы рекомендуем два подхода:
Организация заполнен) извлекается информация о принадлежности записи к конкретному юридическому лицу.Если мы решим пойти путем создания полной копии базы и последующего удаления ненужных 38 организаций, стандартная процедура удаления помеченных объектов в 1С может зависнуть на несколько суток. Это происходит из-за ресурсоемкого поиска ссылок на удаляемые элементы по всей базе данных.
Рассмотрим, как можно ускорить этот процесс в несколько раз:
DBCC SHRINKDATABASE (ИмяБазыДанных);
Перенос многолетней истории работы часто не имеет практического смысла и лишь удваивает количество ошибок. Гораздо эффективнее применить метод локальной свертки.
Разберем этот процесс по шагам:
Если физически разделять файлы баз данных нет жесткой необходимости, а требуется лишь разграничить доступ пользователей разных организаций к документам друг друга, проанализируем альтернативный вариант платформы 1С — Разделение данных.
Этот механизм позволяет использовать общий системный реквизит (например, Организация) в качестве общего разделителя данных. При включении этого режима пользователи будут работать в единой физической базе СУБД (65 ГБ), но на уровне платформы они будут видеть исключительно свои справочники, документы и отчеты. Данные других компаний будут для них физически недоступны. Это полностью исключает необходимость сложного регулярного переноса данных и постоянной поддержки нескольких актуальных конфигураций.