В процессе эксплуатации 1С:Зарплата и управление персоналом (ЗУП) 3.1 КОРП часто возникает ситуация, когда в одной информационной базе велось несколько организаций, но со временем пути юридических лиц расходятся. Возникает техническая задача: выделить одну действующую организацию в новую "чистую" базу, сохранив всю историю учета, а старую базу оставить в качестве архива. Наиболее очевидным инструментом для этого является механизм Распределенных информационных баз (РИБ) с фильтром по организации. Однако на практике этот процесс может сопровождаться длительными зависаниями или ошибками настройки.
Разберем подробно, как правильно выполнить это разделение, почему штатные средства могут давать сбой и какие альтернативные методы существуют для решения данной задачи.
Это штатный механизм платформы 1С. Рассмотрим алгоритм действий при настройке синхронизации с отбором. При этом полезно знать, как выполняется установка периода при добавлении документов для синхронизации вручную. Мы предполагаем, что вы уже зашли в раздел "Администрирование" — "Синхронизация данных" и выбрали создание РИБ по организации.
Проанализируем основную причину, по которой процесс может "замирать" на этапе настройки правил отправки данных. В ЗУП 3.1 КОРП создание начального образа — это тяжелая транзакция. Система должна проанализировать сотни таблиц и отобрать записи, относящиеся только к выбранному юридическому лицу.
Важнейший нюанс с регламентными заданиями:
Если вы проводите процедуру на копии базы (что настоятельно рекомендуется), помните, что при развертывании копии в клиент-серверном варианте или при определенных настройках файловой базы регламентные задания могут быть заблокированы. Процесс настройки РИБ часто инициирует фоновые задания для расчета состава данных. Если они отключены, окно настройки будет висеть бесконечно.
Выясним, как форсировать процесс, если автоматика не срабатывает:
БлокировкаРегламентныхЗаданий в консоли кластера серверов 1С выключен для данной базы.Если механизм РИБ не подходит из-за огромного объема данных или архитектурных сложностей, рассмотрим метод "от обратного": удаление всех данных по выбранной организации из полной копии базы. Проанализируем шаги, которые позволят сделать это корректно.
Просто пометить документы на удаление недостаточно, так как связи в ЗУП очень тесные, однако может помочь фоновое удаление документов с контролем ссылочной целостности. Рассмотрим алгоритм глубокой очистки:
Организация не соответствует нужной нам компании.Тестирование и исправление (ТиИ) с опцией "Очищать ссылки при наличии битых ссылок".Посмотрим на пример логики для удаления документов в коде 1С:
ВыборкаДокументов = Документы.ПриемНаРаботу.Выбрать();
Пока ВыборкаДокументов.Следующий() Цикл
Если ВыборкаДокументов.Организация <> НужнаяОрганизация Тогда
ОбъектДок = ВыборкаДокументов.ПолучитьОбъект();
ОбъектДок.ОбменДанными.Загрузка = Истина; // Отключаем проверки
ОбъектДок.Удалить();
КонецЕсли;
КонецЦикла;
Обратите внимание на использование ОбменДанными.Загрузка = Истина. Это критически важно, чтобы пропустить стандартные проверки при записи и удалении, что значительно ускоряет процесс и позволяет избежать блокировок от бизнес-логики программы.
Разберем по шагам, почему при попытке очистить справочники после удаления документов система часто выдает ошибку о наличии ссылок. В ЗУП 3.1 КОРП используется множество независимых регистров сведений, таких как ПлановыеНачисления, ГрафикиРаботыСотрудников или КадроваяИсторияСотрудников.
Эти регистры не имеют документа-регистратора, поэтому при удалении документов записи в них остаются. Чтобы очистить базу полностью, необходимо:
Организацию или Сотрудника в измерениях регистров.Рассмотрим еще один профессиональный способ. Вместо создания РИБ, мы можем использовать универсальную обработку "Выгрузка и загрузка данных XML" (из состава инструментов разработчика). Она позволяет выгрузить данные с отбором.
Выясним преимущества этого метода:
Организации (нужный элемент) и документы по этой организации, установив флаг "Выгружать объекты по ссылкам".Независимо от выбранного метода, создание разделенной базы в ЗУП КОРП — ресурсоемкая задача. Проанализируем, как ускорить работу:
1. Подготовка SQL-сервера: Если база клиент-серверная, перед началом процесса рекомендуется перевести базу в режим Simple (простая модель восстановления) в настройках MS SQL Server, чтобы лог транзакций не раздувался до терабайтных размеров.
2. Тестирование и исправление: Перед разделением обязательно выполните пересчет итогов. Это ускорит работу выборок, которые делает платформа при миграции данных РИБ.
3. Полнотекстовый поиск: Отключите индексацию полнотекстового поиска. Это освободит значительную часть дисковой активности сервера.
4. Ожидание: Как показывает практика работы с ЗУП КОРП, создание начального образа для базы объемом более 50 Гб может занимать от 24 до 72 часов. Если процесс rphost потребляет ресурсы процессора, значит, работа идет — прерывать её нельзя.
Таким образом, для успешного разделения базы ЗУП 3.1 КОРП мы рекомендуем сначала убедиться в работоспособности регламентных заданий при настройке РИБ. Если же стандартный метод не помогает, следует переходить к программной очистке с обязательным учетом записей в независимых регистрах сведений.