Код, Наименование, Ссылка и другие поля, которые платформа создаёт за вас

· 10 мин

Содержание

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

Разработчику стандартные реквизиты нужны, чтобы правильно их использовать в коде и запросах и не дублировать своими полями. Пользователю и администратору — чтобы понимать, откуда в карточке берутся «Код» и «Наименование» и почему их нельзя просто убрать. Всё ниже относится к платформе 8.3 и одинаково работает в любой конфигурации: БП 3.0, ЗУП 3.1, УТ 11.

Что такое стандартные реквизиты и зачем их создаёт платформа

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

Без них платформа не умеет делать базовые вещи:

  • 🔗 Ссылка — уникальный идентификатор записи. Через него один объект ссылается на другой: документ на контрагента, строка на номенклатуру.
  • 🗑️ ПометкаУдаления — на этом флаге построено двухэтапное удаление: сначала пометка, потом обработка «Удаление помеченных объектов» с контролем ссылок.
  • 🔢 Код и Номер — человекочитаемый идентификатор, по нему ищут и вводят по строке.
  • 🕒 Дата документа — по ней документы встают в хронологию, по ней строится последовательность проведения.
  • 🔄 ВерсияДанных — строка, которая меняется при каждой записи. Её используют обмены и контроль конфликтов редактирования.

Состав стандартных реквизитов зависит от вида объекта и от его свойств. Включили иерархию у справочника — появился Родитель. Указали владельца — появился Владелец. Включили иерархию групп и элементов — появился ЭтоГруппа.

Стандартные и пользовательские реквизиты: чем отличаются

Пользовательские (их ещё называют просто реквизитами) разработчик добавляет сам на вкладке Данные окна объекта. Стандартные приходят «в комплекте».

ПризнакСтандартный реквизитПользовательский реквизит
Кто создаётПлатформа, автоматическиРазработчик в конфигураторе
Можно удалитьНет. Только косвенно: обнулить длину кода, выключить иерархиюДа
ИмяФиксированное (Код, Наименование, Дата)Любое уникальное
ТипЗадан платформой или выбирается из короткого спискаЛюбой допустимый тип
Что настраиваетсяСиноним, подсказка, проверка заполнения, формат, параметры выбораВсё, включая тип и индексирование
Доступ на записьЧасть только для чтения (Ссылка, Проведен, Предопределенный)Обычно чтение и запись

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

Если стандартное имя в интерфейсе не подходит, меняйте синоним, а не заводите параллельный реквизит. У справочника «Договоры» поле Наименование можно показать как «Номер и дата договора», и пользователь увидит именно эту надпись.

Где найти стандартные реквизиты в конфигураторе

Свои реквизиты видны в дереве конфигурации под объектом. Стандартных в дереве нет — они открываются отдельно.

Как открыть список

  1. Откройте конфигуратор и дерево конфигурации.
  2. Дважды щёлкните объект, например справочник Номенклатура, чтобы открыть окно редактирования объекта.
  3. Перейдите на вкладку Данные.
  4. Нажмите кнопку Стандартные реквизиты. Откроется список с именами вроде Код, Наименование, Родитель.
  5. Выделите строку и откройте палитру свойств (Alt+Enter), чтобы настроить конкретный реквизит.

Что можно поменять у стандартного реквизита

  • ✏️ Синоним — подпись поля в формах и отчётах.
  • 💬 Подсказка — текст всплывающей подсказки.
  • ✅ Проверка заполнения — Выдавать ошибку заставит пользователя заполнить поле перед записью. Так обычно делают с Наименованием.
  • 🎭 Формат и маска ввода — например, маска кода или формат даты.
  • 🎯 Параметры выбора и связи параметров выбора — для ссылочных стандартных реквизитов (Родитель, Владелец).

Что задаётся в свойствах самого объекта

Длина и тип кода, длина наименования, автонумерация, контроль уникальности, тип и длина номера документа, периодичность номера — это свойства объекта, а не реквизита. Их ищите на вкладках окна объекта (Нумерация у документа, Данные и Иерархия у справочника).

Если поставить длину кода или наименования справочника 0, соответствующий стандартный реквизит пропадёт из объекта. Код, который к нему обращался, сломается. Делайте так только в новом объекте, а не в работающей базе с готовыми отчётами и обработками.

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

Ниже — основной состав для объектов, с которыми работают чаще всего. Реквизиты в скобках появляются только при определённых настройках.

Справочник

РеквизитТипЧто хранит
СсылкаСправочникСсылкаИдентификатор элемента
КодСтрока или ЧислоКод элемента (если длина кода больше 0)
НаименованиеСтрокаНаименование (если длина больше 0)
ПометкаУдаленияБулевоПомечен ли на удаление
ПредопределенныйБулевоСоздан ли элемент как предопределённый в конфигурации
ИмяПредопределенныхДанныхСтрокаИмя предопределённого элемента
(Родитель)Ссылка на тот же справочникГруппа или вышестоящий элемент — при иерархии
(ЭтоГруппа)БулевоПризнак группы — при иерархии групп и элементов
(Владелец)Ссылка на владельцаЧей это элемент — если задан владелец
ВерсияДанныхСтрокаВерсия записи

Классический пример подчинения: справочник «Договоры контрагентов» подчинён «Контрагентам», поэтому у договора есть Владелец — ссылка на контрагента.

Документ

  • 📄 Ссылка, ПометкаУдаления, ВерсияДанных — как у справочника.
  • 🔢 Номер — строка или число, длина и периодичность уникальности задаются на вкладке Нумерация.
  • 📅 Дата — дата и время документа, всегда со временем.
  • ✔️ Проведен — признак проведения, только для чтения.

