1С - Жақсылық пен жамандық. Холиварлардағы нүктелердің 1С шамасында орналасуы

1С - Жақсылық пен жамандық. Холиварлардағы нүктелердің 1С шамасында орналасуы

Достар мен әріптестер, соңғы уақытта Хабре туралы 1С-ті дамыту платформасы ретінде жек көретін мақалалар және оны қорғаушылардың сөздері жиі жарияланды. Бұл мақалалар бір маңызды мәселені анықтады: көбінесе 1С сыншылары оны «оны меңгермеу» позициясынан сынайды, іс жүзінде оңай шешілетін мәселелерді ұрып-соғады және керісінше, шын мәнінде маңызды, құнды мәселелерді қозғамайды. талқылау және сатушымен шешілмейді. Менің ойымша, 1С платформасына байсалды және теңгерімді шолу жасау мағынасы бар. Ол не істей алады, не істей алмайды, не істеу керек, бірақ не істемейді, ал десерт үшін ол жарылыспен не істейді және % technology_name% әзірлеушілеріңіз оны лақтырып жіберіп, жүз жыл жасайды. бір жылдық бюджеттен артық.

Нәтижесінде, сіз менеджер немесе сәулетші ретінде 1С-ті пайдалану сізге қандай тапсырманы тиімді ететінін және оны қай жерде ыстық үтікпен жағу керектігін нақты түсіне аласыз. «1С емес» әлеміндегі әзірлеуші ​​ретінде сіз 1С-де ненің әбігерге түсіп жатқанын көре аласыз. Ал 1С әзірлеушісі ретінде сіз өз жүйеңізді басқа тілдердің экожүйелерімен салыстыра аласыз және бағдарламалық жасақтаманы әзірлеудің координаттар жүйесінде орналасқан жеріңізді түсіне аласыз.

Кесу астында 1С, 1С сыншылары, Java, .NET және жалпы қалың шабуылдар көп... Желдеткіш толы, қош келдіңіз!

Өзі жайлы

Мен әңгіме тақырыбымен шамамен 2004 жылдан бері таныспын. Мен 6 жасымнан бастап бағдарламалаумен айналыстым, профессор Фортран туралы мысық, торғай және құрт туралы комикстері бар кітапты алған сәттен бастап. Кітаптағы суреттер бойынша мысық жазған бағдарламаларды талдап, не істегенін анықтадым. Иә, ол кезде менде нақты компьютер болған жоқ, бірақ кітаптың таралуына сызба бар еді, мен шынымды айтсам, X мысықына тыңшылық жасаған командаларды енгізіп, қағаз түймелерін бастым.

Содан кейін мектепте BK0011 және BASIC, университетте C++ және ассемблер, содан кейін 1С, содан кейін есімде қалуға ерінетін басқа да көптеген нәрселер болды. Соңғы 15 жылда мен негізінен кодтау жағынан ғана емес, жалпы 1С-пен айналыстым. Мұнда тапсырмаларды орнату, басқару және өңдеулер. Соңғы 1 жылда мен басқа 5С пайдаланушылары үшін әзірлеу және автоматтандыру құралдарын әзірлеу, мақалалар мен кітаптар жазу тұрғысынан қоғамдық пайдалы қызметпен айналыстым.

Талқылау тақырыбын шешейік

Алдымен, не туралы сөйлесетінімізді анықтап алайық, өйткені «1С» әріптері көп нәрсені білдіруі мүмкін. Бұл жағдайда «1С» әріптері арқылы біз тек заманауи, сегізінші нұсқаның «1С: Кәсіпорын» әзірлеу негізін айтамыз. Біз өндіруші және оның саясаты туралы көп айтпаймыз (бірақ біз бұл құрылымды пайдаланып жазылған арнайы қолданбаларды талқыламаймыз). Технология бөлек, қолданбалар немесе конфигурациялар бөлек.

Жоғары деңгейдегі архитектура 1С: Кәсіпорын

Мен «қаңқа» сөзін бекер айтқан жоқпын. Әзірлеушінің көзқарасы бойынша, 1С платформасы дәл шеңбер болып табылады. Және оны дәл рамка сияқты қарау керек. Оны Spring немесе ASP.NET ретінде елестетіп көріңіз, ол кейбір орындалу уақытымен орындалады (тиісінше JVM немесе CLR). Кәдімгі бағдарламалау әлемінде («1С емес») рамкаларға, виртуалды машиналарға және арнайы қолданбаларға бөлу табиғи нәрсе, өйткені бұл компоненттерді әдетте әртүрлі өндірушілер әзірлейді. 1С әлемінде әзірлеу негізін және орындалу уақытын нақты ажырату әдеттегідей емес, сонымен қатар фреймворк арқылы жазылған арнайы қосымшаларды негізінен 1С өзі әзірлейді; Нәтижесінде кейбір түсінбеушілік туындайды. Сондықтан мақала аясында біз 1С-ті бірден бірнеше жағынан қарастырып, оны бірнеше координат осі бойынша жіктеуге тура келеді. Және әрбір координат осіне күрек қоңыр затты қойып, бар шешімнің ерекшеліктерін, артықшылықтары мен кемшіліктерін қарастырамыз.

1С бойынша көзқарастар

Сатып алушы үшін 1С

Сатып алушы автоматтандыру жүйесін сатып алады, оның көмегімен ол өз бизнесін автоматтандыру мәселелерін тез шеше алады. Бизнес шағын дүңгіршек болуы мүмкін немесе ол үлкен холдинг болуы мүмкін. Бұл бизнестің қажеттіліктері әртүрлі екені анық, бірақ екеуі де бір платформалық код базасымен қолдау көрсетеді.

1С сатып алушысы үшін бұл нарыққа тез жету уақыты. Жылдам. Java, C# немесе JS қарағанда жылдамырақ. Орташа. Аурухананың айналасында. React қолданатын визиткалық веб-сайт жақсырақ болатыны анық, бірақ WMS жүйесінің сервері 1C-де жылдамырақ іске қосылады.

1С құрал ретінде

