К статье
Практический материал

Разработка и Конфигурация · 10 мин

Что такое реквизит документа в 1С и как с ним работать

Реквизит документа в 1С: что это, зачем нужен, виды реквизитов, как добавить свой реквизит в конфигураторе и типичные ошибки при работе с ними.

Реквизит документа в 1С — это отдельное поле, в котором хранится конкретное значение: дата поставки, контрагент, номер счёта, ответственный менеджер, сумма скидки. Совокупность реквизитов и табличных частей образует структуру документа: именно реквизиты определяют, какую информацию пользователь вводит при оформлении накладной, счёта или приказа, и какие данные потом попадут в проводки, отчёты и печатные формы.

Без реквизитов документ был бы пустой оболочкой с номером и датой. Каждый реквизит имеет имя (идентификатор для обращения из кода), синоним (подпись, которую видит пользователь) и тип данных — строка, число, дата, булево или ссылка на другой объект: справочник «Контрагенты», перечисление, другой документ. От правильного выбора типа зависит, как будет работать проверка заполнения, поиск и отборы в списках.

Реквизиты встречаются в двух местах: в шапке документа (общие сведения, относящиеся ко всему документу целиком) и в табличных частях (строки товаров, услуг, сотрудников). Понимание этого деления — ключ к тому, чтобы грамотно читать конфигурацию, добавлять собственные поля и не ломать типовые механизмы учёта.

Зачем документу нужны реквизиты

Документ в 1С — это факт хозяйственной жизни: отгрузка, оплата, приём на работу. Реквизиты фиксируют параметры этого факта. Например, у «Реализации товаров и услуг» реквизит «Контрагент» указывает покупателя, «Договор» — условия расчётов, «Склад» — место отгрузки. Без этих полей программа не смогла бы сформировать проводки и движения по регистрам.

Вторая роль реквизитов — аналитика. По значениям реквизитов строятся отчёты и отборы: продажи по менеджеру, задолженность по договору, обороты по складу. Если разработчик не предусмотрел нужный реквизит, информация теряется: её приходится писать в комментарий, который невозможно нормально отфильтровать.

Третья роль — печать и обмен. Печатные формы (ТОРГ-12, счёт-фактура, УПД) берут данные из реквизитов документа. Электронный документооборот тоже опирается на них: при выгрузке в XML значения реквизитов сопоставляются с полями формата. Ошибка в реквизите означает ошибку в официальном документе.

Какие виды реквизитов существуют

Основное деление — по расположению. Реквизиты шапки относятся ко всему документу: номер, дата, организация, контрагент. Реквизиты табличной части повторяются в каждой строке: номенклатура, количество, цена, ставка НДС. У одного документа может быть несколько табличных частей — например, «Товары» и «Услуги», и у каждой свой набор реквизитов.

По типу данных реквизиты делятся на примитивные и ссылочные. Примитивные — строка, число, дата, булево. Ссылочные хранят ссылку на объект базы: элемент справочника, другой документ, значение перечисления. Ссылочный тип предпочтительнее, когда значение должно выбираться из списка: это исключает опечатки и обеспечивает целостность данных.

Есть и составные типы: реквизит может принимать значения нескольких типов, например «Документ-основание» со ссылкой на любой из нескольких видов документов. Составной тип удобен, но усложняет отчёты и запросы, поэтому применять его стоит осознанно.

Где посмотреть реквизиты документа

В пользовательском режиме реквизиты видны прямо на форме документа — это поля с подписями. Не все реквизиты выведены на форму: часть служебных полей скрыта. Полный состав виден в конфигураторе: откройте дерево конфигурации, найдите ветку «Документы», разверните нужный документ — узлы «Реквизиты» и «Табличные части» покажут весь список с типами.

В режиме «Предприятие» быстрый способ увидеть скрытые поля — команда «Ещё → Изменить форму»: там перечислены все реквизиты, доступные на форме, включая невидимые. Это помогает понять, существует ли нужное поле, прежде чем просить доработку.

Программно состав реквизитов получают через метаданные: Документы.РеализацияТоваровУслуг.ПустаяСсылка().Метаданные().Реквизиты вернёт коллекцию описаний. Это используют в универсальных обработках, например при выгрузке документов произвольного вида.

bsl
Для Каждого Реквизит Из Метаданные.Документы.РеализацияТоваровУслуг.Реквизиты Цикл
    Сообщить(Реквизит.Имя + " — " + Реквизит.Синоним);
КонецЦикла;

Как добавить собственный реквизит

Если конфигурация типовая и находится на поддержке, прямое изменение затруднит обновления. Есть два безопасных пути. Первый — механизм дополнительных реквизитов и сведений в режиме «Предприятие» (раздел «Администрирование → Общие настройки → Дополнительные реквизиты и сведения»). Поле добавляется без конфигуратора, доступно в отчётах и отборах, но его нельзя использовать в произвольном коде так же свободно, как обычный реквизит.

Второй путь — расширение конфигурации: в конфигураторе создаётся расширение, в него заимствуется документ, и к нему добавляется свой реквизит. Типовой объект не меняется, обновления проходят штатно. Это рекомендуемый способ для доработок, которым нужен полноценный реквизит с участием в запросах и проводках.

Прямое добавление реквизита в типовой документ — крайний вариант. При обновлении конфигурации такие изменения придётся сопоставлять вручную, а при ошибке сопоставления реквизит можно потерять вместе с данными.

