Разработка и Конфигурация · 12 мин
Как получить наименование документа в 1С
Как получить наименование документа в 1С: через интерфейс, запросом и программно на встроенном языке. Примеры кода, типичные ошибки и проверка результата.
Наименование документа в 1С — это строковое представление объекта, которое пользователь видит в списках, отчётах и печатных формах. Обычно оно складывается из синонима вида документа, номера и даты, например «Реализация товаров и услуг 0000-000123 от 15.03.2026». Получить это наименование можно несколькими способами: через интерфейс, встроенными средствами платформы, запросом или программно на встроенном языке.
Выбор способа зависит от задачи. Бухгалтеру, которому нужно назвать документ в письме или акте сверки, достаточно интерфейса. Разработчику, формирующему печатную форму или обмен данными, потребуется программное получение представления. Ниже разобраны все рабочие варианты с примерами кода и ограничениями.
Важно понимать разницу между «наименованием» и другими реквизитами. У документов в 1С, в отличие от справочников, нет стандартного реквизита «Наименование» — есть номер, дата и автоматически формируемое представление. Путаница между этими понятиями — частая причина ошибок в запросах и коде.
Что такое наименование документа в 1С и чем оно отличается от номера
В платформе 1С:Предприятие у каждого документа есть системные реквизиты: ссылка (уникальный идентификатор), номер, дата, признак проведения. Реквизита «Наименование», как у справочников, у документов нет. То, что пользователи называют наименованием, — это представление объекта, которое платформа формирует автоматически.
По умолчанию представление документа строится по шаблону: синоним вида документа + номер + «от» + дата. Например, «Поступление товаров и услуг 0000-000045 от 02.03.2026 12:30:15». Разработчик конфигурации может переопределить это представление в модуле менеджера документа через обработчик ОбработкаПолученияПредставления, поэтому в разных конфигурациях формат может отличаться.
Номер документа — это лишь часть наименования. Если задача — получить именно номер (например, для сверки с первичными документами контрагента), нужно обращаться к реквизиту Номер, а не к представлению. Если нужна полная человекочитаемая строка — используется представление.
Как узнать наименование документа через интерфейс
Самый простой способ — открыть список документов нужного вида. В журнале документов платформа показывает представление в колонках «Номер», «Дата» и типе документа. Полная строка вида «Реализация товаров и услуг 0000-000123 от 15.03.2026» отображается в заголовке формы открытого документа и в строке навигации.
Чтобы скопировать наименование, откройте документ и посмотрите на заголовок окна или на поле в верхней части формы. В управляемых формах типовых конфигураций представление часто выводится в поле, из которого текст можно выделить и скопировать через контекстное меню или сочетание клавиш.
Ещё один способ — использовать функцию «Получить ссылку» (кнопка в командной панели формы или пункт меню «Ещё»). Открывшееся окно показывает навигационную ссылку вида e1cib/data/Документ.РеализацияТоваровУслуг?ref=.... Это не наименование, но по виду документа в ссылке можно понять его тип, а саму ссылку — передать коллеге для быстрого открытия.
- 1Откройте журнал документов нужного вида
- 2Откройте нужный документ двойным щелчком
- 3Посмотрите заголовок формы — там полное представление
- 4Выделите текст представления в поле формы и скопируйте (Ctrl+C)
- 5Проверьте, что скопированы номер и дата без искажений
Как получить наименование программно на встроенном языке
В коде на встроенном языке представление документа получается неявным преобразованием ссылки к строке или явным вызовом функции Строка(). Это самый распространённый способ при формировании сообщений, протоколов обмена и произвольных надписей.
ДокументСсылка = Документы.РеализацияТоваровУслуг.НайтиПоНомеру("0000-000123", ТекущаяДатаСеанса());
НаименованиеДокумента = Строка(ДокументСсылка);
// Результат: "Реализация товаров и услуг 0000-000123 от 15.03.2026 12:30:15"
Для объекта документа (полученного через ПолучитьОбъект()) существует метод ПолучитьПредставление(), но на практике чаще используют Строка(Ссылка) — он не требует получения объекта и работает быстрее, поскольку не считывает все данные документа из базы.
Если нужно собрать наименование в собственном формате — например, без времени или с префиксом организации — формируйте строку вручную из реквизитов:
Наименование = "Реализация № " + СокрЛП(ДокументСсылка.Номер)
+ " от " + Формат(ДокументСсылка.Дата, "ДЛФ=D");
Наименование = Строка(ДокументСсылка); // представление документа целикомОбращение к реквизитам через точку (ДокументСсылка.Номер) выполняет обращение к базе данных. Если таких обращений много в цикле, лучше получить данные одним запросом — это существенно быстрее на больших объёмах.
Как получить наименование документа в запросе
В языке запросов 1С есть оператор ПРЕДСТАВЛЕНИЕ(), который возвращает строковое представление ссылки. Это удобно, когда наименование нужно вывести в отчёте или выборке без дополнительной обработки в коде.
ВЫБРАТЬ
ПРЕДСТАВЛЕНИЕ(РеализацияТоваровУслуг.Ссылка) КАК НаименованиеДокумента,
РеализацияТоваровУслуг.Номер,
РеализацияТоваровУслуг.Дата
ИЗ
Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
ГДЕ
РеализацияТоваровУслуг.Проведен
У оператора ПРЕДСТАВЛЕНИЕ() есть ограничение: он формирует стандартное представление платформы и не учитывает переопределённое представление из обработчика ОбработкаПолученияПредставления. Если в конфигурации представление кастомизировано, результат запроса может отличаться от того, что видит пользователь в интерфейсе.
Для отчётов на СКД (системе компоновки данных) часто достаточно просто вывести поле «Ссылка» — компоновка сама отобразит его представлением. Явно использовать ПРЕДСТАВЛЕНИЕ() стоит, когда результат запроса передаётся в таблицу значений для дальнейшей обработки или выгрузки.
Как получить наименование по ссылке извне: COM, веб-сервисы, расширения
При интеграции с внешними системами документ часто идентифицируется по GUID ссылки. Чтобы получить его наименование внутри 1С, сначала формируется ссылка из строки идентификатора, затем — представление:
УникальныйИдентификатор = Новый УникальныйИдентификатор(СтрокаGUID);
ДокументСсылка = Документы.РеализацияТоваровУслуг.ПолучитьСсылку(УникальныйИдентификатор);
Если ДокументСсылка.ПолучитьОбъект() <> Неопределено Тогда
Наименование = Строка(ДокументСсылка);
Иначе
Наименование = "Документ не найден";
КонецЕсли;
Проверка существования документа обязательна: ПолучитьСсылку() вернёт ссылку даже для несуществующего объекта, и Строка() от такой «битой» ссылки даст строку вида «<Объект не найден> (123:abc...)». Перед использованием наименования убедитесь, что объект реально существует в базе.
При обмене через планы обмена или универсальные форматы (EnterpriseData) наименование документа обычно передаётся как строка в отдельном поле. Не полагайтесь на то, что представление совпадёт в двух базах: нумерация и синонимы могут различаться. Для сопоставления объектов используйте GUID, а наименование — только для отображения пользователю.
Как изменить или задать собственное наименование документа
Стандартное представление можно переопределить в модуле менеджера документа. Для этого создаётся обработчик события ОбработкаПолученияПредставления, в котором формируется произвольная строка:
Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Представление = "Реализация № " + СокрЛП(Данные.Номер)
+ " от " + Формат(Данные.Дата, "ДЛФ=D");
КонецПроцедуры
Такая доработка влияет на всю систему: списки, отчёты, подборы. Перед изменением оцените последствия — пользователи привыкают к формату, а внешние обработки могут разбирать представление строковыми функциями. В типовых конфигурациях доработку лучше выполнять через расширение, чтобы не усложнять обновление.
Если нужно не изменить представление, а хранить у документа отдельное «наименование» (например, краткое описание для внутреннего учёта), добавьте к документу дополнительный реквизит или используйте механизм дополнительных реквизитов и сведений, доступный в типовых конфигурациях без доработки.
Способы получения наименования
Быстро и просто; учитывает переопределённое представление. Не подходит для пакетной обработки тысяч документов из-за обращений к базе.
Эффективно для выборок и отчётов. Возвращает стандартное представление, игнорирует обработчик переопределения.
Подходит для разового ручного получения без программирования. Не масштабируется.
Полный контроль над форматом. Требует поддержки формата при изменении требований.
Типичные ошибки и как их проверить
Самая частая ошибка — попытка обратиться к реквизиту «Наименование» у документа, как у справочника. Запрос Документ.РеализацияТоваровУслуг.Наименование завершится ошибкой, потому что такого поля не существует. Для документов используются Номер, Дата и представление ссылки.
Вторая распространённая проблема — обращения к базе в цикле. Конструкция вида Строка(СтрокаТаблицы.Ссылка) внутри цикла по тысяче строк выполняет обращение к данным при каждом обращении к реквизитам ссылки. Правильный подход — один запрос с ПРЕДСТАВЛЕНИЕ() или выборкой нужных полей.
Чтобы проверить корректность полученного наименования, сравните его с тем, что отображается в заголовке формы документа. Совпадение номера и даты — обязательный минимум; полное совпадение строки гарантирует, что используется то же представление, что видит пользователь.
Как проверить результат
Номер и дата в наименовании совпадают с формой
Номер или дата отличаются — получена другая ссылка
Строка содержит вид, номер и дату
Строка вида «<Объект не найден>» — ссылка битая
Один запрос с ПРЕДСТАВЛЕНИЕ() выполняется быстро
Цикл с обращениями к реквизитам работает заметно медленно
FAQ
Как получить только номер документа без вида и даты?
Обратитесь к реквизиту Номер: ДокументСсылка.Номер в коде или поле Номер в запросе. Номер хранится как строка, часто с лидирующими нулями и префиксом — для вывода без них используйте функции сокращения, но учтите, что полный номер нужен для точного поиска через НайтиПоНомеру().
Почему Строка(Ссылка) и ПРЕДСТАВЛЕНИЕ() в запросе дают разный результат?
Строка(Ссылка) вызывает механизм представления с учётом обработчика ОбработкаПолученияПредставления в конфигурации, а оператор ПРЕДСТАВЛЕНИЕ() формирует стандартное представление платформы на уровне запроса. Если представление переопределено, результаты будут различаться.
Можно ли найти документ по его наименованию?
Напрямую — нет, поиск по представлению не предусмотрен. Разбирать строку на части ненадёжно, так как формат может меняться. Правильный способ поиска — по номеру и дате (НайтиПоНомеру) или по уникальному идентификатору ссылки (ПолучитьСсылку).
Как вывести наименование документа в печатной форме?
В макете печатной формы выведите параметр, в который в коде присвоено Строка(Ссылка) или собранная вручную строка из номера и даты. Для типовых конфигураций в печатных формах обычно уже выводится номер и дата отдельными полями — при необходимости измените макет через механизм расширений.
Что делать, если в наименовании появляется «Объект не найден»?
Это признак битой ссылки: документ удалён или ссылка сформирована для несуществующего идентификатора. Проверьте существование объекта через запрос к таблице документа по ссылке. Если ссылка пришла из обмена — проверьте корректность сопоставления объектов между базами.
Можно ли изменить формат наименования без программирования?
Нет, представление документа задаётся платформой и кодом конфигурации; настройки формата в пользовательском режиме не предусмотрено. Для изменения формата нужен обработчик ОбработкаПолученияПредставления, в типовых решениях — через расширение конфигурации.
Что важно запомнить
У документов 1С нет реквизита «Наименование» — есть автоматическое представление из вида, номера и даты. Получайте его через Строка(Ссылка) в коде, ПРЕДСТАВЛЕНИЕ() в запросах или из заголовка формы в интерфейсе. Всегда проверяйте существование объекта и избегайте обращений к базе в циклах.