Почему документы оприходования и пересортицы не отображаются в журнале «Внутренние документы (все)» и как это исправить?

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

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

В этой статье мы подробно разберем, почему возникает эта проблема, как устроена архитектура журналов документов в современных ERP-системах и какие шаги необходимо предпринять для восстановления видимости документов у пользователя.

Архитектурная особенность журнала «Внутренние документы (все)»

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

Чтобы решить эту проблему, разработчики фирмы «1С» внедрили оптимизационный механизм. Рабочее место «Внутренние документы (все)» представляет собой сложную обработку-журнал. В качестве источника данных для динамического списка она использует не таблицы самих документов ОприходованиеИзлишковТоваров и ПересортицаТоваров, а специальный вспомогательный регистр сведений — РегистрСведений.РеестрДокументов.

При записи или проведении любого складского документа система автоматически делает запись в этот регистр сведений, сохраняя там ключевые реквизиты: дату, номер, организацию, склад (в регистре это измерение МестоХранения), сумму и ссылку на сам документ. Журнал отображает данные именно из этого реестра. Соответственно, если у пользователя нет прав на чтение или просмотр данного регистра, либо наложены ограничения RLS, документы в журнале отображаться не будут, хотя физически они существуют и доступны по прямой ссылке.

Пошаговое руководство по решению проблемы

Рассмотрим по шагам, как локализовать и устранить эту проблему.

Шаг 1. Первичная диагностика через функции для технического специалиста

Выясним, действительно ли дело в журнале или у пользователя в принципе отсутствуют права доступа на сами документы. Для этого выполним следующие действия:

  1. Запустим сеанс под учетной записью проблемного пользователя.
  2. Откроем меню «Функции для технического специалиста» (если у пользователя есть права на этот пункт и он включен в параметрах системы).
  3. В ветке «Документы» найдем Оприходование излишков товаров или Пересортица товаров и откроем стандартный список.

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

Шаг 2. Проверка персональных настроек и фильтров в журнале

Иногда решение бывает самым простым. Прежде чем переходить к конфигуратору, проверим пользовательские настройки рабочего места «Внутренние документы (все)»:

  1. Зайдем в журнал под проблемным пользователем.
  2. В шапке формы или по кнопке «Настроить» (в некоторых релизах это гиперссылка, указывающая количество выбранных документов или операций) откроем окно выбора хозяйственных операций и видов документов.
  3. Убедимся, что установлены флаги напротив операций Оприходование излишков и Пересортица товаров. Если эти флажки были случайно сняты, документы будут скрыты из формы динамического списка, несмотря на любые полные права.

Шаг 3. Анализ прав доступа на регистр «Реестр документов» (Права «Чтение» и «Просмотр»)

Перейдем к технической стороне настройки ролей в Конфигураторе. Для вывода данных в динамические списки платформе 1С:Предприятие критически важно наличие не просто права Чтение, но и права Просмотр как для самого регистра сведений РегистрСведений.РеестрДокументов, так и для типов данных, которые входят в состав его измерений.

Разберем, как проверить и настроить роли:

  1. Откроем Конфигуратор, найдем измененную или добавленную вами роль (например, аналог роли ЧтениеСкладскихАктов).
  2. Перейдем к ветке Регистры сведений -> РеестрДокументов.
  3. Убедимся, что установлены оба флага: Чтение и Просмотр.
  4. Проверим аналогичные флаги для документов ОприходованиеИзлишковТоваров и ПересортицаТоваров.

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

Для программной проверки доступности данных из реестра под пользователем можно запустить следующий запрос:


Запрос = Новый Запрос;
Запрос.Текст = 
    "ВЫБРАТЬ РАЗРЕШЕННЫЕ
    |	Реестр.Ссылка КАК ДокументСсылка,
    |	Реестр.Период КАК Дата,
    |	Реестр.Номер КАК Номер,
    |	Реестр.Организация КАК Организация,
    |	Реестр.МестоХранения КАК Склад
    |ИЗ
    |	РегистрСведений.РеестрДокументов КАК Реестр
    |ГДЕ
    |	Реестр.ТипСсылки = &ТипОприходование ИЛИ Реестр.ТипСсылки = &ТипПересортица";

Запрос.УстановитьПараметр("ТипОприходование", Тип("ДокументСсылка.ОприходованиеИзлишковТоваров"));
Запрос.УстановитьПараметр("ТипПересортица", Тип("ДокументСсылка.ПересортицаТоваров"));
Выборка = Запрос.Выполнить().Выбрать();

Если при выполнении этого кода под правами пользователя выборка оказывается пустой (хотя документы в базе есть), проблема гарантированно заключается в правах доступа к регистру реестра или механизмах RLS.

Шаг 4. Влияние механизмов RLS (Row-Level Security) на уровне записей

В типовых конфигурациях 1С на регистр РегистрСведений.РеестрДокументов наложено комплексное ограничение доступа на уровне записей (обычно через шаблон #ПоЗначениямРасширенный). Система проверяет права доступа по нескольким разрезам:

Если у пользователя в его Группе доступа (Профиле групп доступа) установлены ограничения (например, разрешен доступ только к «Складу №1», а документы оприходования или пересортицы оформлены по «Складу №2»), то RLS на уровне регистра Реестр документов полностью скроет эти записи в общем журнале. При этом напрямую через функции для технического специалиста документ может оставаться доступным для просмотра, так как стандартный список документа обращается к другой таблице БД с иными правилами RLS.

Решение: Проанализируйте настройки групп доступа и профилей пользователя. Убедитесь, что у него есть доступ к тем складам и организациям, которые указаны в «невидимых» документах.

Шаг 5. Рассинхронизация данных и восстановление реестра

Иногда физические записи по документам просто отсутствуют в регистре Реестр документов. Это часто происходит после группового изменения реквизитов сторонними обработками, сбоев при обновлении базы, переноса данных или некорректного импорта.

Выясним, действительно ли дело в рассинхронизации. Для этого проведем точечный эксперимент:

  1. Зайдем в систему под правами Администратора.
  2. Найдем один из скрытых документов, внесем минимальное изменение (например, добавим символ в комментарий) и перепроведем его.
  3. Проверим, появился ли данный документ в журнале «Внутренние документы (все)» под проблемным пользователем.

Если после перепроведения документ стал виден, это подтверждает рассинхронизацию регистра реестра. Для массового исправления ситуации в системе предусмотрен штатный инструмент:

  1. Откроем «Функции для технического специалиста» под учетной записью Администратора.
  2. В разделе «Обработки» найдем и запустим обработку «Исправление реестра документов» (в некоторых релизах — «Обновление реестра документов»).
  3. Запустим процесс восстановления связей. В фоновом режиме обработка пересчитает и восстановит поврежденные и отсутствующие записи в регистре РегистрСведений.РеестрДокументов.

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

← На главную