Әрбір технологиялық шешімнің қолданылу шегі бар. 1С жалпы мақсаттағы тіл емес, ол өз шеңберінен бөлек өмір сүрмейді. Сізге қажет болған кезде 1С қолданған жөн:

  • сервер қолданбасы
  • қаржы пайда болатын қолданба
  • дайын UI, ORM, Reporting, XML/JSON/COM/PDF/YourDataTransferingFormat
  • фондық процестер мен тапсырмаларды қолдау арқылы
  • рөлге негізделген қауіпсіздікпен
  • скрипттік бизнес логикасы бар
  • прототипін тез жасау мүмкіндігімен және нарыққа шығу уақыты аз

Сізге 1С қажет емес, егер қаласаңыз:

  • машинамен оқыту
  • GPU есептеулері
  • компьютерлік графика
  • математикалық есептеулер
  • CAD жүйесі
  • сигналды өңдеу (дыбыс, бейне)
  • жүздеген мың rps бар http қоңырауларын жоғары жүктеңіз

1С өндіруші компания ретінде

Бағдарламалық жасақтама өндірушісі ретінде 1С бизнесінің не екенін түсіну керек. 1С компаниясы автоматтандыру арқылы бизнес мәселелерінің шешімдерін сатады. Үлкен немесе кіші әр түрлі бизнес, бірақ ол сататын нәрсе. Бұл мақсатқа жету құралдары бизнес қолданбалары болып табылады. Бухгалтерлік есеп, жалақыны есепке алу және т.б. үшін. Бұл қосымшаларды жазу үшін компания өзінің бизнес қолданбаларын әзірлеу платформасын пайдаланады. Дәл осы бизнес қолданбаларының жалпы тапсырмалары үшін арнайы әзірленген:

  • қаржылық есеп
  • бизнес логикасын оңай теңшеу
  • гетерогенді АТ ландшафттарында кең интеграциялық мүмкіндіктер

Өндіруші ретінде 1С бұл серіктестермен және клиенттермен жеңу режимінде жұмыс істеуге мүмкіндік беретін стратегия деп санайды. Сіз мұнымен дауласуға болады, бірақ компанияның өзін жарнамалауы шамамен осылай: серіктестер тез реттей алатын және кез келген АТ ландшафтына біріктіретін бизнес мәселелеріне дайын шешімдер.

1С жүйесіне қатысты барлық талаптар немесе тілектер тек осы призма арқылы қарастырылуы керек. «Біз 1С-де OOP-ті қалаймыз», - дейді әзірлеушілер. «Платформада OOP-ті қолдау бізге қанша тұрады, бұл бізге қораптардың сатылуын арттыруға көмектеседі ме?» 1C. Бизнес мәселелерінің шешімдерін сатудың «призмасын» ашады:

- Эй, бизнес, сіз 1С-де OOP қалайсыз ба?
- Бұл менің мәселелерімді шешуге көмектесе ме?
- Кім біледі...
– Онда қажеті жоқ

Бұл тәсіл кімге қарайтынына байланысты жақсы немесе жаман болуы мүмкін, бірақ бұл дәл солай. 1С-де X мүмкіндігі жоқ екендігі туралы айтатын болсақ, сіз оның себебі жоқ екенін түсінуіңіз керек, бірақ «іске асыру құны және пайда сомасы» таңдау контекстінде.

Технологиялық классификация

«Шын мәнінде, Odinesniks 1С платформасының қамқор әдіскерлері мен әзірлеушілері мұқият таңдаған ең жақсы үлгілерді пайдалану үшін барын салады.
Қарапайым басқарылатын пішін үшін ақымақ кодты жазғанда, шын мәнінде сіз пайдаланасыз үлгі-көрініс-контроллер с екі жақты деректерді байланыстыру в үш қабатты-деректер-қолданба қозғалтқышы, хош иістендірілген жоғары деңгейлі объектілік қатынасты бейнелеу негізде декларативті метадеректер сипаттамасыөзіндік болуы платформаға тәуелсіз сұрау тілі, с декларативті деректерге негізделген пайдаланушы интерфейсі, толық мөлдір сериялау және доменге бағытталған бағдарлама тілі.

1С әзірлеушілерінің батыстағы әріптестерінен ерекшеленетін жері PR-да. Олар кез келген ақымақтыққа үлкен ат беріп, онымен лас сөмке сияқты жүгіруді жақсы көреді ».
Орефков А

1С платформасында классикалық 3 деңгейлі архитектурасы бар, оның ортасында қолданбалы сервер (немесе шағын дүкеншілер үшін аз ақшаға оның эмуляциясы) орналасқан. ДҚБЖ ретінде MS SQL немесе Postgres пайдаланылады. Сондай-ақ Oracle және IBM DB2 үшін қолдау бар, бірақ бұл өте эзотерикалық, егер сіз осы дерекқорларға орташа және жоғары жүктеме кезінде 1C енгізсеңіз не болатынын ешкім білмейді. Мұны 1С өзі білмейді деп ойлаймын.

Клиент бөлігі - пайдаланушының машинасында орнатылған жұқа клиент немесе веб-клиент. Негізгі ерекшелігі, бағдарламашылар 2 түрлі кодты жазбайды, олар бір қосымшаны, бір тілде жазады, қалау немесе қажеттілік болса, оны браузерде көрсетуге болады. Кім нағыз толық стекті және фронт және бэкэнд, node.js үшін жалғыз тілді қалайды? Олар ешқашан бірдей нәрсені соңына дейін жасай алмады. Нағыз толық стек бар, бірақ оны 1С-де жазуға тура келеді. Тағдырдың ирониясы, осындай нәрселер :)

Бұлттық SaaS шешімі 1C:Fresh браузер режимінде де жұмыс істейді, онда сіз 1С сатып ала алмайсыз, бірақ шағын дерекқорды жалға алып, онда шаурма сатылымын қадағалап отырыңыз. Ештеңені орнатпай немесе конфигурацияламай ғана браузерде.

Сонымен қатар, 1С-те «тұрақты қосымша» деп аталатын бұрынғы клиент бар. Мұра - мұра, 2002 жылы қолданбалар әлеміне қош келдіңіз, бірақ біз әлі де экожүйенің қазіргі жағдайы туралы айтып отырмыз.

1С сервер бөлігі кластерге жаңа машиналарды қосу арқылы кластерлеуді және масштабтауды қолдайды. Мұнда көптеген көшірмелер бұзылған және бұл туралы мақалада бөлек бөлім болады. Қысқаша айтқанда, бұл HAProxy-дің артында бірнеше бірдей даналарды қосумен бірдей емес.

