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