Многие разработчики сталкиваются с неприятным явлением при работе в Конфигуратор: когда вы закрываете окно запущенного клиента (пользовательского режима), сеанс отладки визуально не прекращается. В конфигураторе остается активной кнопка Продолжить отладку (F5), и запустить новый сеанс по этой кнопке становится невозможно. Давайте вместе разберем эту проблему, проанализируем причины ее возникновения и рассмотрим подробнее, как эффективно с ней бороться.
Если стандартная очистка кэша на сервере и перезапуск службы не помогли, а в консоли сервера 1С нет зависших сеансов, попробуем воспользоваться проверенными хитростями.
Рассмотрим два самых популярных и быстрых обходных пути, которые помогут вам сэкономить время и нервы:
Отладка — Завершить отладку. Также можно просто использовать горячую комбинацию Shift+F5. Это подает явную команду платформе на уничтожение сеанса отладки.Отладка, затем перейдите в пункт Подключение. В открывшемся окне найдите подключенный предмет отладки, сделайте по нему двойной щелчок мышью, после чего нажмите кнопку Закрыть. Отладчик принудительно обновит свое состояние, и запуск по клавише F5 снова станет доступен.Проанализируем ситуацию шире. Если базовые способы кажутся неудобными и хочется устранить проблему на корню, давайте выясним причину, почему платформа так себя ведет, и посмотрим на примеры других факторов, влияющих на процесс взаимодействия конфигуратора и клиента.
У многих разработчиков подобное зависание напрямую связано с подключенным хранилищем. Обычная очистка кэша сеансов сервера или локального кэша базы здесь зачастую бессильна. Разберем по шагам, что нужно сделать: в ряде случаев проблема решается полным пересозданием хранилища конфигурации и переподключением вашей информационной базы к новому хранилищу. Также эффективной мерой может оказаться глубокая ручная очистка локального кэша самого хранилища на вашем рабочем компьютере.
Если ваша база активно использует расширения, рассмотрим интересный и неочевидный обходной путь. При зависании сеанса отладчика достаточно просто пересохранить любое из подключенных к базе расширений. В момент сохранения Конфигуратор принудительно опрашивает все активные сеансы и сам выдает системное сообщение с предложением прекратить отладку. Это позволяет быстро "встряхнуть" среду разработки и вернуть конфигуратор в рабочее состояние.
Посмотрим на пример клиент-серверного взаимодействия. Конфигуратор и предмет отладки общаются по определенным TCP-портам (часто это стандартный диапазон портов 1500–1600). Если сетевое соединение между клиентом и сервером нестабильно, либо в процесс вмешивается агрессивный брандмауэр, антивирус или прокси-сервер, конфигуратор может просто не получить сетевой пакет данных о том, что окно «Предприятия» было закрыто пользователем. В итоге сеанс визуально пропадает с экрана, но процесс отладчика продолжает бесконечно ждать ответа. Проверьте настройки ваших средств сетевой защиты и убедитесь, что порты отладки не блокируются.
Бывают ситуации, когда сеанс отладки блокируется скрытым модальным окном. Например, это может быть окно подтверждения завершения работы, принятия изменений или какое-либо системное предупреждение, которое из-за ошибки отрисовки ушло на задний план. Разберем, как это выявить и исправить: откройте Диспетчер задач операционной системы Windows, найдите процесс запущенного конфигуратора, нажмите по нему правой кнопкой мыши и выберите команду На передний план (или Переключиться). Вытащив и закрыв скрытое окно, вы разблокируете отладчик.
Также обратите внимание на влияние сторонних утилит. Если вы используете программы, расширяющие функционал конфигуратора (например, TurboConf или аналогичные скрипты-помощники), они могут перехватывать фокус или системные команды управления окнами. Из-за этого штатное закрытие сеанса отладки отрабатывает некорректно. Попробуйте временно отключить такие утилиты и проверить поведение системы.
Проанализируем все собранные данные. Описанное поведение не является уникальным для какого-то одного конкретного релиза (например, 8.3.22.2239). В сообществах разработчиков 1С идентичные симптомы регулярно фиксируются на множестве других версий (включая ветки 8.3.15, старые версии 8.2 и другие). Зачастую это признается плавающим нерегулярным багом самой платформы 1С:Предприятие. Он может проявляться на базах PostgreSQL, на локальных файловых копиях, при наличии фоновых заданий и при их полном отсутствии.
Если радикальные методы (смена портов, пересоздание хранилища) не дают постоянного эффекта, мы рекомендуем завести привычку использовать горячие клавиши Shift+F5 для ручного завершения отладки из конфигуратора и дожидаться официальных исправлений в будущих релизах платформы.