Вход | Регистрация
 
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 или кнопку "Обновить" в браузере.