Получить имена глобальных переменных и их значения #559127


#0 by Злопчинский
Типа.. хочется.. ну чтобы было... где СЗ - список значений, представление = имя глобальной переменной, значение = значение глобальной переменной... . ???
#1 by andrewks
нафейхоя???
#2 by Kreont
Сомневаюсь что к таким данным есть возможность добраться. (Разве-что через брут-форс с перебором:)
#3 by andrewks
гипотетически можно gcomp'ом или comnaund.dll мдэшник распаковать, и пропарсить ГМ. вот только вопрос в силе
#4 by Злопчинский
потому что... это некошерный подход мне кажется...
#5 by andrewks
2. очень даже кошерный
#6 by МихаилМ
любой подход будет не кошерным тк глобальный контектс - строго ограниченный. например в v8 серверной его по сути нет (т.е. черех хдтс сериализацию). больное желание интепретаторщиков и студентов.
#7 by Злопчинский
8-ка пока не интересует, в ней не все можно сделать что в 7-ке...
#8 by Guk
Шаблон умеет получать значения глобальных переменных по имени переменной. хотя где это можно использовать, мне пока в голову не пришло...
#9 by andrewks
получить значения - не проблема, проблема - получить имена :)
#10 by Guk
нет, это выше моего понимания...
#11 by andrewks
аналогично
#12 by TeddySlaf
ну Телепат же получает их.
#13 by МихаилМ
если нужны конкретные имена перепменных, то в попытке- исключении  проверить, иначе моего извращенного мышления не хватает.
#14 by Torquader
Следующим вопросом будет - как добавить переменную в глобальный список. Собственно говоря, у задачи есть два способа решения - первый - разбор и самостоятельная интерпретация глобального модуля (надеюсь, что интересуют именно его переменные), то есть той его части, которая следует до определения первой функции или процедуры (что не так уж и сложно); второй способ - это отлавливать в памяти массив этих переменных, точнее, перехватывать в отладчике момент компиляции модуля и смотреть, в какую таблицу заглядывает 1С, когда ищет наличие какой-то переменной (есть мнение, что это будет упорядоченная таблица имён).
#15 by andrewks
телепат внедряется в 1совский процесс, или в область его памяти. вот это точно не кошерно, но приятно :)
#16 by Torquader
Но он получает данные о переменных из текста модуля, так как в конфигураторе всегда есть доступ к исходным кодам модулей (что в режиме предприятия никто не обещает).
#17 by Cthulhu
перепили код - засунь все глоб.переменные в СЗ по такому принципу.
#18 by Torquader
Попытка-исключение работает на стадии исполнения, а наличие переменной и ошибка о её неопределённости возникает на стадии компиляции.
#19 by Cthulhu
: но в попытку-исключение можно засунуть шаблон. ;)
#20 by Злопчинский
пока что ноль...
#21 by Torquader
Можно, только есть подозрение, что шаблон будет отрабатывать переменные как текст, если их нету. Хотя, подключить к 1С dll и через неё покопаться в памяти 1С - очень забавное занятие.
#22 by Cthulhu
: а что там "подозревать" - проверь и убедись. ;)
#23 by Torquader
Если есть переменная модуля, аналогичная глобальной или переменная в функции, то мы не увидим глобальной - вот в этом я точно уверен.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С