Қолданбаларды әзірлеу жүйесі орыс тіліне аударылған сәл жақсартылған VB6 тіліне ұқсайтын өзіндік бағдарламалау тілін пайдаланады. Орысшаның бәрін жек көретін, «егер» «егер» деп аударылғанына сенбейтін адамдар үшін екінші синтаксистік нұсқа ұсынылады. Анау. Қаласаңыз, оны 1С-де VB-ден ажыратылмайтындай етіп жазуға болады.

1С - Жақсылық пен жамандық. Холиварлардағы нүктелердің 1С шамасында орналасуы

Бұл бағдарламалау тілі 1С лақап аттарының олардың платформасына деген жеккөрінішінің негізгі себебі болып табылады. Келіңіздер, себепсіз емес. Тіл мүмкіндігінше қарапайым етіп ойластырылған, «ӘЗІРЛЕУШІЛЕР, ӘЗІРЛЕУШІЛЕР» мантрасын ТМД елдерінде кем дегенде масштабта орындауға арналған. Мұндай шешімнің коммерциялық мәні, менің ойымша, анық көрінеді: әзірлеушілер көп, нарықты қамту. Бұл әртүрлі бағалаулар бойынша 45%-дан 95%-ға дейін орындалды. Сіз ойлаған тілде жазу оңайырақ екенін бірден айтамын. Ал мен көптеген бағдарламалау тілдерін білемін.

Тілден бастайық.

1С бағдарламалау тілі

Бұл ретте жүйенің күшті және әлсіз тұсы. Оңай енгізуді және оқуды қамтамасыз етеді. Екінші жағынан, ол 8 жылы 2002 нұсқасы шыққаннан бері жаңартылмаған және моральдық тұрғыдан ескірген. Біреу «негізгі кемшілік - OOP жоқ» дейді және олар қателеседі. Біріншіден, Палестиналық ұйымға Нұралиевті ғана емес, Торвальдты да ұнатпайды. Екіншіден, OOP әлі де бар.

Әзірлеушінің көзқарасы бойынша, оның қарамағында ДҚБЖ-да көрсетілетін базалық класстары бар құрылым бар. Әзірлеуші ​​«Каталог» базалық класын алып, одан «Клиенттер» каталогын иелене алады. Ол оған жаңа класс өрістерін қоса алады, мысалы, INN және Мекенжай, сондай-ақ қажет болса, негізгі класс әдістерін, мысалы, OnWrite/AtRecord әдісін қайта анықтай алады.

Рамка тереңірек мұрагерлік сирек қажет болатындай етіп жасалған және OOP шектеуі, менің ойымша, мағынасы бар. 1С доменге негізделген дамуға назар аударады және сізді, ең алдымен, әзірленетін шешімнің тақырыптық аймағы туралы ойлануға мәжбүр етеді және бұл жақсы. Ешқандай азғыру ғана емес, сонымен қатар бір жерде доменнен кейбір деректерді көрсету үшін 10 түрлі DTO және ViewModels жазудың қажеті жоқ. 1С әзірлеушісі бір нысанды білдіретін, бірақ басқа жағынан ұқсас атаулары бар ондаған сыныптармен қабылдау контекстін шатастырмай, әрқашан бір нысанмен жұмыс істейді. Кез келген .NET қолданбасы, мысалы, JSON ішіне сериялау және деректерді клиенттен серверге тасымалдау үшін міндетті түрде бес немесе екі ViewModel және DTO қамтиды. Қолданба кодының шамамен 10-15% AutoMapper сияқты қаламдар немесе балдақтарды пайдаланып деректерді бір сыныптан екіншісіне тасымалдауға жұмсалады. Бұл код жазылуы керек және оны жасау және қолдау үшін бағдарламашыларға ақы төлеу керек.

1С тілін негізгі тілдер деңгейіне дейін қиындатпай дамыту қиынға соғады, осылайша қарапайымдылық артықшылығын жоғалтады. Жеткізушінің міндеті негізінен шешілуде: көшеде ұсталған кез келген студент талап етілетін сапа деңгейімен реттей алатын стандартты шешім шығару (яғни, дүңгіршектен ірі зауытқа дейінгі қаптама аяқталды). Егер сіз дүңгіршек болсаңыз, студентті алыңыз; егер сіз зауыт болсаңыз, іске асырушы серіктесіңізден гуру алыңыз. Іске асырушы серіктестердің студенттерді гуру бағасымен сатуы негізге қатысты мәселе емес. Архитектуралық тұрғыдан алғанда, негіз екеуінің де мәселелерін шешуі керек, стандартты конфигурациялардың коды (біз оны теңшеу уәдесі бар бизнеске саттық) студентке түсінікті болуы керек, ал гуру сіз қалаған нәрсені түсіне алуы керек.

Менің ойымша, тілде шынымен жетіспейтін нәрсе, сізді мүмкіндігінше көбірек жазуға мәжбүрлейтін нәрсе - тұтынушы төлейтін уақытты босқа кетіретін нәрсе.

  • Деңгейде теру мүмкіндігі, мысалы, TypeScript (нәтижесінде IDE-де кодты талдау құралдары анағұрлым дамыған, рефакторинг, азырақ шабуылдау)
    Бірінші класс объектілері ретіндегі функциялардың болуы. Сәл күрделірек тұжырымдама, бірақ әдеттегі қазандық кодының көлемін айтарлықтай азайтуға болады. Студенттің IMHO кодты түсінуі дыбыс көлемінің төмендеуіне байланысты тіпті артады
  • Әмбебап коллекция литералдары, инициализаторлар. Дәл сол нәрсе - жазуды және/немесе көзбен қарауды қажет ететін код көлемін азайту. Топтамаларды толтыру 9000С бағдарламалау уақытының 1%-дан астамын алады. Мұны синтаксистік қантсыз жазу ұзақ, қымбат және қателесуге бейім. Тұтастай алғанда, 1С шешімдеріндегі LOC мөлшері қолжетімді ашық фреймворктармен және тұтастай алғанда, сіздің кәсіпорыныңыздың барлық Java интерфейстерімен салыстырғанда барлық мүмкін болатын шектен асып түседі. Тіл егжей-тегжейлі және бұл деректер көлеміне, жадқа, IDE тежегіштеріне, уақытқа, ақшаға ...
  • соңында құрылыстар Менде бұл құрылыстың орыс тіліне сәтті аудармасын таба алмағандықтан жоқ деген гипотеза бар :)
  • Меншікті деректер типтері (OOP жоқ), VB6 типінің аналогтары. Бұл BSP ішіндегі түсініктемелерді және осы құрылымдарды құрастыратын сиқырлы әдістерді пайдаланып құрылымдарды термеуге мүмкіндік береді. Біз мыналарды аламыз: аз код, нүкте арқылы кеңес, мәселені тезірек шешу, қателер мен құрылымдардың жетіспейтін қасиеттеріне байланысты қателер аз. Енді пайдаланушы құрылымдарын теру толығымен Стандартты ішкі жүйе кітапханасының әзірлеушілер тобына жүктеледі, ол берілген параметр құрылымдарының күтілетін қасиеттеріне түсініктемелерді мұқият жазады.
  • Веб-клиентте асинхронды қоңыраулармен жұмыс істегенде қант жоқ. ProcessingNotifications түріндегі кері шақыру - бұл негізгі браузерлердің API-нің кенеттен өзгеруінен туындаған уақытша балдақ, бірақ сіз әрқашан осылай өмір сүре алмайсыз, асинхронды кодты «студенттік түсіну» артықшылығы жоғалады; барған сайын. Негізгі IDE-де бұл парадигманы қолдауды қоспаңыз және жағдай одан да нашарлайды.

