Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Оповестить о выборе содержимым параметра ВыбраннаяСтрока

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

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

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

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


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