Имя: Пароль:
1C
1С v8
Оповестить о выборе содержимым параметра ВыбраннаяСтрока
0 Droning1C
 
15.04.19
16:37
Доброго времени суток! Ситуация такая- Необходимо ОповеститьОВыборе энную форму. оповещением в нее нужно передать значение каждого свойства выбранной в другой форме строки. в строке больше 80ти колонок. Вариант намба ван - в стуктуру закидывать долго и муторно ключик по каждой колоночке и значение. Например -

  СтруктураПодбора.Вставить("ХарактеристикаНоменклатуры",   ВыбраннаяСтрока.ХарактеристикаНоменклатуры);

И так больше 80ти строк.

Есть ли более умный способ как в цикле все эти значения быстро обработать и передать в нужную форму?  Тип параметры ВыбраннаяСтрока -  ДокументТабличнаяЧастьСтрока.ЗаказНаПроизводство.Детали.
1 Droning1C
 
15.04.19
16:53
в форме приёмнике буду использовать ЗаполнитьЗначениеСвойств(). Но как быть в источнике? чтобы не писать 80 строк. Подскажите плз
2 Droning1C
 
15.04.19
16:55
Может сделать ТЗ с одной строкой, но как в нее одним махом, без перечисления добавить все колонки исходной строки...
3 sqr4
 
15.04.19
16:58
Для каждого Колонка из ТЗ.Колонки Цикл
Структура.Вставить(Колонка.Имя, ТекСтрока[Колонка.Имя];
КонецЦикла;
4 Droning1C
 
15.04.19
16:59
(3) Да, но ведь  сначала надо в тз запихнуть как-то...
5 Droning1C
 
15.04.19
16:59
6 Droning1C
 
15.04.19
17:00
как свойства обойти в цикле?
7 sqr4
 
15.04.19
17:02
(4) что надо в тз запихнуть?
В твоем случае для каждого колонка из Детали Цикл
8 Droning1C
 
15.04.19
17:06
(7) ДАДАДА! Спасибо! Я понял!
9 Droning1C
 
15.04.19
17:06
СтруктураВозврата = Новый Структура;
    
    Для каждого Колонка из Элемент.Колонки Цикл
    СтруктураВозврата.Вставить(Колонка.Имя, ВыбраннаяСтрока[Колонка.Имя];
    КонецЦикла;
        
    ОповеститьОВыборе(СтруктураВозврата);
10 sqr4
 
15.04.19
17:09
(9) а ты в раменском работаешь
11 sqr4
 
15.04.19
17:09
?
12 Droning1C
 
15.04.19
17:11
(11) Почти, примерно километрах в 15ти от Раменского, а что?)
13 sqr4
 
15.04.19
17:12
(12) да тоже в Раменском живу, теперь
14 DrWatson
 
15.04.19
17:12
Колонки табличной части не меняются. Зачем формировать структуру по каждому элементу, если состав элементов известен заранее?
СтруктураВозврата = Новый Структура("Колонка1,Колонка2, ...");
ЗаполнитьЗначениеСвойств(СтруктураВозврата, ВыбраннаяСтрока);
15 Droning1C
 
15.04.19
17:13
(13) Класс! Неплохой город! Пиши на имейл, он вроде открыт. Я тут с рождения обитаю, так что, обращайся по любым вопросам, помогу. чем смогу)
16 Droning1C
 
15.04.19
17:14
(14) Колонки придется перечислять.
17 DrWatson
 
15.04.19
17:16
(16) Да. Но мне всегда казалось, что лучше перечислить колонки к коде, чем делать ненужный цикл.
18 Droning1C
 
15.04.19
17:18
(17) 80 штук? Ну хз, это будет выгодно с точки зрения производительности?
19 sqr4
 
15.04.19
17:19
(18) прирост в миллисекундах, ну всегда же можно замерить и проверить)
20 DrWatson
 
15.04.19
17:21
(18) Выполнить 80 команд вместо одной? Думаю, да. Разница, конечно же, на глаз не будет заметна - в милисекундах.
21 sqr4
 
15.04.19
17:23
(20) а код можно с помощь (9) получить)
22 sqr4
 
15.04.19
17:24
Колонки = "";
Для каждого Колонка из Элемент.Колонки Цикл
   Колонки = Колонки + "," + Колонка.Имя
    КонецЦикла;
23 Droning1C
 
15.04.19
17:25
(22) Тож имеет место быть) Но я тут щас на скорость пашу, завтра надо внедрять. Начальник у меня придирчивый в вопросах стандартов программирования, но к милисекундам не придирается.
24 Сияющий в темноте
 
15.04.19
23:37
Недостаток указания колонок в явном виде в коде проявляется,когда колонку переименуют.
25 Droning1C
 
16.04.19
10:30
(24) Кстати да! (9) Наверное этот вариант самый норм.
Основная теорема систематики: Новые системы плодят новые проблемы.