Бұл өзекті мәселелердің бірі, тізім әлдеқайда үлкен болуы мүмкін екені анық, бірақ бұл әлі де жалпы мақсаттағы тіл емес екенін ұмытпауымыз керек, ол көп ағынды, лямбда функцияларын, GPU-ға қол жеткізуді және жылдам жұмыс істеуді қажет етпейді. өзгермелі нүктелерді есептеу. Бұл іскери логикалық сценарий тілі.

Осы тілмен көп жұмыс істеген, js немесе c# тілдерін қарастырған программист осы тілдің аясында жалықтырады. Бұл факт. Оған даму керек. Жеткізуші үшін шкаланың екінші жағында көрсетілген мүмкіндіктерді енгізу құны, оларды іске асырғаннан кейін кірістің ұлғаюымен салыстырғанда. Бұл жерде менде қазіргі уақытта компанияның алдында не басым екені туралы ешқандай ақпарат жоқ.

Даму ортасы

Бұл жерде де жағдай дұрыс емес. Екі даму ортасы бар. Біріншісі - жеткізілімге кіретін конфигуратор. Екіншісі - Eclipse негізінде әзірленген Enterprise Development Tools ортасы немесе қысқаша EDT.

Конфигуратор әзірлеу тапсырмаларының толық спектрін қамтамасыз етеді, барлық мүмкіндіктерді қолдайды және нарықтағы негізгі орта болып табылады. Ол сондай-ақ моральдық тұрғыдан ескірген, дамымайды, қауесет бойынша - өз ішіндегі техникалық қарыздың көлеміне байланысты. Жағдайды ішкі API ашу арқылы жақсартуға болады (достық түрінде Ақшақар А.Орефкова немесе тәуелсіз негізде), бірақ бұлай емес. Тәжірибе көрсеткендей, егер сатушы кедергі жасамаса, қауымдастық IDE-де өз мүмкіндіктерін жазады. Бірақ бізде бар нәрсе бар. Конфигуратор 2004-2005 жылдары керемет болды, сол кездегі Visual Studio-ны еске түсірді, кейбір жерлерде ол одан да салқын болды, бірақ ол сол уақытта тұрып қалды.

Сонымен қатар, сол уақыттан бері орташа стандартты шешімнің көлемі бірнеше есе өсті және бүгінгі күні IDE өзі берілетін кодтың көлеміне төтеп бере алмайды. Қолдану және рефакторинг мүмкіндіктері тіпті нөлге тең емес, олар қызыл түсте. Мұның бәрі әзірлеушілерге құлшыныс әкелмейді және олар басқа экожүйелерге көшуді және сол жерде кодтауды жалғастыруды армандайды, бірақ мінез-құлқымен сіздің бетіңізге түкірмейтін жағымды ортада.

Балама ретінде Eclipse негізінде құрылған нөлден жазылған IDE ұсынылады. Мұнда көздер, кез келген басқа бағдарламалық жасақтамадағы сияқты, мәтіндік файлдар түрінде өмір сүреді, GIT-де сақталады, сұрау тармақтарын тартады, мұның бәрі. Теріс жағы, ол көптеген жылдар бойы бета күйін қалдырған жоқ, бірақ ол әр шығарылым сайын жақсарып келеді. Мен EDT кемшіліктері туралы жазбаймын, бүгін бұл минус, ертең бұл бекітілген функция. Мұндай сипаттаманың өзектілігі тез жоғалады. Бүгінгі күні оны EDT-де дамытуға болады, бірақ бұл әдеттен тыс IDE қателерінің белгілі бір санына дайын болу керек;

Егер сіз жағдайды жоғарыда аталған «1С призмасы» арқылы қарасаңыз, сіз келесідей нәрсені аласыз: жаңа IDE шығарылымы қораптардың сатылымын арттырмайды, бірақ ҚЫЗМЕТКЕРЛЕРДІҢ кетуі азаюы мүмкін. Әзірлеушілерге жайлылық тұрғысынан экожүйені не күтіп тұрғанын айту қиын, бірақ Microsoft корпорациясы мобильді әзірлеушілерге өз қызметтерін тым кеш ұсына отырып, ренжітті.

Дамуды басқару

Мұнда бәрі кодты жазудан әлдеқайда жақсырақ, әсіресе жақында, қауымдастықтың күш-жігері басқаруды автоматтандыру мәселелерін анықтаған кезде, 1С репозиторийін қоқыс жәшігіне тастауға және git, жылдам кінәлау, кодты шолуды қолдануға шақыратын прототиптер іске қосылды. , статикалық талдау, автоматты түрде орналастыру және т.б. Платформаға әзірлеу тапсырмаларын автоматтандыру деңгейін арттыратын көптеген мүмкіндіктер қосылды. Дегенмен, бұл мүмкіндіктердің барлығы тек біздің ірі өнімдерімізді дамыту үшін ғана қосылды, өйткені автоматтандырусыз жасай алмайтынымыз белгілі болды. Автоматты біріктірулер, KDiff-пен үш жақты салыстыру және тағы басқалар болды. Github жүйесінде іске қосылды гитконвертер, шынын айтқанда, идеялық тұрғыдан жобадан алыстап кеткен gitsync, бірақ жеткізуші компанияның процестеріне сәйкес өзгертілген. Ашық көздегі қыңыр жігіттердің арқасында 1С-де әзірлеуді автоматтандыру жолдан шықты. Конфигураторға арналған ашық API, IMHO, сонымен қатар негізгі IDE-нің моральдық артта қалуын өзгертеді.

