Ведение учета по нескольким юридическим лицам в одной базе 1С:Бухгалтерия предприятия 3.0 (БП3) — частая практика. Однако рано или поздно возникает задача выделить одну из организаций в самостоятельную информационную базу. Это может быть связано с продажей бизнеса, переходом к другому бухгалтеру или аудитору, оптимизацией производительности или требованиями конфиденциальности.
В данной статье мы подробно разберем, как правильно решить эту задачу, рассмотрим два основных метода разделения баз, проанализируем неочевидные технические нюансы и предупредим о подводных камнях, с которыми вы обязательно столкнетесь в процессе работы.
Распределенная информационная база (РИБ) с фильтрацией по организации — это наиболее технологичный и автоматизированный способ разделения данных. Платформа 1С сама определяет, какие документы и справочники относятся к целевой организации, и переносит в новую базу только их.
Рассмотрим по шагам, как настроить и выполнить этот процесс:
1Cv8.1CD для файловой базы) добавим в список баз и запустим в режиме «1С:Предприятие».На данном этапе мы получили полноценную копию базы, в которой присутствуют документы только нашей целевой организации. Однако эта база все еще считает себя «подчиненным узлом» распределенной базы. Чтобы превратить её в полностью автономную и независимую, нам необходимо разорвать связь с главным узлом.
Просто удалить настройки обмена в интерфейсе недостаточно — в базе останутся заблокированными возможности изменения конфигурации, а также будут постоянно запускаться служебные регламентные задания обмена. Чтобы сделать базу автономной, выполним следующие действия.
Запустим базу-приемник через Конфигуратор с параметром командной строки /ResetMasterNode. Это автоматически снимет признак подчиненности. Если по каким-то причинам этот способ не сработал, мы можем запустить внешнюю обработку в режиме «1С:Предприятие» и выполнить следующий код:
ПланыОбмена.УстановитьГлавныйУзел(Неопределено);
После разрыва связи на уровне платформы крайне важно сбросить служебные константы, которые БСП (Библиотека стандартных подсистем) использует для контроля состояния РИБ. Для этого откроем функции для технического специалиста, найдем следующие константы и установим их значения в Ложь:
Константы.НастройкаПодчиненногоУзлаРИБЗавершена.Установить(Ложь);
Константы.ЭтоАвтономноеРабочееМесто.Установить(Ложь);
После выполнения этих шагов ваша новая база станет абсолютно независимой. Теперь вы можете удалить настройки обмена как в исходной базе, так и в базе-приемнике.
Альтернативный подход заключается в создании полной копии исходной базы с последующим удалением всех документов и связанных данных по «ненужным» организациям. Этот метод часто выбирают разработчики, если исходная база имеет небольшой объем данных или если в базе присутствуют нетиповые доработки, которые могут некорректно отработать при обмене через РИБ.
Рассмотрим алгоритм действий при таком подходе:
Организация (не равно нашей целевой организации) и установите реквизит ПометкаУдаления в значение Истина.Важное предупреждение: Стандартная обработка удаления в 1С:Бухгалтерии выполняет проверку ссылочной целостности в один поток. На крупных базах процесс удаления документов десяти организаций может затянуться на сутки и более. Чтобы ускорить этот процесс, рекомендуется использовать специализированные многопоточные обработки очистки данных (например, с портала Инфостарт), которые умеют запускать удаление в несколько фоновых заданий, обходя жесткие блокировки таблиц.
Независимо от выбранного способа, процесс разделения таит в себе множество скрытых проблем, о которых нужно знать заранее.
Это самый главный нюанс работы РИБ по организации. Механизм фильтрации обмена работает только для тех объектов, в структуре которых есть реквизит Организация.
Такие справочники, как Контрагенты, Номенклатура, ФизическиеЛица, СтатьиЗатрат, являются общими для всей базы. В них нет явного разделения по организациям. Это значит, что при создании РИБ все контрагенты и вся номенклатура других организаций будут полностью выгружены в новую базу!
Если вы передаете выделенную базу стороннему бухгалтеру или клиенту, он увидит названия, ИНН, адреса и телефоны всех ваших контрагентов, с которыми работали другие юридические лица. Для сохранения конфиденциальности вам придется вручную или с помощью обработок вычищать неиспользуемые элементы общих справочников, по которым в новой базе нет движений.
Если в исходной базе были допущены ошибки учета — например, в документе Организации А был случайно указан договор, принадлежащий Организации Б, — то при выгрузке через РИБ этот договор не попадет в новую базу. На его месте в документе появится классическая «битая ссылка» вида <Объект не найден>.... После разделения базы обязательно запустите тестирование и исправление (ТиИ) с проверкой ссылочной целостности.
Если в исходной базе был настроен точечный или файловый архив на внешнем диске (хранение прикрепленных файлов вне базы данных), то при создании новой базы файлы документов могут оказаться недоступными. Проверьте настройки хранения файлов в разделе Администрирование — Настройки работы с файлами и убедитесь, что у новой базы есть доступ к соответствующим томам хранения, либо предварительно перенесите все файлы в саму базу данных.
При разделении баз «ломаются» практически все облачные сервисы 1С:
Если ваша исходная база находится в облачном сервисе 1С:Фреш (или аналогичном), вы не сможете настроить РИБ напрямую в облаке из-за ограничений прав доступа на уровне платформы.
В этом случае алгоритм действий меняется: сначала выгрузите базу из облака в локальный файл (получите файл резервной копии data_dump.zip), разверните её на локальном компьютере, выполните процедуру разделения (через РИБ или копирование), очистите базу от лишней информации, а затем загрузите очищенную базу обратно в облако как новое приложение.
Выделение организации из 1С:Бухгалтерии 3.0 — задача стандартная, но требующая повышенного внимания. Использование типового РИБ по организации является наиболее безопасным и быстрым способом перенести документы, однако оно требует последующей деликатной работы по очистке общих справочников и перенастройке сервисов интеграции. Перед передачей базы конечному пользователю обязательно проверяйте её на наличие конфиденциальных данных других юридических лиц.