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