Имя: Пароль:
1C
1C 7.7
v7: Как получить имя переменной?
0 DrRaptor
 
07.02.13
10:53
Есть:

Перем Докум


Как получить строку "Докум"? То есть как обратиться к наименованию переменной?
1 НафНаф
 
07.02.13
10:54
зачем?
2 mikecool
 
07.02.13
10:54
снова в нашем зале...
3 KRV
 
07.02.13
10:54
Поколение выросло..
4 andreymongol82
 
07.02.13
10:54
Никак. если нужно наименование переменной, то это уже не переменная
5 mikecool
 
07.02.13
10:55
массив
6 АЛьФ
 
07.02.13
10:55
Зачем?
7 Wobland
 
07.02.13
10:55
хмм.. интересно, откуда вопрос такой возник?
8 DrRaptor
 
07.02.13
10:56
Ну как-то преобразовать название в строку можно?
9 Godofsin
 
07.02.13
10:56
(8) чооо??
10 Wobland
 
07.02.13
10:56
(8) можно. НазваниеВСтроку="Докум"; на зачем?
11 Godofsin
 
07.02.13
10:57
СтрокаДокум = Строка(Докум);
12 бомболюк
 
07.02.13
10:57
Коллега назаводил кучу переменных типа ПродолжительностьРабочегоДня1 .. ПродолжительностьРабочегоДня31, а потом ему их стало лениво в коде везде писать. Список значений заведи и все.
13 mikecool
 
07.02.13
10:57
(10) блин, шаман... )
14 Godofsin
 
07.02.13
10:58
(10) Кто из нас угадал? =)
15 andreymongol82
 
07.02.13
10:58
(12) Китайский программист?
16 DrRaptor
 
07.02.13
10:59
Переменных много с абсолютно разными названиями (не 1, 2, 3!!!!)
Их названия в строковом виде передаются в процедуру для сложной обработки
17 mikecool
 
07.02.13
11:00
(16) почему низя передать сами переменные?
18 Wobland
 
07.02.13
11:00
(16) мощно. а что там с этими строками происходит?
19 Godofsin
 
07.02.13
11:00
ч0рт...
20 mikecool
 
07.02.13
11:00
+17 понапридумывают себе геморроев, в больницах хер протолкнешься...
21 Wobland
 
07.02.13
11:00
адреса в памяти ещё можно передавать
22 mikecool
 
07.02.13
11:01
(21) указатели?
24 АЛьФ
 
07.02.13
11:02
2(16) И?
25 mikecool
 
07.02.13
11:03
(24) не торопи, ТС нервничает...
26 пипец
 
07.02.13
11:03
курите шаблон
27 Wobland
 
07.02.13
11:03
(22) ага. плюс имя машины, чтоб значения по сети доставать ;)
28 DrRaptor
 
07.02.13
11:03
Вот одна из строк процедуры:

Документы = Спр.Основание.Получить(НаДату).ПолучитьАтрибут("Документы")


А есть еще куча других переменных

Так как передать Процедура(Документы), чтобы внутри процедуры появилось "Документы"?
29 mikecool
 
07.02.13
11:03
офф: и таки да - аякс не отрабатывает сообщение, если оно попадает в "рекламный" номер
30 andreymongol82
 
07.02.13
11:03
(22) По хорошему указатель на массив указателей функций...
31 mikecool
 
07.02.13
11:04
(28) Процедура("Документы")
32 mikecool
 
07.02.13
11:04
автор, юзай список значений
33 АЛьФ
 
07.02.13
11:05
2(25) Боюсь, что если его не подгонять, то мы тут и выходные проведем.
34 АЛьФ
 
07.02.13
11:05
2(28) Зачем?
35 DrRaptor
 
07.02.13
11:05
(31): а как из "Документы" получить Документы?
36 DJ Anthon
 
07.02.13
11:06
(16) парси мдшник гкомпом ))
37 НЕА123
 
07.02.13
11:06
ТСу надо (26)
38 mikecool
 
07.02.13
11:07
(35)
Список = СоздатьОбъект("СписокЗначений")
Список.Установить("Документы", Документы)
...
Список.Получить("Документы") - это вернет Документы
39 АЛьФ
 
