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

1. 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 132 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 132 25.11.21 13:20 Сейчас в теме
Другой случай - объявление переменной по значению из строки внутри кода, который будет использован методом Выполнить().
т.е. это некая строка с исполняемым кодом, сформированная в т.ч. и программно, которая будет выполнена. Все переменные и объекты, которые создавались внутри этого кода, инкапсулированы и будут уничтожены после завершения выполнения. Пример:

СтроковаяПеременная = "а = 2; а = а *2; Сообщить(а);";
Выполнить(СтроковаяПеременная );
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 58 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 Ответить
Оставьте свое сообщение
Вопросы с вознаграждением
Вакансии
Аналитик 1С
Санкт-Петербург
зарплата от 120 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

1С Программист по 1С:Управление торговлей
Кострома
зарплата от 100 000 руб. до 110 000 руб.
Полный день

Руководитель отдела разработки
Москва
зарплата от 200 000 руб. до 230 000 руб.
Полный день

Программист, аналитик, эксперт 1С
Санкт-Петербург
По совместительству