Обращение к процедуре #597799


#0 by amadeus2010
Добрый день при написании следующего кода выявлена ошибка: {Документ.РеализацияТоваровУслуг}: Обращение к процедуре объекта как к функции (РассчитатьСуммуТабЧасти)    ИначеЕсли ЭтотОбъект.Контрагент.ВозвратнаяТара=Ложь Тогда ОбластьПодвал.Параметры.Цена= ОбработкаТабличныхЧастей.РассчитатьСуммуТабЧасти(ЭтотОбъект.Ссылка); Как ее можно устранить?
#0 by amadeus2010
Добрый день при написании следующего кода выявлена ошибка: {Документ.РеализацияТоваровУслуг}: Обращение к процедуре объекта как к функции (РассчитатьСуммуТабЧасти)    ИначеЕсли ЭтотОбъект.Контрагент.ВозвратнаяТара=Ложь Тогда ОбластьПодвал.Параметры.Цена= ОбработкаТабличныхЧастей.РассчитатьСуммуТабЧасти(ЭтотОбъект.Ссылка); Как ее можно устранить?
#1 by andrewks
а что непонятно в сообщении об ошибке?
#2 by aleks-id
>>ЭтотОбъект.Контрагент.ВозвратнаяТара=Ложь я падаванов за такое ругаю
#3 by amadeus2010
сама ошибка понятна, только не могу понять как правильно написать этот участок кода чтобы не выходила эта ошибка
#4 by aleks-id
предположу что начинается код так:
#5 by le_
Чем процедура от функции отличается?
#6 by orefkov
К процедуре обращаются по разному. Начинающие одинэсники обычно обращаются "Многоуважаемая и почитаемая Процедура". Кодеры среднего уровня обращение к процедуре обычно начиниают со слов "Доброго времени суток, процедура". Опытные просто пишут - "эй ты".
#7 by Wobland
что делает РассчитатьСуммуТабЧасти и почему оно ничего не возвращает?
#8 by DexterMorgan
Если ЭтотОбъект.Контрагент.ВозвратнаяТара Тогда
#9 by andrewks
а ещё, говорят, что нас обманывают, и процедур не существует, а есть только функции!
#10 by DexterMorgan
Зачем все любят булево сравнивать с истиной?
#11 by orefkov
Закомментируй эту строчку.
#12 by andrewks
бугага. зачОт )
#13 by aleks-id
это ты у них спроси. я таких на собеседовании сразу отсеиваю.
#14 by DexterMorgan
ОбработкаТабличныхЧастей.РассчитатьСуммуТабЧасти(ЭтотОбъект.Ссылка); - это процедура она не возвращает значений, просто пишешь ОбработкаТабличныхЧастей.РассчитатьСуммуТабЧасти(ЭтотОбъект.Ссылка); И, о чуда, все посчитается! Хотя конечно не факт =(
#15 by Wobland
круче можно: НЕ ЭтотОбъект.Контрагент.ВозвратнаяТара=Ложь
#16 by amadeus2010
Если ЭтотОбъект.Контрагент.ВозвратнаяТара=Истина Тогда ОбластьПодвал.Параметры.Цена="Х";    ИначеЕсли ЭтотОбъект.Контрагент.ВозвратнаяТара=Ложь Тогда ОбластьПодвал.Параметры.Цена= ОбработкаТабличныхЧастей.РассчитатьСуммуТабЧасти(ЭтотОбъект.Ссылка);        КонецЕсли; Вот весь код. РассчитатьСуммуТабЧасти-это процедура которая считает цену товара.Мне надо присвоить параметру Цена значение из РассчитатьСуммуТабЧасти если условие ложь.
#17 by le_
НЕ (НЕ (НЕ (ЭтотОбъект.Контрагент.ВозвратнаяТара = Ложь)))
#18 by andrewks
ты выиграл дайм
#19 by aleks-id
один персонаж тебя переплюнул он написал НЕ ЭтотОбъект.Контрагент.ВозвратнаяТара<>Истина
#20 by DexterMorgan
да убери ты сравнение булево с истиной!!
#21 by aleks-id
ес! я угадал! )))))))
#22 by pumbaEO
При каждой печати будем цены считать - вот это круто.
#23 by orefkov
Потому что правильнее тогда было бы называть ЭтотОбъект.Контрагент.ЭтоВозвратнаяТара Если ЭтотОбъект.Контрагент.ЭтоВозвратнаяТара Тогда Если Не ЭтотОбъект.Контрагент.ЭтоВозвратнаяТара Тогда смотрелись бы гармонично. "Нененене Дэвид Блейн, нененене"
#24 by Wobland
#25 by DexterMorgan
Убил интригу
#26 by Wobland
да не, щас он будет ругаться на то, что переменная ТекСтрока не найдена
#27 by Feanor
у тебя навязчивые мысли? мб того, к врачу пора сходить? )))
#28 by hhhh
Если ЭтотОбъект.Контрагент.ЭтоВозвратнаяТара Тогда - это г.внокод, хоть и гармоничный. Приводит к аварийному завершению, если значение = Неопределено или значение = NULL. Надежнее писать особенно когда обрабатываем выборку из запроса. Там вообще легко словить NULL.
#29 by Feanor
как там окажется "Null" или "Неопределено", если, к примеру, это реквизит с типом "Булево"?
#30 by Ненавижу 1С
это уличная магия надежнее тогда вообще всюду проверять типы, но зачем?
#31 by aleks-id
под раздачу попал?
#32 by Feanor
да ладно, чудес в этом плане не бывает. Пример бы кодом лучше. Отнюдь. Но даже если бы и попал, то был бы тока щастлив, потому как ночальнег с бреднями в голове - это печаль, оно ведь не тока так может боком выйти ))
#33 by aleks-id
это всего лишь показатель - умеет ли кандидат работать с булевым
#34 by Ненавижу 1С
то у тебя или у меня, а то у него...
#35 by Feanor
этот показатель существует только в твоей голове
#36 by amadeus2010
ВЫводит цену товара и все работает.Спасибо всем за советы.Но ведь я не волшебник,я только начинаю свой путь на просторах 1с
#37 by aleks-id
мне копрокодеры типа тебя ни к чему
#38 by fisher
Нормальный показатель, если ищется кандидат с хорошим опытом. Опытный одинэсник никогда так не напишет. Ну а если просто ищется вменяемый чел на вырост, тогда да - не показатель.
#39 by aleks-id
это показатель профессионального программиста, ибо нас в институте били "-1 балл" за лабы, в которых были подобные выкидыши...
#40 by hhhh
допустим Контрагент - пустая ссылка или контрагент - группа. Тогда может и не булево быть.
#41 by aleks-id
исходя из - ведется печать из РТиУ. давай пример, когда там контрагент будет группой?
#42 by DexterMorgan
Никуя, лучше сделать проверку на ЗначениеЗаполнено(Контрагент) чем писать такую куйню как булево = Истина
#43 by DexterMorgan
А в запросе функция is null есть для этого
#44 by DexterMorgan
точнее isnull(,)
#45 by Feanor
абсолютно голословно. Чувствуешь разницу между пониманием типов и использованием этой конструкции в определенном месте? воще как-то строго похер на ваши институтские лабы. Воще ниразу не аргумент. для группы у тебя, очевдино, в этом случае будет исключение. для пустой ссылки проверь сам )) ты достоверно знаешь, что у него там только тип "Булево" в возможных типах реквизита?
#46 by DexterMorgan
Он типа имел ввиду что контрагент не заполнен
#47 by fisher
Чувствую. Только не будем на ровном месте высасывать из пальца гипотетические ситуации.
#48 by hhhh
ну оно надо? Когда мне их сортировать, где нужно и где не нужно? Я вообще принял для себя решение: писать = Истина. Тогда и не нужно задумываться. И будет единообразно везде.
#49 by Feanor
ну дак и глобальных умозаключений тогда не нада, предлагаю не быть однобитными. Тем более, что по идейным соображениям так пишет, а не потому, что он нуб
#50 by DexterMorgan
Поздравляю, хоть ты и не знал, но и есть гоунокодер xDDD
#51 by hhhh
а зачем лишнюю команду писать? Мне нужно проверить равен реквизит Истина или нет. Я и проверяю. А вы из-за какой-то гармоничности меня призываете еще лишнюю команду писать, проверять заполнено или не заполнено.
#52 by Feanor
Видимо, ты не видел в жизни качественного гоунокода. Потому как это невинная шалость в сравнении с отдельными тяжелыми случаями.
#53 by hhhh
ну я и не претендую на какой-то идеальный код.
#54 by DexterMorgan
Да ты ч0? А в ты был более категоричен, че случилось?
#55 by fisher
Я подразумевал явную проверку булево в однозначных ситуациях. Не в какой-то конкретной неоднозначной. В грамотном коде явное сравнение как раз и будет прямым указанием на неоднозначность типа значения. Это плохо.
#56 by hhhh
ну да, в это я перегнул палку. Просто, говорят, что ребят на собеседованиях срезают из-за подобной фигни, ну я возмутился слегка.
#57 by fisher
Если бы пришел распальцовщик, рассказывающий про многолетний опыт плотного кодинга и при этом повсеместно явно анализирующий булево - сразу бы пошел лесом. Потому как или звездит или ховнокодер.
#58 by Feanor
Самое интересное, что это на практике ну совершенно никак не мешает. А если нет практического критерия, то это холивар в чистом виде. Поскольку товарищ из свои внутренние переживания делает критерием для отбора, то это только его сугубо личные эротические переживания.
#59 by Reset
Мешает, имхо. Глаз спотыкается об избыточную констурукцию и на секунды/доли секунды затрудняет анализ кода. Хотя, конечно, это далеко не заглавная беда.
#60 by Feanor
Имхо совершенно без разницы, лично мне анализ кода совершенно не затрудняет. Проблема высосана из пальца, ну или из оценок за лабы в институте.
#61 by amadeus2010
Документ.РеализацияТоваровУслуг}: Поле объекта не обнаружено (ЦенаПет)    ОбластьПодвал.Параметры.ЦенаПет=?(Контрагент.ВозвратнаяТара, "Х", 8.4-(8.4*ЗапросСкидки.ЦенаПет)); Подскажите в чем заключается ошибка пожалуйста?
#62 by Wobland
ты не поверишь...
#63 by Wobland
есть такой параметр у тебя в макете?
#64 by amadeus2010
да такой параметр в макете есть
#65 by Wobland
врёшь ведь
#66 by Wobland
пардон, значит, в запросе нету. вариантов немного ;)
#67 by Feanor
мб и в запросе нет такого поля )
#68 by Wobland
ЗапросСкидки - это запрос? у запроса нет полей, они есть у выборки, к примеру
#69 by Feanor
разве выборка не предоставляет поля, описанные в тексте запроса?
#70 by Wobland
есть такой тип - Запрос. и есть тип Выборка..
#71 by amadeus2010
|СкидкиНаценкиНоменклатурыСрезПоследних.ПроцентСкидкиНаценки как Скидки Полный текст запроса и вывода данных из запроса.
#72 by Wobland
а запрос непуст?
#73 by Feanor
к чему этот пассаж? кэп? ))
#74 by Reset
и - разный код
#75 by Wobland
3-(ЗапросСкидки.Скидки*3) а это для зачем?
#76 by DexterMorgan
Ну и где твои ЗапросСкидки.ЦенаПет?
#77 by Wobland
а к чему было? ;)
#78 by Feanor
а к чему было?
#79 by fisher
На практике это обычно один из многих симптомов ховнокодера. На практике это обычно выглядит как Если Ст = Истина Тогда вместо Если ЗаявкаУтверждена Тогда
#80 by Wobland
пытался стелепатировать отсутствие Запрос.Выполнить.Выбрать
#81 by Reset
Зачем докапываешься? Абсолютно логичное предположение там.
#82 by Feanor
ну зачем же путать теплое с мягким. "Ст = Истина" вместо "ЗаявкаУтверждена" - явно гуанокод. А вот "ЗаявкаУтверждена = Истина" вместо "ЗаявкаУтверждена" - никакого криминала, имхо, нет. ага, уже дошло. Агрюсь уже на всё ))
#83 by Mort
Если Ст = Истина Тогда
#84 by fisher
Хорошего тоже ничего не вижу. Да и не встречал я людей, дающих вменяемые имена булевым и при этом юзающих явную проверку. А в ховнокоде - сколько угодно.
#85 by fisher
Пример несколько притянутый. Но я еще раз говорю, что я об очевидных случаях речь веду, а не о составных типах.
#86 by Feanor
Вот это гуанокод? нам утверждает, что резюме такого пейсателя он сразу в мусорку бросает
#87 by Wobland
а мне не нравится. к тому ж есть где-то у 1С некий документ с описанием стандартов или что-то в этом роде. согласно ему - сразу незачёт
#88 by Mort
OFF вообще второй параметр функции "свойство" считаю ущербным.
#89 by Feanor
ну да, ну да :) это кусок из типовой УПП, примерно то же самое есть и в БСП последней версии чем же он Вам не угодил, батенька? ))
#90 by Wobland
да в типовых чего только нет, их же тоже люди делают ;)
#91 by Feanor
ну да, но некоторые с особенной тщательностью блюдут каноны ))
#92 by Mort
Возвращаемые параметры это зло. Применяют их обычно, чтобы не раздувать некоторую область (например, чтоб не делать отдельные объекты-диалоги для ввода примитивных значений и т.п.). А тут он ни к селу ни к городу.
#93 by fisher
Третий? раз повторяю - я об очевидных случаях, а не о составных типах. В этом коде - спорный момент. Т.к. никаких гарантий что в свойстве именно булево - нету (оно может быть не инициализировано). Очевидные случаи - когда реквизит типа булево или флаг которым сам же ховнокодер управляет.
#94 by aleks-id
в мусорку летят резюме пейсателей атстатыщщ, которые в простейшем запросе выборки помеченных на удаление документов ставят и не надо мне тут лепить, что это спорный случай
#95 by fisher
А вот тут не надо. Если это было тестовое задание, то чел мог просто полениться переписывать код конструктора.
#96 by aleks-id
тут уже была ветка типа "что такое А=Б=С=Д;" многие просто не понимают с чем едят булево
#97 by aleks-id
была бумажка и ручка. и просьба написать запрос который выберет все помеченные на удаление документы РТиУ. или Контрагентов. не важно.
#98 by aleks-id
+ и ты не поверишь, 100% людей, написавших "= ИСТИНА", не смогли потом дописать запрос, чтобы он содержал левое соединение.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С