07.02.13
11:07
2(37) Нет, т.к. внутри процедуры у него не будет переменной с именем "Документ", а будет только ее имя. ТСу надо непонятно что.
40 DrRaptor
 
07.02.13
11:10
(39) - я просто спросил как превратить наименование переменной в строку (ну или наоборот) и все. Если все настолько "профессионал", что такой фигни не знают, то извините меня дурака!
41 Wobland
 
07.02.13
11:11
(40) извиняем. надо непонятно что
42 ЧеловекДуши
 
07.02.13
11:12
Чёрт... а как бы не Пятницо, чудотворное уже в четверг начинает работать :)

(0)Поделись с Мистянами травой :)
43 DrRaptor
 
07.02.13
11:13
Что непонятно? один простейший вопрос и все!
У констант можно получить имя, у реквизитов можно, а почему у переменной нельзя.
44 andreymongol82
 
07.02.13
11:13
(40) Неа.
Такой фигни мы не знаем, и нам очень обидно, что такой фигни не знаем. Простим, если поделишься, чем ты укуриваешься?
45 andreymongol82
 
07.02.13
11:15
(43) Ыыыыыыыы, автор пишите еще!
46 bolder
 
07.02.13
11:15
(0) Внезапно :
Перем докум;
Вызватьоченьсложнуюпроцедуру("докум");
47 Wobland
 
07.02.13
11:19
(43) как работает компилятор, чуть-чуть представляешь?
48 АЛьФ
 
07.02.13
11:19
2(40) Тебя спросили: зачем? В результате ответа на этот вопрос будут разные советы.
49 АЛьФ
 
07.02.13
11:20
2(43) Зачем?
50 viktor_vv
 
07.02.13
11:22
Я так понял это ему что-то типа восьмерочного
Выполнить(ТекстКода) надо.
В 1C++ подойдет наверное Выполняемый модуль.
Еще как-то через Шаблон наверное можно изварится.
51 Wobland
 
07.02.13
11:22
(50) ему типа сам ТекстКода надо
52 DrRaptor
 
07.02.13
11:24
- Насыпьте мне 100 грам конфет.
- А зачем?
- Просто угощу друзей.
- А зачем их угощать?
- Чтобы порадовать.
- А зачем вам друзья? Вы знаете ка нужно есть конфеты? Вы вообще в курсе, что нужно снимать фантики? Вы сначала скажите что у вас за друзья, а потом я уже подберу то, что нужно. Вам вообще не конфеты нужны, а цемент.
53 andreymongol82
 
07.02.13
11:26
(52) Да-да. Цемент. Вам нужен цемент!
54 DJ Anthon
 
07.02.13
11:26
(39) да не, я угораю просто, он тут принципы программирования все рушит одним довольно-таки простым запросом ) а вообще иногда в отладке охота такую функцию...
55 Ёпрст
 
07.02.13
11:28
Вот и последствия потепления - грибники откопали свеженьких грибочков.
Эка автора торкает.
56 ЧеловекДуши
 
07.02.13
11:29
(49)Могу попытаться протелепатировать.
Ему лень теперь перебирать все те переменные, которые были тупо созданы быдло-годером. Ну типо: Перем1 Перем2 ... Перем2000 и т.д...
В зависимости от строк в запросе.
57 Ёпрст
 
07.02.13
11:30
Даже то что ему нужно, объяснить не может.
Аутор - выпий водки - это ослабляет эффект от употребления тяжелых синтетических наркотиков - мот тогда смогешь объяснить, чего тебе надо в итоге и зачем.
58 DJ Anthon
 
07.02.13
11:30
(56) или обфускатором
59 ЧеловекДуши
 
07.02.13
11:31
(52)Зря ты так, Альф не каждый раз снисходит до тупых вопросов в (0) :)
60 DJ Anthon
 
07.02.13
11:31
(57) да может, но не хочет, может, ему стыдно признаться в незнании чего-то
61 Ёпрст
 
07.02.13
11:31
(58) думаю, аутору рано еще об этом
62 Wobland
 
07.02.13
11:31
(52) а ты просишь 100 ампер яблок
63 DrRaptor
 
