Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

не работает оператор Выполнить("кусок кода")

не работает оператор Выполнить("кусок кода")
Я
   altaykniga
 
14.10.16 - 15:40
Доброй пятницы, уважаемые!
Первый раз пытаюсь использовать оператор Выполнить.
управляемые формы, модуль формы.

Выполнить(ИмяПеременной + "= 25");


т.е. ИмяПеременной = "сч"
т.е. хочу выполняю код "сч=25". не присваивается значение 25 для переменной "сч". Почему?

Если в начале процедуры объявить переменную "сч" явно, тогда все работает. Проблема в том, что в начале процедуры я не знаю ямиПеременной, поэтому объявить ее не могу.
 
 
   Мойдодыр
 
1 - 14.10.16 - 15:42
а как проверяешь что не работает?
   Мойдодыр
 
2 - 14.10.16 - 15:42
Делай лучшу структуру в параметрами
   altaykniga
 
3 - 14.10.16 - 15:44
(1) проверяю через отладчик.
   altaykniga
 
4 - 14.10.16 - 15:44
задача такая: в цикле получаю имяПеременной, вот этой переменной нужно присвоить некоторое значение
   Мойдодыр
 
5 - 14.10.16 - 15:44
у тебя пременная живет, пока код в выполнить выполняется
   altaykniga
 
6 - 14.10.16 - 15:45
(2) со структурой не понимаю как присваивать значения переменным по их строковым именам
   altaykniga
 
7 - 14.10.16 - 15:46
(5) а как продлить жизнь переменной ? ))
   Мойдодыр
 
8 - 14.10.16 - 15:47
Выполнить("Структура.Вставить(""" + ИмяПеременной + """, 25)");
   altaykniga
 
9 - 14.10.16 - 15:52
(8)
применительно к моей задаче...
мне нужно переменной ИмяПеременной присвоить значение "тДерево.Строки.Добавить()"

а затем выполнить "ИмяПеременной.Номенклатура = СтрТЗ.Номенклатура"
   Мойдодыр
 
10 - 14.10.16 - 15:54
будет
Струткруа.ИмяПеременной.Номенклаура
 
 Рекламное место пустует
   altaykniga
 
11 - 14.10.16 - 16:05
(10) Огромное спасибо, сделал так:

CтруктураПеременных.Вставить(ИмяПеременной, тДерево.Строки.Добавить());
            СтруктураПеременных[ИмяПеременной].Номенклатура = Стр.Номенклатура;


Как теперь передать данных из структуры в ДеревоЗначений на форме?
   Мойдодыр
 
12 - 14.10.16 - 16:13
Что значит передать в дерево на форме?
   altaykniga
 
13 - 14.10.16 - 16:27
(12)
создал СтруктуруПеременных. внес в нее одну строку, в этой строке присвоил Номенклатура = Стр.Номенклатура; код ниже:
CтруктураПеременных.Вставить(ИмяПеременной, тДерево.Строки.Добавить());
СтруктураПеременных[ИмяПеременной].Номенклатура = Стр.Номенклатура;


проверяю, как перенесется все это дело в ДеревоЗначений на форму: прерываю цикл и выполняю код:
ЗаполнитьЗначенияСвойств(тДерево,СтруктураПеременных);

где тДерево - это деревоЗначений на форме
   altaykniga
 
14 - 14.10.16 - 16:29
(12) в итоге на форме в дереве отображается моя одна строка.

И опять впал в ступор: как теперь добавить вложенную строку в мою строку дереваЗначений? ну если цикл не прерывать в модуле, а продолжить добавлять строки...
   Мойдодыр
 
15 - 14.10.16 - 16:33
СтруктураПеременных[ИмяПеременной].Строки.Добавить()
   altaykniga
 
16 - 14.10.16 - 17:29
(15) все получилось, спасибо! В итоге отказался от использования переменных из структуры, т.к. изначально это оказалось лишним... Ниже приведен код для преобразования ТЗ в Дерево (ТЗ предварительно подготовлена, добавлены Колонки с ИДстроки и ИДродителя)

&НаСервере
Процедура ЗаполнитьДерево(ТЗ)
    перем ИмяПеременной;
    тДерево = РеквизитФормыВЗначение("ДеревоЗначений1");
    Для Каждого Стр ИЗ ТЗ Цикл
        Если НЕ ЗначениеЗаполнено(Стр.ГУИД) Тогда
            СтрДерева = тДерево.Строки.Добавить();
            СтрДерева.Номенклатура = Стр.Номенклатура;
            СтрДерева.ИД = Стр.ИД;
        Иначе
            ПараметрыОтбора = Новый Структура("ИД",Стр.ГУИД);
            МасссивНайденныхСтрок = тДерево.Строки.НайтиСтроки(ПараметрыОтбора, Истина);
            Если МасссивНайденныхСтрок.Количество()=1 Тогда
                СтрДерева = МасссивНайденныхСтрок[0].Строки.Добавить();
                СтрДерева.Номенклатура = Стр.Номенклатура;
                СтрДерева.ИД = Стр.ИД;
            Иначе
                ОбщегоНазначенияКлиентСервер.СообщитьПользователю("найдено несколько строк или не найдено ни одной");
                возврат;
            КонецЕсли;
        КонецЕсли;
    КонецЦикла;
    ЗначениеВРеквизитФормы(тДерево, "ДеревоЗначений1");
КонецПроцедуры


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует