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

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

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

Архитектурные особенности хранения данных

С точки зрения внутренней структуры базы данных, подход к хранению информации кардинально отличается. Дополнительные реквизиты добавляются непосредственно в таблицу объекта метаданных. Если вы добавляете реквизит в справочник "Номенклатура", в физической таблице базы данных (например, SQL Server или PostgreSQL) создается новая колонка.

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

⚠️ Внимание: При использовании дополнительных реквизитов в больших справочниках (сотни тысяч записей) изменение структуры таблицы может занять значительное время и заблокировать работу пользователей в момент обновления конфигурации.

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

📊 Какой метод расширения данных вы используете чаще?
Дополнительные реквизиты
Дополнительные сведения
Комбинированный подход
Не использую, правлю код

Сценарии использования дополнительных реквизитов

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

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

Часто дополнительные реквизиты применяются для:

  • 📌 Хранения обязательных атрибутов, без которых объект не может существовать в системе.
  • 📌 Реализации жесткой типизации данных (строка, число, дата, булево).
  • 📌 Организации связей между объектами через ссылки.
  • 📌 Обеспечения высокой производительности при частом использовании поля в отчетах.

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

💡

Если вы планируете использовать новое поле в условиях отбора документов или в качестве группировки в отчетах, отдавайте предпочтение дополнительным реквизитам.

Гибкость дополнительных сведений

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

Например, в справочнике "Контрагенты" для одних партнеров важно хранить ИНН и КПП, для других — номер лицензии, а для третьих —preferred способ доставки. Создавать отдельные реквизиты для каждого случая нерационально.

Ключевые преимущества использования сведений:

  • 🚀 Возможность добавления полей "на лету" без перезапуска базы данных.
  • 🚀 Поддержка разнородных типов данных в рамках одного набора сведений.
  • 🚀 Отсутствие влияния на структуру основных таблиц базы данных.
  • 🚀 Идеально подходит для хранения справочной или редко используемой информации.

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

Сравнительный анализ характеристик

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

Характеристика Дополнительные реквизиты Дополнительные сведения
Хранение данных В таблице объекта (новая колонка) В отдельном регистре сведений
Изменение структуры Требует обновления конфигурации Не требует обновления конфигурации
Производительность поиска Высокая (прямой доступ) Средняя (через соединение)
Ограничение количества Ограничено возможностями СУБД Практически не ограничено
Типизация Строгая, задается при создании Гибкая, может меняться

Как видно из таблицы, выбор зависит от приоритетов: скорость и жесткая структура или гибкость и независимость от обновлений. В современных конфигурациях, таких как 1С:ERP или 1С:УТ 11, часто используется комбинированный подход.

💡

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

Влияние на обновление типовых конфигураций

Один из самых болезненных вопросов для пользователей 1С — это сохранение доработок при обновлении типовых релизов. Здесь разница между рассматриваемыми механизмами проявляется наиболее ярко.

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

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

⚠️ Внимание: Перед массовым добавлением реквизитов в типовую конфигурацию обязательно создайте резервную копию базы данных. Ошибки при обновлении структуры могут привести к невозможности запуска системы.

Современные практики разработки в 1С рекомендуют минимизировать вмешательство в типовые объекты. Вместо этого следует использовать расширения конфигурации, где дополнительные сведения реализуются наиболее безопасно и эффективно.

Технические детали реализации в коде

При работе с дополнительными сведениями в коде используется объект ДополнительныеСведенияОбъекта. Пример получения значения: Значение = ДополнительныеСведенияОбъекта.Получить(СсылкаНаОбъект, "ИмяСвойства");

Практические рекомендации по выбору

При принятии решения о том, какой инструмент использовать, задайте себе ряд вопросов. Является ли это поле обязательным для заполнения при создании объекта? Будет ли оно использоваться в сложных отчетах ежедневно? Планируется ли частое обновление конфигурации?

Если ответ на первые два вопроса "да", а на третий "нет" — выбирайте дополнительные реквизиты. Это обеспечит наилучшую производительность и удобство работы пользователей. Если же поле носит справочный характер или его состав часто меняется — ваш выбор дополнительные сведения.

Также стоит учитывать роль пользователя. Бухгалтеру или менеджеру проще работать с полями, которые всегда на виду (реквизиты). Аналитику или администратору удобнее управлять наборами свойств через отдельное окно (сведения).

☑️ Алгоритм выбора метода

Выполнено: 0 / 4

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

Можно ли конвертировать дополнительные реквизиты в сведения и наоборот?

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

Влияют ли дополнительные сведения на размер файла базы данных?

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

Доступны ли дополнительные сведения в мобильных клиентах 1С?

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

Можно ли сделать дополнительное поле обязательным к заполнению?

Для дополнительных реквизитов это настраивается в свойствах метаданных (свойство "Заполнение"). Для дополнительных сведений обязательность заполнения контролируется программно в модуле объекта или с помощью подписок на события.

Как отразить дополнительные сведения в печатных формах?

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