Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
12 дек 2024, 06:55

Метод Итог() у ДеревоЗначений.

Автор maxxi, 05 июл 2024, 13:16

0 Пользователей и 1 гость просматривают эту тему.

maxxi

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

Здесь строка ""ВаловаяПриб=дзПоКлиентам.Итог("ВаловаяПрибВсего")"" выдает ошибку: Метод объекта не обнаружен Итог().

Подскажите пожалуйста, в чем ошибка.
Спасибо.

LexaK

maxxi,
Для каждого СтрокаУровня1 Из ДеревоКлиентов.Строки Цикл
        Для Каждого СтрокаУровня2 Из СтрокаУровня1.Строки  Цикл
            //ВаловаяПриб=дзПоКлиентам.Итог("ВаловаяПрибВсего");                           
//вроде так надо: Строки.Итог(...), это при условии что:
//у вас евть колонка ВаловаяПрибВсего и она заполнена
СтрокаУровня2.ВаловаяПрибВсего = СтрокаУровня2.Строки.Итог("ВаловаяПрибВсего");
            Если ЗначениеЗаполнено(СтрокаУровня2.ДневнаяПродажа) Тогда
                СтрокаУровня2.ОстатокДня=СтрокаУровня2.Остаток/СтрокаУровня2.ДневнаяПродажа;
            Иначе
                СтрокаУровня2.ОстатокДня=СтрокаУровня2.Остаток;
            КонецЕсли;
        КонецЦикла;   
КонецЦикла

а еще лучше, сразу при заполнении дерева заполнять Итоговые суммы
иначе простыми циклами не обойтись, нужен рекурсивный обход
если помогло нажмите: Спасибо!

maxxi

LexaK,  Реквизит "ВаловаяПриб" находиться в подвале, как в фото.

antoneus

Ошибка в том, что Итог() - это не метод дерева значений, а метод коллекции строк дерева значений.

maxxi

antoneus, значить надо будет преобразовать для начало?

maxxi

на верху пищу:

ДеревоКлиентов=РеквизитФормыВЗначение("ВаловаяПриб");

.....

.....

а винизу:

ЗначениеВРеквизитФормы(ДеревоКлиентов,"ВаловаяПриб");

maxxi

antoneus, не подскажите как и что изменить?

LexaK

maxxi, а что это у вас вообще? обработка, отчет, ...
выкладывайте ее целиком. По тем фрагментам что вы привели, вообще ни чего не понятно .
если помогло нажмите: Спасибо!

antoneus

ВаловаяПриб=ДеревоКлиентов.Строки.Итог("ВаловаяПрибВсего");

maxxi

Всем большое спасибо, сделал через рекурсию.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск