При работе с Универсальным отчетом в программе 1С:Бухгалтерия пользователи часто сталкиваются с ограничением: в списке доступных полей для вывода не всегда отображаются нужные реквизиты объектов, например, Код или Наименование группы для Субконто. Разберем, почему это происходит и как можно решить эту задачу, не прибегая к сложным доработкам конфигурации.
Система компоновки данных (СКД), на которой базируется Универсальный отчет, формирует список доступных полей на основании настроек конкретного набора данных. Если разработчик типового решения не вывел определенный реквизит явно, он не появится в списке выбора. Кроме того, Субконто — это составной тип данных, который может содержать ссылки на совершенно разные справочники (Номенклатура, Контрагенты, Статьи затрат). Из-за такой архитектуры система не всегда может корректно «предсказать», какой именно реквизит вы хотите получить.
Первое, что стоит проверить — можно ли получить доступ к реквизиту напрямую через механизм обращения «через точку». Попробуйте в настройках группировки или полей добавить выражение вручную, указав путь к реквизиту через имя Субконто.
Например, если вам нужен код для первого субконто, попробуйте прописать путь:
Субконто1.Код
В ряде случаев, даже если поле не предлагается в выпадающем списке, система позволяет его вычислить, если путь указан корректно. Если вы работаете со специфическими справочниками, обратите внимание на переименование реквизитов. Например, в некоторых объектах учета поле Код может называться иначе в соответствии с бизнес-логикой (например, VIN для транспортных средств). Проверьте структуру справочника, возможно, искомый параметр скрывается под другим именем.
Если прямой вызов не помогает, воспользуемся возможностями пользовательских выражений. Этот метод особенно эффективен, когда нужно получить текстовое представление объекта или его родительской группы.
Допустим, вам нужно вывести Наименование группы, в которую входит Субконто2. Вместо попытки найти поле Субконто2.ВходитВГруппу.Наименование, которое может быть недоступно, воспользуйтесь функцией Строка().
Создайте пользовательское поле с выражением:
Строка(Субконто2.ВходитВГруппу)
Этот простой «трюк» заставляет платформу преобразовать ссылку на группу в ее текстовое представление, что зачастую решает проблему отсутствия доступа к конкретным реквизитам вложенных объектов.
Иногда отсутствие полей связано не с архитектурой СКД, а с ограничениями прав пользователя. Хотя административные права обычно решают все вопросы, стоит убедиться, что пользователю доступна роль РедактированиеРеквизитовОбъектов или аналогичные права, разрешающие просмотр служебных данных справочников.
Универсального отчета.Настройки.Субконто[N].Реквизит (например, Субконто1.Код).Пользовательские поля и добавьте новое поле с выражением типа Строка(Субконто[N].Поле).Код, а VIN, Артикул или иначе.Данные подходы позволяют значительно расширить возможности стандартных отчетов без необходимости снятия конфигурации с поддержки или привлечения штатного программиста для написания внешних печатных форм и отчетов.