Как запретить использование необъявленных переменных в 1С

  1. 9 г. назад

    Господа а подскажите как сделать так, чтобы во встроенном языке 1с можно было использовать только объявленные переменные?
    Например, у меня такой код в модуле формы

    перем пмТекущаяСтраница; //хранит страницу с которой осуществляется переход
    
    Процедура ПриОткрытии()
    	
    
    	мТекущаяСтраница = ЭлементыФормы.ПанельНастройки.ТекущаяСтраница; //сохраним текущую страницу панели, чтобы знать с какой страницы мы переходим
    
    КонецПроцедуры //ПриОткрытии()
    

    как сделать так, чтобы на этот код вываливалась ошибка

    Ответы: (7) (13)
  2. Разве что сказать кодерам "с сегодняшнего дня нельзя использовать необъявленные переменные, иначе руки сломаю"

  3. Легкость вхождения в 1с объясняется возможностью необъявления переменных.

  4. я чёто не понял

  5. объявление переменной в 1с происходит всегда
    инициализация не всегда
    тип вообще не указывается
    может, вопрос должен звучать как использовать объявление с инициализацией?

    Ответы: (5) (11)
  6. jsmith82 объявление переменной в 1с происходит всегда

    Ты переменную цикла всегда объявляешь?
    А отсутствие типизации - вообще зло.

  7. неявное объявление
    иначе придётся везде вешать перем как в дельфи

  8. ЗлобнийМальчик как сделать так, чтобы на этот код вываливалась ошибка

    а какая ошибка должна вываливаться на этот код?

    Ответы: (10)
  9. можно описать глоб.функцию типа ПолучитьЗначПерем(Перем), где проверять переменную на Неопределено

    Ответы: (9) (10)
  10. (8) и как это поможет?

  11. (7) мне бы хотелось, чтобы компилятор ругнулся на то, что переменная мТекущаяСтраница не определена. А он не ругается((( отвык я от одинэски конечно...
    (8) я бы хотел эту ошибку получить на этапе компиляции, а не в процессе выполнения

    Ответы: (30)
  12. jsmith82 объявление переменной в 1с происходит всегда
    инициализация не всегда
    тип вообще не указывается
    может, вопрос должен звучать как использовать объявление с инициализацией?

    это все слишком заумно. У меня запрос простенький - я хочу сделать так, чтобы компилятор ругался на использование переменных, которые до этого не были объявлены через ключевое слово Перем. Я так понимаю, что так нельзя. Печально((( даже в глупом VBA есть такая опция...

  13. Напиши парсер, хуле )

    Ответы: (13)
  14. 17.01.2015 16:57:15 отредактировано ЗлобнийМальчик

    (12) спасибо за рекомендацию

  15. Вряд ли

  16. Хотя можно, наверно, скрипт написать и прилепить на него

  17. когда собаке делать нехер, она яица лижет

    Ответы: (26)
  18. + а одинесник пытается запретить использование необъявленных переменных

    Ответы: (18)
  19. (17) если вы когда нибудь перейдете на другой язык программирования, вы меня поймете...

    Ответы: (20)
  20. А в чом трабла, что прям пестец такое требование

    Ответы: (21)
  21. (18) ты из 1С код куда-то траспортируешь?

  22. (19) ну почему же сразу пестец какое. Просто неудобно. Если изменил случайно имя объявленной переменной в модуле - то компилятор не ругается во всех остальных местах, где эта переменная используется. приходится отлавливать баги...

  23. Я бы парсер написал. Полчаса кодинга

    Ответы: (24)
  24. А вообще такая ошибка встречается редко.

  25. (22) и как этот парсер потом в одиэску встроить чтобы он автоматически вызывался при сохранении модуля?

  26. Никак. Тогда скрипт для снежка

    Ответы: (26)
  27. (25) дорого. Это мне надо будет себе снегопат купить.

  28. Дизассемблируй.

    Ответы: (29)
  29. Найди код, где делается проверка на синтакс контроль

  30. (27) тоже дорого - потрачу кучу времени))) короче, бог с ним. Обойдусь без проверки

  31. ЗлобнийМальчик я бы хотел эту ошибку получить на этапе компиляции

    не реализовано

    Ответы: (31)
  32. (30) я так и понял. Ну да ладно.

  33. Все - на FORTRAN!

    Ответы: (33)
  34. (32) лучше на абап. Денежнее...

    Ответы: (34) (37)
  35. (33) "Мне уже многое поздно..." (с) Ю.Лоза.

    А если честно - я за чистое программирование, а не за всякие 1сабапы

    Ответы: (37)
  36. Ненавижу ООП.

  37. Ненавижу х86-64 интеловскую архитектуру, люблю моторолу, pdp-11, с их ясной регистровой структурой

  38. syktyk (33) "Мне уже многое поздно..." (с) Ю.Лоза.

    А если честно - я за чистое программирование, а не за всякие 1сабапы

    што значит чесное пограмирование?

    1с для дос? ))

    система необходимо эволюционирует

    Ответы: (38)
  39. jsmith82 чесное пограмирование

    Вообще-то - чистое.

    Типа - http://www.csd.uwo.ca/~magi/personal/humour/Computer_Audience/Assembler as it REALLY is.html

    Assembler as it REALLY is

    MNEMONIC INSTRUCTION

    AAC Alter All Commands
    AAR Alter at Random
    AB Add Backwards
    AFVC Add Finagle's Variable Constant
    AIB Attack Innocent Bystander
    AWTT Assemble with Tinker Toys
    BAC Branch to Alpha Centauri
    BAF Blow all Fuses
    BAFL Branch and Flush
    BBIL Branch on Burned-Out Indicator Light
    BBT Branch on Binary Tree
    BBW Branch Both Ways
    BCIL Branch Creating Infinite Loop
    BDC Break Down and Cry
    BDT Burn Data Tree
    BEW Branch Either Way
    BF Belch Fire
    BH Branch and Hang
    BMR Branch Multiple Registers
    BOB Branch on Bug
    BOD Beat on the Disk
    BOI Byte Operator Immediately
    BPDI Be Polite, Don't Interrupt
    BPO Branch on Power Off
    BRSS Branch on Sunspot
    BST Backspace and Stretch Tape
    BW Branch on Whim
    CBNC Close, but no Cigar
    CDC Close Disk Cover
    CDIOOAZ Calm Down, It's Only Ones and Zeroes
    CEMU Close Eyes and Monkey With User Space
    CH Create Havoc
    CLBR Clobber Register
    CLBRI Clobber Register Immediately
    CM Circulate Memory
    CMD Compare Meaningless Data
    CML Compute Meaning of Life
    CNB Cause Nervous Breakdown
    COLB Crash for Operator's Lunch Break
    CPPR Crumple Printer Paper and Rip
    CRASH Continue Running After Stop or Halt
    CRB Crash and Burn
    CRN Convert to Roman Numerals
    CS Crash System
    CSL Curse and Swear Loudly
    CU Convert to Unary
    CVG Convert to Garbage
    CWOM Complement Write-only Memory
    CZZC Convert Zone to Zip Code
    DBTP Drop Back Ten and Punt
    DBZ Divide by Zero
    DC Divide and Conquer
    DDC Dally During Calculations
    DLN Don't Look Now...
    DMNS Do What I Mean, Not What I Say
    DMPE Decide to Major in Phys. Ed.
    DMPK Destroy Memory Protect Key
    DNPG Do Not Pass Go
    DO Divide and Overflow
    DOC Drive Operator Crazy
    DPMI Declare Programmer Mentally Incompetent
    DPR Destroy Program
    DTC Destroy This Command
    DTE Decrement Telephone Extension
    DTVFL Destroy Third Variable From Left
    DW Destroy World
    EBB Edit and Blank Buffer
    ECO Electrocute Computer Operator
    EEOIFNO Execute Every Other Instruction From
    Now On
    EFD Emulate Frisbee Using Disk Pack
    EIAO Execute In Any Order
    EIOC Execute Invalid Op-code
    EMPC Emulate Pocket Calculator
    EMSE Edit and Mark Something Else
    ENF Emit Noxious Fumes
    EP Execute Programmer
    EPI Execute Programmer Immediately
    EROS Erase Read-only Storage
    EXOP Execute Operator
    EXPP Execute Political Prisoner
    FLI Flash Lights Impressively
    FSM Fold, Spindle and Mutilate
    FSRA Forms Skip and Run Away
    GCAR Get Correct Answer Regardless
    GDP Grin Defiantly at Programmer
    GFD Go Forth and Divide
    GFM Go Forth and Multiply
    HCF Halt and Catch Fire
    HCP Hide Central Processor
    IAE Ignore All Exceptions
    IBP Insert Bug and Proceed
    IIB Ignore Inquiry and Branch
    ISC Insert Sarcastic Comments
    JTZ Jump to Twilight Zone
    LAP Laugh At Programmer
    LCC Load and Clear Core
    LPA Lead Programmer Astray
    MAZ Multiply Answer by Zero
    MBR Multiply and be Fruitful
    MLR Move and Lose Record
    MW Malfunction Whenever
    MWAG Make Wild-Assed Guess
    MWT Malfunction Without Telling
    OML Obey Murphy's Laws
    P$*! Punch Obscenity
    PBC Print and Break Chain
    PD Play Dead
    PDSK Punch Disk
    PEHC Punch Extra Holes in Cards
    PFD Punt on Fourth Down
    PI Punch Invalid
    PNRP Print Nasty Replies to Programmer
    POCL Punch Out Console Lights
    POPI Punch Operator Immediately
    PVLC Punch Variable Length Card
    RA Randomize Answer
    RASC Read and Shred Card
    RCB Read Command Backwards
    RD Reverse Directions
    RDA Refuse to Disclose Answer
    RDB Run Disk Backwards
    RDS Read Sideways
    RIRG Read Inter-record Gap
    RLI Rotate Left Indefinitely
    ROC Randomize Op Codes
    ROO Rub Out Operator
    RPB Read Print and Blush
    RPM Read Programmer's Mind
    RRSGWSSNK Round and Round She Goes, Where
    She Stops, Nobody Knows
    RSD On Read Error Self-Destruct
    RSTOM Read From Store-only Memory
    RTS Return To Sender
    RWCR Rewind Card Reader
    SAI Skip All Instructions
    SAS Sit And Spin
    SCCA Short Circuit on Correct Answer
    SFH Set Flags to Half-mast
    SFT Stall For Time
    SHAB Shift a Bit
    SHABM Shift a Bit More
    SLP Sharpen Light Pen
    SMR Skip on Meaningless Result
    SOS Sign off, Stupid
    SOT Sit on a Tack
    SPS Set Panel Switches
    SPSW Scramble Program Status Word
    SQPC Sit Quietly and Play With Your Crayons
    SRDR Shift Right Double Ridiculous
    SRSD Seek Record and Scar Disk
    SRZ Subtract and Reset to Zero
    SSJ Select Stacker and Jam
    STA Store Anywhere
    STROM Store in Read-only Memory
    TARC Take Arithmetic Review Course
    TDB Transfer and Drop Bits
    TLO Turn Indicator Lights Off
    TN Take a Nap
    TPDH Tell Programmer to Do it Him/Herself
    TPF Turn Power Off
    TPN Turn Power On
    TTA Try, Try Again
    UCB Uncouple CPU and Branch
    UER Update and Erase Record
    ULDA Unload Accumulator
    UP Understand Program
    UPCI Update Card In Place
    WBT Water Binary Tree
    WEMG Write Eighteen Minute Gap
    WF Wait Forever
    WHFO Wait Until Hell Freezes Over
    WI Write Illegibly
    WPM Write Programmer's Mind
    WWLR Write Wrong-Length Record
    WSWW Work in Strange and Wondrous Ways
    XSP Execute Systems Programmer
    ZAR Zero Any Register
    ACC Advance CPU clock
    AEE Absolve engineering errors
    BB Branch on bug
    BIRM Branch on index register missing
    BOHP Bribe operator for higher priority
    BSO Branch on sleepy operator
    CCD Clear core and dump
    EC Eat card
    EM Emulate 407
    EMW Emulate Matag washer
    IAI Inquire and ignore
    KCE Kill consultant on error
    LSPSW Load and scrample PSW
    MST Mount scotch tape
    PBC Print and break chain
    PLSC Perform light show on console
    PPSW Pack program status word
    RBT Rewind and break tape
    RDI Reverse dum immediate
    RT Reduce thruput
    SIP Store indefinite precision
    SPD Spin dry disc
    SRCC Select reader and chew cards
    TSH Trap secretary and halt
    UNPD Unplug and dump

  40. А я кодил на асме. На тасме, масме, фасме. Мне фасм больше всех понра

    Ответы: (40) (42)
  41. (39) Все названное тобою - всего лишь "наречия", "диалекты". Настоящий кайф - когда кодишь в бинари, октале, ну, на крайняк - в хексе :)

    Ответы: (42)
  42. С окталом пришлось познакомиться, когда встретился с инженерным пультом от ПЭВМ Мир. Очень крутая машина была - интегралы щелкала.
    -image-

    wiki:МИР

    Ответы: (44)
  43. (39) (40) да вы ребят романтики. а я вот наверное слишком сильно деньги люблю...

    Ответы: (43)
  44. ЗлобнийМальчик да вы ребят романтики

    Не угадал! Я - на пенсии!

  45. syktyk С окталом пришлось познакомиться, когда встретился с инженерным пультом от ПЭВМ Мир. Очень крутая машина была - интегралы щелкала.

    -image-

    Ответы: (45) (46)
  46. (44) Ога! :) Ты на пингвина глянь - там ACLы - все на октале :)

  47. (44) Кстате - Мир, еще та была машина. Мир-2 щелкала неопределенные интегралы, ога. И куда там ИБМ РС

  48. Язык программирования - АЛМИР-65, васик с него содрали. Вот, только, на АЛМИРЕ все расчеты делались в десятичной системе, со сколь угодным количеством десятичных знаков

или зарегистрируйтесь чтобы ответить!