Регистры

  • 📊 Регистр сведений : Период (если регистр периодический); при подчинении регистратору — Регистратор, НомерСтроки, Активность.
  • 📦 Регистр накопления: Период, Регистратор, НомерСтроки, Активность, а у регистра остатков ещё ВидДвижения (Приход или Расход).
  • 🧾 Регистр бухгалтерии : кроме общих — Счет (или СчетДт/СчетКт при корреспонденции).

Табличная часть

У каждой табличной части есть НомерСтроки и Ссылка — ссылка на объект-владелец. В запросе к Документ.РеализацияТоваровУслуг.Товары поле Ссылка даёт сам документ, а не строку.

Другие объекты

  • 🗂️ План счетов : Код, Наименование, Родитель, Вид (активный, пассивный, активно-пассивный), Забалансовый, Порядок.
  • 🧩 План видов характеристик: ТипЗначения — описание типов, которые может принимать характеристика.
  • 🔁 Бизнес-процесс и задача: Номер, Дата, у бизнес-процесса Стартован и Завершен, у задачи Выполнена, БизнесПроцесс, ТочкаМаршрута.
  • 🔌 План обмена: Код, Наименование, НомерОтправленного, НомерПринятого.

Точный список для своего объекта всегда можно посмотреть кнопкой Стандартные реквизиты или программно — об этом ниже.

Как обращаться к стандартным реквизитам в коде и запросах

В языке 1С стандартный реквизит выглядит так же, как обычный: через точку от объекта или ссылки.

Чтение и запись у объекта

НовыйЭлемент = Справочники.Номенклатура.СоздатьЭлемент();
НовыйЭлемент.Наименование = "Бумага А4";
НовыйЭлемент.Родитель = ГруппаКанцтовары; // если справочник иерархический
НовыйЭлемент.Записать();

Сообщить("Записан элемент с кодом " + НовыйЭлемент.Код);

Код при автонумерации назначается при записи, поэтому до вызова Записать() он пустой.

Несколько реквизитов только читаются. Для них есть отдельные методы:

РеквизитКак изменить
СсылкаНельзя. Для нового объекта задают заранее через УстановитьСсылкуНового()
ПроведенДокумент.Записать(РежимЗаписиДокумента.Проведение) или ОтменаПроведения
ЭтоГруппаОпределяется при создании: СоздатьГруппу() вместо СоздатьЭлемент()
ПометкаУдаленияСвойство доступно на запись, но надёжнее УстановитьПометкуУдаления(Истина) — у документа метод заодно отменяет проведение

Запросы

В тексте запроса стандартные реквизиты пишут по имени, как поля таблицы:

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

Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
	Сообщить(Выборка.Код + " — " + Выборка.Наименование);
КонецЦикла;

Склейка Выборка.Код + " — " работает, если тип кода — строка. Для числового кода используйте Формат(Выборка.Код, "ЧГ=0").

Список стандартных реквизитов из метаданных

Коллекция СтандартныеРеквизиты у объекта метаданных возвращает описания реквизитов. Это удобно для универсальных обработок:

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

Значение по ссылке без чтения объекта

Обращение Ссылка.Код выглядит дёшево, но платформа при этом читает объект целиком. В цикле по тысяче ссылок это тысяча чтений. В типовых конфигурациях на БСП вместо этого используют функцию ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Ссылка, "Код") или ЗначенияРеквизитовОбъекта для нескольких полей сразу — она получает значения запросом. Для массива ссылок ещё лучше один запрос с условием В (&Ссылки).

Формы

В управляемой форме стандартные реквизиты лежат внутри основного реквизита Объект. Чтобы вывести, например, Родитель на форму, раскройте Объект в списке реквизитов формы и перетащите поле в дерево элементов. В динамическом списке они доступны как колонки: Список.Ссылка, Список.Код.

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

Диагностика: выберите симптом

Ещё одна частая ловушка — Наименование у справочника с выключенной проверкой заполнения. Пользователь записывает пустой элемент, а потом в списке выбора видит пустые строки. Поставьте у реквизита Наименование свойство Проверка заполнения в значение Выдавать ошибку.

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

Есть три пути. Выбор зависит от того, снята ли конфигурация с поддержки и кто будет добавлять поле.

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

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

В БП 3.0 и других конфигурациях на БСП:

  1. Откройте Администрирование → Общие настройки.
  2. Включите флажок Дополнительные реквизиты и сведения и перейдите по одноимённой ссылке.
  3. Выберите набор, например «Номенклатура», и создайте новый реквизит: название, тип значения, обязательность заполнения.
  4. Откройте карточку номенклатуры — поле появится в группе дополнительных реквизитов.

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

Расширение конфигурации

В расширении заимствуют нужный объект и добавляют ему свой реквизит. Добавлять собственные реквизиты в заимствованные объекты платформа умеет с версии 8.3.11. Порядок:

  1. Конфигурация → Расширения конфигурации, создайте расширение.
  2. В дереве основной конфигурации найдите объект и через контекстное меню добавьте его в расширение.
  3. В заимствованном объекте добавьте реквизит с префиксом расширения, например мр_СрокГодности.
  4. Обновите конфигурацию базы данных.

Префикс в имени — защита от конфликта со стандартными реквизитами и с реквизитами, которые фирма-разработчик добавит в типовую в следующих релизах.

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

Правила именования

  • 🚫 Не используйте имена стандартных реквизитов: Код, Наименование, Дата, Номер, Родитель, Владелец, Период.
  • 🏷️ Давайте префикс в расширениях и в доработках типовой.
  • 📝 Если хочется «второе наименование», это обычный реквизит НаименованиеПолное или похожий — в типовой номенклатуре он уже есть.

Частые вопросы о стандартных реквизитах

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