Форум программистов, компьютерный форум, киберфорум
Наши страницы

1С: Собственные программы

Войти
Регистрация
Восстановить пароль
 
McGoblin
5 / 5 / 1
Регистрация: 18.05.2012
Сообщений: 54
#1

Переменное имя переменной в 1с - 1С

11.09.2017, 16:46. Просмотров 251. Ответов 5
Метки нет (Все метки)

Всем привет.
Такой вопрос, возможно ли создать переменное имя переменой
Допустим мне надо
Индекс1 = ФИндекс
и далее по адресу
Квартира1 = ФКвартира

Индекс2 = ПИндекс
и далее по адресу
Квартира2 = ПКвартира

Так вот как видно, разница в 1 символ там и там, можно ли этот символ как то присабачить переменной программно?

Хочу вынести заполнение в функцию
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.09.2017, 16:46
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Переменное имя переменной в 1с (1С):

переменное имя переменной - PHP
есть переменные вида: $a $b $c . . $n $a_page $b_page

Переменное имя таблицы - MS Access
Подскажите, как сохранить результаты запроса в таблице с именем = переменной (у меня - это название периода, который выбирается в начале...

Создание переменной, имя которой включает имя другой переменной - JavaScript
Вот пример кода var y = 1; var x = 'p' + y; eval( 'var' + x + '= 123' );к созданной переменной можно обращаться как к p1. А как быть...

Присвоить имя переменной такое же как имя файла - Matlab
x = cell(1,100); %подготовим массив для хранения данных for go = 1:10 %запись start(ai) %старт запускает триггер для записи...

Использовать значение строковой переменной как имя новой переменной - Python
Есть некий объект (ob = ) и строка (st ="name"). Так вот нужно, чтобы name стало именем объекта ob. То есть >>>name ...

Увеличение int переменной зная её имя в char переменной - C (СИ)
Здравствуйте, у меня есть 23 int переменных b1 b2 b3 .... b23 в неком скрипте я в зависимости от условия получаю цифру...

5
Dethmontt
Модератор
Эксперт 1С
2550 / 2358 / 384
Регистрация: 10.03.2011
Сообщений: 8,312
Записей в блоге: 1
Завершенные тесты: 1
11.09.2017, 16:52 #2
1C
1
2
сч=1;
Вычислить("Индекс"+сч+" = ФИндекс");
1
McGoblin
5 / 5 / 1
Регистрация: 18.05.2012
Сообщений: 54
11.09.2017, 16:59  [ТС] #3
Т.е. он будет считать
У меня код такой
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Строка.ФактическийАдрес = Сотрудник.ФАдрес ;
        Строка.Индекс = Сотрудник.ФИндекс ;
        Строка.Регион = Сотрудник.ФОбласть ;                     
        Строка.Район = Сотрудник.ФРайон ;
        Строка.Город = Сотрудник.ФГород ;
        Строка.НаселенныйПункт = Сотрудник.ФСело ;
        Строка.Улица = Сотрудник.ФУлица ;
        Строка.Дом = Сотрудник.ФДом ;
        Строка.Корпус = Сотрудник.ФКорпус ;
        Строка.Квартира = Сотрудник.ФКвартира ;
        
        Строка.АдресПрописки = Сотрудник.ПАдрес ;
        Строка.Индекс1 = Сотрудник.ПИндекс ;
        Строка.Регион1 = Сотрудник.ПОбласть ;
        Строка.Район1 = Сотрудник.ПРайон ;
        Строка.Город1 = Сотрудник.ПГород ;
        Строка.НаселенныйПункт1 = Сотрудник.ПСело ;
        Строка.Улица1 = Сотрудник.ПУлица ;
        Строка.Дом1 = Сотрудник.ПДом ;
        Строка.Корпус1 = Сотрудник.ПКорпус ;
        Строка.Квартира1 = Сотрудник.ПКвартира ;
Если я заменяю его вот так
1C
1
2
3
4
5
6
7
8
9
10
//Этот кусок будет заполнятся в ЕслиТоИначе
Тип адреса = "фактическийАдрес";
Сч = "1";
Префикс = "Ф"
//Этот кусок заполнился в ЕслиТоИначе
 
                Вычислить (Строка.+"ТипАдреса"+ = Сотрудник.+"Префикс"+Адрес) ;
        Вычислить (Строка.Индекс+"Сч"+ = Сотрудник.+"Префикс"+ФИндекс) ;
        //,,,
//И так далее по списку
То он у меня расчитает? и поставит все?
0
Dethmontt
Модератор
Эксперт 1С
2550 / 2358 / 384
Регистрация: 10.03.2011
Сообщений: 8,312
Записей в блоге: 1
Завершенные тесты: 1
11.09.2017, 17:48 #4
1C
1
2
3
4
5
6
7
8
Функция абракадабра(Строка, Сотрудник, Префикс, Постфикс)
 
    Строка["Индекс"+Постфикс] = Сотрудник[Префикс+"Индекс"];
 
КонецФункции
 
абракадабра(Строка, Сотрудник, "Ф", "1");
абракадабра(Строка, Сотрудник, "П", "2");
Добавлено через 54 секунды
Цитата Сообщение от McGoblin Посмотреть сообщение
Строка.Индекс
Это не переменная, а свойство какого-то объекта.

Не путайте понятия Переменная и Свойство
1
McGoblin
5 / 5 / 1
Регистрация: 18.05.2012
Сообщений: 54
11.09.2017, 21:25  [ТС] #5
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
А мне надо именно переменную.
Вот в PHP есть такое
PHP
1
2
3
4
function foo (){};
$A = "fo";
$A += "o";
$$A(); //вызов вункции Foo
Мне нужен подобный механизм

Свойство формы, вот мне и надо. что бы туда дописывался символ, что бы я в нужное свойство записал данные
из выборки запроса

Добавлено через 31 минуту
Решение подсказали на другом форуме.

Я оставлю это тут, вдруг кому то еще пригодится
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Переменная1=Неопределено;
    Переменная2=Неопределено;
    Переменная3=Неопределено;
    
    НазваниеПеременной="Переменная"+"1";
    Выполнить(НазваниеПеременной+"=22");
    
    НазваниеПеременной="Переменная"+"2";
    Выполнить(НазваниеПеременной+"=555");
    
    Выполнить("Переменная3=""СУперМегастрока""");
    
    Сообщить("Переменная1="+Переменная1);
    Сообщить("Переменная2="+Переменная2);
    Сообщить("Переменная3="+Переменная3);
Dethmontt, большое спасибо за отзывчивость и помощь.
0
wwall
186 / 181 / 10
Регистрация: 29.05.2014
Сообщений: 918
12.09.2017, 07:33 #6
Цитата Сообщение от McGoblin Посмотреть сообщение
Мне нужен подобный механизм
Параолимпиада по программированию на PHP - в другом разделе. Тут тупят на 1С.
И второе - если вам потребовалось менять AST программы - вы что-то не так придумали. 1С - это не лисп. Выполнить/Вычислить очень плохие операторы для начинающего.
1
12.09.2017, 07:33
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.09.2017, 07:33
Привет! Вот еще темы с ответами:

В переменной типа string хранится имя переменной, к которой нужно обратиться. Как это сделать? - C#
Пример: int speed = 10; string s = "speed"; MessageBox.Show(/*как-то обратиться к переменной, чье имя содержится в переменной...

Создать две переменных, ввести их с клавиатуры. Вывести строки: имя переменной - адрес переменной - значение п - C++
Создать две переменных, ввести их с клавиатуры. Вывести строки: имя переменной - адрес переменной - значение переменной.

Изменить имя переменной в зависимости от данных переменной - Python
Задача такова: пользователь вводит сроку и нужно создать объект с именем, как в строке. Пробовал сам, но одни ошибки. Подскажите,...

Возможно ли использовать имя переменной в виде переменной? - VB
Skazite, est' li vozmoznost ispolzovat imja peremennoi v vvide peremennoi? primer: New = 'FIFO' New&'_Value' = x Spasibo ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.