Имя: Пароль:
1C
 
Номер строки в скрипте
0 XenoneX
 
02.11.23
15:03
Может показаться странным, но нет никакой возможности получить номер строки и наименование текущего модуля, в котором написан код?
Т.е. я, например, пишу код в модуле формы "ПростаяФорма". Чтобы при вызове функции, допустим, ПолучитьНомерСтроки() функция отдавала номер строки, в котором она была записана?
Ну или на худой конец, просто название модуля, в котором она была вызвана, что-то типа того.
1 Волшебник
 
02.11.23
15:05
Можно ВызватьИсключение
и в блоке Исключение вызвать ОписаниеОшибки(), там будет имя модуля и номер строки

а ещё лучше ИнформацияОбОшибке()

Свойства:

ИмяМодуля (ModuleName)
ИсходнаяСтрока (SourceLine)
НомерСтроки (LineNumber)
Описание (Description)
Причина (Cause)
2 XenoneX
 
02.11.23
15:28
(1)
То есть сначала пишем:

ПОПЫТКА
ВызватьИсключение
ИСКЛЮЧЕНИЕ
ИмяТекущегоМодуля = ИнформацияОбОшибке().ИмяМодуля
КОНЕЦПОПЫТКИ;

Громоздко, но вроде должно сработать.
3 shuhard
 
02.11.23
15:50
(0)[Может показаться странным]
не кажется
4 Asmody
 
02.11.23
15:52
(2) Можно обернуть это в процедуру, которая будет номер строки из стека вызовов вытаскивать. Вроде даже уже было что-то подобное тут.
5 Галахад
 
02.11.23
15:57
(0) Если не секрет, для чего это нужно?
6 XenoneX
 
02.11.23
16:34
(5) Если в кратце, у меня в конфе есть проверки в разных местах и служебные сообщения, которые при этих проверках появляются. И вот черт его знает, когда та или иная ошибка выскочила и где ее в коде искать, если вылетела. На поиск ее уходит очень много времени (конфа-то не моя). Вот и подумал, что если буду в будущем писать такие служебные сообщения, то в конце буду вставлять, откуда в коде это прилетело, чтобы было проще искать. Как-то так.
7 Галахад
 
02.11.23
16:43
(6) Понятно, спасибо. Где-то видел похожую методику, разработчик приколачивал к сообщению ГУИД.