Бүгінгі таңда git-де 1С көздерін Jira-дағы мәселелерге, Crucible шолуларына, Дженкинс пен Allure-тің 1С-те кодты тестілеуге арналған есептерге арналған батырмаларымен және тіпті сақтауымен сақтау. SonarQube ішіндегі статикалық талдау - бұл жаңалықтан алыс, бірақ 1С дамуы көп компаниялардағы негізгі ағым.

басқарма

Бұл жерде айтатын нәрсе көп. Біріншіден, бұл, әрине, сервер (1С сервер кластері). Керемет нәрсе, бірақ бұл толықтай қара жәшік болғандықтан, жеткілікті егжей-тегжейлі құжатталған, бірақ белгілі бір жолмен - бірнеше серверлерде жоғары жүктеу режимінде үзіліссіз жұмыс істеуді іске қосуды меңгеру - бұл желіні киетін таңдаулылардың үлесі. «Технологиялық мәселелер бойынша сарапшы» деген жазуы бар медаль. Айта кету керек, негізінен 1С серверін басқару кез келген басқа серверді басқарудан еш айырмашылығы жоқ. Бұл жадты, процессорды және диск ресурстарын тұтынатын желіге негізделген, көп ағынды қолданба. Телеметрияны жинау және диагностикалау үшін кең мүмкіндіктер береді.

Мәселе мынада, сатушы дәл осы диагностика үшін дайын шешімдер тұрғысынан ерекше ештеңе ұсынбайды. Иә, 1С бар: Аспаптар және басқару орталығы, олар тіпті өте жақсы, бірақ олар өте қымбат және олар барлығында бола бермейді. Қауымдастықта Grafana, Zabbix, ELK және басқа нәрселерді стандартты әкімші жинағынан қосуға арналған бірқатар әзірлемелер бар, бірақ көпшілікке сәйкес келетін жалғыз шешім жоқ. Тапсырма өз кейіпкерін күтуде. Ал егер сіз 1С кластерінде іске қосуды жоспарлап отырған бизнес болсаңыз, сізге Сарапшы қажет. Өзіңіздің ішіңізден немесе сыртыңыздан, бірақ сізге қажет. Сервердің жұмысы үшін құзыреттері бар бөлек рөлдің болуы қалыпты жағдай, мұны әрбір 1С пайдаланушысы білуі керек емес, сіз тек мұндай рөл қажет екенін түсінуіңіз керек. Мысалы, SAP-ті алайық. Онда бағдарламашы, ең алдымен, қосымша серверде бірдеңені конфигурациялауды сұраса, тіпті орнынан тұрмайды. Ол жай ғана ақымақ болуы мүмкін және ол ұялмайды. SAP әдістемесінде бұл үшін қызметкердің жеке рөлі бар. Қандай да бір себептермен, 1С индустриясында мұны бір қызметкерге бірдей жалақыға біріктіру керек деп есептеледі. Бұл адасушылық.

1С серверінің кемшіліктері

Дәл бір минус бар - сенімділік. Немесе, қаласаңыз, болжаусыздық. Сервердің күтпеген оғаш әрекеті қазірдің өзінде қаланың әңгімесіне айналды. Әмбебап құрал - серверді тоқтату және барлық кэштерді тазарту - тіпті сарапшының анықтамалығында сипатталған, тіпті мұны жасайтын пакеттік кітап ұсынылады. Егер сіздің 1С жүйеңіз теориялық тұрғыда жасамауы керек нәрсені жасай бастаса, сеанс деректерінің кэшін тазалау уақыты келді. Менің бағалауым бойынша, бүкіл елде бұл процедурасыз 1С серверін басқаруды білетін үш адам ғана бар және олар құпиямен бөліспейді, өйткені... олар осыдан өмір сүреді. Мүмкін, олардың құпиясы олар сеанс деректерін тазартады, бірақ олар бұл туралы ешкімге айтпайды, досым.

Әйтпесе, 1С сервері кез келген басқа бағдарламамен бірдей және құжаттаманы оқып, бубенді қағу арқылы бірдей басқарылады.

Докер

Өндірісте контейнерлік 1С серверін пайдаланудың пайдалылығы әлі дәлелденген жоқ. Сервер балансизатордың артына жай ғана түйіндерді қосу арқылы кластерленбейді, бұл өндірісті контейнерлеудің артықшылықтарын минимумға дейін төмендетеді және контейнерлерде жоғары жүктеме режимінде сәтті жұмыс істеу тәжірибесі орнатылмаған. Нәтижесінде сынақ орталарын орнату үшін тек әзірлеушілер Docker+1C пайдаланады. Мұнда ол өте пайдалы, қолданбалы, заманауи технологиялармен ойнауға және конфигуратордың үмітсіздігінен үзіліс жасауға мүмкіндік береді.

Коммерциялық компонент

Инвестициялық тұрғыдан алғанда, 1С қолданбалы сыныптардың кең мүмкіндіктерінің арқасында бизнес-идеяларды жылдам іске қосу мәселесін шешуге мүмкіндік береді. Қораптан шыққан 1С өте лайықты Есеп беруді, кез келген нәрсемен интеграцияны, веб-клиентті, мобильді клиентті, мобильді қосымшаны, әртүрлі ДҚБЖ қолдауын, соның ішінде. тегін, кросс-платформалық сервер және орнатылған клиент бөліктері. Иә, қолданбалардың UI сары болады, кейде бұл минус, бірақ әрқашан емес.
1С таңдай отырып, бизнес қосымшалардың өте кең ауқымын құруға мүмкіндік беретін бағдарламалық шешімдер жиынтығын алады, сонымен қатар нарықтағы Javaists-тен аз ақшаны қалайтын және сонымен бірге нәтижелерді тезірек шығаратын көптеген әзірлеушілерді алады.

