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

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

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

Реквизит объекта 1С — это поле, хранящее характеристику справочника или документа. Разбираем виды реквизитов, их настройку, типичные ошибки и приёмы работы.

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

Реквизиты есть практически у всех прикладных объектов: справочников, документов, планов видов характеристик, планов счетов, задач, бизнес-процессов. У каждого объекта часть реквизитов стандартная — она создаётся платформой автоматически (код, наименование, дата, номер, ссылка), а часть добавляет разработчик конфигурации под потребности учёта. Например, у справочника «Номенклатура» типовая конфигурация добавляет реквизиты «Артикул», «Единица измерения», «Вид номенклатуры».

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

Как устроен реквизит: основные свойства

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

Второе важнейшее свойство — тип значения. Реквизит может хранить примитивные типы (строка, число, дата, булево), ссылки на другие объекты (справочники, документы, перечисления), а также составные типы, когда разрешено несколько видов значений одновременно. От типа зависит, как платформа будет хранить данные, проверять ввод и строить индексы.

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

Стандартные и добавленные реквизиты: в чём разница

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

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

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

Виды реквизитов по расположению: шапка, табличная часть, общие реквизиты

Обычные реквизиты объекта принято называть «реквизитами шапки» — они относятся ко всему объекту целиком. У документа «Поступление товаров» поставщик и склад — это характеристики документа в целом, поэтому они хранятся в шапке. Значение такого реквизита одно на весь объект.

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

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

Куда поместить новое поле

Реквизит шапки

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

Реквизит табличной части

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

Дополнительный реквизит

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

Общий реквизит

Подходит для сквозной характеристики множества объектов, например организации. Изменение состава затрагивает сразу много объектов, требует осторожности.

Как добавить реквизит в конфигураторе

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

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

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

Дополнительные реквизиты без изменения конфигурации

В типовых конфигурациях на платформе 1С:Предприятие 8.3 есть механизм «Дополнительные реквизиты и сведения». Он позволяет администратору добавить к объекту новое поле прямо в режиме предприятия, без конфигуратора и без снятия конфигурации с поддержки. Обычно механизм включается в разделе «Администрирование» в настройках общих параметров, после чего в карточках объектов появляется возможность добавлять поля.

Дополнительные реквизиты физически хранятся не в основной таблице объекта, а в отдельной табличной части или регистре сведений. Отсюда следствия: их видно в карточке объекта и в списках, можно выводить в отчёты через СКД, но обращение к ним в запросах и коде сложнее, чем к обычным реквизитам. В проведении документов они не участвуют автоматически — для учётной логики нужны доработки.

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

Маршрут решения

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

Поле нужно только для информации, отборов и печати справочных данныхИспользуйте механизм дополнительных реквизитов в режиме предприятия
Поле должно влиять на проведение, движения по регистрам или расчётыДобавляйте штатный реквизит через расширение конфигурации
Конфигурация снята с поддержки и активно дорабатываетсяДобавляйте реквизит напрямую в конфигураторе, фиксируя изменения для команды
Поле нужно многим объектам сразу и логика единаРассмотрите общий реквизит или подсистему с общей доработкой

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

Во встроенном языке к реквизиту объекта обращаются через точку: ДокументОбъект.Контрагент. Для ссылочных значений работает «разыменование»: Ссылка.Контрагент.ИНН — платформа неявно выполнит запрос к базе. Увлекаться разыменованием в циклах не стоит: каждое обращение через точку к реквизиту ссылки — это отдельное обращение к данным, что заметно замедляет обработку больших объёмов. Правильнее получать нужные поля одним запросом.

В языке запросов реквизиты указываются как поля таблицы объекта: ВЫБРАТЬ Реализация.Контрагент, Реализация.СуммаДокумента ИЗ Документ.РеализацияТоваровУслуг КАК Реализация. Реквизиты табличных частей доступны через обращение к табличной части как к отдельной таблице. Виртуальные поля и стандартные реквизиты (Ссылка, Дата, Номер, Проведён) доступны в запросах всегда.

В отчётах на СКД реквизиты объекта становятся доступными полями, если запрос набора данных их выбирает. Частая причина жалобы «в отчёте нет нужной колонки» — поле просто не выбрано в запросе набора данных или отключено в настройках варианта отчёта. Проверяйте сначала состав полей набора данных, затем настройки варианта, и только потом делайте вывод о необходимости доработки.

bsl
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Реализация.Ссылка КАК Ссылка,
| Реализация.Контрагент КАК Контрагент,
| Реализация.Товары.(
| Номенклатура КАК Номенклатура,
| Количество КАК Количество) КАК Товары
|ИЗ
| Документ.РеализацияТоваровУслуг КАК Реализация
|ГДЕ
| Реализация.Дата МЕЖДУ &НачалоПериода И &КонецПериода";

Типичные ошибки и ограничения при работе с реквизитами

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

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

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

Типичные ошибки
01
Составной тип без необходимости — усложняет запросы, хранение и ввод данных; задавайте точный тип.
02
Строка неограниченной длины там, где нужен поиск — индексирование и сравнение работают хуже; ограничивайте длину.
03
Добавление реквизита, но не добавление его на форму и в права — пользователи не видят поле или получают ошибки доступа.
04
Удаление реквизита без проверки обменов и печатных форм — ломается синхронизация и вывод документов.
05
Разыменование ссылок в цикле вместо одного запроса — резкое падение производительности на больших объёмах.
06
Изменение типа заполненного реквизита без проверки данных — потеря значений при реструктуризации.

Как проверить результат после изменений

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

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

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

Как проверить результат

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

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

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

Поле очищается после записи или недоступно для редактирования

Проверка заполнения
Норма

При пустом обязательном поле запись блокируется с понятным сообщением

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

Объект записывается с пустым обязательным реквизитом

Права доступа
Норма

Пользователь с типовой ролью видит и редактирует поле

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

Поле невидимо или недоступно у обычного пользователя

Отчёты и списки
Норма

Колонка выводится, отбор и сортировка по ней работают

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

Поле отсутствует в доступных полях или отбор выдаёт ошибку

Итог

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

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

Частые вопросы

Чем реквизит отличается от табличной части?

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

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

Да, в типовых конфигурациях через механизм «Дополнительные реквизиты и сведения» в режиме предприятия. Администратор включает механизм в настройках и добавляет поле прямо в карточке объекта. Такое поле подходит для справочной информации и отборов, но не участвует в проведении документов без доработки.

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

Добавление реквизита в объект не размещает его на форме автоматически. Откройте форму объекта в конфигураторе, добавьте реквизит в дерево реквизитов формы и перетащите его в структуру элементов. Также проверьте, что у пользователя есть права на просмотр этого реквизита.

Что будет со старыми данными при изменении типа реквизита?

При реструктуризации платформа пытается преобразовать существующие значения к новому типу. Совместимые изменения (увеличение длины строки) проходят без потерь, а несовместимые (смена ссылочного типа на число, сужение длины) могут обнулить или обрезать значения. Перед изменением проверяйте заполненность и состав данных на копии базы.

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

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

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

Дополнительный реквизит хранится непосредственно у объекта, отображается в его карточке как обычное поле и доступен в списках. Дополнительное сведение хранится в отдельном регистре сведений, показывается по ссылке из карточки и используется для редко нужной информации, которой не обязательно занимать место в основной форме.