Добавление реквизита через расширение
  1. 1
    Откройте конфигуратор и создайте новое расширение (Конфигурация → Расширения конфигурации)
  2. 2
    Заимствуйте нужный документ в расширение через контекстное меню
  3. 3
    Добавьте реквизит: укажите имя, синоним и тип данных
  4. 4
    Добавьте реквизит на форму документа в расширении
  5. 5
    Сохраните расширение и обновите конфигурацию базы данных (F7)
  6. 6
    Откройте документ в режиме «Предприятие» и проверьте, что поле доступно и сохраняется

Проверка заполнения и обязательные поля

У реквизита есть свойство «Проверка заполнения»: «Не проверять», «Выдавать ошибку», «Выдавать предупреждение». Если установлено «Выдавать ошибку», документ нельзя провести с пустым полем. Это основной способ гарантировать полноту данных — например, запретить проведение реализации без договора.

В типовых конфигурациях проверка часто реализована кодом в обработчике «ОбработкаПроверкиЗаполнения», а не свойством: там учитываются условия (договор обязателен только при определённой операции). Поэтому отсутствие звёздочки на форме не всегда значит, что поле необязательное — ошибка может появиться при проведении.

При добавлении собственного обязательного реквизита к документам, которые уже существуют в базе, учтите: старые документы останутся с пустым значением, и при перепроведении они начнут выдавать ошибки. Обычно для старых данных проверку смягчают условием по дате документа.

Типичные ошибки
01
Добавление реквизита напрямую в типовую конфигурацию — усложняет обновление, данные рискуют потеряться при сопоставлении
02
Строковый тип вместо ссылочного — пользователи вводят контрагента текстом, появляются дубли и опечатки, отчёты не сходятся
03
Слишком короткая строка (например, 25 символов для наименования) — значения молча обрезаются при записи
04
Обязательный реквизит без обработки старых документов — массовые ошибки при групповом перепроведении
05
Изменение имени реквизита без поиска обращений в коде — ошибки «Поле не обнаружено» в обработках и печатных формах

Реквизиты в проводках, отчётах и печати

При проведении документ формирует движения по регистрам, и источником данных служат реквизиты: шапочные обычно уходят в измерения (организация, контрагент, склад), табличные — в ресурсы и показатели (количество, сумма). Если нужный реквизит не передаётся в регистр, отчёт по нему построить нельзя — это исправляется только доработкой процедуры проведения.

В печатных формах реквизиты подставляются в макет по имени. Переименование реквизита ломает печатную форму: поле останется пустым или вызовет ошибку. Поэтому перед переименованием выполните поиск по имени реквизита по всей конфигурации, включая макеты и внешние обработки.

В запросах к реквизитам обращаются через точку: Документ.РеализацияТоваровУслуг.Контрагент. Реквизиты табличных частей доступны через обращение к табличной части: Документ.РеализацияТоваровУслуг.Товары.Номенклатура. Помните, что соединение с табличной частью умножает строки результата.

Контрольные точки

Как проверить результат после добавления реквизита

Сохранение значения
Норма

Значение введено, документ записан, после переоткрытия значение на месте

Тревожный признак

Поле очищается после записи — реквизит не добавлен в структуру или не выведен на форму корректно

Отбор в списке
Норма

По реквизиту доступен отбор и сортировка в журнале документов

Тревожный признак

Реквизита нет в списке полей отбора — проверьте индексирование и настройки формы списка

Печатная форма
Норма

Значение выводится в нужной ячейке макета

Тревожный признак

Пустая ячейка или ошибка — имя параметра в макете не совпадает с именем реквизита

Часто задаваемые вопросы

Чем реквизит отличается от свойства или дополнительного сведения?

Реквизит — часть структуры объекта, хранится в его таблице и доступен в запросах напрямую. Дополнительные реквизиты и сведения хранятся в отдельных таблицах и подключаются через стандартный механизм БСП: они удобны для некритичных полей, но медленнее в запросах и ограниченнее в использовании.

Можно ли удалить реквизит из типового документа?

Технически — да, в конфигураторе, но делать этого не следует: типовой код и обмены обращаются к реквизиту, удаление вызовет ошибки при проведении и обновлении. Если поле мешает, скройте его с формы через настройку формы.

Почему реквизит есть в конфигураторе, но не виден пользователю?

Реквизит не выведен на форму, скрыт настройками видимости или у пользователя нет прав на него (проверьте роли и функциональные опции). Также поле может быть скрыто условием в коде формы — например, показываться только при определённом виде операции.

Какой тип выбрать для реквизита «Комментарий»?

Строка неограниченной длины (длина 0) с многострочным режимом на форме. Ограниченная строка обрежет длинный текст, а хранить комментарий ссылкой на справочник бессмысленно — это свободный текст.

Влияет ли количество реквизитов на скорость работы?

Умеренное количество реквизитов влияет незначительно. Замедление дают составные типы с большим числом ссылок, отсутствие индексов на реквизитах, по которым часто идут отборы, и тяжёлые обработчики при изменении полей на форме.

Как найти все места, где используется реквизит?

В конфигураторе: правый клик по реквизиту в дереве конфигурации → «Поиск ссылок в объектах» покажет использование в метаданных, а глобальный поиск по имени (Ctrl+Shift+F) — обращения в модулях и макетах.

Итог

Что важно запомнить

Реквизит документа — это поле для хранения одного значения; реквизиты бывают шапочными и табличными, примитивными и ссылочными. Для доработок используйте дополнительные реквизиты или расширения, не меняйте типовые объекты напрямую, а перед изменением типа или имени реквизита с данными сделайте резервную копию и проверьте все места использования.