Почему в 1С:ERP документы по банку не отображаются в реестре при наличии прав и как это исправить?

Программист 1С v8.3 (Управляемые формы) 1С:ERP Управление предприятием Управленческий учет IT и автоматизация бизнеса
← На главную

В современных конфигурациях на базе 1С:ERP и «1С:Комплексная автоматизация» администраторы и разработчики часто сталкиваются с парадоксальной ситуацией: пользователь имеет все необходимые права, может открыть конкретный документ по прямой ссылке, но при этом в общем списке (реестре документов) этот же документ не отображается. Особенно остро эта проблема проявляется в журнале безналичных платежей и банковских операций.

Давайте подробно разберем, как устроен этот механизм, почему происходят сбои и какими методами можно восстановить видимость данных. Проанализируем ситуацию комплексно: от настроек профилей до особенностей платформенных запросов.

Понимание механизма «Реестра документов» и оптимизированного RLS

Прежде всего, нам необходимо понять, что реестр документов в ERP — это не просто динамический список, работающий напрямую с таблицами документов. Для повышения производительности система использует механизм «Ключей доступа». Суть его заключается в том, что права рассчитываются не в момент открытия списка, а заранее — при записи документа или изменении прав пользователя.

Рассмотрим основные объекты, участвующие в этом процессе:

  1. Справочник КлючиДоступа — содержит уникальные комбинации настроек доступа.
  2. Регистр сведений КлючиДоступаКОбъектам — связывает конкретный документ с его ключом доступа.
  3. Регистр сведений КлючиДоступаПользователей — определяет, к каким ключам доступа есть права у конкретного сотрудника.

Если документ открывается по ссылке, значит, проверка права Чтение непосредственно для объекта метаданных проходит успешно. Однако, если его нет в списке, это сигнализирует о разрыве связи в цепочке ключей доступа. Проанализируем, где именно может «спотыкаться» система.

Проверка фоновых заданий и обновление ключей доступа

Первым делом нам стоит проверить работу регламентных процедур. В 1С:ERP существует фоновое задание ОбновлениеКлючейДоступа. Если оно завершилось с ошибкой или было остановлено, новые документы или изменения в правах не отразятся в реестрах.

Для исправления ситуации выполним следующие шаги:

  1. Перейдем в раздел НСИ и Администрирование — Обслуживание — Регламентные операции.
  2. Найдем задание Обновление ключей доступа и убедимся, что оно выполняется без ошибок.
  3. Если подозрение падает на повреждение данных, воспользуемся специализированной обработкой из состава БСП. В консоли администратора можно вызвать процедуру полного переформирования данных доступа:

// Пример вызова обновления ключей доступа для конкретного объекта через программный интерфейс БСП
УправлениеДоступомСлужебный.ОбновитьКлючиДоступаДляОбъекта(СсылкаНаДокумент);

Анализ влияния версии платформы и СУБД (PostgreSQL)

Как показывает практика и обсуждения экспертов, проблема часто кроется глубже — на уровне взаимодействия платформы 1С и системы управления базами данных. Особенно это актуально для платформы версии 8.3.24 и выше в связке с PostgreSQL.

Выясним причину: в новых версиях платформы были внедрены изменения в оптимизатор запросов SDBL. При формировании сложных запросов с использованием шаблонов RLS (особенно тех, что задействуют регистр КлючиДоступаКРееструДокументов), платформа может некорректно «раскрывать» скобки в условиях ГДЕ. В результате логическое выражение, которое должно возвращать ИСТИНА для доступа, ошибочно возвращает ЛОЖЬ.

Проанализируем пример логики запроса RLS, в котором может возникать ошибка:


ВЫБРАТЬ * ИЗ Документ.ПоступлениеБезналичныхДенежныхСредств ГДЕ 
(
    Условие1 И Условие2
)
ГДЕ (Условие3)

