Разработка и Конфигурация · 12 мин
Как изменить представление документа в 1С
Как изменить представление документа в 1С: через синоним, расширенное представление и обработчик ОбработкаПолученияПредставления. Пошаговые инструкции и примеры кода.
Под представлением документа в 1С понимается текст, который пользователь видит в списках, ссылках, отчётах и печатных формах. По умолчанию платформа формирует его автоматически: например, «Реализация товаров и услуг 000000-000123 от 15.03.2026». Такой формат не всегда удобен: бухгалтеру нужен номер счёта-фактуры, менеджеру — контрагент, а руководителю — сумма документа. Изменить представление можно несколькими способами — от простой настройки синонима до программной обработки в модуле менеджера объекта.
Выбор способа зависит от задачи. Если нужно переименовать сам вид документа в интерфейсе, достаточно поменять синоним в конфигураторе. Если требуется изменить строку, которую видит пользователь в полях ввода и списках (например, добавить контрагента или статус), придётся использовать расширенное представление объекта или обработчик ОбработкаПолученияПредставления. Ниже разобраны все рабочие варианты с примерами кода и ограничениями.
Как платформа формирует представление документа по умолчанию
По умолчанию 1С собирает представление документа из трёх частей: синонима объекта метаданных, номера документа и даты. Например: «Поступление товаров и услуг 0000-001234 от 10.02.2026 12:30:00». Именно эту строку пользователь видит в журнале документов, в поле «Документ основание», в расшифровках отчётов и при печати ссылок.
Важно понимать: представление не хранится в базе данных как отдельное поле. Оно вычисляется «на лету» каждый раз, когда платформа отображает ссылку. Поэтому изменение настройки или обработчика сразу отражается на всех местах, где документ выводится, — и не требует перепроведения или изменения самих документов.
Это также означает, что сложное представление, собираемое запросом к нескольким таблицам, будет выполняться при каждом отображении списка. При больших объёмах данных это может заметно замедлить открытие журналов — об этом подробнее в разделе про производительность.
Способ 1. Изменить синоним документа в конфигураторе
Самый простой вариант — переименовать вид документа. Синоним используется в заголовках форм, в представлении по умолчанию и в меню разделов. Например, документ «Операция» в интерфейсе может называться «Операция, введённая вручную».
- 1Откройте конфигуратор и найдите нужный документ в дереве метаданных (ветка «Документы»).
- 2Откройте палитру свойств объекта (правый клик — «Свойства»).
- 3Измените значение свойства «Синоним» — например, с «Заказ клиента» на «Заказ покупателя».
- 4Обновите конфигурацию базы данных (F7) и проверьте результат в режиме предприятия.
Недостаток способа очевиден: меняется только название вида документа, а не формат строки с номером и датой. Кроме того, в типовых конфигурациях, находящихся на полной поддержке, изменение синонима потребует снятия объекта с поддержки либо использования расширения. Для большинства практических задач одного синонима недостаточно.
Способ 2. Расширенное представление объекта без программирования
В свойствах документа есть поле «Расширенное представление объекта» (ExtendedObjectPresentation). Оно позволяет задать форматную строку с подстановкой реквизитов — без единой строки кода в модуле. Платформа подставит значения полей автоматически.
Форматная строка записывается в квадратных скобках с именами реквизитов. Например, для документа «Заказ клиента» можно задать: Заказ [Номер] от [Дата] — [Контрагент]. Тогда в списках и ссылках документ будет отображаться как «Заказ 00123 от 15.03.2026 — ООО Ромашка».
Ограничения способа: работают только реквизиты шапки простых типов и ссылочных типов (подставляется их стандартное представление), нельзя использовать условную логику, обращение к табличным частям и вычисляемые значения. Если нужна логика «если проведён — показать сумму, иначе — статус», потребуется программный способ.
Способ 3. Программное представление через ОбработкаПолученияПредставления
Наиболее гибкий вариант — обработчик ОбработкаПолученияПредставления в модуле менеджера документа. Он вызывается платформой каждый раз, когда нужно получить строковое представление ссылки, и позволяет сформировать любую строку с любой логикой.
В модуле менеджера документа (в дереве метаданных: правый клик по документу — «Открыть модуль менеджера») добавьте процедуру:
Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Представление = СтрШаблон("Заказ №%1 от %2 (%3)",
Данные.Номер,
Формат(Данные.Дата, "ДЛФ=D"),
Данные.Контрагент);
КонецПроцедуры
Параметр Данные содержит поля ссылки, которые платформа выбрала из базы. По умолчанию там только минимальный набор. Чтобы в данных появились нужные реквизиты (например, Контрагент, СуммаДокумента), их необходимо перечислить в свойстве документа «Поля представления» (PresentationFields) в конфигураторе — иначе обращение к реквизиту вернёт пустое значение или вызовет дополнительный запрос.
Если в обработчике не установить СтандартнаяОбработка = Ложь, платформа проигнорирует ваш текст и сформирует стандартное представление. Это самая частая причина, почему «код написан, но ничего не изменилось».
Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Если Данные.Проведен Тогда
Представление = СтрШаблон("%1 №%2 от %3 — проведён", Данные.ВидДокумента, Данные.Номер, Формат(Данные.Дата, "ДЛФ=D"));
Иначе
Представление = СтрШаблон("%1 №%2 от %3 (не проведён)", Данные.ВидДокумента, Данные.Номер, Формат(Данные.Дата, "ДЛФ=D"));
КонецЕсли;
КонецПроцедурыНастройка полей представления и производительность
Ключевой момент при программном формировании представления — свойство «Поля представления» (PresentationFields) в палитре свойств документа. В него нужно добавить все реквизиты, которые используются в обработчике: Номер, Дата, Контрагент, СуммаДокумента, Проведен и т.д.
Если реквизит не включён в поля представления, платформа при обращении к нему в параметре Данные либо вернёт неопределённое значение, либо (в зависимости от режима) выполнит дополнительный запрос к базе для каждой строки списка. На журнале из нескольких тысяч документов это превращается в тысячи лишних запросов и заметное «подвисание» интерфейса.
Также избегайте в обработчике обращений к табличным частям, запросов и вызовов функций общих модулей, которые сами ходят в базу. Обработчик должен работать только с данными, переданными в параметре Данные. Если бизнес-логика требует сложных вычислений, лучше хранить готовую строку в отдельном реквизите документа и обновлять её при записи.
Как проверить результат
В списке видна новая строка представления, список открывается быстро
Старое представление или заметная задержка при прокрутке списка
При выборе документа в поле отображается новое представление
В поле ввода старый формат — проверьте, что изменён именно нужный вид документа
Ссылки на документ в отчётах показывают новый формат
В отчётах старый формат — возможно, в СКД представление задано явно в настройках поля
Изменение представления через расширение конфигурации
Для типовых конфигураций (1С:Бухгалтерия, 1С:Управление торговлей, ERP) правильный путь — расширение. В расширении добавьте нужный документ в заимствованные объекты, затем в его модуле менеджера напишите обработчик с аннотацией &После("ОбработкаПолученияПредставления") или &Вместо, если в типовой модуле такой обработчик уже есть.
&Вместо("ОбработкаПолученияПредставления")
Процедура Расш1_ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Представление = СтрШаблон("%1 №%2 от %3 — %4",
"Счёт на оплату", Данные.Номер,
Формат(Данные.Дата, "ДЛФ=D"), Данные.Контрагент);
КонецПроцедуры
Поля представления в расширении тоже можно дополнить — заимствованный объект позволяет изменить это свойство. Убедитесь, что все реквизиты из вашего обработчика добавлены в список полей представления, иначе получите лишние запросы или пустые значения.
После сохранения расширения перезапустите сеанс и проверьте журнал документов, поля ввода и отчёты. Если представление не изменилось — проверьте, что расширение подключено (в меню «Все функции — Стандартные — Управление расширениями конфигурации» оно должно быть активно и без ошибок).
Сравнение способов
Подходит для переименования вида документа в интерфейсе. Не меняет формат строки с номером и датой.
Простая форматная строка с реквизитами без кода. Нет условной логики и обращения к табличным частям.
Полная гибкость, любая логика. Требует настройки полей представления и внимания к производительности.
Строка формируется при записи документа и хранится в базе. Быстро при отображении, но требует обновления при изменении связанных данных.
Типичные ошибки и ограничения
Первая ошибка — забыть СтандартнаяОбработка = Ложь. Без этого присвоения платформа игнорирует сформированную строку и показывает стандартное представление. Вторая — не добавить реквизиты в «Поля представления»: данные в обработчике оказываются пустыми, и в строке выводятся пустые значения вместо контрагента или суммы.
Третья ошибка — тяжёлый код в обработчике. Запросы, обходы табличных частей, вызовы серверных функций внутри ОбработкаПолученияПредставления выполняются для каждой отображаемой строки списка. На больших базах это критично: журнал документов начинает открываться секундами.
Также помните об ограничениях: представление не влияет на поиск документа по номеру в журнале (поиск идёт по реквизитам), не меняет нумерацию и не сохраняется в базе. Если нужно, чтобы «красивое название» документа можно было найти через поиск, используйте отдельный индексируемый реквизит.
Часто задаваемые вопросы
Можно ли изменить представление документа без изменения конфигурации?
Полноценно — нет: представление формируется метаданными и кодом. Максимум, что доступно пользователю без конфигуратора, — настройка колонок журнала документов (добавить колонки «Контрагент», «Сумма» и др.), что визуально решает часть задач. Для изменения самой строки представления нужен конфигуратор или расширение.
Почему после изменения обработчика в журнале всё осталось по-старому?
Проверьте три вещи: установлено ли СтандартнаяОбработка = Ложь, обновлена ли конфигурация базы данных (F7) и перезапущен ли сеанс 1С:Предприятия. Если изменения внесены через расширение — убедитесь, что расширение активно и применено без ошибок.
Как вывести в представление данные табличной части, например первую номенклатуру?
Напрямую в обработчике это делать не рекомендуется — потребуется запрос к табличной части для каждой строки списка, что критично для производительности. Правильное решение: добавить в шапку документа реквизит (например, «ОсновнаяНоменклатура»), заполнять его при записи и использовать в полях представления.
Влияет ли изменение представления на печатные формы?
Нет. Печатные формы формируются макетами и собственными запросами, они не используют представление ссылки. Если в печатной форме нужен другой заголовок документа — правьте макет или модуль формирования печатной формы отдельно.
Можно ли задать разные представления для разных пользователей?
Штатного механизма нет, но в обработчике ОбработкаПолученияПредставления можно программно проверить текущего пользователя или его роль и сформировать разные строки. Такой подход усложняет поддержку и диагностику, поэтому применять его стоит только при реальной необходимости.
Что делать, если представление нужно искать через поиск в журнале?
Представление не участвует в поиске — поиск работает по реквизитам динамического списка. Добавьте нужные реквизиты (контрагент, комментарий, сумма) в колонки журнала и используйте строку поиска по ним. Для составного «имени» документа создайте отдельный строковый реквизит с индексированием.
Что важно запомнить
Представление документа вычисляется платформой на лету и не хранится в базе. Для переименования вида документа меняйте синоним, для простой подстановки реквизитов — расширенное представление объекта, для сложной логики — обработчик ОбработкаПолученияПредставления с обязательной настройкой полей представления. Типовые конфигурации дорабатывайте только через расширение, а обработчик держите лёгким, без запросов к базе.