Имя: Пароль:
1C
1С v8
пропадает значение локальной переменной при отладке и зависает
0 Игорь_МММ
 
25.01.22
13:32
в режиме отладки на определенной строке пропадают значения всех переменных, при дальнейшем шаге - зависание

код простой
начало:

Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("МатрицаПроизводства"        ,МатрицаПроизводства);
    Запрос.УстановитьПараметр("ПолуфабрикатыМаксЦепочка",ПолуфабрикатыМаксЦепочка);
    Запрос.УстановитьПараметр("ОбеспечениеЗаказов"         ,ОбеспечениеЗаказов);
    Запрос.УстановитьПараметр("ВремяНачала"                   ,ВремяНачала);
    
    #Область ВременныеТаблицы
    
    Запрос.Текст =
    "ВЫБРАТЬ
    | .... "
затем идет несколько секций
Запрос.Текст = Запрос.Текст + "
... "
при выполнении одной из них значения переменных пропадают (F2 не доступно) и при следующем шаге виснет

что бы это могло быть?
1 acht
 
25.01.22
13:35
Выделение памяти при конкатенации строк, например.
2 Игорь_МММ
 
25.01.22
13:59
сделал одну строку, получилось 704 строки, результат тот же ... ограничения нет на длину текста запроса?
3 DrShad
 
25.01.22
14:02
нету
4 Мимохожий Однако
 
25.01.22
14:03
"Запрос.Текст" замени на "ТексЗапроса". И посмотри еще раз, что слепилось
5 Dmitrii
 
гуру
25.01.22
14:23
(0) Версия платформы какая?
Может у вас это?

Отладка с использованием протокола HTTP.
Код ошибки: 10232642
Статус: Планируется исправление в будущих версиях Зарегистрирована: 12.07.2021.
Планируется исправить: "Технологическая платформа", версия 8.3.21.
Описание:
При отладке с использованием протокола HTTP при включенной отладке фоновых заданий или любых других предметов отладки, которые могут автоматически подключаться, при срабатывании точки останова, конфигуратор может постоянно переключать фокус на себя у любого активного окна.
Способ обхода: Использовать протокол отладки TCP или не использовать автоматическое подключение предметов отладки.
Дополнительная информация: Ошибка платформы.

Конфигуратор переключает фокус активного окна на код в другом предмете отладки (каком-нибудь фоновом задании, например) и соответственно F2 недоступно.
Поставить точку останова на следующей строке кода, после той, где происходит зависание и нажать f5 (продолжить отладку).
6 Игорь_МММ
 
25.01.22
14:29
(5) пробовал на двух 3.15.1830 и 3.18.1698
(4) ТекстЗапроса получаю, проблема возникает на Запрос.Текст = ТекстЗапроса
7 Dmitrii
 
гуру
25.01.22
14:42
Синтаксконтроль успешно проходит?
ТекстЗапроса можно скопипастив открыть в конструкторе запроса?
Может там какая-нибудь хитрая строка получается, которая проходит синтаксконтроль (т.к. это просто строка), но является ошибкой с точки зрения текста запроса. То есть ошибка в самом получившемся после конкатенации тексте запроса.
8 Игорь_МММ
 
25.01.22
14:54
(7) конструктор текст скушал
9 Dmitrii
 
гуру
25.01.22
15:03
У запроса нет менеджера временных таблиц, содержащего уже таблицы с такими же именами, которые используются в тексте этого запроса?
10 Dmitrii
 
гуру
25.01.22
15:07
+ к (9) Возможно дублирование имён временных таблиц или некорректное использование временных таблиц.
11 Игорь_МММ
 
25.01.22
15:19
(9) менеджера нет (10)разве все это проверяется не при выполнении запроса?
12 Dmitrii
 
гуру
25.01.22
15:55
(11) По идее да. Но если ты действительно исключил вариант (5) со сменой фокуса конфигуратора из-за ошибки платформы, испробовав другие версии, то особых вариантов не остаётся. Только какая-то ошибка, которая не выявляется синтаксконтролем и при компиляции, но вылетает при исполнении кода. Что ещё может происходить в строке Запрос.Текст = ТекстЗапроса? А что в следующей строке?
13 hhhh
 
25.01.22
16:16
может текст запроса содержит непечатные символы.
14 Игорь_МММ
 
25.01.22
16:32
Запрос сделал через конструктор скопировав в него текст запроса. Результат тот же: на этапе Запрос.Текст = ТекстЗапроса, пропадают переменные, на след. строке все виснет
15 Dmitrii
 
гуру
25.01.22
16:32
(13) В (8) автор утверждает, что получившийся текст запроса переносится через буфер обмена в конструктор запроса и тот успешно его проглатывает.
16 Dmitrii
 
гуру
25.01.22
16:40
Чтобы исключить проблему с текстом запроса, попробовать остановить отладку перед строчкой Запрос.Текст = ТекстЗапроса и установить в качестве значения переменной ТекстЗапроса какой-то простейший текст запроса типа "ВЫБРАТЬ 1 ИЗ Справочник.Организации". Посмотреть что будет. Если отладка пойдёт дальше, значит проблема именно в тексте запроса или объекте Запрос.
17 Dmitrii
 
гуру
25.01.22
16:43
Если отладка зависнет, значит проблема в платформе или в отладке. Пытаться менять протокол отладки, чистить кеш на компе и на сервере, менять версии платформы, возможно что-то ещё.
18 Игорь_МММ
 
25.01.22
21:29
решило проблему создание чистой базы с загрузкой dt из текущей. Текст запросу присваивается, но проблема где-то в данных (или в самом запросе) поскольку запрос и за пол-часа не отрабатывает

видимо в какой-то момент это находит отражение в кеше и начинаются глюки. Спасибо всем откликнувшимся