Имя: Пароль:
1C
 
Кому принадлежит переменная?
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) Шикарно, много информации - я уже опробовал)
Спасибо
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn