Вход | Регистрация
 

Процедура или функция с указанным именем не определена (Итог)

Процедура или функция с указанным именем не определена (Итог)
Я
   Айрат_116
 
23.07.19 - 14:30
Здравствуйте. Скажите в чем ошибка? {Документ.ТН_ДефектнаяВедомость.МодульМенеджера(103,25)}: Процедура или функция с указанным именем не определена (Итог)
    об.Параметры.СуммаПР = <<?>>Итог(стрТЗПроводки.Сумма); (Проверка: Сервер)
    Для Каждого СТР Из Ссылка.Товары Цикл
        А = А + 1;
        об.Параметры.А     = "1." + Строка(А);
        об.Параметры.Номенклатура = СТР.Номенклатура;
        об.Параметры.ЕдиницаИзмерения = СТР.Номенклатура.ЕдиницаИзмерения;
        об.Параметры.Кол   = СТР.Количество;
        
        стрТЗПроводки = ТЗПроводки.Найти(СТР.Номенклатура, "Номенклатура");
        Если стрТЗПроводки = Неопределено Тогда
            об.Параметры.Сумма = 0;
        Иначе
            об.Параметры.Сумма = стрТЗПроводки.Сумма;
        КонецЕсли;
            об.Параметры.Цена = стрТЗПроводки.Сумма / СТР.Количество;
        ТабДок.Вывести(об);
    КонецЦикла;
    об  = Макет.ПолучитьОбласть("СуммаПР");
    
        об.Параметры.СуммаПР = Итог(стрТЗПроводки.Сумма);
 
 
   mistеr
 
1 - 23.07.19 - 14:32
ТЗПроводки.Итог("Сумма");
   Айрат_116
 
2 - 23.07.19 - 14:33
(1) Точно
   Айрат_116
 
3 - 23.07.19 - 14:34
(1) Спасибо=)
   Айрат_116
 
4 - 23.07.19 - 14:40
(1)Все равно ошибка(
   Айрат_116
 
5 - 23.07.19 - 14:41
{Документ.ТН_ДефектнаяВедомость.МодульМенеджера(103)}: Метод объекта не обнаружен (Итог)
    об.Параметры.СуммаПР = стрТЗПроводки.Итог("Сумма");
   piter3
 
6 - 23.07.19 - 14:41
Может стоит итог применять к тз,а к не строчке?
   mistеr
 
7 - 23.07.19 - 14:42
Дальше сам
   Cyberhawk
 
8 - 23.07.19 - 14:42
(6) Не, правильнее итог вообще не применять
   Айрат_116
 
9 - 23.07.19 - 14:45
(8) Надо применить. У меня таблица Номенклатура - Сумма а после таблицы Итоговая Сумма прописью должна быть
   Cyberhawk
 
10 - 23.07.19 - 14:46
(9) А, точно, уже не в цикле. Тогда да, используй Итог таблицы.
   Айрат_116
 
11 - 23.07.19 - 14:47
(10) Итог("стрТЗПроводки.Сумма"); Так?
   1Сергей
 
12 - 23.07.19 - 14:56
(11) ответ в (6)
   pasha_d
 
13 - 23.07.19 - 14:56
Отладкой глянь на тип значения вот это - стрТЗПроводки
   pasha_d
 
14 - 23.07.19 - 14:57
это скорее всего строка ТЗ, а не сама ТЗ
   1Сергей
 
15 - 23.07.19 - 14:58
Блин, даже (1) не смог правильно скопипастить?
   Фрэнки
 
16 - 23.07.19 - 14:59
он не копипастил
   Айрат_116
 
17 - 23.07.19 - 15:04
(12) Да. Вот так получилось)
   Айрат_116
 
18 - 23.07.19 - 15:04
ТЗПроводки.Итог("Сумма") вот так получилось
   Айрат_116
 
19 - 23.07.19 - 15:04
Всем спасибо=)
   Фрэнки
 
