Документы и Печать · 9 мин
Как определить, что это за документ в 1С
Как определить вид документа 1С по номеру, реквизитам и коду. Способы через конфигуратор, встроенный язык и стандартные средства. Пошаговые инструкции и FAQ.
В системе 1С:Предприятие документ — это основной объект учёта: каждая хозяйственная операция (продажа, оплата, приём на работу, перемещение товара) оформляется своим видом документа. Когда вы видите в списке запись «Реализация товаров и услуг 0000-001234» или получаете ссылку из внешней системы, первый практический вопрос — как определить, что это за документ, к какому виду он относится и что означают его реквизиты.
Способ определения зависит от ситуации: иногда достаточно посмотреть на форму документа в пользовательском режиме, иногда нужно разобрать уникальный идентификатор (GUID) или строковое представление ссылки, а разработчику — программно получить метаданные объекта. Ниже разобраны все основные сценарии: от визуальной идентификации до кода на встроенном языке.
Что такое «вид документа» в 1С и где он задаётся
Каждый документ в базе принадлежит определённому виду, который задаётся в конфигураторе в ветке «Документы» дерева метаданных. Вид определяет структуру: какие реквизиты, табличные части и движения по регистрам будут у документа. Например, в типовой конфигурации «Управление торговлей» существуют виды «Заказ клиента», «Реализация товаров и услуг», «Приходный кассовый ордер» и десятки других.
В пользовательском режиме вид документа отображается прямо в заголовке формы: «Реализация товаров и услуг 0000-001234 от 15.03.2026». В журналах документов вид обычно показан в отдельной колонке «Вид документа» или «Тип». Если журнал общий (например, «Документы продажи»), именно эта колонка позволяет отличить заказ от накладной.
Как определить вид документа в пользовательском режиме
Самый простой случай — документ открыт перед вами или виден в списке. Здесь достаточно стандартных средств интерфейса, никаких специальных инструментов не требуется.
- 1Откройте документ или журнал, в котором он находится
- 2Посмотрите заголовок формы: он содержит вид, номер и дату
- 3В журнале включите колонку «Вид документа» через «Ещё — Изменить форму», если она скрыта
- 4Для уточнения откройте «Ещё — Показать техническую информацию» или используйте отчёт по движениям документа
- 5Сверьте вид с типовой структурой конфигурации в разделе меню, где документ создаётся
Если документ пришёл к вам как печатная форма или файл, вид определяют по содержимому: накладная по форме ТОРГ-12 соответствует «Реализации товаров и услуг», счёт-фактура — одноимённому документу, приказ о приёме на работу — кадровому документу «Приём на работу». Точное соответствие зависит от конфигурации, поэтому надёжнее найти документ в базе по номеру и дате через полнотекстовый поиск или журнал.
Как определить вид документа по ссылке и GUID
Каждый документ в базе имеет уникальный идентификатор — GUID из 36 символов, например «a1b2c3d4-1234-5678-90ab-cdef12345678». По одному GUID нельзя узнать вид документа: идентификатор уникален в пределах всей базы, но не содержит информации о типе. Поэтому при обмене с внешними системами всегда передают пару «вид документа + GUID».
Получить GUID ссылки можно программно или через специальные обработки (например, универсальные консоли кода, входящие в типовые инструменты разработчика). Зная GUID и вид, можно найти документ в другой базе, участвующей в обмене: метод Документы.РеализацияТоваровУслуг.ПолучитьСсылку(Новый УникальныйИдентификатор(СтрокаGUID)) вернёт ссылку на объект.
Программное определение вида документа на встроенном языке
Разработчику чаще всего нужно определить вид документа по ссылке, полученной из реквизита, запроса или параметра. Для этого используется метод Метаданные() объекта ссылки или функции работы с типами.
// Определяем вид документа по ссылке
ВидДокумента = ДокСсылка.Метаданные().Имя; // например, "РеализацияТоваровУслуг"
Синоним = ДокСсылка.Метаданные().Синоним; // "Реализация товаров и услуг"
// Проверяем, что значение вообще является документом
Если Документы.ТипВсеСсылки().СодержитТип(ТипЗнч(ДокСсылка)) Тогда
Сообщить("Это документ вида: " + ДокСсылка.Метаданные().Имя);
КонецЕсли;
// Сравнение с конкретным видом
Если ТипЗнч(ДокСсылка) = Тип("ДокументСсылка.ЗаказКлиента") Тогда
// обработка заказа
КонецЕсли;Функция ТипЗнч() возвращает тип значения, а конструкция Тип("ДокументСсылка.ИмяВида") позволяет сравнить его с конкретным видом. Для универсальных проверок удобны коллекции Документы.ТипВсеСсылки() и Метаданные.Документы: перебрав их, можно построить список всех существующих в конфигурации видов.
В запросах вид документа определяют через функцию ВЫРАЗИТЬ(... КАК Документ.ИмяВида) или через таблицу документа: если поле ссылается на несколько видов (составной тип), конкретный вид проверяют условием ГДЕ Ссылка ССЫЛКА Документ.ИмяВида.
Как определить документ по номеру, дате и префиксу
Номер документа в 1С уникален только в пределах вида документа и периода нумерации (обычно года). Это значит, что номер «0000-001234» может одновременно существовать у реализации, заказа и счёта-фактуры. Поэтому поиск документа только по номеру без указания вида — частая причина ошибок.
Префикс в номере (например, «ЦБ» в «ЦБ00-001234») обычно указывает на организацию или узел обмена, из которого документ пришёл, но не на вид документа. Чтобы найти документ по известным номеру и дате, используйте полнотекстовый поиск по базе или отбор в конкретном журнале документов.
Определение документа в конфигураторе и при отладке
В конфигураторе полный список видов документов виден в дереве конфигурации: ветка «Документы». Открыв конкретный вид, можно посмотреть его реквизиты, табличные части, движения и нумерацию. Это эталонное описание, с которым полезно сверяться, когда нужно понять, какие данные должен содержать документ.
При отладке вид документа виден в табло: если вычислить выражение ТипЗнч(Ссылка), отладчик покажет «ДокументСсылка.РеализацияТоваровУслуг». Через функциональную клавишу Shift+F9 (вычислить выражение) удобно проверять типы переменных прямо в процессе пошагового выполнения кода.
Как проверить результат
Заголовок формы и колонка журнала показывают один и тот же вид
Вид в заголовке отличается от ожидаемого — возможно, открыт не тот документ
Метаданные().Имя возвращает имя вида без ошибок
Ошибка «Поле объекта не обнаружено» — переменная не является ссылкой на документ
ПолучитьСсылку вернула объект, и он существует (не битая ссылка)
Ссылка получена, но Пустая() или объект не найден — документа нет в этой базе
Ограничения и риски при работе со ссылками
Операции определения вида документа безопасны — это чтение метаданных, которое не меняет данные. Осторожность нужна при смежных действиях: попытка записать или удалить документ по найденной ссылке, массовый перебор ссылок в цикле (нагрузка на сервер), обращение к реквизитам «битых» ссылок (объект удалён, а ссылка осталась).
Для программных операций с документами в рабочей базе требуются соответствующие права. Выполнение произвольного кода через внешние обработки доступно пользователям с правами администратора или разработчика — не запускайте непроверенные обработки в рабочей базе, сначала проверяйте на копии.
Часто задаваемые вопросы
Можно ли по номеру документа узнать его вид?
Напрямую — нет. Номер уникален только внутри вида и периода нумерации, поэтому один и тот же номер может быть у документов разных видов. Найти нужный объект поможет полнотекстовый поиск по базе или последовательный просмотр журналов с отбором по номеру и дате.
Что такое «битая ссылка» и как её распознать?
Это ссылка на удалённый объект: в реквизите отображается что-то вроде «<Объект не найден> (123:...)». Программно проверяется через запрос к полю ссылки — если объект удалён, запрос вернёт NULL, либо через Ссылка.ПолучитьОбъект() с проверкой на Неопределено.
Как узнать вид документа, если есть только печатная форма?
По типу формы: ТОРГ-12 — реализация, счёт-фактура — одноимённый документ, кассовый ордер — ПКО или РКО. Точный вид зависит от конфигурации, поэтому надёжнее найти документ в базе по номеру и дате, указанным на печатной форме.
Чем отличаются имя и синоним вида документа?
Имя — это идентификатор в метаданных (латиницей, без пробелов, например «РеализацияТоваровУслуг»), который используется в коде и запросах. Синоним — представление для пользователя («Реализация товаров и услуг»), отображается в интерфейсе. В программном коде всегда используется имя.
Как получить список всех видов документов в конфигурации?
В конфигураторе — ветка «Документы» дерева конфигурации. Программно — перебор коллекции Метаданные.Документы: у каждого элемента доступны Имя, Синоним и другие свойства. Так можно построить список видов для универсальных обработок и обменов.
Почему внешняя система не может найти документ по GUID?
GUID не содержит информации о виде документа, поэтому поиск по одному идентификатору требует перебора всех видов. Передавайте вместе с GUID имя вида документа — тогда поиск выполняется одним вызовом ПолучитьСсылку() у конкретного менеджера документа.
Что важно запомнить
Вид документа виден в заголовке формы и журнале; программно его определяют через Метаданные().Имя и ТипЗнч(). Номер документа не уникален между видами, а GUID не содержит типа — для надёжной идентификации всегда используйте пару «вид + идентификатор».