использование Возврат в процедуре #626332


#0 by amadeus2010
Доброе утро подскажите пожалуйста как можно использовать Возврат в процедуре. ////////////////////////////////////////////////////// мне надо проверить если КодФилиала есть то вывод предупреждения и выход из процедуры. Вызов процедуры я указал в ПриЗаписи. Сейчас у меня выводится предупреждение и после нажатия ОК Код записывается даже если он есть уже в справочнике
#1 by Godofsin
#2 by RSBIR
Я так думаю проблема в вызове ПРОЦЕДУРЫ, а не ФУНКЦИИ
#3 by andrewks
#4 by Wobland
>мне надо проверить если КодФилиала есть то вывод предупреждения и выход из процедуры хорошо. а несли нету кода филиала?
#5 by Wobland
хотя, да. по смыслу это функция
#6 by Chai Nic
Функции с названием "ПроверитьЧтототам", возвращающие булевское значение, реально бесят. :) Что мешает именовать их "ЧтототамТакоеТо"? И не придется делать оговорок типа "истина-не уникален, ложь-уникален" с риском перепутать. В данном случае функция должна называться КодФилиалаУникален
#7 by Godofsin
Я просто его код скопировал, лень было править максимально =)
#8 by amadeus2010
в принципе важно не само название,а сам код внутри процедуры или функции
#9 by andrewks
подразумевается, что функция с именем Проверить/Check, возвращает true, если проверка проведена успешно, и false в противном случае. так что не надо тут гнать волну
#10 by Irbis
Я бы исходил, что любая процедура должна дорабатывать до конца.
#11 by HEKPOH
плюс пиццот! Сам всегда так делаю и не возникает непоняток что же истина, а что ложь)
#12 by amadeus2010
В итоге сделал так как советовали и заработало /////////////////////////////////////////////////////// всем спасибо, просто я неправильно разместил Отказ и Возврат изначально и плюс потом закоментировал Отказ
#13 by Wobland
ПриЗаписи, надеюсь, в модуле объекта находится?
#14 by Chai Nic
Что такое "проверка проведена успешно"? Что считать успехом, наличие уникальности или неуникальности в данном случае? :)
#15 by andrewks
по-русски читать умеем? ПроверитьУникальностьКодФилиала
#16 by Chai Nic
Эту вводную нужно отлить в граните, и читать 10 раз в день. Чтобы не забыть))
#17 by andrewks
знаешь анекдот про ГБ-старичка?
#18 by Chai Nic
Ага, дебет слева... Но на самом деле, функции не следует именовать как процедуры..
#19 by Wobland
пример: НайтиПоНаименованию
#20 by andrewks
позор Нуралиеву! :)
#21 by andrewks
открою страшную тайну: процедур не существует!
#22 by Chai Nic
Это вообще кошмар) Я считал и считаю, что функция должна быть функцией в математическом смысле.. и побочных эффектов у ней быть не должно, как и изменяемых формальных параметров. На это есть процедуры. ЗЫ Си - переносимый ассемблер, а не ЯВУ :)
#23 by Wobland
ты не путай математику с программизмом
#24 by Chai Nic
Вот из-за "непутающих" фобос-грунты и улетают в сторону моря)
#25 by Wobland
подпрограмма и отображение очень одинаковые вещи?
#26 by Chai Nic
Подпрограмма - это оформленная часть программы - конечный автомат, изменяющий состояние системы. А функция это действительно отображение множества входных параметров на множество выходных. В силу математических традиций выходной параметр один (он же возвращаемое значение), но ничто не мешает возвращать структуру(СЗ, ТЗ и т.п.) - язык позволяет. И путать процедуры и функции не следует. Ну а то, что 1с сама не очень-то продумала свою среду разработки, не означает то, что с неудачных деталей нужно брать пример..
#27 by Wobland
чорт! void main - это процедура, оказывается. не знал, спасибо
#28 by andrewks
я тебе ещё раз открою страшную тайну: процедура не соответствует этому описанию в ФПВУ, и компилируется как функция с пустым возвращаемым значением
#29 by andrewks
* ЯПВУ
#30 by andrewks
подпрограмма - это безусловный джамп на область памяти с кодом, затем безусловный джамп назад
#31 by amadeus2010
в модуль я поставил саму процедуру ПроверитьУникальность... Экспорт
#32 by Wobland
не стоит делать предупреждений в модулях объектов. может статься, что предупреждать будет некого
#33 by amadeus2010
дело в том что при размещении в модуль только ПриЗаписи выдается ошибка что такая процедура не обнаружена, поэтому я так и сделал, конечно можно в модуль поставить 2 процедуры ПроверитьУникальность и ПриЗаписи,только насколько правильный такой подход?
#34 by Wobland
пациент, о каком модуле речь?
#35 by Godofsin
Ты в модуль объекта запихал ПриЗаписи?!?
#36 by amadeus2010
я о модуле объекта т.е справочника. Нет я не запихнул ПриЗаписи я только спросил о правильности такого подхода, а так у меня ПроверитьУникальность в модуле объекта, а ПриЗаписи в модуле формы
#37 by Godofsin
Это неправильный подход =) ну и тоже учти
#38 by amadeus2010
т.е имеете ввиду что предупреждение вынести в ПриЗаписи и там сделать проверку
#39 by Godofsin
Да, только тогда делать надо функцией, смотри
#40 by Chai Nic
Мало ли что там Керниган с Ричи придумали для своего переносимого ассемблера..
#41 by Chai Nic
Какая разница, как оно выглядит внутри системы? Важно, как с этим инструментом работает прикладной программист. А глубоко внутри вообще нет ни процедур ни функций, есть подпрограммы и стек..
#42 by andrewks
есть ещё регистры, оперативная память, и много чего ещё
#43 by Chai Nic
Ну да, а еще транзисторы на кремниевой пластине.. речь не об этом
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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