Если вы столкнулись с проблемой

Если в процессе работы вы столкнулись с проблемой или у вас есть сомнения в том, что 1C:EDT работает правильно, можно предпринять следующие действия.

Панель «Состояние»

Если вам кажется, что ничего не происходит, откройте панель Состояние или посмотрите в правый нижний угол основного окна. Возможно, 1C:EDT занята работой, просто вы этого не замечаете.

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

Открыть панель «Состояние»
Панель Состояние можно открыть несколькими способами:
  • Нажмите Окно > Показать панель > Другое… > Общие > Состояние в главном меню основного окна;
  • Нажмите в правом нижнем углу основного окна.
Команды панели «Состояние»
  • — прерывает выполнение операции;
  • — удаляет операцию из панели;
  • — удаляет из панели все завершенные операции.

Известные проблемы и способы их решения

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

Неисправности редакторов

Если вам кажется, что один из редакторов работает неправильно, вам может помочь следующая последовательность действий:

  1. Нажмите Закрыть все в контекстном меню на заголовке любого редактора. Все редакторы будут закрыты;
  2. Нажмите Сбросить в контекстном меню на открытой перспективе в панели перспектив. Будет восстановлено стандартное расположение панелей, и они будут открыты заново.

Очистка проекта

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

  1. Нажмите Проект > Очистить...;
  2. Если вы хотите очистить только некоторые проекты (это быстрее):
    1. Снимите флажок Очистить все проекты;
    2. Установите флажки у тех проектов, которые хотите очистить;
  3. Нажмите Очистить;

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

Перезапуск 1C:EDT

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

Чтобы сделать это, нажмите Файл > Перезапустить.

Журнал ошибок для технической поддержки

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

1C:EDT

Чтобы сформировать этот файл для 1C:EDT:

  1. Откройте панель Журнал ошибок;
  2. Нажмите (Экспортировать журнал) в ее командной панели.

Этот же журнал ошибок содержится в .log-файле в вашей текущей рабочей области, в каталоге .metadata.

1C:EDT Start

Чтобы получить .log-файлы для 1C:EDT Start:

  1. Откройте настройки 1C:EDT Start;
  2. В строке Основные > Журнал приложения нажмите значок .

Дампы интерфейса командной строки 1C:EDT CLI

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

Дампы записываются в вашу текущую рабочую область в каталог .metadata. Они имеют имена:

1cedtcli-thread-dump.<pid>.<index>.txt
где:
  • <pid> — это идентификатор процесса;
  • index — это порядковый номер дампа (в интерактивном режиме один процесс может генерировать больше 1 дампа).
При записи дампов 1C:EDT отображает их полные имена в командной строке, а также записывает эти имена в журнал ошибок.

Если 1C:EDT «зависла»

Если 1C:EDT долгое время не реагирует на ваши действия и нет никаких видимых оповещений о том, что выполняется какое-то длительное действие, то можно считать, что 1C:EDT «зависла». В этом случае для расследования ошибок мы рекомендуем сразу, не дожидаясь ответа от разработчиков, снять дамп потоков и дамп памяти, чтобы передать их в службу технической поддержки.

Дамп потоков

Обычно для расследования «зависаний» хватает дампа потоков выполнения приложения. Чтобы снять дамп потоков, можно воспользоваться стандартной утилитой jstack, которая входит в состав Java Development Kit ( JDK). Для снятия дампа потоков необходимо выполнить в командной строке:

jstack -l 22668 > threaddump.txt

Здесь 22668 — это PID (process identifier) процесса javaw.exe. Можно узнать его через диспетчер задач (в зависимости от операционной системы).

Также получить PID можно из командной строки или используя терминал:

Windows 10

tasklist /fi "IMAGENAME eq javaw.exe"

Linux

ps aux | grep 1cedt

Как правило, требуется дамп процесса javaw.exe, но если файл конфигурации запуска 1C:EDT (1cedt.ini) не изменялся, то нужен дамп оригинального процесса 1cedt.exe.

Путь и имя файла выгрузки дампа в приведенном примере указан после символа «>». Если указано только название файла, то дамп сохранится в директории, из которой была запущена командная строка или терминал.

Если процесс выгрузки дампа прошел успешно, то никаких дополнительных сообщений не возникнет. А при возникновении проблем будет показано сообщение об ошибке. Например, если не найден PID, то будет выведено сообщение:
<PID>: no such process

Если выполнение предыдущей команды jstack -l приводит к сбою подключения, тогда необходимо запустить утилиту с флагом -F:

jstack -F 22668 > threaddump.txt

Полученный файл threaddump.txt (дамп потоков) необходимо передать в службу технической поддержки.

Важно: Утилиту jstack нужно запускать от имени того же пользователя, что и инспектируемое приложение.
Совет: Документация по утилите jstack находится здесь.
Дамп памяти

Чтобы снять дамп памяти, можно воспользоваться стандартной утилитой jmap, которая входит в состав Java Development Kit ( JDK). Для снятия дампа памяти необходимо выполнить в командной строке:

jmap -dump:format=b,file=memorydump.hprof 22668

Здесь 22668 это PID (process identifier) процесса javaw.exe. Можно узнать его через диспетчер задач (в зависимости от операционной системы).

Также получить PID можно из командной строки или используя терминал:

Windows 10

tasklist /fi "IMAGENAME eq javaw.exe"

Linux

ps aux | grep 1cedt 

Как правило, требуется дамп процесса javaw.exe, но если файл конфигурации запуска 1C:EDT (1cedt.ini) не изменялся, то нужен дамп оригинального процесса 1cedt.exe.

