Имя: Пароль:
1C
1С v8
Получение выделенных строк
0 AlexeyID
 
12.11.17
20:45
Добрый день!

Мне нужно создать новый документ на основании выделенных пользователем строк в динамическом списке. С помощью гугла написал вот это:


&НаКлиенте
Процедура Комплектовать(Команда)
    // Вставить содержимое обработчика.
    
    ДанныеСтрок = Новый Соответствие;
    МассивСтрок = Элементы.Заявки.ВыделенныеСтроки;
    Для Каждого СтрокаТЧ Из МассивСтрок Цикл
        ДанныеСтрок.Вставить(СтрокаТЧ, Элементы.Заявки.ДанныеСтроки(СтрокаТЧ));
    КонецЦикла;
    
    Если ДанныеСтрок.Количество() > 0 Тогда
        КомплектоватьНаСервере(ДанныеСтрок);
    КонецЕсли;
    
КонецПроцедуры

&НаСервере
Процедура КомплектоватьНаСервере(ДанныеСтрок)
    
    ТЗ = Новый ТаблицаЗначений;
    ТЗ.Колонки.Добавить("Заявка");
    ТЗ.Колонки.Добавить("НоменклатураМастера");
    ТЗ.Колонки.Добавить("Смета");
    ТЗ.Колонки.Добавить("ЕдИзмМастера");
    ТЗ.Колонки.Добавить("КоличествоМастера");
    
    Для Каждого ДС Из ДанныеСтрок Цикл
        СтрокаТЗ = ТЗ.Добавить();
        ЗаполнитьЗначенияСвойств(СтрокаТЗ, ДС.Значение);  
    КонецЦикла;
    
КонецПроцедуры



Неужели нет более лаконичного способа?
1 Филиал-msk
 
12.11.17
20:49
Нет.
Ты же поделишься с нами, когда напишешь сам?
2 zladenuw
 
12.11.17
20:49
Так решение. Сделай лучше :)
3 AlexeyID
 
12.11.17
20:49
Да я и так туплю. Есть или нет?
4 Филиал-msk
 
12.11.17
20:50
(3) Есть. Стремись
5 AlexeyID
 
12.11.17
20:51
Спасибо за советы. Видимо сойдет
6 zladenuw
 
12.11.17
20:53
(5) http://v8.1c.ru/o7/201404list/index.htm
Может вот это на что то натолкнет.
А так работает, делает что надо. работает быстро.
Зачем себя мучат :)
7 AlexeyID
 
12.11.17
20:55
Давно не шкодил. Вспоминаю...
Спасибо
Закон Брукера: Даже маленькая практика стоит большой теории.