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

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

При переходе на новые версии конфигураций «1С:Управление торговлей 11.5», «1С:ERP 2.5» или «1С:Комплексная автоматизация 2.5» администраторы и разработчики часто сталкиваются с неприятной ситуацией: пользователи без полных прав видят пустые списки в общих журналах документов (например, «Документы продажи (все)», «Чеки ККМ», «Документы закупки»). При этом сами документы физически существуют в базе, их можно открыть по прямой ссылке или из специализированных списков (например, из списка только «Реализаций»), а пользователи с полными правами видят всё без ограничений. Чтобы сделать работу со списками более информативной, можно использовать расширение для просмотра прикрепленных файлов непосредственно в формах журналов. Проанализируем ситуацию и разберем по шагам, почему это происходит и как вернуть данные в журналы.

Причина 1: Механизм управления доступом на уровне записей (RLS)

В современных версиях программ на базе БСП (Библиотеки стандартных подсистем) используется оптимизированный механизм ограничения доступа на уровне записей — так называемый «производительный» режим RLS. В отличие от старого метода, когда SQL-запрос динамически дополнялся условиями при каждом обращении, новый метод использует заранее рассчитанные «Ключи доступа».

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

Для решения этой проблемы рассмотрим алгоритм действий:

  1. Перейдем в раздел НСИ и администрированиеНастройка пользователей и прав.
  2. Найдем гиперссылку Масштабируемость и производительность (в некоторых версиях настройки RLS вынесены в отдельный подраздел).
  3. Проанализируем текущий «Вариант работы ограничения доступа». Если установлен «Производительный», попробуем применить методику «сброса»:
    • Переключим вариант на «Стандартный».
    • Дождемся окончания процесса обновления (система запустит фоновое задание).
    • Переключим обратно на «Производительный».
  4. Если флаг «Ограничивать доступ на уровне записей» выключен, но документы всё равно не видны, попробуем включить его принудительно, дождаться завершения обновления ключей и затем выключить снова. Это инициирует полную перерегистрацию прав в системных таблицах.

Причина 2: Сбой регламентного обновления ключей доступа

Иногда автоматическое обновление не срабатывает из-за ошибок в фоновых заданиях. Мы можем запустить этот процесс вручную. Для этого проанализируем состояние регистров сведений.

Рассмотрим порядок действий через стандартные функции:

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

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

Причина 3: Особенности реструктуризации базы данных (Режим V2)

В платформе 8.3.18 и выше появился новый режим реструктуризации базы данных — V2. Он значительно ускоряет процесс обновления конфигурации (в некоторых случаях в 10–15 раз), но имеет свои особенности. Разберем кейс, когда именно использование V2 приводило к потере записей в таблицах журналов.

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

Если вы столкнулись с этой проблемой после обновления, рассмотрим следующий метод «лечения»:

  1. В Конфигураторе перейдем в АдминистрированиеПараметры информационной базы.
  2. Установим «Режим реструктуризации информационной базы» в значение V1.
  3. Чтобы заставить систему пересчитать журнал, внесем фиктивное изменение в объект ЖурналДокументов (например, добавим и сразу удалим графу или изменим состав документов).
  4. Выполним обновление конфигурации базы данных (F7). Система запустит классическую реструктуризацию, которая восстановит связи в таблице журнала.

Причина 4: Проверка состава прав и права «Просмотр»

Часто программисты путают права Чтение и Просмотр. Для того чтобы документ отобразился в динамическом списке (которым является журнал), пользователю обязательно должно быть назначено право Просмотр. Для детальной диагностики в этом случае пригодится специальная обработка для анализа прав доступа к объекту.

Проанализируем роль пользователя:

Причина 5: Диагностика через консоль запросов

Чтобы окончательно выяснить, виноваты ли права (RLS) или настройки формы, выполним контрольный замер. Зайдем в базу под «проблемным» пользователем и запустим совместимую консоль запросов.

Попробуем выполнить следующий запрос к журналу продаж:


ВЫБРАТЬ ПЕРВЫЕ 100
    Журнал.Ссылка,
    Журнал.Дата,
    Журнал.Номер
ИЗ
    ЖурналДокументов.Продажи КАК Журнал
ГДЕ
    Журнал.Дата >= &НачалоПериода

Проанализируем результат:

  1. Если запрос под пользователем возвращает строки, а список в интерфейсе пуст — значит, проблема в настройках формы (сбились фильтры, установлены скрытые отборы по периоду или организации). В этой ситуации администратору может помочь расширение для установки отборов в списках у пользователей. В ином случае поможет команда Установить стандартные настройки в меню «Изменить форму».
  2. Если запрос возвращает 0 строк, хотя под администратором данные есть — это 100% проблема RLS и ключей доступа. Возвращайтесь к «Причине 1».
  3. Если запрос выдает ошибку доступа к таблице — не хватает базовых прав на объект метаданных ЖурналДокументов или его составляющие.

Дополнительные рекомендации

В некоторых случаях, особенно после перехода с 11.4 на 11.5, помогает простая перезапись документов. Это инициирует обновление записей в регистре РегистрСведений.ЖурналДокументов (или аналогичном системном регистре, на котором строится список). Не обязательно отменять проведение, достаточно программно вызвать метод Записать(РежимЗаписиДокумента.Запись) для выборки документов за проблемный период.

Рассмотрим пример кода для исправления ситуации программно:


Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ Ссылка ИЗ Документ.РеализацияТоваровУслуг ГДЕ Проведен";
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
    Объект = Выборка.Ссылка.ПолучитьОбъект();
    Объект.Записать(РежимЗаписиДокумента.Запись); // Обновляет записи в журналах и ключи RLS
КонецЦикла;

Подведем итог: проблема пустых журналов в УТ 11.5 чаще всего носит инфраструктурный характер и связана с механизмом RLS. Начните с обновления ключей доступа через настройки прав, и в 90% случаев это решит вашу задачу без изменения программного кода.

← На главную