07.02.13
11:32
Ну пипец, ребята.
Вы тут все пря гении.
"спасибо" за "помощь"
64 DJ Anthon
 
07.02.13
11:32
(62) нет, ведро фазы
65 АЛьФ
 
07.02.13
11:33
2(52)
- Насыпьте мне 100 грам конфет.
- А зачем?
- В пакетик мне конфет насыпьте.
- Зачем?
- Так они в цветных фантиках.
- Зачем вам конфеты? Вы будете их есть сам или кого-то угощать?
- Ну вы тупые все тут! Я же говорю мне конфет надо насыпать!
66 пипец
 
07.02.13
11:33
// Присвоить значение переменной по ее имени.
// в глоб.модуль:
Функция Присвоить(Чему,Что) Экспорт
Чему = Что;
Возврат "";
КонецФункции
// варианты вызова:
// Шаблон("[Присвоить("+ИмяПеременной+",ПеременнаяСоЗначением)]");
// Шаблон("[Присвоить("+ИмяПеременной+","+ИмяПеременнойСоЗначением+")]");
// Пример: пусть у нас на форме есть 5 числовых реквизитов К1, К2, ... К5
Для н=1 по 5 Цикл
Шаблон("[Присвоить("+("К"+н)+","+(н)+")]");
КонецЦикла;
67 Ёпрст
 
07.02.13
11:35
(63) выплюнь кашу и объясни по человечьи, что тебе надо.
Если то, что в (0)
То так:

Перем Вася;
Процедура ЧтоТо(ИмяПеременной)
  Сообщить(ИмяПеременной);
КонецПроцедуры
Вася = "Лох";
ЧтоТо("Вася");

Если ты не видишь, что это бред, то см.(57)
68 Ёпрст
 
07.02.13
11:36
(66) это он не осилит , надо давать первоисточник
http://my1c-archive.narod.ru/knowhow/shablon.html
69 DCKiller
 
07.02.13
11:40
(0) Создай список с именами всех объявленных в модуле переменных, и бери их из него.
70 viktor_vv
 
07.02.13
11:41
Добавим пищи для размышлений :). Нужна правда 1С++.

Перем Докум ;

Функция ВыполнитьМодуль(ИмяПеременной)
   Модуль=СоздатьОбъект("ВыполняемыйМодуль");
   ТекстКода = ""+ИмяПеременной + " = 25 ;";
   
   Модуль.УстановитьМодуль(ТекстКода);
   
   Модуль.ПрисоединитьТекущийМодуль();
   Модуль.КомпилироватьМодуль();
   //Модуль.Конт=10;
   Модуль.ВыполнитьМодуль();    
   
КонецФункции    
//*******************************************
Процедура Сформировать()
   ВыполнитьМодуль("Докум");
   Сообщить(Докум);
КонецПроцедуры
71 Ёпрст
 
07.02.13
11:43
(70) можно и шаблоном, токма аутор просит не то.
72 ЧеловекДуши
 
07.02.13
11:43
(71)Автор жмот, он травой не делится :(
73 GROOVY
 
07.02.13
11:45
Можно же просто использовать функцию ИмяПеременнойВСтрокуВнутр()...
74 VladZ
 
07.02.13
11:47
(0) Гы-гы-гы...  Переменная нужна для хранения информации. Своего рода, банковская ячейка. Вот прикинь, ты положил в банковскую ячейку какие-то драгоценности. Приходишь в банк и говоришь: "Дайте мне доступ к ячейке, номер которой я не знаю". Как думаешь, что тебе ответят?
75 GLazNik
 
07.02.13
11:50
Чёрт. Хочу как ТС... не работать, а решать "глобальные" вопросы получения имени переменной. И за это получать деньги.
76 viktor_vv
 
07.02.13
11:51
(71) Ну да, в (50) предположил это.
Правда (70) ему больше подойдет, для реализации необузданной фантазии :).
Мне на халтуре досталось (70), там в справочнике, в реквизите неограниченной длины целые сочинения есть.
Зело доставляет при отладке :).
77 1Сергей
 
07.02.13
12:15
Днём ошибся. Пятница завтра