20 - 23.07.19 - 15:05
(18) но это не самый правильный способ, это если пытаться на будущее оценить, нужно ли делать так или нужно как-то сделать лучше
   Фрэнки
 
21 - 23.07.19 - 15:06
Ниже попробую разъяснить это свое утверждение
   1Сергей
 
22 - 23.07.19 - 15:07
(21) Давай-давай. Мне интересны твои доводы
   Айрат_116
 
23 - 23.07.19 - 15:10
(20) А почему это не самый правильный способ?
   Фрэнки
 
24 - 23.07.19 - 15:16
У нас в данном случае рассматривается вывод строк из Таблицы Значений в печатную форму (или в табличный документ).
Получается, что задана выборка из ТЗ и по завершению выборки надо отобразить подвал с суммой всех строк (умышленно избегаю слова "Итог")

Так вот, в общем случае Итог может не совпасть с той суммой, которая пойдет в подвал.
Я далее в примере кода лишние строки убрал, которые не нужны для этого примера.
---

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

об.Параметры.СуммаПР = СуммаСтрок ;

---
Вот обрати внимание на выполнение отбора по условию и можно придумать случаи условий, когда ТЗПроводки.Итог("Сумма") не будет равняться СуммаСтрок
   Айрат_116
 
25 - 23.07.19 - 15:26
(24) Щас попробую
   Айрат_116
 
26 - 23.07.19 - 15:30
(24) Спасибо большое сработало)
   Фрэнки
 
27 - 23.07.19 - 15:32
(26) подумать только, сам себе удивляюсь - с чего бы это оно сработало?! :-))))
   Айрат_116
 
28 - 23.07.19 - 15:32
(27) =)
   Фрэнки
 
29 - 23.07.19 - 15:38
(26) т.е. ты же видишь сейчас, что сейчас в твоем цикле выводится только Номенклатура из ТЧ Товары, а там в проводках может быть и что-то еще?
   Айрат_116
 
30 - 23.07.19 - 16:01
(29) Нет там только номенклатура
 
 Рекламное место пустует
   Фрэнки
 
31 - 23.07.19 - 16:06
(30) Повезло. Но исходно пример написан таким образом, что в ТЗПроводки могут быть попасть общие данные из всех ТЧ документа :
одна ТЧ - Товары , другая ТЧ - Услуги
Собственно, именно поэтому делается поиск методом Найти, а не шлепают абсолютно все строки проводок подряд
   1Сергей
 
32 - 23.07.19 - 16:09
(24) Ладно, уговорил. Так правильнее. И обращений к БД меньше :)
   Фрэнки
 
33 - 23.07.19 - 16:11
И это мы еще ничего не говорим о том, что в исходной ТЧ Товары могут повторятся элементы Номенклатура в разных строках
А метод ТЗПроводки.Найти(СТР.Номенклатура, "Номенклатура") каждый раз выдаст одинаково. Тогда Итог будет меньше.
   Айрат_116
 
34 - 23.07.19 - 16:16
(33) Сгруппировать тогда лучше?
   Айрат_116
 
35 - 23.07.19 - 16:19
(33) А почему меньше? СуммаСтрок + каждую сумму номенклатуры плюсует и итог. даже если одинаковые они, он же должен +
   Фрэнки
 
36 - 23.07.19 - 16:32
(34) А это на усмотрение разработчика. Вдруг по всем алгоритмам в твоем этом документе дублей номенклатуры уже не будет попадаться...

(35) Сумма строк же! Допустим, что у нас 10 строк в тч Товар с повторяющимся элементом и других нет - по проводкам Найти вернет всегда одну и ту же строку с одной и той же суммой, даже если там будет только одна такая подходящая проводка или будут разные проводки с разными суммами.
Итог нам вернет итоговую сумму записей из своих записей, а СуммаСтрок наберет свои других 10-ти сумм.
   Айрат_116
 
37 - 23.07.19 - 16:40
(36) Понял


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.