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

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

Какие действия можно выполнять со стандартными реквизитами 1С

Что такое стандартные реквизиты 1С, какие действия с ними доступны: настройка длины кода и номера, свойств, состава. Ограничения, риски и инструкции.

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

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

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

Что относится к стандартным реквизитам и как их увидеть

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

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

Изменение свойств стандартных реквизитов

Основное доступное действие — правка свойств. Для реквизита «Код» справочника можно изменить длину кода, тип (число или строка), признак автонумерации, контроль уникальности и серии кодов (в пределах всего справочника, подчинения или владельца). Для «Наименования» — длину строки. Для «Номера» документа — длину, тип и настройки нумератора.

Также доступны представления: синоним, который видит пользователь в интерфейсе, подсказка, комментарий. Например, стандартный реквизит «Наименование» справочника «Номенклатура» можно переименовать для пользователя в «Название товара», не затрагивая код, который обращается к нему как к «Наименование». Имя реквизита для встроенного языка при этом не меняется.

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

Включение и отключение отдельных реквизитов

Часть стандартных реквизитов можно отключить целиком на уровне объекта. В справочнике свойство «Иерархический» включает или отключает реквизит «Родитель», а «Вид иерархии» определяет его поведение. Свойство «Подчиненные» и выбор владельца активируют реквизит «Владелец». Если справочник не иерархический и не подчиненный, соответствующие стандартные реквизиты фактически не используются.

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

Настройка индексации и поиска

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

Отдельная настройка — «Полнотекстовый поиск», который позволяет включить строковый стандартный реквизит (например, наименование) в полнотекстовый индекс, и «Поиск по строке» — поведение при вводе по строке в полях ввода. Эти настройки влияют на скорость и удобство поиска элементов пользователями.

Использование в коде и запросах

К стандартным реквизитам можно обращаться во встроенном языке как к обычным свойствам объекта: СправочникОбъект.Код, ДокументОбъект.Номер, ДокументОбъект.Дата. В запросах они доступны по тем же именам: ВЫБРАТЬ Справочник.Номенклатура.Наименование. Реквизит «Ссылка» используется для сравнения, соединений и передачи в параметры.

Отдельная группа действий — программное управление нумерацией. Методы УстановитьНовыйКод() и УстановитьНовыйНомер() позволяют вручную назначить очередное значение, а обработчики ПриУстановкеНовогоКода и ПриУстановкеНовогоНомера — переопределить стандартную логику, например формировать номер с префиксом подразделения.

bsl
Процедура ПриУстановкеНовогоНомера(СтандартнаяОбработка, Префикс)
    СтандартнаяОбработка = Ложь;
    Префикс = "АР-";
    УстановитьНовыйНомер(Префикс);
КонецПроцедуры

Ограничения: что со стандартными реквизитами делать нельзя

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

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

Типичные ошибки
01
Сокращение длины кода в заполненной базе — значения усекаются, нумерация конфликтует
02
Отключение контроля уникальности кода без необходимости — появляются дубли, ломаются отчеты и обмены
03
Смена типа кода с числа на строку в работающей базе — старые коды преобразуются с лидирующими нулями, сортировка меняется
04
Попытка удалить стандартный реквизит вместо отключения его использования через свойства объекта

Практический порядок безопасного изменения

Любую правку стандартных реквизитов в рабочей базе выполняйте по одному сценарию: сначала тестовая копия, затем продуктив. Особенно это касается длины, типа и уникальности — изменений, запускающих реструктуризацию таблиц.

Порядок действий
  1. 1
    Сделайте выгрузку информационной базы в файл dt
  2. 2
    Откройте конфигуратор, найдите объект и пункт «Стандартные реквизиты»
  3. 3
    Измените нужное свойство: длину, синоним, индексацию, контроль уникальности
  4. 4
    Обновите конфигурацию базы данных и проверьте окно реструктуризации на предмет усечения данных
  5. 5
    Проверьте на тестовой копии: открытие форм, нумерацию, отчеты и обмены, использующие этот реквизит
  6. 6
    Перенесите изменение в рабочую базу в нерабочее время
Контрольные точки

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

Нумерация новых документов
Норма

Новый номер продолжает последовательность без дублей

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

Номера сбрасываются, дублируются или появляются пустые значения

Значения реквизита в существующих элементах
Норма

Данные на месте, длина соответствует ожиданиям

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

Значения обрезаны или очищены после реструктуризации

Скорость отборов и отчетов
Норма

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

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

Запись и проведение замедлились после включения лишних индексов

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

Можно ли удалить стандартный реквизит справочника, например «Код»?

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

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

Откройте палитру свойств стандартного реквизита и измените свойство «Синоним». В интерфейсе поле будет называться по-новому, а в коде и запросах останется «Наименование».

Почему после изменения длины кода появились ошибки нумерации?

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

Можно ли использовать стандартные реквизиты в отчетах на СКД?

Да, они доступны в наборах данных наравне с обычными реквизитами. В запросе набора укажите, например, Номер и Дату документа или Наименование справочника — поля появятся в настройках отчета.

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

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

Итог

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

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