Имя: Пароль:
1C
1С v8
Динамический список - выделенные строки - суммирование содержимого строки..
0 densis
 
12.07.12
16:59
Это мое рещение -

пд = новый массив;
   кол = 0;
   сп = Новый СписокЗначений;
       сп.ЗагрузитьЗначения(элементы.Список.ВыделенныеСтроки);
   пд = сп.ВыгрузитьЗначения();
   Для каждого ст Из пд Цикл
            элементы.Список.ТекущаяСтрока = ст;
            кол = кол +      элементы.Список.ТекущиеДанные.КоличествоОстаток;    
   КонецЦикла;
   Элементы.Кол.Заголовок = кол;


Все работает но выделение пропадает. Есть более интересное решение?
1 gosn1ck
 
12.07.12
17:03
не понял, зачем из массива в список, а потом из списка в массив данные гонять?
выделение тут элементы.Список.ТекущаяСтрока = ст; слетает
2 densis
 
12.07.12
17:07
код рабочий я не прошу оптимизации или рассуждений по нему. Я ищу альтернативу. Спасибо что посмотрели)
3 densis
 
12.07.12
17:22
Альтернативы нет. ок.
4 SUA
 
12.07.12
17:32
Для каждого ст Из элементы.Список.ВыделенныеСтроки Цикл
           
            кол = кол +      ст.ТекущиеДанные.КоличествоОстаток;    
   КонецЦикла;
что-нить так не работает?
5 SanGvin
 
12.07.12
17:34
(0) Либо ты слишком умен, и я не понял твое кунг-фу, либо ты слишком глуп и это не кунг-фу вовсе...
6 LAAry
 
12.07.12
17:35
Ну если оптимизировать не надо... Загрузи список выделенных обратно.
7 densis
 
12.07.12
17:38
список выделенных не доступен для чтения!
8 densis
 
12.07.12
17:39
Для записи..сорри!
9 LAAry
 
12.07.12
17:40
ну ты же читаешь) продам СП:
ВыделенныеСтрокиТабличногоПоля (TableBoxSelectedRows)
Добавить (Add)
Синтаксис:

Добавить(<Строка>)
Параметры:

<Строка> (обязательный)

Строка табличного поля. Тип значения строки табличного поля приведен в описаниях расширений табличного поля у соответствующих объектов.
Описание:

Устанавливает выделение на указанную строку.

Доступность:

Толстый клиент.
Пример:

ЭлементыФормы.ТабличноеПоле.ВыделенныеСтроки.Добавить(ТекСтрока);
10 densis
 
12.07.12
17:45
(9) спасибо. Меня сам подход просто бесит. Поэтому и копать не стал. Теперь решение есть. Но как и все в нашей стране через жо))
11 Goggy
 
12.07.12
17:49
(10) ну это уже от исполнителя зависит...
12 densis
 
12.07.12
17:54
(10) В большинстве случаях да. Но когда речь о динамических списках или рекурсивных запросах и пр - только 1с с её убогим функционалом и быстродействием))
13 SanGvin
 
12.07.12
17:58
(10) вот так "по лучше"

   Рез = 0;
   Для каждого Эл из Элементы.Реквизит1.ВыделенныеСтроки Цикл
       Рез = Рез + Элементы.Реквизит1.ДанныеСтроки(Эл).КоличествоОстаток;
   КонецЦикла;
   Сообщить(Рез);
14 SanGvin
 
12.07.12
17:58
+(13) где Реквизит1 = динамический список
15 densis
 
12.07.12
18:01
(14) Из двух строк получит только одну!
16 densis
 
12.07.12
18:03
(14) Сорри не расмотрел. Проверяю.
17 densis
 
12.07.12
18:11
Работает! Спасибо!
18 SanGvin
 
12.07.12
18:12
всегда рад помочь :)