Процедура с неопределенными по умолчанию параметрами #237778


#0 by bred
Я просто запарился с бубном плясать - ничего не получается: Есть после 1-го присваивания парам3 и парам4 становятся типа СпрТакойТо, после 2-го - соответственно оба же становятся типа СпрДругой... Что с этим делать - ума не приложу, м.б. я что то синтаксически неправильно оформляю?!?!? Подскажите, плз...
#1 by ТелепатБот
#2 by bred
ну хоть кто-нибудь.... ну хоть что нибудь...
#3 by asady
что ты хочешь? Если телепат не угадал... мы тем более.
#4 by bred
ну вообще то что "угадал" телебот не совсем имеет к сути моего вопроса, там возможные проблемы с какими внутренними механизмами передачи параметров, а не к определению пустых , битых и пр. ссылок...
#5 by Scooter
Я стараюсь параметрам процедуры ниче не присваивать, ввожу новую переменную
#6 by Defender aka LINN
Телепатирую: Вызов процедуры на вот это: не похож? Покажи вызов процедуры.
#7 by asady
#8 by simol
Я думаю в вызове процедуры ты в 3 и 4 параметре передаешь одну и туде переменную.
#9 by bred
ну что вы меня совсем за идиота держите??? :)
#10 by France
держат за идиота?  не больно? ))
#11 by simol
Все могут ошибаться, Дай сюда вызов процедуры и все преджествующие манипуляции с 3 и 4 переменными
#13 by bred
соответственно суть проблемы изложена выше...
#14 by Defender aka LINN
Кля. Покажи код, из которого ты вызываешь процедуру. Чует мое сердце, что мы с правы.
#15 by bred
я вам, товарисчи, еще раз повторяю, что когда параметры в эту процедуру передаются, проблем нет, проблемы возникают как раз когда они "неопределено"...
#16 by bred
присвания не происходит когда параметры заполнены...
#17 by megalodon
есть еще вариант, что есть глобальные переменные с теми же именами.
#18 by simol
"Когда непоределено", это можно понимать как то что ты передаешь в явном виде пуда переменные со значением Неопределено. Вставь наконец сюда вызов процедуры
#19 by asady
bred сделай одолжение запости вызов, не томи.
#20 by bred
проверял - нету :)
#21 by Defender aka LINN
Скописпастил процедуру, заменил только названия справочников. Все работает. Что-то тут не так.
#22 by bred
вообще, наверно стоило сразу отметить, что вышеуказанная процедура - обработчик события, которая при необходимости вызывается "руками", соответственно "ручного" вызова этой процедуры с неопределенными параметрами никогда не происходит
#23 by bred
а я сразу говорил, что что-то тут нечисто...
#24 by asady
упал..... лежу.....
#25 by megalodon
в качестве эксперимента наверное интересно, но практически сделай ка лучше процедуру, которую и вызывай или из обработчика, или руками, а параметры процедуры-обработчика трогать не надо.
#26 by simol
Интересно какого это события, что в нем два параметра могут не передаватся
#27 by DF_Slayer
А смысл вообще в чем? Насколько я понимаю, в параметрах обработчика события должны быть только значения а не ссылки.
#28 by simol
+ или ты добавиль в обравотчик два своих параметра?
#29 by bred
Уважаемый asady, не могли бы вы более подробно разъяснить Вашу реакцию?!?!
#30 by bred
да, именно это я и делаю, причем хочу подчеркнуть, что когда они все же передаются принудительно - все работает, вообще, честно признаюсь, что это не моя задумка, и в этом решении достаточно известной и уважаемой фирмы примеров подобного кода массы..
#31 by asady
ты пытаешься переопределить вызов процедуры обработчика события у которой параметры вызова четко определены и похоже не отдаешь себе в этом отчет. Вот это вызвало мою реакцию.
#32 by DF_Slayer
А нафига все-таки?
#33 by simol
Что-то ты перемудрил....
#34 by bred
я вижу, вы, уважаемый, большой знаток того, что скрыто за ""четко определенными" механизмами платформы, поясните мне, пожалуйста, почему таким же образом "расширенные" обработчики собитий вполне адекватно обрабатывают?
#35 by RomaH
разве нельзя написать так: Процедура ПередОткрытием(Отказ = Неопределено, СтандартнаяОбработка = неопределено) КонецПроцедуры и повесить эту процедуру не только на событие, но и на кнопку ?
#36 by bred
я согласен с Вами, что вариант не самый прозрачный, но я работаю с типовой конфигурацией, и разворачивать всю логику работы достаточно обширного механизма "с нуля" из-за небольших проблем с парочкой параметров выйдет себе прилично дороже.... Хотя с этим впролне можно спорить :)
#37 by asady
потому что параметры процедуры - передаются через стек. поэтому при добавлении твоих доп.параметров штатный вызов обработчика (без твоих параметров) проходит без ошибок - просто в стеке нет этих параметров.
#38 by bred
А вообще, неужени ни у кого не возникало желания вызывать программно хорошо написанные обработчики событий?
#39 by simol
Переименуй переменные
#40 by simol
Проверил, действительно есть такое дело, если в обработчике. Глюк это.....
#41 by asady
можно написать так. Но при этом надо понимать в чем здесь разница - как будет работать вызов в этих случаях. Эти два варианта есть совсем не одно и то же.
#42 by asady
пойми ты обращаешься к переменной, которая не существует! (в случае штатного вызова обработчика)
#43 by RomaH
и как изменится вызов обработчика события "ПередОткрытием" ?
#44 by asady
в твоем случае никак - изменится вызов без параметров - ПередОткрытием в стеке в этом случае ничего не будет!
#45 by asady
->
#46 by bred
пожалуй вынужден с Вами согласиться, но непонятной остается 1 вещь: когда я обходился 1 "добавочным" параметром - все отрабатывало шоколадно... а когда добавил второй... ну дальше Вы в курсе...
#47 by bred
+я хочу сказать, а что, если передавать структуру, если с 1м параметром "катит"...
#48 by asady
тут надо просто подумать откуда берутся переменные парам3 и парам4 в случае штатного вызова. ИМХО в этом случае платформа генерит локальные переменные процедуры с теми же именами и инициализирует их заданными зхначениями. при выходе из процедуры эти переменные должны убиваться.
#49 by asady
+ вот если у тебя есть еще и глобальные переменные с такими же названиями - тут возможны глюки.
#50 by DF_Slayer
У меня тоже программа по заполнению массива работала нормально с 10 элементами, проблемы возникли когда их больше, так как значения записывались в ту область памяти где была загружена сама прога :)
#51 by DSS
вообще бред какой то. Я бы написал свою процедуру и вызывал бы ее из данного обработчика событий или вручную, если необходимо.
#52 by bred
странные же вы люди, считаете, что то, что вы не привыкли делать - это глупо... я согласен, что писать абсолютно прозрачный код - это хорошо, но если есть конкретная задача, конкретное время и конкретный универсальный работающий код, то вполне есстественное желание решить свою конкретную задачу за минимальное время и внося минимальные коррективы...
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

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