Почему в отчете СКД не выводится поле Регистратор из регистра накопления?

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

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

1. Проверка прав доступа и функциональных опций

Первое, на что стоит обратить внимание — это ограничения доступа. Даже если вы работаете под учетной записью с полными правами, система может накладывать ограничения на чтение данных конкретных документов. RLS (Row Level Security) может фильтровать записи таким образом, что поле Регистратор становится недоступным для чтения, из-за чего СКД отбрасывает его в процессе компоновки.

Также проверьте Функциональные опции. Если Регистратор является документом, работа которого зависит от отключенной функциональной опции, система может блокировать доступ к объекту. Убедитесь, что все необходимые опции включены в текущем сеансе разработки.

2. Настройки наборов данных в СКД

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

  1. Откройте схему компоновки данных.
  2. Перейдите на вкладку Наборы данных.
  3. Выберите ваш набор данных (запрос).
  4. Используйте кнопку Обновить в конструкторе запроса, чтобы система заново просканировала структуру полей.
  5. Если это не помогает, временно удалите набор данных и добавьте его заново.

3. Особенности работы виртуальной таблицы ОстаткиИОбороты

Поле Регистратор доступно в виртуальной таблице ОстаткиИОбороты только при использовании параметра Периодичность. Если вы используете значение Авто, СКД должна автоматически предоставлять доступ к регистратору. Однако, если в настройках СКД или в самом запросе возникли проблемы с типизацией, система может исключить поле при попытке оптимизации.

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


ВЫБРАТЬ
    ОстаткиИОбороты.Организация,
    ОстаткиИОбороты.Номенклатура,
    ВЫРАЗИТЬ(ОстаткиИОбороты.Регистратор КАК Документ.ВашДокумент) КАК Регистратор
ИЗ
    РегистрНакопления.ВашРегистр.ОстаткиИОбороты(&ПериодНач, &ПериодКон, Авто, , ) КАК ОстаткиИОбороты

4. Алгоритм диагностики проблемы

Чтобы локализовать причину, воспользуйтесь проверенным алгоритмом действий:

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

← На главную