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