Мысалы, клиентке PDF шот-фактурасын жіберу тапсырмасы студенттік жұмыстың бір сағатында шешілуі мүмкін. .NET-тегі бірдей мәселені жеке кітапхананы сатып алу немесе қатал, сақалды әзірлеуші ​​бірнеше күн немесе апта кодтау арқылы шешуге болады. Кейде екеуі де бірден. Иә, мен тек PDF құру туралы айттым. Бұл заң жобасының қайдан келетінін де айтқан жоқпыз. Веб-фрондендер оператор деректерді енгізетін пішінді құруы керек, сервер JSON тасымалдау үшін dto үлгілерін, дерекқорда сақтау үлгілерін, дерекқордың құрылымын, оған көшіруді, графикалық форматты құруы керек. дәл осы тіркелгіні көрсету, содан кейін ғана - PDF. 1С-де барлық тапсырма толығымен нөлден бастап, дәл бір сағатта аяқталады.

Сатып алынған/сатылған бір бизнес-процессі бар шағын дүңгіршектің толыққанды есепке алу жүйесі 3 сағат ішінде сату есебімен, қоймалар бойынша бөлшектелген сатып алу-сату бағасымен тауарларды есепке алу, қол жеткізу құқықтарын бақылау, веб-клиент және мобильді қосымша арқылы жүзеге асырылады. . Жарайды, өтінішті ұмытып кетіппін, өтініш 3 сағатта емес, алтыда.

Бұл тапсырма .NET әзірлеушісіне таза компьютерде визуалды студияны орнатудан тұтынушыға көрсетуге дейін қанша уақыт алады? Әзірлеу құны туралы не деуге болады? Дәл солай.

1С платформасы ретіндегі күшті жақтары

1С күшті емес, өйткені онда әлемдегі ең жақсы нәрсе бар. Керісінше, әрбір жеке ішкі жүйеде сіз әлемдік бағдарламалық қамтамасыз етуде анағұрлым қызықты аналогты таба аласыз. Дегенмен, факторлардың жиынтығына сүйене отырып, мен 1С-ге ұқсас платформаны көрмеймін. Коммерциялық табыс осында жатыр. Платформаның артықшылықтары оның бойына шашыраңқы және бұл басқа платформаларда қалай жасалғанын көргенде анық көрінеді. Негізінде, бұл тіпті ерекшеліктер ЕМЕС, керісінше - белгілі бір парадигманың пайдасына ерекшеліктерді қабылдамау. Бірнеше мысал:

  1. Юникод. Не қарапайым болуы мүмкін? 2019 жылы бір байтты ASCII кодтауларын пайдаланудың қажеті жоқ (ежелгі мұралармен интеграцияны қоспағанда). Ешқашан. Бірақ жоқ. Қалай болғанда да, кейбір кестедегі біреу бір байт варчарды пайдаланады және қолданбада кодтау мәселелері болады. 2015 жылы gitlab LDAP авторизациясы кодтаулармен дұрыс жұмыс істемеу себебінен орындалмады; JetBrains IDE әлі де барлық жерде файл атауларында кириллицамен жұмыс істемейді. 1С қолданбалы кодты дерекқор деңгейінен жоғары сапалы оқшаулауды қамтамасыз етеді. Онда кестелерді төмен деңгейде теру мүмкін емес, ал базалық деңгейде сауатсыз жасөспірімдердің кептелуі мүмкін емес. Иә, қабілетсіз жасөспірімдерде басқа мәселелер болуы мүмкін, бірақ проблемалардың әртүрлілігі әлдеқайда аз. Енді сіз маған қолданбаңыздың дұрыс құрастырылғанын және дерекқорға кіру деңгейінің оқшауланғанын айтасыз. Корпоративтік реттелетін Java қолданбасын тағы бір қараңыз. Жақын және адал. Сіздің ар-ұжданыңыз сізді алаңдатады ма? Сонда мен сен үшін қуаныштымын.
  2. Құжаттарды/анықтамалық кітаптарды нөмірлеу. 1С-де бұл ең икемді емес және ең жақсы емес. Бірақ олар банктік бағдарламалық жасақтамада және өздігінен жазылған бухгалтерлік жүйелерде не істейді - бұл жай қараңғылық. Не сәйкестендіру кептеліп қалады (содан кейін «о, бізде неге саңылаулар бар»), немесе керісінше, олар ДҚБ деңгейінде құлыптаумен жұмыс істейтін генератор жасайды (және тар жолға айналады). Шындығында, бұл қарапайым болып көрінетін тапсырманы орындау өте қиын - деректерді параллель енгізу кезінде дерекқорды блоктамайтындай етіп белгілі бір кілттер жиынтығына негізделген бірегейлік бөлімі, префиксациясы бар нысандардың соңына дейін санаушысы. .
  3. Мәліметтер қорындағы жазбалардың идентификаторлары. 1C ерікті шешім қабылдады - барлық сілтеме идентификаторлары мүлдем синтетикалық және бәрі де. Ал таратылған деректер базалары мен алмасулармен ешқандай проблемалар жоқ. Басқа жүйелерді әзірлеушілер табандылықпен сәйкестендіру сияқты нәрсені жасайды (бұл қысқарақ!), бірнеше қатысты даналарды жасау уақыты келгенше оларды GUI-ге сүйреп апарыңыз (содан кейін олар ашылады). Сізде бұл жоқ па? Шынымды айтсам?
  4. Тізімдер. 1С-те (үлкен) тізімдер бойынша пейджингтеу және олар бойынша шарлау үшін жеткілікті сәтті механизмдер бар. Механизмді дұрыс пайдалану арқылы бірден брондау жасауға рұқсат етіңіз! Жалпы алғанда, тақырып өте жағымсыз, оны идеалды түрде шешу мүмкін емес: ол интуитивті және қарапайым (бірақ клиентте үлкен жазбалар қаупі бар) немесе пейджинг бір немесе басқа қисық. Пейджингпен айналысатындар көбінесе қисық жасайды. Адал айналдыру жолағын жасайтындар дерекқорды, арнаны және клиентті қосады.
  5. Басқарылатын пішіндер. Әрине, веб-клиентте интерфейс мінсіз жұмыс істемейді. Бірақ ол жұмыс істейді. Бірақ көптеген басқа есеп және банк жүйелері үшін қашықтағы жұмыс орнын құру кәсіпорын деңгейіндегі жоба болып табылады. Жауапкершіліктен бас тарту: Бақытымызға орай, оны интернетте жасағандар үшін бұл әсер етпейді.
  6. Мобильді қолданба. Жақында сіз бір экожүйеде мобильді қосымшаларды жаза аласыз. Бұл жерде веб-клиентке қарағанда әлдеқайда күрделірек, құрылғылардың ерекшеліктері сізді олар үшін арнайы жазуға мәжбүр етеді, бірақ соған қарамастан, сіз мобильді әзірлеушілер тобын жалдамайсыз. Егер сізге компанияның ішкі қажеттіліктеріне арналған қосымша қажет болса (корпоративтік мәселенің мобильді шешімі сары UI дизайнынан маңыздырақ болғанда), сіз жай ғана сол платформаны қораптан тыс пайдаланасыз.
  7. Есеп беру. Бұл сөзбен мен үлкен деректері бар BI жүйесін және ETL процесінде артта қалуды білдірмеймін. Бұл жерде және қазір бухгалтерлік есептің жағдайын бағалауға мүмкіндік беретін жедел қызметкерлердің есептеріне қатысты. Баланс, өзара есеп айырысу, қайта бағалау және т.б. 1С пайдаланушы жағында топтау, сүзгілер және визуализация үшін икемді параметрлері бар есеп беру жүйесімен қораптан шығады. Иә, нарықта салқындатқыштың аналогтары бар. Бірақ барлығы бір шешім шеңберінде емес және кейде барлығы бір шешімнен жоғары бағамен. Көбінесе бұл керісінше: тек есеп беру, бірақ бүкіл платформаға қарағанда қымбатырақ және сапасы нашар.
  8. Басып шығарылатын пішіндер. Қызметкерлерге PDF форматындағы жалақы слиптерін электрондық пошта арқылы жіберу мәселесін шешу үшін .NET пайдаланыңыз. Ал енді шот-фактураларды басып шығару міндеті. Олардың көшірмелерін бір PDF файлына сақтау туралы не деуге болады? 1С лақап аты үшін кез келген орналасуды PDF форматына шығару +1 код жолын құрайды. Бұл басқа тілде күн немесе аптаның орнына + 40 секунд жұмыс уақытын білдіреді. 1С-де басып шығарылған пішін макеттерін әзірлеу өте оңай және ақылы әріптестермен бәсекелесу үшін жеткілікті күшті. Иә, мүмкін, 1С электрондық кестелік құжаттарында интерактивті мүмкіндіктер көп емес, сіз OpenGL көмегімен масштабтау арқылы 3D диаграммасын тез ала алмайсыз. Бірақ бұл шынымен қажет пе?

