Перевожу код с обычных форм на управляемые. Бухгалтерия 2.0
Нужно: подсчитать суммы (БезНДС, НДС, СНДС) по выделенным строкам. В обычных формах все работает, типовая процедура табличной части: ПриАктивацииСтроки()
В управляемых формах все считает в первый раз корректно, но потом цикл срабатывает только по последней выделенной строке (дважды, хотя вызовов больше нигде нет). И суммы в результате - некорректны (по последней выделенной строке показывает в результате):
КодИтогПоВыделеннымСуммаБезНДС = 0; ИтогПоВыделеннымСуммаНДСДокумента = 0; ИтогПоВыделеннымСуммаДокумента = 0;
Вариант = Элементы.ТЧДокументы.ТекущиеДанные;
Если Вариант = Неопределено Тогда
Возврат;
КонецЕсли;
Для Каждого Строка Из Элементы.ТЧДокументы.ВыделенныеСтроки Цикл
НайденнаяСтрока = Элементы.ТЧДокументы.ДанныеСтроки(Строка);
Сообщить("До: " + ИтогПоВыделеннымСуммаБезНДС);
ИтогПоВыделеннымСуммаБезНДС = ИтогПоВыделеннымСуммаБезНДС + Формат(НайденнаяСтрока.СуммаБезНДС, "ЧЦ=10; ЧДЦ=2; ЧН=0,00");
ИтогПоВыделеннымСуммаНДСДокумента = ИтогПоВыделеннымСуммаНДСДокумента + ?(ЗначениеЗаполнено(НайденнаяСтрока.СуммаНДСДокумента), Формат(НайденнаяСтрока.СуммаНДСДокумента, "ЧЦ=10; ЧДЦ=2; ЧН=0,00"), 0);
ИтогПоВыделеннымСуммаДокумента = ИтогПоВыделеннымСуммаДокумента + Формат(НайденнаяСтрока.СуммаДокумента, "ЧЦ=10; ЧДЦ=2; ЧН=0,00");
Сообщить("После: " + ИтогПоВыделеннымСуммаБезНДС);
КонецЦикла;
Сообщить("------------------");
В результате почему-то происходит три вызова, где первый - правильный, а остальные непонятно откуда и зачем берутся:
РезультатДо: 0
После: 833,33
До: 833,33
После: 1 833,33
До: 1 833,33
После: 2 477,33 //прекрасно, то что нужно
------------------// Зачем считает непонятно что?
До: 0
После: 644
------------------// Зачем считает непонятно что?
До: 0
После: 644
------------------
Вопрос: как корректно просчитать суммы по выделенным строкам?
Сообщение отредактировал Vofka - 15.01.20, 17:28