Имя: Пароль:
1C
1С v8
Получить данные строки динамического списка при активации строки
0 marshalbratsk
 
30.05.19
20:25
Добрый вечер, уважаемые. Такая задача:
Управляемые формы. Есть динамический список формируемый из произвольного запроса.
В каждой строке есть вес и объем. Мне необходимо при нажатии на строку чтобы отдельно в поле писалось сумма веса и объема выделенных строк. Код:


&НаКлиенте
Процедура РаспоряженияНаОтгрузкуПриАктивизацииСтроки(Элемент)
    ПересчитатьВыделенныеСтроки();
КонецПроцедуры

&НаКлиенте
Процедура ПересчитатьВыделенныеСтроки()
    
    СуммаОбъем = 0;
    СуммаВес = 0;
    //ТЗ = Получить_ТЗ_Из_ДинамическогоСписка();
    Для Каждого Строка Из Элементы.РаспоряженияНаОтгрузку.ВыделенныеСтроки Цикл
        СуммаВес = СуммаВес + Элементы.РаспоряженияНаОтгрузку.ДанныеСтроки(Строка).Вес;
        СуммаОбъем = СуммаОбъем + Элементы.РаспоряженияНаОтгрузку.ДанныеСтроки(Строка).Объем;
    КонецЦикла;
    
    СтрокаВесОбъем = "Вес: %вес%, объем: %объем%";
    СтрокаВесОбъем = СтрЗаменить(СтрокаВесОбъем, "%вес%", ""+СуммаВес);
    СтрокаВесОбъем = СтрЗаменить(СтрокаВесОбъем, "%объем%", ""+СуммаОбъем);
    
    Элементы.ВесОбъем.Заголовок = СтрокаВесОбъем;
    
КонецПроцедуры

Проблема заключается в том, что когда выбираешь строку, он проходит процедуру, записывает вес, объем, а потом сразу же опять переходит на процедуру ПриАктивацииСтроки будто выбрана первая строка и в итоге вообще не выбирает никакую строку.
Сначала делал процедуру ПересчитатьВыделенныеСтроки() на сервере, там он сразу когда я обращаюсь к данным строки переходил на ПриАктивацииСтроки и начинался бесконечный цикл.
В чём тут косяк и как его можно обойти?
1 jsmith82
 
30.05.19
20:40
поставь условие
2 hhhh
 
30.05.19
21:26
(0) ну,  всё правильно. Пересчет вызывает активизацию строки. А при активизации строки у вас вызывается пересчет. Поэтому должен быть бесконечный цикл.
3 marshalbratsk
 
30.05.19
21:28
(2) Это то всё понятно. Как получить данные строки не приводя к активации этой строки?
4 jsmith82
 
30.05.19
21:53
я попробовал. у меня работает без кипиша
правда, я пользовался только переменной Строка
но нашёл багофичу - при отжатии строки, она всё равно является выделенной