Бұл функционалдылықты шектеу немесе ымыраға келу болашақта маңызды архитектуралық артықшылыққа айналатын мысалдардың бірнешеуі ғана. Тіпті ымыраға келу немесе ең тиімді нұсқа емес - ол қазірдің өзінде қорапта және әдеттегідей қабылданады. Оның тәуелсіз жүзеге асырылуы мүмкін емес болады (өйткені мұндай шешімдер жобаның басында қабылдануы керек, және оған уақыт жоқ, сәулетші мүлде жоқ), немесе бірнеше қымбат қайталаулар. Көрсетілген нүктелердің әрқайсысында (және бұл архитектуралық шешімдердің толық тізімі емес) масштабтауды блоктайтын шектеулерді бұрап, енгізуге болады. Қалай болғанда да, сіз, бизнесмен ретінде, бағдарламашыларыңыздың «жүйені нөлден» жасау кезінде қолдары түзу екеніне және жүйенің нәзік мәселелерін бірден жақсы орындайтынына көз жеткізуіңіз керек.

Иә, кез келген басқа күрделі жүйедегі сияқты, 1C-де де белгілі бір аспектілерде масштабтауды блоктайтын шешімдер бар. Дегенмен, қайталап айтамын, факторлардың жиынтығына, меншік құнына және алдын ала шешілген мәселелердің санына сүйене отырып, мен нарықта лайықты бәсекелесті көрмеймін. Дәл сол бағаға сіз қаржылық қосымшалар құрылымын, UI және веб-интерфейсі бар кластерленген теңдестірілген серверді, мобильді қосымшаны, есеп беруді, интеграцияны және басқа да көптеген нәрселерді аласыз. Java әлемінде сіз фронт-end және back-end командасын жалдайсыз, үйде жазылған сервер кодының төмен деңгейлі топтарын түзетіп, 2 мобильді ОЖ үшін 2 мобильді қолданба үшін бөлек төлейсіз.

Мен 1С барлық жағдайларды шешеді деп айтпаймын, бірақ ішкі корпоративтік қосымша үшін, UI брендін жасаудың қажеті жоқ кезде - тағы не қажет?

Майға құйыңыз

Сіз 1С әлемді құтқарады және корпоративтік жүйелерді жазудың барлық басқа тәсілдері дұрыс емес деген әсер қалдырған шығарсыз. Бұл мүлде олай емес. Бизнесменнің көзқарасы бойынша, егер сіз 1С таңдасаңыз, нарыққа жылдам шығудан басқа, сіз келесі кемшіліктерді ескеруіңіз керек:

  • Сервер сенімділігі. Оның үздіксіз жұмысын қамтамасыз ете алатын шынымен де жоғары сапалы мамандар қажет. Мен сатушыдан мұндай мамандарды дайындаудың дайын бағдарламасын білмеймін. Эксперттік емтиханға дайындалу курстары бар, бірақ бұл, менің ойымша, жеткіліксіз.
  • Қолдау. Алдыңғы тармақты қараңыз. Сатушыдан қолдау алу үшін оны сатып алу керек. Қандай да бір себептермен бұл 1С индустриясында қабылданбайды. Ал SAP көмегімен бұл дерлік сатып алу керек және ол ешкімді алаңдатпайды. Корпоративтік қолдаусыз және мамандарсыз 1С ақауларымен жалғыз қалуыңыз мүмкін.
  • Дегенмен, сіз 1С-пен барлығын жасай алмайсыз. Бұл құрал және әрбір құрал сияқты оның қолданылу шегі бар. 1С ландшафтында «1С емес» жүйе сәулетшісі болғаны жөн.
  • Жақсы 1С лақап аттары басқа тілдердегі жақсы бағдарламашылардан арзан емес. Дегенмен, нашар бағдарламашыларды, олар жазған тілге қарамастан, жалдау қымбат.

