Разработка и Конфигурация · 9 мин
Как получить представление документа в 1С
Как получить представление документа в 1С: методы платформы, общие модули, примеры кода на встроенном языке, типичные ошибки и проверка результата.
Представление документа — это строка, которую пользователь видит в списках, ссылках и отчётах: обычно вид документа, номер и дата, например «Реализация товаров и услуг 00000-004521 от 12.03.2026». Разработчику эта строка нужна при формировании печатных форм, сообщений пользователю, журналов обмена и произвольных отчётов. Способ получения зависит от контекста: где выполняется код (клиент или сервер), какая конфигурация используется и требуется ли стандартное или произвольное представление.
В типовых конфигурациях на базе БСП (1С:Бухгалтерия, Управление торговлей, ERP) представления документов формируются через общие механизмы библиотеки, а в самописных решениях — напрямую методами платформы. Ниже разобраны основные варианты: от простого обращения к свойству объекта до программного формирования строки через функции общих модулей.
Что такое представление документа и откуда оно берётся
У каждого объекта метаданных в 1С есть свойство «Представление объекта» и «Расширенное представление объекта», которые задаются в конфигураторе на закладке «Представление». Если они не заполнены, платформа формирует представление автоматически: синоним вида документа, номер и дата. Именно эту строку пользователь видит в журнале документов и при выборе ссылки в полях ввода.
Важно различать представление ссылки и представление объекта. Для ссылки платформа читает минимальный набор данных из базы и кэширует результат — это быстро. Для объекта, загруженного в память, представление строится из текущих значений реквизитов, которые могут ещё не быть записаны. В обоих случаях результат выглядит одинаково, если данные не менялись.
Получение представления через методы платформы
Самый простой способ — преобразовать ссылку в строку функцией Строка() или оператором конкатенации. Платформа сама вызовет механизм получения представления и вернёт готовую строку:
ДокументСсылка = Документы.РеализацияТоваровУслуг.НайтиПоНомеру("00000-004521", ТекущаяДатаСеанса());
ПредставлениеДокумента = Строка(ДокументСсылка);
// Результат: "Реализация товаров и услуг 00000-004521 от 12.03.2026 10:15:00"
Тот же результат даёт неявное преобразование при конкатенации со строкой: "Оплата по документу " + ДокументСсылка. Этот приём удобен в сообщениях пользователю и текстах ошибок, но не позволяет управлять форматом — дата выводится полностью, включая время, что не всегда нужно.
Для объекта документа, открытого на редактирование, представление доступно так же через Строка(Объект). Учтите: если объект изменён, но не записан, представление отразит новые номер и дату, которые могут отличаться от данных в базе.
ПредставлениеДокумента = Строка(ДокументСсылка);Формирование представления вручную из реквизитов
Когда стандартный формат не подходит — например, нужно убрать время, префикс номера или добавить организацию — строку собирают вручную из реквизитов Номер и Дата. Для ссылки реквизиты читаются через точку, платформа выполнит неявный запрос:
НомерБезПрефикса = ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(ДокументСсылка.Номер, Истина, Истина);
ПредставлениеДокумента = СтрШаблон("Реализация № %1 от %2",
НомерБезПрефикса,
Формат(ДокументСсылка.Дата, "ДЛФ=D"));
Функция СтрШаблон предпочтительнее конкатенации: код читается легче и проще локализуется. Форматная строка ДЛФ=D выводит только дату без времени, ДЛФ=DD — дату прописью. Если реквизиты нужны массово для списка документов, читайте их запросом, а не через точку — обращение к реквизитам ссылки в цикле порождает отдельный запрос на каждую итерацию и заметно тормозит выполнение.
Представление документа в типовых конфигурациях (БСП)
В конфигурациях на библиотеке стандартных подсистем представления формируются централизованно. Для номеров без префиксов используется ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(), которая убирает префикс информационной базы и организации, а также ведущие нули при соответствующих параметрах. Именно эта функция применяется в печатных формах типовых решений.
Если в конфигурации переопределено представление через подписки на события или обработчики получения представления, стандартный вызов Строка() вернёт уже переопределённый вариант. Перед тем как собирать строку вручную, проверьте, нет ли в конфигурации готовой функции — дублирование логики приведёт к расхождению представлений в разных местах программы.
Представление в запросах и СКД
В запросе представление ссылки получают функцией языка запросов ПРЕДСТАВЛЕНИЕ(Документ) или ПРЕДСТАВЛЕНИЕССЫЛКИ(Документ). Первая возвращает представление с учётом переопределения в конфигурации, вторая — стандартное представление ссылки. На практике для документов результаты обычно совпадают:
ВЫБРАТЬ
ПРЕДСТАВЛЕНИЕ(РеализацияТоваровУслуг.Ссылка) КАК ДокументПредставление
ИЗ
Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
В схеме компоновки данных представление выводится автоматически для полей-ссылок, если поле добавлено в настройки отчёта. Если нужен нестандартный вид, добавьте вычисляемое поле или используйте ПРЕДСТАВЛЕНИЕ в запросе набора данных. Помните, что функция представления в запросе усложняет оптимизацию — на больших выборках выгоднее вывести ссылку, а представление получать при выводе результата.
Типичные ошибки при получении представления
Самая частая проблема — использование Строка() там, где нужен строго определённый формат. Стандартное представление включает время и зависит от настроек конфигуратора, поэтому в печатных формах и внешних обменах его применять нельзя — строка может измениться после обновления конфигурации.
Вторая ошибка — получение представления битой ссылки. Если документ удалён, а ссылка на него осталась в других объектах, представление примет вид «<Объект не найден> (…)». Перед выводом в отчёт или сообщение проверяйте ссылку на пустоту и существование объекта.
Как проверить результат
Содержит вид документа, номер и дату в ожидаемом формате
Присутствует «Объект не найден» или пустая строка
Совпадает с требуемым форматом (с префиксом или без)
Лишние нули или префикс там, где ожидался номер на печать
Представления получены одним запросом или из выборки
Каждая итерация обращается к базе через точку от ссылки
Часто задаваемые вопросы
Как получить представление документа без даты и времени?
Соберите строку вручную: возьмите синоним вида документа из метаданных (ДокументСсылка.Метаданные().Синоним) и номер, а дату либо опустите, либо отформатируйте через Формат(Дата, "ДЛФ=D"). Стандартное представление всегда содержит дату и время, переопределить это на уровне вызова Строка() нельзя.
Чем отличается ПРЕДСТАВЛЕНИЕ от ПРЕДСТАВЛЕНИЕССЫЛКИ в запросе?
ПРЕДСТАВЛЕНИЕ учитывает переопределение представления, заданное в конфигураторе для объекта метаданных, а ПРЕДСТАВЛЕНИЕССЫЛКИ всегда возвращает стандартную строку вида «Вид Номер от Дата». Для большинства документов результаты совпадают, разница проявляется при нестандартных настройках представления объекта.
Почему вместо представления выводится «Объект не найден»?
Ссылка указывает на удалённый или несуществующий объект — так называемая битая ссылка. Проверьте существование объекта запросом с условием по ссылке или функцией ОбщегоНазначения.СсылкаСуществует() в типовых конфигурациях, и только потом выводите представление.
Как получить номер документа без префикса и лидирующих нулей?
В типовых конфигурациях используйте ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(Номер, Истина, Истина) — второй параметр убирает префикс информационной базы, третий удаляет лидирующие нули. В самописной конфигурации обрежьте префикс вручную через строковые функции.
Можно ли изменить стандартное представление документа для всех пользователей?
Да, в конфигураторе у объекта метаданных есть свойства «Представление объекта» и «Расширенное представление объекта», а также обработчики получения представления. Изменение потребует доработки конфигурации, поэтому для типовых решений безопаснее формировать нужную строку в конкретном месте вывода, не меняя глобальное поведение.
Что быстрее: Строка(Ссылка) или чтение реквизитов запросом?
Для одиночного документа разница незаметна — оба способа обращаются к базе. Для списка документов быстрее один запрос с выборкой Номер и Дата по всем ссылкам с последующей сборкой строки, чем вызов Строка() или чтение реквизитов по каждой ссылке отдельно.
Что важно запомнить
Для быстрого вывода используйте Строка(ДокументСсылка), для строгого формата собирайте строку из Номер и Дата через СтрШаблон и Формат, в типовых конфигурациях применяйте функции БСП. В циклах получайте данные запросом, а битые ссылки проверяйте до вывода представления.