Почему в отчете СКД не отображается поле «Стоимость» и как это исправить

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

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

Анализ исходного запроса

Для начала проанализируем типичный запрос, который может использоваться в такой ситуации. В нашем примере данные берутся из виртуальной таблицы остатков регистра накопления ПартииТоваровНаСкладах. Мы видим, что поле СтоимостьОстаток получает псевдоним Стоимость.


ВЫБРАТЬ
    ПартииТоваровНаСкладахОстатки.Организация КАК Организация,
    ПартииТоваровНаСкладахОстатки.Склад КАК Склад,
    ПартииТоваровНаСкладахОстатки.Номенклатура КАК Номенклатура,
    ПартииТоваровНаСкладахОстатки.КоличествоОстаток КАК Количество,
    ПартииТоваровНаСкладахОстатки.СтоимостьОстаток КАК Стоимость,
    ПартииТоваровНаСкладахОстатки.ВесОстаток КАК Вес,
    ПартииТоваровНаСкладахОстатки.Номенклатура.Код КАК НоменклатураКод,
    ПартииТоваровНаСкладахОстатки.Номенклатура.Артикул КАК НоменклатураАртикул
ИЗ
    РегистрНакопления.ПартииТоваровНаСкладах.Остатки(&Период, ) КАК ПартииТоваровНаСкладахОстатки
{ГДЕ
    (ПартииТоваровНаСкладахОстатки.Организация = &Организация),
    (ПартииТоваровНаСкладахОстатки.Склад = &Склад)}

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

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

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

Важно помнить: функциональная опция может быть назначена не только на весь регистр, но и на его отдельные ресурсы. Выясним, не привязано ли поле СтоимостьОстаток в самом дереве метаданных регистра к какой-либо ФО. Если опция в значении Ложь, поле не будет доступно даже администратору с полными правами.

2. Ограничения на уровне прав доступа (RLS и права к полям)

Проанализируем права доступа. Даже если у пользователя установлена роль «Полные права», в некоторых конфигурациях доступ к конкретным полям (особенно финансовым) может быть ограничен. Необходимо зайти в конфигуратор, открыть настройки ролей и убедиться, что для регистра ПартииТоваровНаСкладах (или другого используемого объекта) у ресурса СтоимостьОстаток установлены флажки «Просмотр» и «Редактирование».

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

3. Настройки «Ограничение доступности» в схеме СКД

Рассмотрим вкладку «Наборы данных» в конструкторе СКД. Для каждого поля в таблице есть колонка «Ограничение поля». Проверим, не установлена ли там галочка для поля Стоимость.

Основные флаги ограничений:

Убедимся, что все эти флажки сняты для нашего ресурса.

4. Иерархия настроек в варианте отчета

Посмотрим на структуру настроек на закладке «Настройки» в СКД. Выбранные поля могут определяться как глобально для всего отчета, так и локально для каждой группировки.

Проанализируем ситуацию: если в детальных записях или в группировке по Номенклатура список выбранных полей задан вручную (снят флаг «Автополе»), то добавление поля Стоимость в общие настройки отчета не приведет к его появлению в этой конкретной группировке. Проверим, наследует ли ваша группировка состав выбранных полей от родителя или отчета в целом.

5. Очистка пользовательских настроек и кэша

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

Выполним следующие действия в режиме «1С:Предприятие»:

  1. Зайдем в меню «Изменить вариант».
  2. Выберем команду «Установить стандартные настройки».
  3. Если это не помогло, попробуем очистить настройки через «Администрирование — Настройки пользователей и прав — Очистка настроек».

6. Программная модификация схемы

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

Подводя итог, можно сказать, что решение проблемы всегда кроется в одном из этих уровней: метаданные (ФО и права), схема СКД (ограничения доступности) или кэш пользователя. Последовательная проверка каждого шага позволит вам найти причину исчезновения колонки.

← На главную