Почему не отображаются новые поля в отчете Ведомость товаров на складах в УТ 11

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

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

Причина 1: Программная модификация структуры отчета

В современных версиях УТ 11 (и других конфигурациях на базе БСП) отчеты строятся не «напрямую» из схемы компоновки, а через универсальные механизмы. Часто итоговый запрос или состав доступных полей жестко контролируется программным кодом в модуле отчета или в общих модулях. Проанализируем ситуацию: когда вы нажимаете кнопку «Сформировать», система может вызывать обработчик ПриКомпоновкеДанных, который переопределяет настройки компоновщика.

Разберем, что нужно проверить в первую очередь:

  1. Откроем конфигуратор и найдем отчет ВедомостьТоваровНаСкладах.
  2. Перейдем в модуль объекта отчета.
  3. Найдем процедуру ПриКомпоновкеДанных.

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


Процедура ПриКомпоновкеДанных(РезультатИзучения, ДанныеРасшифровки, СтандартнаяОбработка)
    
    СтандартнаяОбработка = Ложь; // Система игнорирует стандартный вывод СКД
    
    // Здесь вызывается механизм формирования отчета, который может 
    // игнорировать ваши правки в макете СКД
    ОтчетыСервер.ПриКомпоновкеДанных(ЭтотОбъект, РезультатИзучения, ДанныеРасшифровки, СтандартнаяОбработка);
    
КонецПроцедуры

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

Причина 2: Использование сохраненных настроек и кэша

Даже если программный код не подменяет запрос, система 1С сохраняет пользовательские настройки для каждого отчета. Если пользователь ранее открывал этот отчет, структура колонок уже зафиксирована в его настройках (в хранилище настроек). Ваши изменения в конфигураторе не всегда автоматически обновляют эти сохраненные данные.

Выясним, как это исправить в пользовательском режиме:

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

Часто именно сброс настроек до стандартных является ключом к решению проблемы, так как он заставляет систему перечитать схему компоновки данных из метаданных заново.

Причина 3: Настройки автозаполнения и иерархия полей в СКД

Проанализируем настройки самой схемы компоновки данных. На вкладке «Наборы данных» в СКД есть важный флаг — «Автозаполнение». Рассмотрим два варианта развития событий:

Также важно проверить ограничения. Напротив каждого поля в СКД есть колонки «Ограничение поля» (условие, компоновка и т.д.). Если там стоят галочки, поле может быть скрыто из списка выбора для пользователя, даже если оно присутствует в запросе.

Причина 4: Сложная структура группировок (Таблица)

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

Разберем по шагам, как проверить иерархию настроек:

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

Причина 5: Права доступа и RLS

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

Резюме

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

← На главную