В процессе разработки и сопровождения конфигураций платформы 1С:Предприятие 8 администраторы и программисты часто сталкиваются с задачей кастомизации отображения объектов. Стандартное представление ссылки, которое формируется автоматически из кода и наименования, не всегда удовлетворяет требования бизнеса или удобство пользователей. Например, для справочника «Номенклатура» может потребоваться выводить артикул и единицу измерения, а не просто полное имя.
Изменение этого параметра влияет на то, как объект выглядит в выпадающих списках, отчетах, журналах документов и при выборе в полях ввода. Неправильная настройка может привести к путанице, когда разные объекты выглядят одинаково, или к перегруженности интерфейса лишней информацией. В этой статье мы детально разберем механизмы управления представлением ссылок на разных уровнях архитектуры платформы.
Природа формирования представления ссылки
По умолчанию платформа 1С:Предприятие генерирует строковое представление объекта на основе его основных реквизитов. Для большинства справочников это поле «Наименование», а для документов — комбинация номера и даты. Однако эта логика является лишь базовой и может быть легко переопреждена разработчиком в режиме конфигуратора.
Система обращается к метаданным объекта каждый раз, когда требуется отобразить ссылку в пользовательском интерфейсе. Если явные настройки отсутствуют, используется стандартный алгоритм. Понимание этого процесса критически важно для оптимизации производительности, так как сложные вычисления в методе формирования могут замедлить работу списка при большом количестве записей.
Стоит отметить, что представление ссылки не хранится в базе данных как отдельное поле. Оно вычисляется динамически в момент обращения. Это означает, что любые изменения в логике формирования сразу же отражаются во всех интерфейсах без необходимости перезаписи данных или проведения специальных обработок.
Используйте легкие вычисления для формирования представления, если объект используется в больших списках (тысячи строк), чтобы избежать тормозов интерфейса.
Настройка через форму элемента справочника
Самый распространенный и простой способ изменить то, как выглядит ссылка — это настройка свойств самой формы элемента. Этот метод не требует написания программного кода и реализуется исключительно средствами визуального редактора конфигуратора. Он подходит для случаев, когда нужно просто поменять порядок вывода полей или добавить один дополнительный реквизит.
Для начала необходимо открыть конфигуратор и найти нужный объект метаданных в дереве конфигурации. Перейдите в форму элемента соответствующего справочника. В палитре свойств формы найдите параметр, отвечающий за структуру выводимой информации. Часто разработчики упускают этот момент, пытаясь решить задачу программно, хотя достаточно изменить свойство объекта.
В свойствах поля или самой формы можно задать состав выводимых реквизитов. Вы можете включить сюда артикул, код, родительский элемент или любые другие поля, которые имеют смысл для идентификации объекта в конкретном контексте использования. Система автоматически сконструирует строку, объединив значения выбранных полей через разделители.
- 🔹 Откройте форму элемента в конфигураторе через контекстное меню объекта.
- 🔹 Выделите корневой элемент формы или конкретное поле ввода в дереве элементов.
- 🔹 В панели свойств найдите параметр «Представление» или «Данные» для настройки состава.
- 🔹 Добавьте необходимые реквизиты в список отображаемых полей через конструктор.
Программное переопределение метода ПолучениеПредставления
Когда стандартных настроек формы недостаточно и требуется сложная логика формирования строки, необходимо использовать программный метод. В модуле объекта справочника или документа существует специальный метод, предназначенный именно для этих целей. Его использование дает полный контроль над форматом выводимой информации.
Метод ПолучениеПредставления вызывается платформой автоматически. Разработчику нужно лишь описать алгоритм внутри него. Здесь можно использовать условные операторы, проверять заполненность полей и даже обращаться к связанным объектам, хотя последнее следует делать с осторожностью из-за влияния на скорость работы.
Функция ПолучениеПредставления()
Представление = Код + " " + Наименование;
Если Не ПустаяСтрока(Артикул) Тогда
Представление = Представление + " (" + Артикул + ")";
КонецЕсли;
Возврат Представление;
КонецФункции
Если логика предполагает работу с числами или датами, их необходимо явно преобразовывать. Также в этом методе нельзя изменять данные объекта, так как он предназначен только для чтения и формирования отображаемой строки.
Особенности работы метода в управляемых формах
В режиме управляемого приложения метод ПолучениеПредставления может вызываться на клиенте или на сервере в зависимости от контекста. Убедитесь, что используемые функции доступны в том контексте, где выполняется код.
Использование представления в отчетах и СКД
При разработке отчетов с использованием Системы Компоновки Данных (СКД) вопрос отображения ссылок встает особенно остро. Пользователи часто видят в отчетах просто GUID или технический код объекта, что делает анализ данных невозможным. Настройка представления в самом отчете позволяет решить эту проблему без изменения конфигурации.
В настройках отчета, на этапе формирования полей, можно явно указать, какое представление использовать для ссылочного типа данных. СКД позволяет выбирать между стандартным представлением, полным наименованием или произвольным выражением. Это дает гибкость в создании аналитических форм для разных групп пользователей.
Если в запросе используется псевдоним для поля ссылки, система компоновки данных может автоматически подтянуть представление, если это свойство включено в схеме данных. Однако для сложных случаев, когда нужно вывести специфическую информацию, лучше явно прописать выражение в тексте запроса, используя функцию ПРЕДСТАВЛЕНИЕ.
| Метод настройки | Уровень применения | Сложность внедрения | Гибкость |
|---|---|---|---|
| Свойства формы | Интерфейс ввода | Низкая | Средняя |
| Модуль объекта | Вся конфигурация | Средняя | Высокая |
| Настройки СКД | Отчеты | Низкая | Высокая |
| Запрос (SQL) | Произвольные выборки | Высокая | Максимальная |
Настройка представления в СКД влияет только на конкретный отчет и не меняет поведение справочника в других местах конфигурации.
Отображение ссылок в табличных частях документов
Табличные части документов требуют особого подхода к организации пространства на экране. Здесь важно соблюсти баланс между информативностью и компактностью. Изменение представления ссылки в колонке табличной части часто помогает пользователю быстрее идентифицировать позицию без необходимости открывать карточку номенклатуры.
Для реализации этого необходимо открыть форму документа в конфигураторе и найти соответствующую таблицу. В свойствах колонки, связанной со ссылочным типом данных, можно настроить вывод дополнительных полей. Часто используется комбинированный вариант, когда в одной ячейке отображается и код, и наименование товара.
⚠️ Внимание: Избегайте вывода слишком длинных строк в табличных частях. Это может привести к горизонтальной прокрутке и ухудшению восприятия информации. Оптимальная длина представления для табличной части — до 50-60 символов.
Также стоит учитывать, что в табличных частях часто используется режим «Только просмотр» или ограниченные права доступа. Убедитесь, что выбранное представление корректно отображается при различных настройках прав доступа и в разных вариантах интерфейса (такси, обычный).
☑️ Проверка настройки табличной части
Влияние изменений на производительность системы
Любое усложнение логики формирования представления ссылки имеет свою цену в виде ресурсов процессора и времени отклика. Если метод ПолучениеПредставления содержит тяжелые запросы к базе данных или сложные вычисления, это может существенно замедлить работу списков, особенно при постраничном выводе большого объема данных.
Платформа кэширует некоторые результаты, но полагаться на это полностью не стоит. Рекомендуется проводить нагрузочное тестирование после внедрения сложных алгоритмов отображения. Простые конкатенации строк практически не влияют на скорость, тогда как обращения к другим таблицам могут стать узким местом.
В случаях, когда требуется вывести данные из связанных регистров или других справочников, лучше делать это на уровне отчета или отдельной обработки, а не в методе представления ссылки. Это позволит изолировать тяжелую логику и не тормозить основной интерфейс работы пользователя.
⚠️ Внимание: Детали работы механизмов кэширования и оптимизации запросов могут меняться в новых версиях платформы 1С. Рекомендуется сверять актуальные рекомендации по производительности в официальной документации фирмы «1С» перед внедрением масштабных изменений.
Как диагностировать тормоза
Используйте технологический журнал (ТЖ) 1С для анализа времени выполнения метода ПолучениеПредставления. Высокое время отклика укажет на необходимость оптимизации кода.
Часто задаваемые вопросы
Можно ли изменить представление ссылки для уже существующих данных без перезаписи?
Да, изменение логики формирования представления применяется мгновенно ко всем объектам, так как эта строка вычисляется динамически при каждом обращении. Перезапись данных в базе не требуется.
Почему в отчете ссылка отображается как GUID или технический код?
Это происходит, если в настройках отчета или в текстовом запросе не указано использование функции представления, либо если у объекта не заполнено поле Наименование, а представление по умолчанию настроено на него.
Влияет ли изменение представления на печатные формы?
Да, если в макете печатной формы используется поле с автоматическим представлением ссылки. Однако часто в печатных формах используются отдельные поля (Наименование, Артикул), которые настраиваются независимо.
Как вернуть стандартное представление, если оно было изменено программно?
Необходимо удалить или закомментировать код в методе ПолучениеПредставления модуля объекта и сбросить настройки формы элемента, если они были изменены визуально в конфигураторе.