Путь и имя файла выгрузки дампа в приведенном примере указан в параметре «file=». Если указано только название файла, то дамп сохранится в каталоге, из которого была запущена командная строка или терминал.

Если процесс выгрузки дампа прошел успешно, то будет показано сообщение:
Heap dump file created
При возникновении проблем будет показано сообщение об ошибке. Например, если не найден PID, то будет выведено сообщение:
Exception in thread "main" java.io.IOException: no such process 

Если выполнение предыдущей команды jmap -dump приводит к сбою подключения, тогда необходимо запустить утилиту с флагом -F:

jmap -dump:format=b,file=memorydump.hprof -F 22668

Полученный файл memorydump.hprof (дамп памяти) необходимо передать в службу технической поддержки.

Совет: Документация по утилите jmap находится здесь.
Как закрыть «зависшую» 1C:EDT

Когда все необходимые дампы получены, можно закрыть 1C:EDT. Если интерактивно это сделать не получается, можно либо воспользоваться диспетчером задач (в зависимости от операционной системы), либо завершить процесс, выполнив в командной строке:

kill -f 22668

Здесь 22668 это PID (process identifier) процесса 1C:EDT.

Панель «Журнал ошибок»

Панель Журнал ошибок показывает все предупреждения и ошибки, записанные плагинами Eclipse в лог-файл. Этот лог-файл находится в каталоге .metadata рабочей области.

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

Открыть панель «Журнал ошибок»

Нажмите Окно > Показать панель > Другое… > Общие > Журнал ошибок в главном меню основного окна.

Условные обозначения
  • — информационное сообщение;
  • — предупреждение;
  • — ошибка.
Колонки
  • Сообщение — текст сообщения об ошибке, предупреждения или сообщения;
  • Плагин — плагин, в результате выполнения которого было сформировано сообщение;
  • Дата — дата и время формирования сообщения.
Клики мышью
  • Одиночный клик на заголовке колонки сортирует список по этой колонке. Если список уже отсортирован по этой колонке, то меняет направление сортировки;
  • Двойной клик на строке открывает диалог для просмотра детальной информации о событии.
Командная панель
  • (Экспортировать журнал) — экспортирует журнал ошибок в текстовый .log-файл;
  • (Импортировать журнал)импортирует журнал ошибок из текстового .log-файла;
  • (Очистить окно журнала)очищает панель Журнал ошибок. Основной .log-файл при этом не удаляется;
  • (Удалить журнал)удаляет основной .log-файл и очищает панель Журнал ошибок;
  • (Открыть журнал)открывает основной .log-файл в текстовом редакторе;
  • (Восстановить журнал)восстанавливает записи в панели Журнал ошибок из основного .log-файла;
  • (Показать меню)открывает выпадающее меню, в котором содержатся дополнительные команды для панели;
    • Группироватьподменю содержит следующие команды:
      • Сессиягруппирует записи по сессиям;
      • Плагингруппирует записи по плагинам;
      • Нетотменяет группировку записей;
    • Фильтры...открывает диалог, с помощью которого можно отобразить не все, а только некоторые сообщения. Доступен отбор по типу событий, сессиям. Также можно ограничить количество сообщений, отображаемых в панели, и максимальный размер лога;
    • Активировать при поступлении новых событийесли флажок установлен, то при поступлении нового события панель Журнал ошибок будет открываться поверх остальных панелей своей группы;
    • Показать текстовый фильтресли флажок установлен, над списком событий будет отображаться поле поиска;
Контекстное меню
  • Копироватькопирует в буфер обмена информацию о выбранном событии;
  • Очистить окно журналаочищает панель Журнал ошибок. Основной .log-файл при этом не удаляется;
  • Удалить журналудаляет основной .log-файл и очищает панель Журнал ошибок;
  • Открыть журналоткрывает основной .log-файл в текстовом редакторе;
  • Восстановить журналвосстанавливает записи в панели Журнал ошибок из основного .log-файла;
  • Экспортировать журналэкспортирует журнал ошибок в текстовый .log-файл;
  • Импортировать журналимпортирует журнал ошибок из текстового .log-файла;
  • Экспорт записи...экспортирует в .log-файл информацию о выбранном событии;
  • Детали событияоткрывает окно для просмотра детальной информации о событии;

Багтрекер 1C:EDT

Адрес багтрекера — https://github.com/1C-Company/1c-edt-issues

На этом багтрекере можно регистрировать ошибки и пожелания, относящиеся к 1C:EDT.

В интерфейсе 1C:EDT существует кнопка (Сообщить о проблеме), которая позволяет быстро опубликовать ошибку на багтрекере, не отвлекаясь от контекста работы.

Для использования этой фунции вам нужно иметь учетную запись на портале GitHub, а также токен доступа:

Эти данные нужно указать в настройках отправки отчета Окно > Параметры > Отчет об ошибках:

Назначение полей формы отчета об ошибках:
  • Заголовок — краткое описание того, что произошло;
  • Описание — опишите подробно по-шагам, что привело к некорректному поведению системы. В формате:
    • Что делали;
    • Что ожидали получить;
    • Что получили;
  • Приложить скриншот — стандартно флажок установлен и к отчету добавляется скриншот 1C:EDT выполненный в момент нажатия (Сообщить о проблеме);
  • Приложенные файлы — вы можете прикрепить к отчету любые файлы, которые помогут при анализе ошибки. Эти файлы будут направлены разработчикам напрямую и не будут прикреплены к задаче в GitHub.