Вопрос о том, стоит ли объединять учет нескольких юридических лиц в одной информационной базе или разносить их по разным «коробкам», является фундаментальным при проектировании системы на базе 1С. Это решение влияет на всё: от скорости формирования отчетов до безопасности данных при визитах контролирующих органов. Проанализируем опыт практикующих специалистов и разберем все «за» и «против» каждого подхода.
Этот подход часто выбирают холдинговые структуры, где организации тесно связаны между собой. Рассмотрим подробнее, какие преимущества мы получаем и с какими трудностями можем столкнуться.
Основные преимущества:
Критический недостаток: Разграничение прав доступа (RLS).
Как только возникает необходимость скрыть данные одной фирмы от сотрудников другой, мы сталкиваемся с механизмом RLS (Row Level Security — безопасность на уровне записей). Проанализируем ситуацию: на больших объемах данных типовые шаблоны RLS могут вызывать серьезные замедления. Пользователи могут наблюдать ситуацию, когда список документов открывается несколько минут. Это происходит из-за того, что к каждому SQL-запросу система добавляет сложные условия фильтрации по разрешенным организациям.
Этот путь часто выбирают в условиях нестабильности бизнеса или когда юридические лица не связаны общими бизнес-процессами.
Основные преимущества:
RLS. Достаточно просто не давать пользователю доступ к конкретной базе. Это гарантирует максимальную производительность системы, так как база работает на «полных правах».RLS опытный специалист может добраться до данных через прямые SQL-запросы).Минусы:
Растет трудоемкость поддержки. Синхронизация справочников (например, чтобы один и тот же контрагент имел одинаковый код во всех базах) становится отдельной задачей, требующей использования 1С:Синхронизация данных или сторонних обработок.
Разберем, почему для зарплатного учета логика может отличаться. В ЗУП крайне рекомендуется вести все связанные организации в одной базе. Выясним причину:
6-НДФЛ и РСВ.Если вы все же решили использовать единую базу, но столкнулись с тормозами из-за прав доступа, рассмотрим способ оптимизации RLS. Вместо стандартных шаблонов, которые проверяют условия «на лету», можно использовать нетиповой подход: вычислять доступные объекты при старте сеанса.
Посмотрим на пример логики: мы можем поместить список разрешенных организаций в ПараметрыСеанса в виде объекта ФиксированныйМассив. Тогда условие в RLS будет максимально простым:
ГДЕ Организация В (&ПараметрыСеанса_РазрешенныеОрганизации)
Это значительно ускоряет работу по сравнению со стандартными вложенными запросами в ролях.
Для тех, кто выбрал раздельные базы, но хочет упростить процесс передачи данных, эффективным инструментом является механизм РИБ (Распределенные информационные базы). Мы можем создать план обмена с фильтром ПоОрганизации. Рассмотрим этот алгоритм:
В современной платформе 8.3 существует альтернатива RLS — механизм разделения данных. Он используется в сервисе «1С:Фреш». Рассмотрим подробнее: данные физически лежат в одной таблице, но платформа на уровне ядра добавляет фильтр по полю-разделителю. Это работает гораздо быстрее, чем RLS, и обеспечивает жесткую изоляцию данных. Однако внедрение этого механизма требует использования Библиотеки стандартных подсистем (БСП) и определенной квалификации программиста.
Проанализировав все факторы, можно вывести следующую формулу выбора:
1. Выбирайте одну базу, если у вас общие склады, общая номенклатура, много операций перепродажи между своими фирмами и один бухгалтерский состав. При этом будьте готовы к переходу на SQL-версию и возможной оптимизации прав доступа.
2. Выбирайте разные базы, если организации принципиально разные (например, одна на ОСНО, другая на патенте), у них разные бухгалтеры, и вы хотите иметь возможность в любой момент «отдать» базу одной из фирм без лишних хлопот.
3. Для ЗУП практически всегда лучше использовать единую базу для корректного расчета налогов по общим сотрудникам.