![]() |
|
Как отладить код, исполняемый командой Выполнить()? | ☑ | ||
---|---|---|---|---|
0
НоваяВолна
09.04.25
✎
18:41
|
Конфигурация УФ, клиент-серверная, на поддержке. В пользовательском режиме есть настройки, в которых можно в виде текста (строки) прописать код. Исполняется он через Выполнить(). Конечно код проходит проверку и если в нем находятся ошибки выдает сообщения об этом.
Задача отредактировать этот код. Но некоторые куски кода игнорируются без выдачи сообщения. Кто сталкивался с подобным? Как обойти ситуацию? Возможно ли в команде Выполнить() вызвать например Внешнею обработку, а в ней прописать код и поставить точки останова? |
|||
1
mikecool
09.04.25
✎
18:45
|
поставить точку останова в выполняющемся коде, ваш кеп
|
|||
2
НоваяВолна
09.04.25
✎
18:54
|
(1) Точку останова в коде выполняющемся после Выполнить("код для отладки")? Мне надо внутри "код для отладки"
Точка останова внутри текстовой строки |
|||
3
Franchiser
гуру
09.04.25
✎
18:59
|
(0) смотри как вы выполняется отладка обработчиков в КД 2.0.
|
|||
4
ads55
09.04.25
✎
19:00
|
(2) Раздели строку на составляющие.
Добавь видимость переменных. Поставь точку(и) останова. После правки/отладки соедини обратно в строку. Программирование - это не для ленивых, что бы там не говорили :) Ваш КЭП. |
|||
5
zenik
09.04.25
✎
19:06
|
Взять ИР, открыть консоль кода, вставить в нее код и отлаживать...
|
|||
6
НоваяВолна
09.04.25
✎
19:17
|
(5) Консоль кода это хорошо. Но как ее вызвать из тех мест, где стоит Выполнить()?
|
|||
7
ads55
09.04.25
✎
19:20
|
(6) поставь точки останова в модулях, которые вычисляются.
|
|||
8
НоваяВолна
09.04.25
✎
22:00
|
(3) Имеешь в виду «Универсальный обмен данными XML» из КД2.0?
(она позволяет динамически создавать внешнюю обработку с кодом обработчиков для их отладки, а также проводить грубый синтаксический контроль текста обработчика при загрузке правил обмена) |
|||
9
TormozIT
гуру
09.04.25
✎
21:38
|
(6) Обычно у динамического (динамически компилируемого) кода очень ограниченный список входящих параметров и вызываемых локальных методов, т.е. слабая связь с контекстом. Эти параметры зачастую можно сериализовать в точке останова, например через ирОбщий.От(). Далее в консоли кода открыть снимок этих параметров. Далее добавить динамический код.
Самая большая сложность обычно с вызовами локальных методов и обращениями к переменным модуля и реквизитам объекта. Если такого нет, то подготовка выполнения в консоли кода не будет сложной. Но если речь про "Конвертация данных", то там лучше использовать генерируемую внешнюю обработку для отладки. |
|||
10
ldo6
09.04.25
✎
22:00
|
(0) Никак не отладить. Создаешь обработку, пихаешь туда код свой и отладчиком смотришь. Инфостарт Тулз что-то сделал, какую-то отладку из режима предприятия.
|
|||
11
Garykom
гуру
09.04.25
✎
22:29
|
(0)
1. Добавь общий модуль, можно в расширении 2. Засунь туда экспортную процедуру со своим отлаживаемым кодом 3. Вызов этой процедуры воткни в пользовательском режиме в тексте скрипта: // создаем параметры СтруктураПараметровВход СтруктураПараметровВход = Новый Структура; СтруктураПараметровВход.Вставить("ТвойПараметр1", ТвойПараметр1); // ... СтруктураПараметровВыход = Новый Структура; ТвойМодуль.ТвояПроцедура(СтруктураПараметровВход, СтруктураПараметровВыход); // тут получаем параметры из СтруктураПараметровВыход4. Отлаживай Можно и на внешних обработках но это проблемы на сервере 1С |
|||
12
Garykom
гуру
09.04.25
✎
22:31
|
И советую взять за стандарт что если в конфе/базе есть некие "скрипты в настройках" - засовывай их в конфу/расширения
В настройках только вызывай из конфы/расширения |
|||
13
Bigbro
10.04.25
✎
06:15
|
(12) мудрость этого совета постигается только с годами опыта) и то не всеми))
|
|||
14
craxx
10.04.25
✎
06:43
|
(2) весь код для отладки суешь в экспортную процедуру общего модуля (с нужными входными параметрами), а в Выполнить только вызов этой процедуры.
|
|||
15
Mraque
10.04.25
✎
08:06
|
(0) В пользовательском режиме в настройках, где прописываете код, разместите вывод нужных переменных через Сообщить, например :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |