Разработчики, переходящие с классического Конфигуратора на 1C:Enterprise Development Tools (EDT), часто сталкиваются с ситуацией, когда среда разработки начинает вести себя избыточно "старательно". Типичный сценарий: у вас есть типовая конфигурация (например, Бухгалтерия предприятия 3.0), которая полностью закрыта от изменений (стоит на замке). Вы создаете для нее расширение или внешнюю обработку и хотите просто запустить отладку. Однако EDT инициирует долгий и ресурсозатратный процесс сборки всей основной конфигурации, хотя она и так уже находится в информационной базе в неизменном виде.
В этой статье мы разберем по шагам, почему это происходит и как настроить рабочую среду так, чтобы EDT не тратила время на компиляцию того, что не менялось. Мы проанализируем настройки запусков, работу с проектами и параметры самой среды.
Прежде всего, выясним причину такого поведения. В отличие от Конфигуратора, который работает напрямую с базой данных, EDT оперирует локальной моделью проекта, состоящей из множества XML-файлов. Когда мы нажимаем кнопку "Запуск" или "Отладка", среда должна убедиться, что состояние информационной базы соответствует состоянию проектов в рабочей области (workspace). Если в Конфигурации запуска указан проект основной конфигурации, EDT будет проверять его целостность и пытаться синхронизировать при каждом запуске, даже если проект помечен как закрытый для изменений.
Рассмотрим самый эффективный метод — правильную настройку Launch Configurations. Основная ошибка заключается в том, что в качестве главного проекта в настройках запуска выбирается основная конфигурация. Вместо этого нам нужно переключить внимание среды только на изменяемые объекты.
Run (Запуск) и выберем пункт Run Configurations... (Настройки запуска).1C:Enterprise Application).Main (Главная) найдем поле Project (Проект). Здесь должен быть указан не проект огромной типовой конфигурации, а проект вашего расширения или проект внешней обработки.V8 Deployment (Развертывание). Убедимся, что в списке проектов для обновления не выбрана основная конфигурация, если она уже актуальна в базе.Таким образом, при запуске EDT будет проверять и инкрементально собирать только ваше расширение, что занимает секунды, а не десятки минут.
Для того чтобы в вашем расширении работала контекстная подсказка и проверка типов (чтобы EDT «знала» о существовании справочников и документов БП 3.0), проект основной конфигурации все равно должен присутствовать в рабочей области. Но его не обязательно связывать с процессом деплоя.
Проанализируем ситуацию: нам нужны метаданные конфигурации как «библиотека типов». В свойствах проекта расширения (правой кнопкой на проект -> Properties -> V8 Project) можно указать основную конфигурацию как Base Project. Это позволит вам использовать все объекты типового решения в коде расширения, но сама среда перестанет считать, что основную конфигурацию нужно постоянно пересобирать и загружать в базу при отладке расширения.
Иногда EDT начинает «мучительную компиляцию» просто из-за фоновых проверок валидации. Чтобы снизить нагрузку на процессор и ускорить работу с большими проектами на 16 ГБ ОЗУ и SSD, мы можем внести правки в файл конфигурации 1cedt.ini.
Рассмотрим добавление следующих параметров, которые помогают пропустить тяжелые операции индексации:
-DdisableProjectChecks=true
-DdisableFTS=true
-Xms2g
-Xmx10g
Параметр disableProjectChecks отключает полные проверки проекта при запуске, а disableFTS выключает построение индекса полнотекстового поиска внутри самой среды разработки, что значительно освобождает ресурсы для реальной сборки расширения.
Если ваша задача — разработка внешних обработок, убедитесь, что вы используете специальный тип проекта. Выясним, как это сделать правильно:
IntelliSense.В этом случае при нажатии на "Отладку" EDT будет генерировать только один временный файл .epf в папку bin, игнорируя всю тяжеловесную структуру типового решения на замке.
Проанализируем меню Project в верхней панели EDT. Там есть флаг Build Automatically (Собирать автоматически). Если ваша конфигурация очень большая, постоянные попытки фоновой пересборки могут «подвешивать» интерфейс.
Рекомендуем снять этот флаг. Теперь среда будет выполнять сборку только тогда, когда вы сами инициируете запуск или нажмете Ctrl+B. Это позволит спокойно писать код, не отвлекаясь на индикаторы прогресса в нижнем углу экрана.
Для комфортной работы с типовыми конфигурациями на замке в 1C:EDT необходимо четко разделять «справочные» проекты (основная конфигурация) и «активные» проекты (расширения и обработки). Настройка правильной Конфигурации запуска и использование механизма Base Project — это ключ к тому, чтобы забыть о часовых ожиданиях компиляции и сосредоточиться на написании кода.