Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Пропадает значение переменной в отладчике 1С8

Пропадает значение переменной в отладчике 1С8
Я
   OpKc
 
04.06.19 - 07:14
Доброго времени суток!

8.3.12.1714
режим совместимости 8.3.8
конфа Альфа-Авто
клиент-сервер

Столкнулся с такой проблемой:
во время пошагового выполнения кода отчёта и вызываемых из него процедур общих модулей рандомно может пропасть значение переменной Построитель (в которой хранится ПостроительОтчета). Выражается это "пропадание" в том, что при выборе пункта "Вычислить выражение" в открывшемся окне в колонках "Значение" и "Тип" пусто.
Если при этом шагнуть дальше - предмет отладки виснет. Попытка шагнуть на следующую строчку ничего не даёт, как будто отладка прекращается, по клавише F5 конфигуратор прдлагает перезапустить предмет отладки.
Через несколько минут всё "отвисает", вычисление выражения работает корректно, я могу продолжить пошаговое выполнение кода с той строки, на которой всё зависло.

Фоновые задания отключены, предмет отладки один, не отключается во время зависаний.
Кэш конфигурации чистил.
Режим отладки менял на http и обратно (http на сервере не включал, выбирал локальный сервер отладки).

Впервые с таким сталкиваюсь. Гугл не помогает.

Кусок кода, на котором ловлю зависания (закономерности не вижу, зависания на рандомных строках):

Попытка ПараметрыИзмерений = ОтчетОбъект.ПараметрыИзмеренийСтрок;
    Исключение Возврат; КонецПопытки;
    
    Попытка СтруктураСвязиСвойств = ОтчетОбъект.СтруктураСвязиСвойств;
    Исключение КонецПопытки;    
    Если ТипЗнч(СтруктураСвязиСвойств) <> Тип("Структура") Тогда
        СтруктураСвязиСвойств = Новый Структура();
    КонецЕсли;
    
    Попытка
        СтруктураНеСвязанныхПоказателей = ОтчетОбъект.СтруктураНеСвязанныхПоказателей;
    Исключение КонецПопытки;
    Если ТипЗнч(СтруктураНеСвязанныхПоказателей) <> Тип("Структура") Тогда
        СтруктураНеСвязанныхПоказателей = Новый Структура();
    КонецЕсли;
    
    Если Построитель = Неопределено Тогда
        Построитель = ОтчетОбъект.ПостроительОтчета;
    КонецЕсли;
    Построитель.ИзмеренияСтроки.Очистить();
    Построитель.ИзмеренияКолонки.Очистить();
    Построитель.Порядок.Очистить();
    ОтчетОбъект.ДополнительныеПоляОтчета.Очистить();
    
    Если Не Построитель.ВыводитьДетальныеЗаписи Тогда
        Построитель.ВыбранныеПоля.Очистить();
    КонецЕсли;
 
 
   OpKc
 
1 - 04.06.19 - 07:15
+ (0) "глюк" могу поймать не только на представленном куске кода. Скопипастил сюда просто для примера.
   OpKc
 
2 - 04.06.19 - 07:31
++(0) при возникновении этого "глюка" невозможно посмотреть не только значение переменной "Построитель", но и других переменных (локальных, глобальных).
   catena
 
3 - 04.06.19 - 07:37
э... Так всегда было в отладчике во время вычислений между строками.
   OpKc
 
4 - 04.06.19 - 07:54
(3) Правильно ли я понял мысль: когда я пытаюсь вычислить выражение "Построитель", конфигуратор рандомно вычисляет его либо за <1 сек. либо за >=5 мин. ?
   catena
 
5 - 04.06.19 - 08:01
(4)Когда вы пытаетесь вычислить выражение "Построитель", он так же вычисляет все его реквизиты, чтобы построить вам дерево в табле. А скорость вычисления может зависеть от разных факторов.
   OpKc
 
6 - 04.06.19 - 08:03
(5) Действительно, при попытке вычисления выражения выполняется какой-то ресурсоёмкий запрос к БД. Буду копать в эту сторону.
Спасибо за наводку!
   Cyberhawk
 
7 - 04.06.19 - 08:04
С какой-то свежей платформы вычисление в табло теперь фоновое, т.е. не блокирует интерфейс
   Cyberhawk
 
8 - 04.06.19 - 08:04
Равно как и показ коллекций (по F2) тоже теперь фоновый
   OpKc
 
9 - 04.06.19 - 08:12
(7)(8) да, про показ коллекций я заметил на больших ТЗ. Про построитель - не задумывался, что при вычислении выражения выполняется запрос к БД.

Собственно, и копать этот отчёт я начал с сообщений пользователей о том, что при некоторой комбинации настроек он формируется неприлично долго. Почему-то не сообразил, что это связано)

Спасибо всем ответившим.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.