Как преобразовать строку в переменную?

1. Satoshi_Nakamoto 25.11.21 12:55 Сейчас в теме
Как преобразовать строку в переменную в 1С?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. Satoshi_Nakamoto 25.11.21 13:06 Сейчас в теме
(2)Не то, нужно строку сделать переменной.
4. anykey_vrn 25.11.21 13:10 Сейчас в теме
(3) Нужно пояснение, о чем именно идет речь.
5. ishelper 25.11.21 13:12 Сейчас в теме
(4)
о чем именно идет речь
Да ясно же все! Нужно постоянную строку сделать переменной... 1С.

P.S. Простым смертным всегда трудно понимать гениев. ;)
7. Satoshi_Nakamoto 25.11.21 13:16 Сейчас в теме
(5)Я программировал на Python такое там можно сделать, не знаю можно ли сделать в 1С, поэтому спрашиваю
8. acces969 344 25.11.21 13:17 Сейчас в теме
(7)Нельзя. Переменные должны быть объявлены. Ближайшее к вашему случаю, это обьявление в модуле объекта так:
перем МояПеременная;

а во время работы уже заполнять ее чем-либо
6. Satoshi_Nakamoto 25.11.21 13:15 Сейчас в теме
(4)Например есть переменная Месяц с типом стока значением "НовСтрока.Январь", и теперь нужно, чтобы это значение стало переменным и вела себя как переменная Месяц
Месяц = "НовСтрока." + Формат(лкСтр.ДатаПроизводства,"ДФ=ММММ");
Переменная(Месяц) = лкСтр.КоличествоОборот;
9. Satoshi_Nakamoto 25.11.21 13:18 Сейчас в теме
(6)Т.е. Это Переменная(Месяц) = лкСтр.КоличествоОборот; равноценна НовСтрока.Январь = лкСтр.КоличествоОборот;
13. user1461477 25.11.21 13:35 Сейчас в теме
(9)
Месяц = Новый Структура("Январь, Февраль, etc",ОстаткиЯнваря, ОстаткиФевраля, ОстаткиETC)
10. acces969 344 25.11.21 13:20 Сейчас в теме
Другой случай - объявление переменной по значению из строки внутри кода, который будет использован методом Выполнить().
т.е. это некая строка с исполняемым кодом, сформированная в т.ч. и программно, которая будет выполнена. Все переменные и объекты, которые создавались внутри этого кода, инкапсулированы и будут уничтожены после завершения выполнения. Пример:

СтроковаяПеременная = "а = 2; а = а *2; Сообщить(а);";
Выполнить(СтроковаяПеременная );
Angealtor; +1 Ответить
11. soft_wind 25.11.21 13:24 Сейчас в теме
(6) в вашем случае, при работе с таблицей (со строкой таблицы)
команды

НовСтрока.Январь = 100;
и
НовСтрока["Январь"] = 100;

одно и то-же

там просто, выше, ошибка была, надо было так
НовСтрока[Формат(лкСтр.Дата,"ДФ=ММММ")] = лкСтр.Количество;
12. Satoshi_Nakamoto 25.11.21 13:27 Сейчас в теме
(11)
НовСтрока[Формат(лкСтр.Дата,"ДФ=ММММ")] = лкСтр.Количество;

Если это одно и то же код не работает, а ведь так красиво написано
15. Good_Smile 25.11.21 13:40 Сейчас в теме
(12) а вы отладкой умеете пользоваться? у вас Формат(лкСтр.Дата,"ДФ=ММММ") что возвращает? и какой тип значения в этом реквизите и в реквизите Количество в таблице, где новую строку добавляете?
16. nomad_irk 72 25.11.21 13:45 Сейчас в теме
(15)оно возвращает значение в родительном падеже, вместо именительного :)
14. soft_wind 25.11.21 13:38 Сейчас в теме
(12) ааа, вот в этом и заключается отладка программы

наводящий вопрос:

- А что конкретно не работает?
18. Satoshi_Nakamoto 25.11.21 14:53 Сейчас в теме
(14)Все работает огромное спасибо
17. YanTsys 12 25.11.21 13:58 Сейчас в теме
(12)
В структуре нельзя через знак равно записывать значение в элемент пока вы его не добавили командой "вставить"
	КоличествоМесяца=новый Структура;
	Для НомерМесяца=1 по 12 Цикл
		КоличествоМесяца.Вставить(Формат(Дата(2000,НомерМесяца,1),"ДФ=ММММ"),10*НомерМесяца);
	КонецЦикла;
	Сообщить(КоличествоМесяца["Март"]);


Лучше воспользуйтесь не структурой а соответствием
	КоличествоМесяца=новый Соответствие;
	Для НомерМесяца=1 по 12 Цикл
		КоличествоМесяца[Формат(Дата(2000,НомерМесяца,1),"ДФ=ММММ")]=1000*НомерМесяца;
	КонецЦикла;
	Сообщить(КоличествоМесяца["Апрель"]);


Преимуществом соответствия перед структурой является то что именем элемента может быть не только строка но и например число,
и вы сможете аналогичный код использовать не только для месяцев но и для годов
user1461477; +1 Ответить
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот