Реквизиты в 1С 8.3: создаём новое поле в справочнике и документе без потери данных
Содержание
Добавить реквизит в 1С можно двумя путями. В типовых конфигурациях (Бухгалтерия 3.0, ЗУП 3.1, УТ 11) включите флажок «Дополнительные реквизиты и сведения» в общих настройках администрирования и создайте поле прямо в пользовательском режиме. Если нужен «настоящий» реквизит — с индексом, проверкой в коде, участием в проведении, — его создают в конфигураторе, а в типовой базе лучше в расширении, чтобы не снимать конфигурацию с поддержки.
Главное правило выбора: поле только для учёта, отборов и отчётов — дополнительный реквизит; поле для проведения и расчётов — реквизит в расширении или конфигураторе.
Что такое реквизит объекта и чем он отличается от сведения
Реквизит — это поле объекта конфигурации: справочника, документа, плана видов характеристик, бизнес-процесса. В базе данных каждому реквизиту соответствует колонка таблицы объекта. ИНН у контрагента, склад в документе, дата приёма у сотрудника — всё это реквизиты.
У каждого объекта есть два вида реквизитов:
- 📌 Стандартные — создаются платформой автоматически:
Ссылка,Код,Наименование,ПометкаУдаленияу справочника;Номер,Дата,Проведену документа. Удалить их нельзя, можно только настроить (длину кода, тип номера). - ✏️ Собственные — те, что добавляет разработчик или администратор.
Отдельно стоят реквизиты табличной части. Это поле строки таблицы, например «Номенклатура», «Количество», «Цена» в товарах документа. Если значение одно на весь документ — делайте реквизит шапки. Если своё в каждой строке — реквизит табличной части.
В типовых конфигурациях на БСП есть ещё два близких понятия:
| Что | Где хранится | Когда нужно |
|---|---|---|
| Дополнительный реквизит | В табличной части ДополнительныеРеквизиты самого объекта | Поле — часть объекта, меняется вместе с ним, требует права на изменение объекта |
| Дополнительное сведение | В отдельном регистре сведений ДополнительныеСведения | Значение можно менять, не открывая объект на запись: например, отметка на проведённом документе закрытого периода |
Типы реквизитов: что выбрать под задачу
Тип задаёт, какие значения поле примет. Ошибка в типе потом дорого стоит: смена типа с данными в базе часто обнуляет значения.
| Тип | Пример | На что смотреть |
|---|---|---|
| Строка | Номер договора, комментарий | Длина. 0 — неограниченная строка: её нельзя индексировать и напрямую сравнивать в запросе |
| Число | Норма расхода, процент скидки | Длина и точность. 15,2 — 13 знаков до запятой и 2 после. Флажок «Неотрицательное» |
| Дата | Срок поставки | Состав даты: «Дата», «Время» или «Дата и время» |
| Булево | «Ключевой клиент» | Только Да/Нет, без третьего состояния |
| Ссылочный | Менеджер, склад, вид операции | СправочникСсылка.Пользователи, ДокументСсылка.ЗаказКлиента, ПеречислениеСсылка.* |
| Составной | Основание: заказ или договор | Несколько типов в одном поле. Удобно, но запросы с таким полем работают медленнее |
| Хранилище значения | Скан, файл | Не участвует в отборах и запросах. Для файлов в типовых базах есть механизм присоединённых файлов |
💡 Правило практика: если значений ограниченное число и они редко меняются (3–10 вариантов) — перечисление или справочник. Если вариантов сотни и их ведут пользователи — справочник. Строку для выбора из списка не используйте: через полгода в базе будут «ООО», «ооо» и «О.О.О.».
Способ 1. Дополнительный реквизит в пользовательском режиме
Этот способ не меняет конфигурацию. Обновления ставятся как обычно, программист не нужен. Подходит, когда поле нужно для учёта, отбора в списках и отчётов, но не для расчётов в проведении.
Шаг 1. Включите функциональность
В Бухгалтерии 3.0 откройте Администрирование → Общие настройки и установите флажок «Дополнительные реквизиты и сведения». Рядом появятся ссылки «Дополнительные реквизиты» и «Дополнительные сведения».
В ЗУП 3.1 и УТ 11 этот же флажок находится в общих настройках раздела администрирования (в УТ 11 раздел называется «НСИ и администрирование»).
Шаг 2. Выберите объект
Перейдите по ссылке «Дополнительные реквизиты». Слева — дерево объектов, для которых механизм доступен: контрагенты, номенклатура, договоры, документы. Выделите нужный, например «Контрагенты».
Шаг 3. Создайте реквизит
- Нажмите
Создатьи выберите вариант «Новый». Вариант «Из другого набора» подставляет уже существующий общий реквизит — так одно поле можно вести у нескольких объектов. - Заполните наименование — его увидят пользователи на форме.
- Выберите тип значения. Для выбора из списка подходит тип «Дополнительное значение»: список вариантов заполняется прямо в карточке реквизита, на закладке значений.
- При необходимости отметьте «Заполнять обязательно». Без значения объект не запишется.
- Нажмите
Записать и закрыть.
Шаг 4. Проверьте форму
Откройте любого контрагента. Новое поле появится в группе «Дополнительные реквизиты» — обычно внизу формы или на отдельной закладке. Если поля не видно, проверьте, не свёрнута ли группа, и не настроена ли форма пользователем (Ещё → Изменить форму, сброс к стандартным настройкам).
Дополнительные реквизиты не появляются в печатных формах и не попадают в проводки сами по себе. Для печати нужна доработка макета, обычно через расширение или внешнюю печатную форму.
Способ 2. Реквизит в конфигураторе
Этот путь нужен для собственной конфигурации или когда без кода не обойтись: реквизит участвует в проведении, по нему строятся движения регистров, на нём висят проверки.
Шаг 1. Подготовка
Сделайте выгрузку информационной базы: Администрирование → Выгрузить информационную базу в конфигураторе, файл .dt. Добавление реквизита меняет структуру таблиц, и при обновлении структуры базы нужен монопольный доступ — пользователей придётся выгнать из базы. Делайте это вне рабочего времени.
Шаг 2. Добавьте реквизит
- Откройте конфигурацию:
Конфигурация → Открыть конфигурацию. - В дереве раскройте ветку, например
Справочники → Контрагенты. - Правой кнопкой по узлу «Реквизиты» →
Добавить. Второй вариант — двойной щелчок по объекту, закладка «Данные», кнопка добавления над списком реквизитов. - Откроется палитра свойств (если нет —
Alt+Enter). Задайте имя, синоним и тип.
Требования к имени: начинается с буквы или подчёркивания, без пробелов, уникально в пределах объекта и не совпадает со стандартными реквизитами. Хорошее имя: МенеджерПроекта. Плохое: Реквизит1.
Шаг 3. Выведите реквизит на форму
Новый реквизит не появляется на управляемой форме, если у объекта есть своя форма. Откройте форму элемента на закладке «Формы». В правом верхнем окне редактора раскройте реквизит Объект, найдите новое поле и перетащите его в дерево элементов слева, в нужную группу.
Если формы у объекта нет и платформа строит её автоматически, поле появится само.
Шаг 4. Обновите конфигурацию базы данных
Нажмите F7 или Конфигурация → Обновить конфигурацию базы данных. Конфигуратор покажет список изменений структуры — в нём должен быть только ваш реквизит. Если в списке неожиданно оказались другие объекты, нажмите «Отмена» и разберитесь, кто ещё правил конфигурацию.
Если конфигурация типовая — используйте расширение
Снимать типовую конфигурацию с поддержки ради одного поля — плохая идея: каждое обновление превратится в ручное сравнение и объединение. Расширение решает задачу чище:
Конфигурация → Расширения конфигурации→ добавить новое расширение.- В дереве основной конфигурации правой кнопкой по объекту →
Добавить в расширение. Объект станет «заимствованным». - В расширении у заимствованного объекта добавьте реквизит так же, как в шаге 2.
- Позаимствуйте форму объекта и выведите на неё поле.
- Обновите конфигурацию базы данных. Расширение применяется при следующем входе пользователей.
💡 Добавление собственных реквизитов в заимствованные объекты поддерживается в актуальных версиях платформы 8.3. Если конфигуратор не даёт добавить реквизит в расширении, проверьте номер платформы — он должен быть не ниже 8.3.11.
Настройка свойств реквизита: что важно не пропустить
Палитра свойств большая, но реально влияют на работу десяток пунктов.
| Свойство | Что даёт |
|---|---|
| Синоним | Подпись поля на форме и в отчётах. Без синонима пользователь увидит имя МенеджерПроекта с разбивкой по словам |
| Подсказка | Всплывающий текст у поля на форме |
| Проверка заполнения | «Выдавать ошибку» — объект не запишется с пустым полем |
| Значение заполнения | Значение по умолчанию для нового объекта |
| Индексировать | Ускоряет отборы и поиск по полю. Вариант «Индексировать с доп. упорядочиванием» ускоряет сортировку списков |
| Использование | Только у иерархических справочников: для элемента, для группы или для обоих |
| Параметры выбора | Ограничивают список выбора: например, только контрагенты-поставщики |
| Связи параметров выбора | Связывают поля: договор выбирается только по выбранному контрагенту |
| Полнотекстовый поиск | Использовать или нет поле в полнотекстовом поиске |
| Маска, формат | Ввод телефона по маске, вывод числа с разделителями |
Индекс — не бесплатная опция. Каждый индекс замедляет запись и занимает место. Ставьте его на поля, по которым реально отбирают списки или соединяют таблицы в запросах.
Реквизиты на практике: три примера
🧑💼 Ответственный менеджер у контрагента. Тип — СправочникСсылка.Пользователи, индексировать — да (по нему отбирают список клиентов), значение заполнения — пусто. В типовой БП достаточно дополнительного реквизита со значением типа «Пользователь».
📄 Номер внешнего договора в реализации. Реквизит шапки, строка длиной 50, фиксированной длины не нужно. Проверка заполнения — только если номер есть у каждого клиента, иначе пользователи начнут вписывать прочерки.
🔢 Серийный номер в строке товаров. Реквизит табличной части, а не шапки: серийник у каждой строки свой. Если по серийникам нужен учёт остатков, одного реквизита мало — понадобится регистр и доработка проведения.
Новый реквизит в запросах, коде и отчётах
Обычный реквизит
В запросе к собственному реквизиту обращаются по имени, как к любому полю таблицы:
ВЫБРАТЬ
Контрагенты.Ссылка КАК Контрагент,
Контрагенты.МенеджерПроекта КАК Менеджер
ИЗ
Справочник.Контрагенты КАК Контрагенты
ГДЕ
Контрагенты.МенеджерПроекта = &Менеджер
Неограниченную строку в условии так не сравнить — её сначала приводят к строке фиксированной длины:
ГДЕ
ВЫРАЗИТЬ(Документ.Комментарий КАК СТРОКА(200)) = &Текст
В коде значение читают через объект (Объект.МенеджерПроекта) или, если нужен один реквизит по ссылке, функцией БСП ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Ссылка, "МенеджерПроекта"). Она не загружает объект целиком и работает быстрее, чем Ссылка.ПолучитьОбъект().
Дополнительный реквизит
Значения дополнительных реквизитов лежат в табличной части объекта. Строка содержит свойство (ссылку на элемент плана видов характеристик) и значение:
ВЫБРАТЬ
ДопРеквизиты.Ссылка КАК Контрагент,
ДопРеквизиты.Значение КАК Значение
ИЗ
Справочник.Контрагенты.ДополнительныеРеквизиты КАК ДопРеквизиты
ГДЕ
ДопРеквизиты.Свойство = &Свойство
В параметр &Свойство передают ссылку на элемент плана видов характеристик ДополнительныеРеквизитыИДополнительныеСведения. Дополнительные сведения в этой таблице не найти — их читают из регистра сведений ДополнительныеСведения с отбором по объекту и свойству.
Отчёты
В отчётах на системе компоновки данных новое поле объекта доступно через точку от ссылки: Контрагент.МенеджерПроекта. Откройте настройки отчёта, в списке полей раскройте реквизит со ссылкой (плюсиком) и добавьте нужное поле в группировки, отбор или колонки.
В типовых конфигурациях на БСП дополнительные реквизиты тоже видны в списке полей объекта при настройке отчёта. Если поле не находится — включите в настройках расширенный режим и поищите его по наименованию.
Ошибки, после которых теряются данные или ломается обновление
- ❌ Удалили реквизит с данными. При обновлении структуры колонка удаляется вместе со значениями. Безопаснее сначала переименовать реквизит с префиксом
Удалить(так принято в БСП), убрать с форм и удалить через один-два релиза, когда данные точно не нужны. - ❌ Переименовали реквизит. Платформа сохранит данные, но весь код, запросы и внешние отчёты, где было старое имя, перестанут работать. Перед переименованием выполните поиск по имени во всей конфигурации (
Ctrl+Shift+F). - ❌ Сменили тип. Например, строку на ссылку. Значения, которые нельзя преобразовать, обнулятся. Правильный путь: новый реквизит, обработка переноса данных, затем удаление старого.
- ❌ Короткая строка. Длина 10 для номера договора — и номера обрежутся без всяких предупреждений. Закладывайте запас.
- ❌ Сняли типовую с поддержки ради одного поля. Каждое следующее обновление становится сравнением и объединением конфигураций. Для таких задач есть расширения и дополнительные реквизиты.
- ❌ Создали дубль дополнительного реквизита. Два поля «Менеджер» у контрагентов — и половина данных в одном, половина в другом. Перед созданием проверьте список реквизитов объекта и общие реквизиты из других наборов.
Частые вопросы
Сколько реквизитов можно добавить к одному объекту?
Слетит ли дополнительный реквизит после обновления типовой конфигурации?
Можно ли перенести дополнительные реквизиты в другую базу?
Реквизит есть в конфигураторе, но в программе его не видно. Почему?
Ещё → Изменить форму.