Перейти к содержимому

Как устранить Odoo AccessError: пошаговое руководство

Разберёмся, как устранить AccessError в Odoo: простыми словами объясним, почему появляется ошибка, какие типичные причины её вызывают и предложим пошаговые решения, полезные как для пользователей, так и для разработчиков Odoo.
24 февраля 2026 г. от
Как устранить Odoo AccessError: пошаговое руководство
Elisa Van Outrive
| Комментариев пока нет

Введение


Odoo AccessError — одна из самых частых ошибок, связанных с безопасностью в Odoo. Она появляется, когда пользователь пытается открыть, изменить или удалить запись, но у него нет на это нужных прав.


Обычно система выводит следующее сообщение:


AccessError: You are not allowed to access this document.

Это не баг — так работает встроенная система безопасности Odoo, которая принудительно применяет правила доступа.


В этом руководстве разберём, почему возникает AccessError и как исправить проблему корректно, не ослабляя защиту системы.

Что такое AccessError в Odoo?


Odoo использует многоуровневую систему доступа, основанную на следующих компонентах:


  • Группы пользователей
  • Списки контроля доступа (ACL)
  • Правила записи (record rules)
  • Ограничения по нескольким компаниям (multi-company)

Когда пользователь выполняет действие (чтение, запись, создание, удаление) и хотя бы один из этих слоёв блокирует операцию, Odoo генерирует AccessError.

Такая ошибка чаще видна в интерфейсе, но её также можно встретить в автоматических процессах и фоновых задачах.



Типичные причины появления AccessError в Odoo


1. Отсутствует право на уровне модели (проблема ACL)


ACL определяют, может ли группа пользователей выполнять базовые операции над моделью:

  • Читать
  • Записывать
  • Создавать
  • Удалять

Если группе не назначено нужное право, платформа блокирует действие для всех её членов.


Пример:

Менеджер продаж пытается изменить проводку в модуле бухгалтерии — но у его группы нет права на запись для модели accounting.entry.


2. Ограничение на уровне записи (record rule)

Record rules фильтруют набор записей с помощью доменных выражений.


Пример:

Например: [('user_id', '=', user.id)]

Если конкретная запись не проходит по условию правила, доступ к ней запрещается.

Часто это причина ситуации «всё работает у администратора, но обычный пользователь не видит/не изменяет запись».


3. Конфигурация multi-company

Если запись принадлежит другой компании, а пользователь работает в текущем контексте другой компании, Odoo ограничит доступ.


Это обычная проблема в системах с несколькими компаниями внутри одной базы данных.


4. Конфликт унаследованных прав групп


Пользователь может входить сразу в несколько групп с различными, иногда пересекающимися правилами.

Сложные иерархии групп порождают неожиданные ограничения и противоречия.


5. Неправильная настройка безопасности в кастомных модулях

В пользовательских модулях можно по ошибке прописать некорректные настройки:


  • ir.model.access — правила доступа к моделям
  • Правила записи (record rules)
  • Назначение пользователей в группы

Это легко приводит к неожиданным блокировкам доступа.



Как устранить AccessError в Odoo


Шаг 1 – Проверьте группы пользователя

Порядок действий:


Настройки → Пользователи и компании → Пользователи

Убедитесь, в какие группы входит проблемный пользователь.


Проверьте, назначена ли нужная роль/группа для выполнения операции.


Шаг 2 – Проверьте списки контроля доступа (ACL)

Перейдите в:


Настройки → Технические → Безопасность → Access Control Lists

Убедитесь, что для модели заданы требуемые права для групп пользователя.


Шаг 3 – Проанализируйте record rules

Перейдите в:


Настройки → Технические → Безопасность → Record Rules

Посмотрите доменные фильтры, применённые к модели.


Для диагностики временно отключайте сомнительные правила и проверяйте поведение.


Шаг 4 – Проверьте выполнение под админом

Если администратор может выполнить операцию, а обычный пользователь — нет, значит причина действительно в конфигурации прав.


Шаг 5 – Проверьте контекст multi-company

Смените компанию в интерфейсе и посмотрите, откроется ли доступ к записи.



Как не допустить AccessError в будущих проектах на Odoo



  • Советы по хорошей практике:
  • Держите правила доступа простыми и ясными
  • Не используйте чрезмерно жёсткие и сложные доменные фильтры
  • Фиксируйте изменения ACL в документации
  • Тестируйте новые модули с пользователями без прав администратора

Проводите аудит настроек multi-company


Политика безопасности в Odoo должна быть строгой, но предсказуемой.




Как Dasolo выстраивает безопасный контроль доступа в Odoo


Сложные, нагромождённые правила записи часто становятся источником практических проблем при работе системы.


AccessError обычно сигнализирует о несоответствии между правами пользователя, правилами записи и реальными бизнес-процессами. За простым сообщением в интерфейсе часто скрываются более глубокие противоречия в настройках безопасности.


  • В Dasolo мы решаем проблемы с доступом через комплексный аудит архитектуры прав. Чаще всего источники ошибок такие:
  • Пересекающиеся или конфликтующие record rules
  • Ошибочно настроенные группы безопасности
  • Ограничения видимости при multi-company
  • Неправильные права в кастомных модулях

Учетные записи интеграции без нужных привилегий



Заключение


Вместо быстрой выдачи широких прав мы проектируем многоуровневую модель доступа, соответствующую реальным бизнес-процессам. Чёткая структура прав снижает число неожиданных AccessError и сохраняет защиту данных и целостность системы.


AccessError в Odoo возникает, когда пользователь пытается выполнить операцию, на которую у него нет прав. Хотя на первый взгляд это выглядит как простое ограничение, истинная причина чаще всего связана с record rules, составом групп или настройками multi-company.


Тщательная проверка прав доступа, правильная структура групп и корректные правила записи позволяют избежать повторяющихся конфликтов. Продуманная и прозрачная модель безопасности — ключ к эффективной, безопасной и масштабируемой системе Odoo.


Как устранить Odoo AccessError: пошаговое руководство
Elisa Van Outrive 24 февраля 2026 г.
Поделиться этой записью
Войти оставить комментарий