как программно создать переменную? #652634


#0 by Stim
Передаю в функцию текст выполняемого кода для выражения Вычислить(текстКода) И значения переменных для этого кода в структуре:
#1 by samozvanec
в тексте кода обращаться СтруктураЗначенийПолей.Ссылка, не?
#2 by Reset
Никак. "Глобальную" сделай.
#3 by ОбычныйЧеловек
В "текстКода" используй свою "СтруктураЗначенийПолей" - в чем проблема то?
#4 by samozvanec
можно еще типатого: Для Каждого КлючИЗначение Из СтруктураЗначенийПолей Цикл
#5 by Reset
Если значения "переменных" нужны только в процессе "вычислить", присоединяюсь к
#6 by Reset
не получится
#7 by samozvanec
+ если не сработает, можно скомпоновать текст сначала с объявлением переменных и к нему прилепить текстКода
#8 by Reset
Хотя вот так можно, без Перем: Структура.Ключ+"="+Структура.Значение+";" ;)
#9 by samozvanec
эх понедельник... не объявлять надо, а присваивать значения типа Вычислить(КлючИЗначение.Ключ + " = " + КлючИЗначение.Значение + ";");
#10 by Reset
значение придется транслировать в литерал или выражение при этом (если ссылка к примеру)
#11 by Stim
хм. походу никак не получится. я делаю универс функцию для вычисляемых полей СКД. Чтобы можно было отправить текст кода, значения полей в структуре.. но поля можно указывать только непосредственно в параметрах функции, иначе они не передадутся. а в выражении нельзя использовать конструкции типа Новый Структура
#12 by Reset
имхо, он того не стоит. Вполне удобно использовать что-то вроде Параметры=СтруктураЗначенийПолей; Сообщить(Параметры.Имя);
#13 by Reset
:)
#14 by НЕА123
как вариант. если форма, то создавать реквизиты формы.
#15 by Stim
не форма, а вычисляемое поле СКД и общий модуль
#16 by Reset
Вообще любое значение придется транслировать :-( Определять тип и писать соответсвенно. Для Cтроки "="""+значение+""""; При этом заменять кавычки внутри значения на двойные, ПС на ПС+"|", и тп. Для коллекций вообще блок кода. Короче точно НЕ стоит оно того ;)
#17 by Stim
мда.. вобщем сделал, совсем универсальной сделать не получилось, зато получилось сделать универсальную для вывода строк ТЧ в одну колонку СКД. вычисляемое поле: Модуль:
#18 by stonewolf
Как-то так: Выполнить(Ключ+"=Структура["""+Ключ+"""];");
#19 by Aprobator
вот реально не вижу в чем проблема. Ну так объяви. Главное чтоб потом имя переменной было использовано в текстКода.
#20 by Fragster
у меня есть велосипед, в котором произвольные условия можно задавать через "отбор" СКД. там есть функция типа: в Значение - в итоге передается строка вида "Документ.Контрагент", "Регистр.Сумма" и т.п.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С