Как отключить повторную сборку типовой конфигурации на замке при отладке в 1C:EDT

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

Разработчики, переходящие с классического Конфигуратора на 1C:Enterprise Development Tools (EDT), часто сталкиваются с ситуацией, когда среда разработки начинает вести себя избыточно "старательно". Типичный сценарий: у вас есть типовая конфигурация (например, Бухгалтерия предприятия 3.0), которая полностью закрыта от изменений (стоит на замке). Вы создаете для нее расширение или внешнюю обработку и хотите просто запустить отладку. Однако EDT инициирует долгий и ресурсозатратный процесс сборки всей основной конфигурации, хотя она и так уже находится в информационной базе в неизменном виде.

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

Понимание механизма работы 1C:EDT

Прежде всего, выясним причину такого поведения. В отличие от Конфигуратора, который работает напрямую с базой данных, EDT оперирует локальной моделью проекта, состоящей из множества XML-файлов. Когда мы нажимаем кнопку "Запуск" или "Отладка", среда должна убедиться, что состояние информационной базы соответствует состоянию проектов в рабочей области (workspace). Если в Конфигурации запуска указан проект основной конфигурации, EDT будет проверять его целостность и пытаться синхронизировать при каждом запуске, даже если проект помечен как закрытый для изменений.

Способ 1: Использование конфигураций запуска для расширений

Рассмотрим самый эффективный метод — правильную настройку Launch Configurations. Основная ошибка заключается в том, что в качестве главного проекта в настройках запуска выбирается основная конфигурация. Вместо этого нам нужно переключить внимание среды только на изменяемые объекты.

  1. Перейдем в меню Run (Запуск) и выберем пункт Run Configurations... (Настройки запуска).
  2. В левой части окна выберем нужную нам конфигурацию запуска (обычно это 1C:Enterprise Application).
  3. На вкладке Main (Главная) найдем поле Project (Проект). Здесь должен быть указан не проект огромной типовой конфигурации, а проект вашего расширения или проект внешней обработки.
  4. Проверим настройки на вкладке V8 Deployment (Развертывание). Убедимся, что в списке проектов для обновления не выбрана основная конфигурация, если она уже актуальна в базе.

Таким образом, при запуске EDT будет проверять и инкрементально собирать только ваше расширение, что занимает секунды, а не десятки минут.

Способ 2: Настройка «Базового проекта» для метаданных

Для того чтобы в вашем расширении работала контекстная подсказка и проверка типов (чтобы EDT «знала» о существовании справочников и документов БП 3.0), проект основной конфигурации все равно должен присутствовать в рабочей области. Но его не обязательно связывать с процессом деплоя.

Проанализируем ситуацию: нам нужны метаданные конфигурации как «библиотека типов». В свойствах проекта расширения (правой кнопкой на проект -> Properties -> V8 Project) можно указать основную конфигурацию как Base Project. Это позволит вам использовать все объекты типового решения в коде расширения, но сама среда перестанет считать, что основную конфигурацию нужно постоянно пересобирать и загружать в базу при отладке расширения.

Способ 3: Оптимизация через параметры JVM и настройки EDT

Иногда EDT начинает «мучительную компиляцию» просто из-за фоновых проверок валидации. Чтобы снизить нагрузку на процессор и ускорить работу с большими проектами на 16 ГБ ОЗУ и SSD, мы можем внести правки в файл конфигурации 1cedt.ini.

Рассмотрим добавление следующих параметров, которые помогают пропустить тяжелые операции индексации:


-DdisableProjectChecks=true
-DdisableFTS=true
-Xms2g
-Xmx10g

Параметр disableProjectChecks отключает полные проверки проекта при запуске, а disableFTS выключает построение индекса полнотекстового поиска внутри самой среды разработки, что значительно освобождает ресурсы для реальной сборки расширения.

Способ 4: Правильный тип проекта для внешних обработок

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

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

В этом случае при нажатии на "Отладку" EDT будет генерировать только один временный файл .epf в папку bin, игнорируя всю тяжеловесную структуру типового решения на замке.

Способ 5: Управление автоматической сборкой

Проанализируем меню Project в верхней панели EDT. Там есть флаг Build Automatically (Собирать автоматически). Если ваша конфигурация очень большая, постоянные попытки фоновой пересборки могут «подвешивать» интерфейс.

Рекомендуем снять этот флаг. Теперь среда будет выполнять сборку только тогда, когда вы сами инициируете запуск или нажмете Ctrl+B. Это позволит спокойно писать код, не отвлекаясь на индикаторы прогресса в нижнем углу экрана.

Итоги

Для комфортной работы с типовыми конфигурациями на замке в 1C:EDT необходимо четко разделять «справочные» проекты (основная конфигурация) и «активные» проекты (расширения и обработки). Настройка правильной Конфигурации запуска и использование механизма Base Project — это ключ к тому, чтобы забыть о часовых ожиданиях компиляции и сосредоточиться на написании кода.

← На главную