![]() |
![]() |
![]() |
|
|
| ||
Айрат_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 | |||
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) Понял |
|
Список тем форума |
Правила | Описание | Реклама на форуме | Волшебные решения | Поиск | Секции | Рейтинг | Книга знаний | Вики-миста (КЗ2) | Мобильная | Архив | Модераторы | Галерея | Регистрация | 18+ |