Нүктелерді белгілейік

  • 1С - бұл бизнеске арналған қосымшаларды жылдам әзірлеу (RAD) құрылымы және осы мақсатқа бейімделген.
  • Негізгі ДҚБЖ қолдауы бар үш деңгейлі сілтеме, клиенттік интерфейс, өте жақсы ORM және есеп беру
  • 1С жасай алмайтын нәрсені жасай алатын жүйелермен интеграциялаудың кең мүмкіндіктері. Егер сіз машиналық оқытуды қаласаңыз, Python бағдарламасын алыңыз және нәтижені http немесе RabbitMQ арқылы 1C-ге жіберіңіз
  • 1С көмегімен бәрін жасауға тырысудың қажеті жоқ, оның күшті жақтарын түсініп, оларды өз мақсаттарыңыз үшін пайдалануыңыз керек.
  • Технологиялық негіздік гаджеттерді зерттеп, N жыл сайын жаңа қозғалтқышты қайта құруға ұмтылатын әзірлеушілер 1С-тен жалықтырады. Онда бәрі өте консервативті.
  • Әзірлеушілер де скучно, өйткені олар үшін өндіруші тарапынан алаңдаушылық өте аз. Жалықтыратын тіл, әлсіз IDE. Олар модернизацияны қажет етеді.
  • Екінші жағынан, өздеріне ұнайтын басқа технологияны пайдалану және үйрену арқылы қызық таба алмайтын әзірлеушілер нашар әзірлеушілер болып табылады. Олар шырылдап, басқа экожүйеге көшеді.
  • 1С лақап аттарына Python тілінде бірдеңе жазуға рұқсат бермейтін жұмыс берушілер нашар жұмыс берушілер болып табылады. Олар ізденімпаз қызметкерлерден айырылады, ал олардың орнына маймыл кодерлері келеді, олар бәрімен келісе отырып, корпоративтік бағдарламалық жасақтаманы батпаққа сүйреп апарады. Ол әлі де қайта жазылуы керек, сондықтан Python-ға сәл ертерек инвестиция салған дұрыс шығар?
  • 1С коммерциялық компания болып табылады және тек өз мүдделері мен мақсаттылығына негізделген мүмкіндіктерді жүзеге асырады. Бұл үшін оны кінәлауға болмайды, бизнес пайданы ойлауы керек, бұл өмір
  • 1С Васяның әзірлеушілерінің мәселелеріне емес, бизнес мәселелеріне шешімдер сату арқылы ақша табады. Бұл екі ұғым өзара сәйкес келеді, бірақ басымдық дәл мен айтқан нәрсе. Әзірлеуші ​​Вася 1С: Resharper үшін жеке лицензияны төлеуге дайын болғанда, ол өте тез пайда болады, А. Орефкованың «Resharper» - осының дәлелі. Егер сатушы оны қолдап, оған қарсы күреспесе, әзірлеушілерге арналған бағдарламалық қамтамасыз ету нарығы пайда болады. Қазір бұл нарықта күмәнді нәтижелері бар бір жарым ойыншы бар, және бәрі IDE-мен интеграция теріс болғандықтан және бәрі балдақпен жасалады.
  • Көп автоматтық оператордың тәжірибесі ұмытылады. Қазіргі қолданбалар код жағынан да, іскери пайдалану жағынан да есте сақтау үшін тым үлкен. 1С сервері де күрделене түсуде, бір қызметкерде тәжірибенің барлық түрін сақтау мүмкін болмайды. Бұл мамандарға сұранысты тудыруы керек, бұл 1С мамандығының тартымдылығын және жалақының өсуін білдіреді. Егер бұрын Вася бір жалақыға үшеуінде жұмыс істесе, енді екі Васяны жалдау керек және Васялар арасындағы бәсекелестік олардың деңгейінің жалпы өсуіне түрткі болуы мүмкін.

қорытынды

1С - өте лайықты өнім. Менің баға диапазонымда мен аналогтарды мүлдем білмеймін, егер бар болса, түсініктемелерде жазыңыз. Дегенмен, әзірлеушілердің экожүйеден кетуі барған сайын байқалады және бұл қалай қарасаңыз да, «мидың ағуы» болып табылады. Өнеркәсіп модернизацияға құмар.
Егер сіз әзірлеуші ​​болсаңыз, 1С-ге ілінбеңіз және басқа тілдерде бәрі сиқырлы деп ойламаңыз. Сіз жас кезінде, мүмкін. Үлкенірек нәрсені шешу қажет болған кезде, дайын шешімдерді ұзағырақ іздеу және қарқынды аяқтау қажет болады. Шешім жасауға болатын «блоктардың» сапасы бойынша 1С өте жақсы.

Тағы бір нәрсе - егер сізге 1С лақап аты жалдауға келсе, онда 1С лақап атын жетекші талдаушылар лауазымына қауіпсіз түрде тағайындауға болады. Олардың тапсырманы, пән аймағын және декомпозицияны түсіну дағдылары өте жақсы. Бұл 1С әзірлеуде DDD-ны мәжбүрлеп қолданумен байланысты екеніне сенімдімін. Адам ең алдымен тапсырманың мәні туралы, пәндік аймақтың объектілері арасындағы байланыстар туралы ойлауға дағдыланады және сонымен бірге интеграциялық технологиялар мен деректер алмасу форматтары бойынша техникалық білімі бар.

Идеал шеңбердің жоқ екенін біліңіз және өзіңізге қамқорлық жасаңыз.
Бәріне жақсылық!

PS: көп рахмет спешурик мақаланы дайындауға көмектескені үшін.

Сауалнамаға тек тіркелген пайдаланушылар қатыса алады. Кіру, өтінемін.

Сіздің кәсіпорыныңызда 1С бар ма?

  • 13,3%Мүлдем емес.71

  • 30,3%Бар, бірақ бір жерде бухгалтерияда ғана. Басқа платформалардағы негізгі жүйелер162

  • 41,4%Иә, онда негізгі бизнес-процестер жұмыс істейді221

  • 15,0%1С өлуі керек, болашақ %technology_name%80-ге тиесілі

534 қолданушы дауыс берді. 99 пайдаланушы қалыс қалды.

Ақпарат көзі: www.habr.com

пікір қалдыру