Где Условие1 проверяет наличие группы доступа, а Условие3 — конкретные значения организации. Если вы столкнулись с подобным поведением, рекомендуется временно переключить режим работы RLS.

Смена режима работы RLS: «Производительный» против «Стандартного»

Рассмотрим вариант обхода проблемы через настройки системы. В ERP существует два режима работы ограничений доступа на уровне записей:

Для диагностики и временного решения выполним следующее:

  1. Зайдем в НСИ и Администрирование — Настройка пользователей и прав.
  2. Перейдем по ссылке Параметры системы (или настройки RLS).
  3. Попробуем переключить режим на Стандартный.

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

Проверка ролей и обработки «Журнал документов безналичные платежи»

Иногда нюанс кроется в специфических правах на интерфейсные объекты. Для банковских операций в ERP используется обработка Обработка.ЖурналДокументовБезналичныеПлатежи. У пользователя должна быть активна не только роль на чтение документов (например, ЧтениеДокументовПоБанку), но и права на саму эту обработку. Детально разобраться в хитросплетениях прав бывает непросто, поэтому для облегчения задачи существуют специальные инструменты, позволяющие выполнить как общий анализ прав пользователей, ролей и профилей, так и анализ прав доступа к конкретному объекту. Если же проблема проявляется только у одного из нескольких сотрудников с, казалось бы, одинаковыми правами, будет полезно провести детальное сравнение их ролей.

Разберем, на что обратить внимание в профиле групп доступа:

  1. Проверьте наличие роли ЧтениеДокументовПоБанку.
  2. Убедитесь, что в ограничениях по организации (RLS) не стоит запрет, который перекрывает доступ (например, «Все запрещены, кроме одной», а документ относится к другой организации). Если стандартные механизмы ограничения негибки, их можно расширить с помощью готовых доработок, например, исправляющих RLS по организации.
  3. Проверьте, нет ли дублей в регистре Ключи реестра документов. Дубли записей могут приводить к тому, что выборка из списка будет возвращать пустой результат из-за внутренней ошибки СУБД при наложении условий.

Использование консоли запросов для диагностики

Чтобы окончательно убедиться, где «спотыкается» запрос, мы можем прогнать текст запроса из динамического списка под проблемным пользователем в консоли запросов. Как альтернативный способ проверки, можно попробовать найти документ в универсальном журнале документов, который часто имеет более простые механизмы отбора. Если же требуется глубокий анализ, рассмотрим метод с консолью:

  1. Запустите совместимую консоль запросов под правами пользователя, которая будет работать в любых режимах.
  2. Возьмите текст запроса из основной конфигурации для Обработка.ЖурналДокументовБезналичныеПлатежи.
  3. Выполните его. Если консоль возвращает пустой результат, а под полными правами данные есть — значит, срабатывает RLS.

В тексте запроса RLS попробуйте последовательно заменять части условий на ИСТИНА. Если при замене условия по ключам доступа данные появляются, значит, требуется обновление платформы до исправленного релиза, где устранена ошибка оптимизатора SDBL (версии выше 8.3.24.1300+ часто содержат нужные патчи).

Итоги и рекомендации

Мы проанализировали ситуацию, когда банковские документы «исчезают» из реестра 1С:ERP. Подведем итог нашим действиям:

  1. Проверяем регламентные задания: обновление ключей доступа должно идти штатно.
  2. Обновляем ключи вручную: используем программный интерфейс БСП или соответствующие обработки.
  3. Проверяем версию платформы: при использовании 8.3.24 на PostgreSQL помним о возможном баге SDBL.
  4. Тестируем в стандартном режиме: переключение RLS из производительного режима помогает локализовать проблему.
  5. Анализируем профили: проверяем доступ к обработке журнала и корректность настройки организаций.

Эти шаги позволят вам эффективно диагностировать и устранить невидимость документов, обеспечив корректную работу пользователей в системе 1С:ERP.

← На главную