Как уменьшить размер конфигурации 1С за счет выноса драйверов во внешние компоненты?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

Многие разработчики и администраторы систем 1С сталкивались с проблемой избыточного веса метаданных конфигурации. Одной из главных причин «раздувания» файла .cf долгое время являлись макеты с драйверами торгового оборудования, которые вшивались непосредственно в дерево метаданных. В этой статье мы разберем механизм оптимизации состава конфигурации, предложенный фирмой «1С» в 2024 году, и выясним, как это влияет на скорость обновления и обслуживания баз.

Новая концепция хранения драйверов (Инфописьмо №32256)

Рассмотрим ситуацию: раньше в типовых решениях (например, в «1С:Бухгалтерия» или «1С:ERP») все возможные драйверы для касс, сканеров и весов хранились внутри конфигурации. Это приводило к тому, что дистрибутивы весили гигабайты, а процесс сравнения/объединения при обновлении занимал значительное время. Проанализируем изменения: теперь фирма «1С» исключает тяжелые дистрибутивы драйверов из состава метаданных.

Основные принципы новой архитектуры:

  1. Внешнее хранилище: Все актуальные драйверы теперь размещаются на специальной странице портала 1С:ИТС в разделе «Внешние компоненты».
  2. Динамическая загрузка: При необходимости подключения нового оборудования система 1С:Предприятие сама обращается к веб-сервису и скачивает нужный компонент.
  3. Облегчение конфигураций: За счет этого шага размер конфигурации «1С:Бухгалтерия предприятия» (начиная с релизов 3.0.183) сократился примерно на 30%.

Как реализовать хранение драйверов в локальной сети

Выясним причину, по которой это может быть проблемой: не все серверы имеют прямой доступ к интернету. Для таких случаев мы можем настроить локальное хранение. Разберем по шагам, как это работает через Библиотеку подключаемого оборудования (БПО):

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

Оптимизация разработки и навигации в коде

Помимо облегчения веса конфигурации, программисты часто ищут способы ускорить работу в Конфигураторе. Рассмотрим возможности, которые предоставляют внешние инструменты (например, расширения типа Турбоконф с адаптерами), чтобы приблизить комфорт разработки к уровню современных IDE:

Посмотрим на пример того, как программно может выглядеть обращение к внешней компоненте, если она не вшита в макет:


// Пример подключения внешней компоненты из файла или общего хранилища
Результат = ПодключитьВнешнююКомпоненту("ОбщийМакет.ДрайверККТ", "Driver", ТипВнешнейКомпоненты.Native);

Если Не Результат Тогда
    // Если в макете нет, система может инициировать загрузку из внешнего источника
    ЗагрузитьКомпонентуСПортала("1c.ru/components/kkt_driver");
КонецЕсли;

Итоги и рекомендации

Проанализировав текущий вектор развития платформы, мы видим, что будущее за модульностью. Чтобы ваша база работала быстрее, рекомендуем:

  1. Своевременно обновлять БПО до актуальных версий, поддерживающих вынос компонентов.
  2. Очищать старые макеты с неиспользуемыми драйверами, если вы ведете доработку самописных решений.
  3. Использовать механизмы 1С:EDT для долгосрочных проектов, так как там работа с внешними зависимостями реализована более прозрачно.

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

← На главную