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

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

Как добавить общий реквизит в 1С

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

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

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

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

Что такое общий реквизит и когда он действительно нужен

Общий реквизит хранится в ветке «Общие» → «Общие реквизиты» дерева конфигурации. Его ключевая особенность — физическое поле в таблицах базы данных создаётся для каждого объекта, включённого в состав реквизита, но описание поля централизовано. Это отличает его от обычного реквизита, который существует только внутри одного объекта.

Типичные сценарии, где общий реквизит оправдан: единый реквизит «Организация» или «Подразделение» для всех документов, поле «Ответственный» в справочниках и документах, служебные признаки для обмена данными, реквизит-разделитель данных в сервисных решениях на базе технологии 1cFresh.

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

Создание общего реквизита в конфигураторе

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

Задайте имя реквизита по правилам встроенного языка — без пробелов и спецсимволов, например «ПодразделениеОрганизации». Поле «Синоним» заполните понятным пользователю названием: именно оно отображается в формах, отчётах и журналах, например «Подразделение организации».

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

Порядок действий
  1. 1
    Откройте конфигуратор и в дереве конфигурации перейдите в «Общие» → «Общие реквизиты»
  2. 2
    Через контекстное меню выберите «Добавить» и задайте имя и синоним реквизита
  3. 3
    Укажите тип данных, длину строки или точность числа
  4. 4
    На вкладке «Состав» отметьте объекты, где реквизит должен появиться
  5. 5
    Сохраните конфигурацию и выполните обновление конфигурации базы данных (F7)
  6. 6
    Проверьте появление поля в формах объектов в пользовательском режиме

Настройка состава: какие объекты включить

Вкладка «Состав» в палитре свойств общего реквизита содержит список всех объектов конфигурации, поддерживающих общие реквизиты: справочники, документы, планы видов характеристик, планы счетов, планы видов расчёта, бизнес-процессы и задачи. Флажок напротив объекта означает, что реквизит будет добавлен в его структуру.

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

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

Дополнительные свойства и их влияние на поведение

Свойство «Проверка заполнения» определяет, будет ли платформа требовать заполнения поля при записи объекта. Вариант «Выдавать ошибку» делает реквизит обязательным для всех объектов состава сразу — будьте осторожны: старые документы с пустым значением перестанут проводиться при перезаписи.

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

Отдельное внимание заслуживает свойство «Разделение данных» — оно доступно при включённом режиме совместимости с механизмом разделения и используется в SaaS-решениях. Для обычной коробочной базы это свойство оставляют в значении «Не использовать».

Обновление конфигурации базы данных и проверка результата

После сохранения конфигурации выполните «Конфигурация» → «Обновить конфигурацию базы данных» (клавиша F7). Платформа покажет список изменений структуры: убедитесь, что в нём присутствуют именно те таблицы, которые вы отметили в составе. На рабочей базе обновление выполняется в монопольном режиме — пользователи должны завершить сеансы.

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

Контрольные точки

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

Поле в форме объекта
Норма

Реквизит виден, вводится и сохраняется значение

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

Поля нет в форме или оно недоступно для ввода

Реквизит в запросе
Норма

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

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

Поле отсутствует у части объектов — проверьте флажки в составе

Обновление базы данных
Норма

Окно реструктуризации показывает только нужные таблицы

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

В списке лишние таблицы — перепроверьте состав реквизита

Типичные ошибки и ограничения механизма

Частая ошибка — попытка добавить общий реквизит в табличную часть. Механизм общих реквизитов работает только с шапками объектов; для табличных частей реквизиты создаются индивидуально в каждом объекте. Другое ограничение: общий реквизит нельзя использовать как измерение или ресурс регистра — там применяются собственные метаданные регистра.

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

Также учитывайте, что изменение общего реквизита затрагивает все объекты состава одновременно. Правка типа или синонима «в одном месте» — это преимущество, но и источник риска: неочевидное изменение может сломать отчёты и обмены, использующие это поле в других объектах.

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

Альтернативы общему реквизиту

Если поле нужно только в пользовательском режиме без доработки конфигурации, подойдут дополнительные реквизиты и сведения (механизм БСП «Свойства»). Они не требуют изменения структуры базы, доступны администратору без конфигуратора, но хранятся в отдельных таблицах и работают медленнее в отборах.

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

Сравнение вариантов

Общий реквизит

Подходит для одинакового поля в десятках объектов и для разделения данных. Ограничение: требует конфигуратора, монопольного обновления и влияет сразу на все объекты состава

Обычный реквизит объекта

Подходит, когда поле нужно в одном-трёх объектах. Ограничение: изменения придётся вносить в каждый объект отдельно

Дополнительный реквизит (БСП)

Подходит для настроек без доработки конфигурации. Ограничение: хранение в отдельных таблицах, медленнее в отборах и запросах

Частые вопросы

Можно ли добавить общий реквизит без конфигуратора?

Нет, создание общего реквизита возможно только в конфигураторе с последующим обновлением конфигурации базы данных. Если доработка конфигурации недопустима, используйте механизм дополнительных реквизитов и сведений, доступный администратору в режиме «1С:Предприятие».

Что произойдёт с данными, если удалить общий реквизит?

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

Почему общий реквизит не отображается на форме документа?

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

Можно ли использовать общий реквизит в запросах и отчётах?

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

Как добавить общий реквизит в расширении конфигурации?

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

Влияет ли общий реквизит на обмен данными?

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

Итог

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

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