|
Кому принадлежит переменная?
Arbuz, АгентБезопаснойНацио, Eiffil123, TormozIT, Garykom, dmt, Fish, saradip, Толич, CepeLLlka, Бычье сердце, SleepyHead, shuhard, maxab72, Sserj, ДиВаH2, ildary, Гипервизор, программистище, Мультук, craxx, Галахад, denk32, Климов Сергей, piter3, ALCAPONA, anikev, d4rkmesa, nick86, ДобрыйПутник, Timon1405, Asmody, ldo6, okmail, BaZZiL, bmitkin, banco, rozer76, Caesar, igouranga, uno-group, Михаил_, zenon46, DeeK, Vostochnick, Dedal, RVN, Страждущий, obs191, kihawi, maxar, Джордж1, comp2006, trad, butterbean, pasha_d, Ненавижу 1С, crotnn, vis, 1ctube, roman383, Somebody, kir-g, Kigo_Kigo, orakool, Builder, katamoto, Mankubus, СвинТуз, formista2000, Ботаник Гарден Меран, Linemoon, Prog_man, youalex, H A D G E H O G s, Homer, KJlag, Irbis, АНДР, Amfiaray, Fregat, Злопчинский, ptiz, ttk, DimR_71, Ivanich, breezee, Федя Тяпкин, Philix, olegves, qsunnx, AntiBuh, ADirks, AlvlSpb, X Leshiy, zenik, vicof, RomanYS, reg0303, toypaul, kolts23381, Волшебник, ads55, Хряк, evorle145, backfire, mikecool, Vstur, 2S, Greeen, laeg, dva1c, kubik_live, глазковыколупыватель, Zamestas, крутойкодер, alex_kld_2024, takefive, El_Duke
| ☑ |
0
anikev
19.05.25
✎
12:05
|
Всем привет!
Имею простой кусок кода:
_Фамилия = "";
_Имя = "";
_Отчество = "";
ЗаявительКратко = удМСН.РазборФИО(КонтрагентОтветственноеЛицоИнициалы, _Фамилия, _Имя, _Отчество);
Если не смотреть реквизиты, я не могу понять что такое "ЗаявительКратко". Это может быть реквизит формы, реквизит объекта или вообще переменная. Может быть есть какой хоткей, при выборе которого мне конфигуратор подсказал бы, к чему относится? Может TurboConf умеет.
|
|
1
Fish
19.05.25
✎
12:13
|
(0) Есть такой хоткей. Ctrl+Shift+F
|
|
2
Мультук
гуру
19.05.25
✎
12:18
|
Нажать F12, если локальная переменная - перейдёт к месту её объявления.
|
|
3
Eiffil123
19.05.25
✎
12:36
|
в заголовке темы очень философский вопрос. Я бы сказал, что переменная принадлежит программисту, который ее придумал.
|
|
4
saradip
19.05.25
✎
12:37
|
(0) А что мешает поставить точку остановка перед строчкой ЗаявительКратко = удМСН.РазборФИО(КонтрагентОтветственноеЛицоИнициалы, _Фамилия, _Имя, _Отчество);
и посмотреть значение ЗаявительКратко?
|
|
5
СвинТуз
19.05.25
✎
12:40
|
"реквизит объекта"
эт вряд ли
|
|
6
Fish
19.05.25
✎
12:40
|
(4) Ему нужно не значение, а выяснить принадлежность.
|
|
7
Fish
19.05.25
✎
12:42
|
(5) В модуле объекта запросто.
|
|
8
olegves
19.05.25
✎
12:45
|
(7) в модуле формы может быть и реквизит формы
|
|
9
olegves
19.05.25
✎
12:46
|
(0) это фича 1С - привыкай
|
|
10
АгентБезопасной Нацио
19.05.25
✎
12:50
|
Турбоконф - умеет. При подсказке реквизит формы отмечается зеленым, переменная - красным.
В модуле - реквизит объекта соответсвенно.
|
|
11
maxab72
19.05.25
✎
13:02
|
(10) и простой конфигуратор, не турбированный, по разному подсвечивает при быстром выборе переменные модуля и объекта.
|
|
12
saradip
19.05.25
✎
13:03
|
(7) Ну окей.
Вот у человека вопрос:
реквизит формы
реквизит объекта
вообще переменная
Ставим точку, смотрим тип:
1. Неопределено = Значит НЕ реквизит формы и НЕ реквизит объекта, ответ = переменная
Иначе ищу через глобальный поиск.
Других способов не знаю.
Вот допустим в УТ 11.5.
Из банка чуваки прислали обработку для работы с их китайским умным терминалом, в которой есть строчка ОблачныеКассы = Новый Массив;
А у меня 1С ругается на ней, смотрю, а ОблачныеКассы это типовой общий модуль.
|
|
13
maxab72
19.05.25
✎
13:12
|
(12) "ОблачныеКассы это типовой общий модуль." Это новый стиль наименований в 1с. Имя модуль должно совпадать с именем подсистемы. То есть в конфигурации существует подсистема "ОблачныеКассы".
|
|
14
saradip
19.05.25
✎
13:21
|
(13) Существует, да, все верно.
Я имею ввиду, что динамическая переменная совпадает с именем общего модуля, и при попытке присвоить ей новый массив возникает ошибка.
Ну как бы, я об этом сообщил, но уже неделю ответа нет, видимо не интересно.
|
|
15
uno-group
19.05.25
✎
13:22
|
(12) А реквизита формы неопределенного типа не может быть?
|
|
16
saradip
19.05.25
✎
13:34
|
(15) Если произвольный?
Я его в любом случае, найду через поиск, какой бы он ни был
|
|
17
Fish
19.05.25
✎
14:04
|
(12) Пустое значение реквизита составного типа всегда неопределено.
|
|
18
программистище
19.05.25
✎
14:10
|
хм, человеку проще ветку создать, чтобы задать такой вопрос вместо того, чтобы несколько секунд потратить на понимание, однако
|
|
19
anikev
19.05.25
✎
14:17
|
(9) после VS Code не пришло принятие
|
|
20
anikev
19.05.25
✎
14:24
|
(12) Вот прям в точку! Чтобы найти принадлежность, нужно проанализировать всю конфигурацию, а внимание рассеивается. На сколько я понял из ответов - легкого пути нет. Сейчас у меня задача подсистему из УПП 1.3 перенести в самописанную с Управляемыми формами. Логику я там не знаю и мне приходится играть в Шерлока с поиском по имени, где находится эта переменная
|
|
21
anikev
19.05.25
✎
14:32
|
Вот, например, тут я вижу где находится переменная и какой тип.
https://prnt.sc/mfhIQzK2wib5
В конфигураторе мне бы такого функционала было бы тоже достаточно. Навел на переменную, а она показала, что, например, это реквизит формы и какой тип. Здорово же.
|
|
22
saradip
19.05.25
✎
14:51
|
(17) Да я не спорю на счет Неопределено, на то оно и Неопределено, что это может быть, что угодно...
Зацепились значит они)
Но прежде, чем использовать глобальный поиск, я всегда смотрю тип в отладчике, часто бывает, что он уже определен.
А так, я написал общий принцип, которым пользуюсь я.
Может у вас другой подход, откуда мне знать.
В 1С более быстрого способа поиска принадлежности я не знаю.
А на счет вопроса автора, если на него отвечать прямо, то хоткея универсального нет, только поиск
|
|
23
Гипервизор
19.05.25
✎
15:12
|
(12) 'Неопределено = Значит НЕ реквизит формы и НЕ реквизит объекта, ответ = переменная'
Почему такой вывод? А если реквизит составного типа?
|
|
24
Мультук
гуру
19.05.25
✎
15:25
|
(22)
Сделай два скриншота
-- реквизиты объекта
-- реквизиты формы
Приклей их скотчем на второй монитор и наслаждайся.
Все что не этих списках -- локальные переменные.
|
|
25
TormozIT
гуру
19.05.25
✎
17:06
|
(21) В ТурбоконфИРе есть подробнейшая инфа в панели описания текущего слова списка автодополнения
- параметр-приемник
- расчетный тип выражения
- объявленный тип выражения
- тип-приемник
- свойства первого уровня
- параметры метода
- тип-владелец
- место объявления
- минимальная версия платформы
- доступность по контекстам компиляции
- описание на естественном языке
и прочее.
Можно часть этого увидеть в видео по старой версии https://www.youtube.com/watch?v=6H8br133luM
|
|
26
Garykom
гуру
19.05.25
✎
15:41
|
(0) Только через отладку
Это может быть чем угодно и до этапа исполнения невозможно достоверно точно выяснить что это такое
|
|
27
Garykom
гуру
19.05.25
✎
15:44
|
(26)+ Я к тому что реквизиты формы можно программно добавлять
В итоге в одной и той же процедуре/функции это может быть сначала локальная переменная, а затем реквизит формы
|
|
28
TormozIT
гуру
19.05.25
✎
15:50
|
(27) Ошибаешься. К динамически добавленным реквизитам формы обращение только через родителя, т.е. прямое обращение (ф = <ИмяРеквизита>) запрещено.
|
|
29
saradip
19.05.25
✎
15:49
|
(24) Идея бомбовая, надо запатентовать
|
|
30
Garykom
гуру
19.05.25
✎
15:55
|
(28) ЗаявительКратко = ЭтотОбъект.ЗаявительКратко;
|
|
31
anikev
19.05.25
✎
16:01
|
(25) Шикарно, много информации - я уже опробовал)
Спасибо
|
|