При работе в среде 1C:Enterprise Development Tools (EDT) разработчики могут столкнуться со сбоем при попытке привязать проект к информационной базе или запустить сеанс отладки. Среда выдает сообщение: An internal error occurred during: "Project association". java/sql/Time. Кроме того, процесс отладки может зависать в бесконечном ожидании действий пользователя. Разберем по шагам, почему возникает эта ошибка и как восстановить стабильную работу среды разработки.
Проанализируем ситуацию: базовые версии 1C:EDT построены на платформе Eclipse, модули которой предъявляют жесткие требования к среде выполнения Java. При установке более новых версий Java (например, Java 9 и выше) меняется модульная структура стандартных пакетов, что приводит к ошибкам загрузки классов (в частности, java.sql.Time) при выполнении операций связывания метаданных.
Рассмотрим основной метод устранения ошибки. Для стабильной работы EDT ранних версий требуется 64-разрядная версия Java Platform Standard Edition 8 (JRE или JDK 8). Выполним настройку среды по следующим шагам:
8u144 или более поздний апдейт восьмой версии) строго 64-битной разрядности (x64).1cedt.ini.JAVA_HOME, указывающую на другую версию. Добавим параметры -vm непосредственно перед секцией -vmargs.Посмотрим на пример правильного заполнения фрагмента файла 1cedt.ini:
-vm
C:\Program Files\Java\jre1.8.0_144\bin\javaw.exe
-vmargs
Важно: директива -vm и путь к исполняемому файлу javaw.exe должны располагаться строго на отдельных строках. После сохранения изменений перезапустим среду EDT.
Разберем вторую проблему, когда после исправления версии Java режим 1С:Предприятия не стартует и среда зависает в ожидании ответа. Это происходит из-за того, что механизм отладки ожидает подключения по отладочному протоколу, но при отсутствии указанного пользователя в информационной базе процесс блокируется диалоговым окном выбора пользователя или авторизации.
Если после смены Java ошибка сопоставления метаданных продолжает появляться, проанализируем состояние кэша рабочего пространства (workspace). Внутренние индексы могли сохраниться в поврежденном виде.
.metadata, после чего повторно импортируем проект.Рассмотрим частую проблему, когда после успешного импорта проекта EDT сообщает об ошибках вида «неизвестная переменная: Перечисления» в серверных процедурах. В отличие от стандартного Конфигуратора, статический анализатор EDT строже проверяет доступность типов в зависимости от контекста модуля.
Проанализируем контекст выполнения кода: если метод доступен на клиенте без явного указания директивы &НаСервере или без управляющих инструкций препроцессора, глобальная коллекция Перечисления будет недоступна. Для корректной валидации серверные вызовы необходимо обрамлять инструкциями:
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
Значение = Перечисления.СтатусыЗаказов.Новый;
#КонецЕсли
Также можно настроить уровень строгости синтаксических проверок через меню Окно → Параметры → 1С:Предприятие → Проверка, снизив критичность предупреждений для некритичных участков кода.