При ведении учета нескольких юридических лиц в одной информационной базе часто возникает ситуация, когда одну из организаций необходимо «отпочковать» в самостоятельную базу. Это может быть связано с продажей бизнеса, переходом на отдельный сервер или требованием руководства о конфиденциальности данных. Рассмотрим подробнее основные механизмы реализации этой задачи для современных конфигураций на платформе 1С:Предприятие 8.3.
Это классический и наиболее надежный «типовой» способ. Суть метода заключается в создании подчиненного узла распределенной базы, в котором настраивается фильтр по конкретной организации. Разберем этот процесс по шагам:
.1CD (для файловой базы) или базу на SQL, которая является точной структурной копией основной, но содержит данные только по одному объекту.1С:Предприятие или через консоль необходимо выполнить разрыв связи, чтобы база стала автономной.Преимущество: Сохраняются все настройки пользователей, права доступа и ссылочная целостность. Недостаток: При очень больших объемах данных создание начального образа может завершиться ошибкой по таймауту или нехватке памяти.
Если механизм РИБ по каким-то причинам не подходит (например, из-за специфических доработок конфигурации), проанализируем альтернативный путь — создание полной копии базы и последующее удаление всего лишнего.
Рассмотрим алгоритм действий:
Для ускорения процесса часто используют небольшие обработки. Посмотрим на пример упрощенного кода, который помогает автоматизировать пометку на удаление по всем метаданным:
Процедура ОчиститьЛишниеОрганизации(ЦелеваяОрганизация)
// Перебираем все виды документов в конфигурации
Для Каждого МетаДокумент Из Метаданные.Документы Цикл
// Проверяем наличие реквизита "Организация"
Если МетаДокумент.Реквизиты.Найти("Организация") <> Неопределено Тогда
ИмяДокумента = МетаДокумент.Имя;
Выборка = Документы[ИмяДокумента].Выбрать();
Пока Выборка.Следующий() Цикл
Если Выборка.Организация <> ЦелеваяОрганизация Тогда
Объект = Выборка.ПолучитьОбъект();
Объект.УстановитьПометкуУдаления(Истина);
Объект.Записать();
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
После пометки всех объектов необходимо выполнить Тестирование и исправление (ТиИС) в конфигураторе с установленными флагами «Очищать ссылки» и «Удалять объекты» для пустых ссылок. Это позволит физически очистить таблицы базы данных от записей, связанных с удаленными организациями.
Для конфигураций Бухгалтерия предприятия 3.0 и ЗУП 3.1 доступен современный способ — синхронизация через EnterpriseData. Этот метод позволяет выгрузить данные «чисто», без переноса технического «мусора» старой базы.
Выясним, как это работает: рассмотрим создание новой пустой информационной базы той же версии (релиза), что и источник. В исходной базе настроим синхронизацию данных с этой новой базой, используя «Универсальный формат обмена». В правилах отправки данных установим фильтр по организации. Программа сама подберет все связанные справочники (контрагенты, номенклатура, сотрудники), которые фигурируют в документах выбранной фирмы.
Этот метод часто оказывается быстрее РИБ, так как не требует формирования образа всей структуры таблиц целиком, а работает на уровне объектов.
Разберем вариант использования типовой обработки с портала ИТС — ВыгрузкаЗагрузкаДанныхXML83.epf. Этот инструмент позволяет выборочно перенести данные между идентичными конфигурациями.
Алгоритм работы следующий:
Организация.Важно помнить: при использовании этого метода необходимо следить за переносом констант и регистров сведений, у которых нет измерения Организация (например, учетная политика или производственный календарь). Их придется перенести отдельно или настроить в новой базе вручную.
Проанализируем ситуацию с общими данными. При любом способе разделения (кроме полной копии) возникает вопрос общих справочников. Например, справочник Контрагенты или Физические лица. Если в базе было 10 организаций и у них были общие клиенты, то при выделении одной фирмы в новую базу попадут только те клиенты, по которым были движения. Это делает базу более «легкой» и «чистой».
Особое внимание для ЗУП 3.1: При выделении организации из Зарплаты и управления персоналом крайне важно проверить перенос данных по сотрудникам (кадровые приказы, начисления) и регламентированной отчетности. Проверьте, чтобы в новой базе корректно заполнились регистры по НДФЛ и страховым взносам за прошлые периоды, иначе отчетность за год может сформироваться неверно.
В заключение отметим, что для небольших и средних баз наиболее предпочтительным является Метод 1 (РИБ) из-за его автоматизма. Для крупных баз с большим количеством исторических данных эффективнее может оказаться Метод 3 (Синхронизация) или Метод 2 (Программное удаление) с привлечением системного администратора для контроля размера SQL-таблиц.