Документы и Печать · 11 мин
Как указать тип документа в 1С
Как указать тип документа в 1С: при создании, в запросах, в макетах и конфигураторе. Разбор для 1С:Предприятие 8.3 с примерами кода и типичными ошибками.
Вопрос «как указать тип документа» в 1С возникает в нескольких разных ситуациях: при создании нового документа в пользовательском режиме, при выборе вида документа в журнале, при написании запроса или обработки, а также при добавлении нового объекта метаданных в конфигураторе. В каждом случае действия отличаются, и путаница между ними — частая причина ошибок у начинающих пользователей и разработчиков.
Важно понимать терминологию. В 1С «тип документа» обычно означает вид объекта метаданных — например, «Реализация товаров и услуг», «Поступление товаров и услуг», «Счет-фактура выданный». Это не реквизит внутри документа, а сам класс документа, определяющий его структуру, движения по регистрам и печатные формы. Ниже разобраны все основные сценарии: от простого выбора вида при вводе до программного указания типа в коде.
Как выбрать вид документа при создании в пользовательском режиме
Самый частый сценарий — пользователю нужно создать документ определённого вида. В типовых конфигурациях (1С:Бухгалтерия, Управление торговлей, ERP) документы сгруппированы по разделам меню: «Покупки», «Продажи», «Склад», «Банк и касса» и т.д. Чтобы указать нужный тип, откройте соответствующий раздел и выберите конкретный вид документа из списка — например, «Поступление (акты, накладные, УПД)».
После открытия списка документов нажмите кнопку «Создать». В некоторых журналах кнопка «Создать» имеет выпадающее меню со стрелкой — там перечислены все виды документов, которые можно ввести в данном журнале. Например, в журнале «Документы поступления» может быть доступен выбор между «Поступление товаров и услуг» и «Поступление услуг и прочих активов».
Если нужного вида нет в меню, проверьте функциональность программы: в типовых решениях часть документов скрыта, пока не включена соответствующая опция. В 1С:Бухгалтерии это «Администрирование — Функциональность», в УТ и ERP — «НСИ и администрирование — Настройка НСИ и разделов». После включения опции вид документа появится в интерфейсе.
- 1Откройте раздел меню, соответствующий хозяйственной операции (Покупки, Продажи, Склад)
- 2Выберите в списке нужный вид документа или откройте журнал
- 3Нажмите «Создать» — если есть стрелка рядом, выберите вид из выпадающего списка
- 4Если вида нет — проверьте настройки функциональности в разделе администрирования
- 5Заполните документ и проведите его
Как указать тип документа в журнале и в поле ввода
Многие журналы в 1С отображают документы нескольких видов одновременно — например, общий журнал «Складские документы». В таком журнале колонка «Вид» или «Тип» показывает, к какому виду относится каждая строка. Если колонки не видно, её можно добавить через «Ещё — Изменить форму» (в управляемых формах) или через настройку списка.
Отдельная ситуация — поле ввода, где нужно указать документ-основание или документ расчётов. Если поле допускает несколько типов, при нажатии кнопки выбора система предложит список доступных видов документов. Сначала выберите вид, затем конкретный документ из списка. Если вид известен заранее, можно начать вводить номер документа прямо в поле — подсказка сработает по всем допустимым типам.
Когда поле не даёт выбрать нужный вид, причина почти всегда в составе типа реквизита: разработчик ограничил список допустимых видов документов. Пользователь это ограничение обойти не может — потребуется доработка конфигурации или выбор другого, подходящего по смыслу документа.
Как указать тип документа в коде и запросах
Во встроенном языке 1С тип документа указывается через коллекцию менеджеров Документы. Чтобы создать документ программно, используется конструкция вида:
НовыйДок = Документы.РеализацияТоваровУслуг.СоздатьДокумент();
НовыйДок.Дата = ТекущаяДатаСеанса();
НовыйДок.Записать(РежимЗаписиДокумента.Проведение);
Здесь «РеализацияТоваровУслуг» — это имя вида документа, заданное в конфигураторе (не синоним, а именно имя). Если имя указано с ошибкой, код завершится исключением. Узнать точное имя можно в конфигураторе, открыв свойства объекта в ветке «Документы».
В запросах вид документа указывается как таблица: Документ.РеализацияТоваровУслуг. Если нужно отобрать ссылки нескольких видов, применяется объединение или проверка типа через ТИПЗНАЧЕНИЯ() и функцию ТИП():
ВЫБРАТЬ
Расчеты.ДокументРасчетов КАК Документ
ИЗ
РегистрНакопления.РасчетыСКлиентами КАК Расчеты
ГДЕ
ТИПЗНАЧЕНИЯ(Расчеты.ДокументРасчетов) = ТИП(Документ.ЗаказКлиента)
// Проверка типа ссылки в коде
Если ТипЗнч(Ссылка) = Тип("ДокументСсылка.РеализацияТоваровУслуг") Тогда
// действия для конкретного вида
КонецЕсли;Как определить и сравнить тип документа программно
Когда обработка работает с документами разных видов, требуется определить тип конкретной ссылки. Для этого используется функция ТипЗнч() в паре с Тип(). Имя типа строится по шаблону «ДокументСсылка.ИмяДокумента» для ссылок и «ДокументОбъект.ИмяДокумента» для объектов.
Альтернативный способ — через метаданные: Ссылка.Метаданные().Имя вернёт имя вида документа строкой. Это удобно, когда нужно вывести пользователю понятное обозначение или построить универсальную обработку без жёсткой привязки к конкретным видам.
Частая ошибка — сравнение типов через строковое представление ссылки. Строковое представление зависит от представления объекта (номер, дата) и не подходит для проверки типа. Используйте только ТипЗнч() или метаданные.
Как добавить новый вид документа в конфигураторе
Если требуется не выбрать существующий вид, а создать новый тип документа, это делается в конфигураторе. Откройте конфигурацию (Конфигурация — Открыть конфигурацию), найдите в дереве объектов ветку «Документы», щёлкните по ней правой кнопкой и выберите «Добавить».
В палитре свойств задайте имя (латиницей, без пробелов — именно оно используется в коде), синоним (отображается пользователям) и представление объекта. Затем настройте движения по регистрам, нумерацию, длину номера, реквизиты и табличные части. После сохранения конфигурации потребуется обновить конфигурацию базы данных (F7 или Конфигурация — Обновить конфигурацию базы данных).
Если конфигурация типовая и находится на поддержке, безопаснее добавить документ через расширение конфигурации: так основная конфигурация останется неизменной, а обновления будут устанавливаться штатно. В расширении можно создавать собственные документы, начиная с актуальных версий платформы 8.3.
Как указать вид документа при вводе на основании и в подчинённых структурах
Механизм «ввод на основании» позволяет создать документ одного вида на основе другого: например, «Реализацию товаров и услуг» на основании «Заказа клиента». Для этого откройте документ-основание и нажмите кнопку «Создать на основании» — система покажет список видов документов, для которых настроен ввод на основании. Выбор пункта из списка и есть указание типа создаваемого документа.
Если нужный вид отсутствует в списке «Создать на основании», значит, для пары документов не настроена связь. В типовых конфигурациях набор таких связей предопределён; добавить новую можно только доработкой — через процедуру заполнения в модуле объекта и настройку критерия отбора или команды ввода на основании.
Проверить результат ввода на основании просто: в созданном документе должно быть заполнено поле-основание, а в структуре подчинённости (кнопка «Связанные документы» или отчёт «Структура подчинённости») документы должны отображаться как связанная цепочка.
Как проверить результат
Отображается в списке своего вида, корректная колонка «Вид» в общем журнале
Документ не виден в ожидаемом журнале или отображается с другим видом
Документ записан, найден по Документы.ИмяВида.НайтиПоНомеру()
Ошибка при обращении к менеджеру — проверьте имя вида в конфигураторе
Поле-основание заполнено, документ виден в структуре подчинённости
Основание пустое, связь в структуре подчинённости отсутствует
Ограничения и альтернативные подходы
Не всегда нужен отдельный вид документа. Если различие между документами небольшое — например, разные хозяйственные операции внутри одного процесса, — в типовых конфигурациях это решается реквизитом «Вид операции» внутри одного вида документа. Такой подход упрощает отчёты и нумерацию, а поведение документа меняется в зависимости от выбранной операции.
Выбор между отдельным видом документа и видом операции зависит от различий в структуре: если наборы реквизитов, движения по регистрам и печатные формы существенно различаются — оправдан отдельный вид. Если отличается только логика проведения или пара реквизитов — достаточно вида операции.
Отдельный вид документа или вид операции
Подходит при разной структуре, движениях и печатных формах; требует доработки конфигурации и усложняет обновление типовых решений
Подходит при схожей структуре; проще в сопровождении, единая нумерация и журналы, но ограниченная гибкость интерфейса
Позволяет добавить вид документа без снятия типовой конфигурации с поддержки; ограничения — не все возможности доступны в расширениях
Ещё одно ограничение: права доступа. Если пользователь не видит нужный вид документа даже при включённой функциональности, проверьте роли и профили групп доступа — возможно, на объект не выданы права «Добавление» и «Просмотр».
Часто задаваемые вопросы
Можно ли изменить вид уже созданного документа?
Нет, штатными средствами вид существующего документа изменить нельзя — ссылка жёстко привязана к типу. Нужно создать документ правильного вида (удобно через ввод на основании), перенести данные, а ошибочный документ пометить на удаление или распровести.
Почему в коде возникает ошибка «Поле объекта не обнаружено» при обращении к документу?
Чаще всего указано неверное имя вида документа — используется синоним или имя с опечаткой. Откройте конфигуратор, найдите документ в ветке «Документы» и скопируйте точное значение свойства «Имя».
Как узнать вид документа по ссылке, не открывая его?
Наведите курсор на ссылку в списке — тип отображается в расширенной подсказке. Программно вид определяется через ТипЗнч(Ссылка) или Ссылка.Метаданные().Имя. В общих журналах добавьте колонку с видом документа через настройку формы списка.
Можно ли добавить новый вид документа без конфигуратора?
Нет. Виды документов — это объекты метаданных, они создаются только в конфигураторе или через расширение. В пользовательском режиме можно лишь включать и отключать видимость существующих видов через настройки функциональности.
Почему в журнале документов пропал нужный вид после обновления?
Возможные причины: сбросились настройки функциональности, изменился состав журнала в обновлённой конфигурации или у пользователя изменились права. Проверьте функциональность, затем права, затем состав журнала в конфигураторе.
Чем отличается тип документа от вида операции?
Тип (вид) документа — это отдельный объект метаданных со своей таблицей в базе данных. Вид операции — реквизит внутри одного документа, влияющий на его поведение. Первый вариант гибче, второй — проще в сопровождении.
Что важно запомнить
Тип документа в 1С — это вид объекта метаданных. В пользовательском режиме он выбирается при создании через журнал или кнопку «Создать», в коде — через Документы.ИмяВида, в запросах — через таблицу Документ.ИмяВида. Новые виды создаются только в конфигураторе или расширении, всегда после резервного копирования. Перед доработкой оцените, не решит ли задачу вид операции внутри существующего документа.