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