Введение
Ошибка доступа в Odoo для мультикомпаний возникает, когда пользователь пытается открыть или изменить запись, закреплённую за другой компанией в рамках одной базы.
Часто это происходит в организациях, где в одной базе ведутся несколько юридических лиц. Даже при верно настроенных ролях и правах Odoo может ограничить видимость из‑за правил компании.
В этом материале мы разберёмся, почему появляются такие ошибки и как безопасно их исправить.
Что такое ошибка доступа в многокомпанейной среде Odoo?
Odoo поддерживает работу с несколькими компаниями в одной базе: у каждой записи может быть поле company_id, указывающее на «владелицу» записи.
При включённом режиме мультикомпаний:
- Пользователи видят записи только активной для них компании
- Правила доступа автоматически фильтруют записи по компании
- Некоторые модели строго разделяют данные между компаниями
Если пользователь пытается открыть или изменить запись вне контекста активной компании, Odoo запретит действие.
Ошибка обычно проявляется в интерфейсе и выглядит примерно так:
Вам не разрешён доступ к этому документу.
Типичные причины ошибки доступа в Odoo при работе с несколькими компаниями
1. Неверно выбрана активная компания
Смена активной компании выполняется через селектор в правом верхнем углу.
Если выбрана не та компания, нужные записи станут недоступны.
2. Запись принадлежит другой компании
Возможна ситуация, когда:
company_id = Компания B
А пользователь работает в контексте Компании A.
По умолчанию Odoo не позволяет пересекать границы компаний.
3. Пользователь не добавлен в нужные компании
Пользователь должен быть явно назначен во все компании, к которым ему нужен доступ.
Если назначение отсутствует, доступ блокируется, даже при видимом селекторе компаний.
4. Правила записей, жёстко разделяющие данные по компаниям
Во многих моделях есть автоматические правила вроде:
[('company_id', 'in', user.company_ids.ids)]
Если компания записи не входит в список разрешённых для пользователя, доступ запрещён.
5. Общие записи с полями, зависящими от компании
Некоторые объекты кажутся общими, но содержат поля, привязанные к конкретной компании, что вызывает ограничения.
Это особенно распространено в бухгалтерских и финансовых модулях.
Как устранить ошибку доступа в многокомпанейной конфигурации Odoo
Шаг 1 – Проверьте активную компанию
Переключитесь на нужную компанию через меню в правом верхнем углу и попробуйте снова открыть запись.
Шаг 2 – Убедитесь, к какой компании привязана запись
Включите режим разработчика и посмотрите значение поля company_id у записи.
Убедитесь, что оно соответствует активной компании пользователя.
Шаг 3 – Назначьте пользователя в нужные компании
Перейдите в:
Настройки → Пользователи и компании → Пользователи
Проверьте, что пользователь добавлен во все компании, к данным которых он должен иметь доступ.
Шаг 4 – Проверьте правила доступа к записям
Откройте:
Настройки → Технические → Безопасность → Правила записей
Найдите правила, фильтрующие по company_id и проверьте их домены.
Будьте осторожны при изменении правил, затрагивающих company_id — это может ослабить изоляцию данных.
Шаг 5 – Проверьте настройки модулей для мультикомпаний
Некоторые модули по умолчанию жёстко разделяют данные между компаниями.
Убедитесь, что параметры модулей соответствуют вашей операционной модели.
Как предотвратить проблемы доступа между компаниями
- Чётко спроектируйте структуру компаний до запуска системы
- Назначайте пользователей только в релевантные компании
- Не меняйте company_id вручную в рабочей базе без тестов
- Прогоняйте сценарии работы под каждым контекстом компании
- Документируйте межфирменные бизнес-процессы и права доступа
Многокомпанейные конфигурации требуют дисциплины — неправильное распределение компаний и прав часто становится причиной ошибок доступа.
Как Dasolo выстраивает многокомпанейные окружения
Обычно ошибки доступа появляются из‑за рассинхрона между правилами записей, полями, зависящими от компании, и назначениями пользователей. Малейшая недосмотренная настройка может заблокировать легитимные операции.
В Dasolo мы при ревью мультикомпаний уделяем внимание:
- Настройкам видимости компаний для пользователей
- Доменам в правилах записей
- Какие данные являются общими, а какие — зависят от компании
- Интеграционным пользователям, работающим между сущностями
Чёткое разделение границ компаний и единая логика доступа уменьшают повторяющиеся конфликты при пересечении данных.
Заключение
Ошибка «Multi Company Access Error» в Odoo возникает, когда пользователь пытается получить доступ к данным за пределами своего допустимого контекста компании. Ограничение преднамеренное, но несогласованная конфигурация часто вызывает лишние сбои работы.
Тщательная проверка назначений компаний, правил записей и настроек общих ресурсов помогает устранить повторяющиеся конфликты доступа. Правильно выстроенная мультикомпанейная архитектура обеспечивает безопасность разделения данных и при этом сохраняет гибкость операций между юнитами.