Встречались ли вы с ситуацией, когда в поле, где должно быть название контрагента, товара или любого другого элемента, красуются загадочные символы < >? При этом, если на них нажать, открывается форма этого элемента, и в ней все данные заполнены. Это распространенная проблема, которая может сбить с толку, но давайте вместе разберемся, в чем дело.
Сразу определимся: если объект открывается, значит, ссылка на него не "битая" и не удалена. Проблема кроется не в самих данных, а в их отображении, или, как говорят в мире 1С, в "представлении" объекта.
Представление — это текстовая строка, которую платформа 1С использует для отображения ссылки на объект в полях ввода, отчетах и списках. По умолчанию система использует для этого самые очевидные поля:
Наименование.Номера и Даты.Когда вместо текста мы видим < >, это означает, что по каким-то причинам представление объекта оказалось пустой строкой. Проанализируем основные причины, почему так происходит.
Это самая простая и очевидная причина. Несмотря на то, что в карточке элемента могут быть заполнены десятки полей, то самое, которое отвечает за представление, может оказаться пустым.
Как проверить:
< >, чтобы открыть форму элемента.Если после проверки и сохранения элемента его представление в ссылке обновилось и стало корректным, значит, проблема была именно в этом. Если же поле заполнено, а проблема осталась, переходим к более сложным случаям, для которых понадобится доступ к Конфигуратору.
Разработчик может изменить стандартное поведение и указать платформе, какое поле использовать для представления. Например, для справочника номенклатуры можно настроить отображение по полю Код, а не Наименование.
Разберем по шагам, как это проверить в Конфигураторе:
Справочники -> Номенклатура.Основное представление.Если в этом свойстве установлено значение, отличное от стандартного (например, "В виде кода"), а соответствующий реквизит (Код) у вашего элемента не заполнен, то платформа не сможет сформировать текстовое представление, и вы увидите < >. Решение — либо заполнить нужный реквизит в режиме "Предприятие", либо вернуть стандартные настройки представления в Конфигураторе.
Это наиболее сложный для диагностики, но очень частый случай в доработанных конфигурациях. Разработчики могут написать специальный код, который будет динамически создавать представление из нескольких полей. Например, для товара это может быть "Артикул + Наименование + Характеристика".
Такой код пишется в модуле менеджера объекта. Если в логике этого кода есть ошибка или одно из полей, участвующих в формировании строки, не заполнено, итоговое представление может оказаться пустым.
Как найти и проанализировать этот код:
Справочники -> Номенклатура).ОбработкаПолученияПредставления или ОбработкаПолученияПолейПредставления. Именно они отвечают за программное формирование представления.Посмотрим на пример кода:
Предположим, в модуле менеджера справочника "Номенклатура" есть такой код:
Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка)
// Отключаем стандартный механизм, чтобы задать свой
СтандартнаяОбработка = Ложь;
// Формируем представление из Артикула
// Если Артикул пустой, то и представление будет пустым
Представление = Данные.Артикул;
КонецПроцедуры
В этом примере, если у элемента номенклатуры не заполнено поле Артикул, его представление всегда будет пустым. Другой пример:
Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
// Формируем представление из двух полей
Если НЕ ЗначениеЗаполнено(Данные.Артикул) Тогда
// Если артикул не заполнен, используем наименование
Представление = Данные.Наименование;
Иначе
// Иначе составляем строку "Артикул (Наименование)"
Представление = Данные.Артикул + " (" + Данные.Наименование + ")";
КонецЕсли;
КонецПроцедуры
Этот код более правильный, так как он предусматривает ситуацию с незаполненным артикулом. Если вы обнаружили подобный код в своей конфигурации, внимательно проанализируйте его логику. Проверьте, все ли реквизиты, из которых он собирает строку (в нашем примере Артикул и Наименование), заполнены у проблемного элемента в базе.
Итак, чтобы решить проблему с отображением < >, последовательно выполним следующие шаги:
Основное представление.ОбработкаПолученияПредставления или ОбработкаПолученияПолейПредставления и проанализируйте их логику.В подавляющем большинстве случаев один из этих трех шагов поможет вам найти корень проблемы и вернуть корректное отображение данных в вашей 1С.