1C - Becik lan ala. Susunan titik ing holivars watara 1C

1C - Becik lan ala. Susunan titik ing holivars watara 1C

Kanca lan kolega, bubar ana artikel sing luwih kerep babagan Habré kanthi sengit marang 1C minangka platform pangembangan, lan pidato dening para pembela. Artikel-artikel kasebut nemtokake siji masalah serius: sing paling kerep, kritikus 1C ngritik saka posisi "ora nguwasani", nguwasani masalah sing de facto gampang ditanggulangi, lan, ing nalisir, ora ndemek masalah sing pancene penting, worth rembugan lan ora ditanggulangi dening vendor. Aku yakin manawa ana pangertèn kanggo nindakake review sing sober lan seimbang babagan platform 1C. Apa sing bisa ditindakake, apa sing ora bisa ditindakake, apa sing kudu ditindakake nanging ora ditindakake, lan, kanggo panganan cuci mulut, apa sing ditindakake kanthi bang, lan pangembang sampeyan ing %technology_name% bakal nindakake satus taun, mbuwang luwih saka siji budget taunan.

Akibaté, sampeyan, minangka manajer utawa arsitek, bakal bisa ngerteni apa tugas sing bakal migunani kanggo sampeyan nggunakake 1C, lan ing ngendi sampeyan kudu diobong nganggo wesi panas. Minangka pangembang ing jagad "non-1C", sampeyan bakal bisa ndeleng apa sing ana ing 1C sing nyebabake kerusuhan. Lan minangka pangembang 1C, sampeyan bakal bisa mbandhingake sistem sampeyan karo ekosistem basa liyane lan ngerti lokasi sampeyan ing sistem koordinat pangembangan piranti lunak.

Ing ngisor potong ana akeh serangan kandel ing 1C, ing kritikus 1C, ing Jawa, .NET lan umume ... Penggemar kebak, welcome!

Babagan aku

Aku wis kenal karo topik obrolan wiwit udakara 2004. Aku wis program mbokmenawa wiwit umur 6 taun, wiwit aku entuk buku babagan Profesor Fortran kanthi komik babagan kucing, manuk pipit lan uler. Aku nganalisa program sing ditulis kucing saka gambar ing buku lan nemokake apa sing ditindakake. Lan ya, aku ora duwe komputer nyata ing wektu iku, nanging ana gambar ing panyebaran buku lan aku jujur ​​menet tombol kertas, ngetik printah aku wis spied ing kucing X.

Banjur ana BK0011 lan BASIC ing sekolah, C ++ lan assemblers ing universitas, banjur 1C, lan banjur dadi akeh liyane sing aku kesed kanggo elinga. Sajrone 15 taun kepungkur, aku wis melu ing 1C, ora mung babagan coding, nanging ing 1C umume. Nyetel tugas, administrasi lan devops kene. Sajrone 5 taun kepungkur, aku melu kegiatan sosial sing migunani babagan ngembangake alat pangembangan lan otomatisasi kanggo pangguna 1C liyane, nulis artikel lan buku.

Ayo dadi mutusake babagan topik diskusi

Kaping pisanan, ayo nemtokake apa sing bakal diomongake, amarga huruf "1C" bisa ateges akeh perkara. Ing kasus iki, kanthi huruf "1C" tegese mung kerangka pembangunan "1C: Enterprise" saka versi kaping wolu modern. Kita ora bakal ngomong akeh babagan pabrikan lan kabijakan kasebut (nanging kita ora bakal ngrembug aplikasi khusus sing ditulis nganggo kerangka iki). Teknologi kapisah, aplikasi alias konfigurasi kapisah.

Arsitektur tingkat dhuwur 1C: Enterprise

Iku ora kanggo apa-apa sing aku sebutno tembung "framework". Saka sudut pandang pangembang, platform 1C minangka kerangka kerja. Lan sampeyan kudu nambani persis kaya framework. Mikir minangka Spring utawa ASP.NET, dieksekusi dening sawetara runtime (JVM utawa CLR mungguh). Mengkono yen ing donya pemrograman konvensional ("ora 1C"), divisi menyang kerangka kerja, mesin virtual lan aplikasi tartamtu iku alamiah, amarga komponen kasebut biasane dikembangake dening manufaktur sing beda-beda. Ing donya 1C, ora umum kanggo mbedakake kerangka pembangunan lan runtime dhewe, saliyane, aplikasi tartamtu sing ditulis nggunakake kerangka kasebut uga dikembangake dening 1C dhewe. Akibaté, sawetara kebingungan muncul. Mulane, ing framework artikel, kita kudu nimbang 1C saka sawetara sisih bebarengan lan klasifikasi ing sawetara sumbu koordinat. Lan ing saben sumbu koordinat kita bakal sijine shovel saka inti coklat lan katon ing fitur, kaluwihan lan cacat saka solusi ana.

Sudut pandang ing 1C

1C kanggo panuku

Sing panuku tuku sistem otomatisasi sing bisa cepet ngatasi masalah ngotomatisasi bisnis dhewe. Bisnis bisa dadi warung cilik, utawa bisa dadi perusahaan induk gedhe. Cetha yen kabutuhan bisnis kasebut beda-beda, nanging loro-lorone didhukung dening basis kode platform siji.

Kanggo panuku 1C iki wektu cepet kanggo pasar. Cepet. Luwih cepet tinimbang Jawa, C# utawa JS. Rata-rata. Mubeng rumah sakit. Cetha yen situs web kertu bisnis sing nggunakake React bakal dadi luwih apik, nanging mburi sistem WMS bakal diluncurake luwih cepet ing 1C.

1C minangka alat

Saben solusi teknologi nduweni watesan sing bisa ditrapake. 1C dudu basa tujuan umum; Disaranake nggunakake 1C yen sampeyan butuh:

  • aplikasi server
  • aplikasi ngendi keuangan katon
  • kanthi UI, ORM, Reporting, XML/JSON/COM/PDF/YourDataTransferingFormat
  • kanthi dhukungan kanggo pangolahan latar mburi lan proyek
  • karo keamanan adhedhasar peran
  • karo logika bisnis scriptable
  • kanthi kemampuan kanggo cepet nggawe prototipe lan kurang wektu-kanggo-pasar

Sampeyan ora perlu 1C yen sampeyan pengin:

  • machine learning
  • petungan GPU
  • grafis komputer
  • petungan matématika
  • sistem CAD
  • pangolahan sinyal (swara, video)
  • highload http telpon karo atusan ewu rps

1C minangka perusahaan manufaktur

Sampeyan kudu ngerti apa bisnis 1C minangka produsen piranti lunak. Perusahaan 1C adol solusi kanggo masalah bisnis liwat otomatisasi. Bisnis sing beda-beda, gedhe utawa cilik, nanging sing didol. Sarana kanggo nggayuh tujuan iki yaiku aplikasi bisnis. Kanggo akuntansi, akuntansi gaji, lsp. Kanggo nulis aplikasi kasebut, perusahaan nggunakake platform pangembangan aplikasi bisnis dhewe. Dicocogake khusus kanggo tugas umum saka aplikasi bisnis sing padha:

  • akuntansi keuangan
  • kustomisasi gampang logika bisnis
  • kemungkinan integrasi sudhut ing malang IT heterogen

Minangka pabrikan, 1C percaya yen iki minangka strategi sing ngidini sampeyan nggarap mitra lan klien ing mode win-win. Sampeyan bisa mbantah iki, nanging iki kira-kira carane perusahaan promosiake dhewe: solusi siap kanggo masalah bisnis sing bisa disesuaikan kanthi cepet dening mitra lan digabungake menyang lanskap IT.

Kabeh pratelan utawa kepinginan kanggo 1C minangka kerangka kudu dideleng sacara eksklusif liwat prisma iki. "Kita pengin OOP ing 1C," ujare pangembang. "Pinten biaya kanggo ndhukung OOP ing platform, apa iki bakal mbantu kita nambah dodolan kothak?" Mbukak "prisma" kanggo adol solusi kanggo masalah bisnis:

- Hei, bisnis, sampeyan pengin OOP ing 1C sampeyan?
- Apa iki bakal mbantu ngatasi masalahku?
- Sapa ngerti ...
- Banjur ora perlu

Pendekatan iki bisa dadi apik utawa ala, gumantung saka sapa sing ndeleng, nanging mung kaya ngono. Ngomong babagan ora ana fitur X ing 1C, sampeyan kudu ngerti manawa ora ana alesan, nanging ing konteks pilihan "biaya implementasi vs jumlah bathi".

Klasifikasi teknologi

"Nyatane, Odinesniks nindakake sing paling apik kanggo nggunakake pola sing paling apik, dipilih kanthi ati-ati dening para ahli metodologi lan pangembang platform 1C.
Nalika sampeyan nulis kode bodho kanggo wangun ngatur prasaja, nyatane sampeyan nggunakake model-view-controller с ngiket data dobel в telung lapisan-data-app-mesin, rasane tingkat dhuwur obyek-hubungan-pemetaan ing pangkalan deskripsi metadata deklaratifduwe dhewe basa pitakon platform-independen, c antarmuka panganggo sing didhukung data deklaratif, serialisasi transparan lengkap lan basa program berorientasi domain.

Ngendi pangembang 1C beda karo kanca-kanca Kulon ing PR. Dheweke seneng menehi jeneng omong kosong lan mlaku-mlaku kaya tas sing reged.
A. Orefkov

Platform 1C nduweni arsitektur 3-undakan klasik, ing tengah yaiku server aplikasi (utawa emulasi kanggo dhuwit cilik kanggo para pedagang cilik). MS SQL utawa Postgres digunakake minangka DBMS. Ana uga dhukungan kanggo Oracle lan IBM DB2, nanging iki rada esoterik ora ana sing ngerti apa sing bakal kelakon yen sampeyan ngleksanakake 1C ing basis data kasebut ing beban medium lan dhuwur. Aku percaya yen 1C dhewe ora ngerti iki.

Sisih klien iku salah siji klien tipis sing diinstal ing mesin pangguna utawa klien web. Fitur tombol iku programer ora nulis 2 kode beda, padha nulis siji aplikasi, ing basa siji, lan sampeyan bisa nampilake ing browser yen ana kepinginan utawa perlu. Sapa sing pengin tumpukan lengkap lan basa siji kanggo ngarep lan mburi, node.js? Dheweke ora tau bisa nindakake perkara sing padha nganti pungkasan. Ana tumpukan lengkap, nanging sampeyan kudu nulis ing 1C. Ironi nasib, kaya ngono :)

Solusi maya SaaS 1C:Fresh uga bisa digunakake ing mode browser, ing ngendi sampeyan ora bisa tuku 1C, nanging nyewa database cilik lan nglacak dodolan shawarma ing kana. Mung ing browser, tanpa nginstal utawa ngatur apa-apa.

Kajaba iku, ana klien warisan, sing ing 1C diarani "aplikasi biasa". Warisan minangka warisan, sugeng rawuh ing jagad aplikasi ing taun 2002, nanging kita isih ngomong babagan kahanan ekosistem saiki.

Part server 1C ndhukung clustering lan timbangan kanthi nambah mesin anyar kanggo kluster. Cukup akeh salinan sing wis rusak ing kene lan bakal ana bagean sing kapisah ing artikel babagan iki. Singkatnya, iki ora padha karo nambahake sawetara kedadeyan sing padha ing mburi HAProxy.

Kerangka pangembangan aplikasi nggunakake basa pamrograman dhewe, sing kira-kira meh padha karo VB6 sing rada apik sing diterjemahake menyang basa Rusia. Kanggo wong sing sengit marang kabeh basa Rusia, sing ora percaya yen "yen" diterjemahake minangka "yen", opsi sintaks kapindho ditawakake. Sing. Yen sampeyan pengin, sampeyan bisa nulis ing 1C kanthi cara sing ora bisa dibedakake karo VB.

1C - Becik lan ala. Susunan titik ing holivars watara 1C

Basa pemrograman iki minangka alesan utama kanggo sengit karo julukan 1C marang platform kasebut. Ayo padha ngadhepi iku, ora tanpa alesan. Basa iki disusun minangka prasaja sabisa, dirancang kanggo nepaki mantra "DEVELOPERS, DEVELOPERS" ing skala paling ora ing CIS. Inti komersial saka solusi kasebut, miturut pendapatku, katon jelas: luwih akeh pangembang, jangkoan pasar sing luwih gedhe. Iki kedadeyan, miturut macem-macem perkiraan saka 45% nganti 95%. Aku bakal langsung ngomong yen nulis ing basa sing sampeyan pikirake luwih gampang. Lan aku ngerti cukup akeh basa pemrograman.

Ayo miwiti nganggo basa.

1. Bahasa Pemrograman C

Ing wektu sing padha titik kuwat lan lemah saka sistem. Nyedhiyakake entri sing gampang lan diwaca. Ing tangan liyane, iku wis ora dianyari wiwit release saka versi 8 ing 2002 lan morally outdated. Ana sing bakal ngomong "kelemahan utama yaiku ora ana OOP" lan bakal salah. Kaping pisanan, PLO ora mung seneng karo Nuraliev, nanging uga Torvalds. Lan kapindho, OOP isih ana.

Saka sudut pandang pangembang, dheweke duwe kerangka kerja kanthi kelas dhasar sing ditampilake ing DBMS. Pangembang bisa njupuk kelas dhasar "Direktori" lan marisi direktori "Klien" saka iku. Bisa nambah lapangan kelas anyar, contone, INN lan Alamat, lan uga, yen perlu, bisa override (override) cara saka kelas dhasar, contone, OnWrite / cara AtRecord.

Kerangka kasebut dirancang kanthi cara supaya warisan sing luwih jero arang dibutuhake, lan watesan ing OOP, miturut pendapatku, bisa dingerteni. 1C fokus ing Domain Driven Development lan nggawe sampeyan mikir, pisanan kabeh, babagan subyek saka solusi sing dikembangake, lan iki apik. Ora mung nggodha, nanging uga ora perlu nulis 10 DTO lan ViewModel sing beda-beda mung kanggo nuduhake sawetara data saka domain nang endi wae. Pangembang 1C tansah makaryakke karo siji entitas, tanpa cluttering konteks pemahaman karo rolas kelas karo jeneng padha, makili entitas padha, nanging saka sisih beda. Sembarang aplikasi .NET, contone, kudu ngemot lima utawa loro ViewModels lan DTOs kanggo serialization menyang JSON lan transfer data saka klien kanggo server. Lan kira-kira 10-15% saka kode aplikasi sampeyan bakal digunakake kanggo nransfer data saka kelas siji menyang kelas liyane nggunakake pena utawa crutches kaya AutoMapper. Kode iki kudu ditulis lan programer kudu dibayar kanggo nggawe lan njaga.

Pranyata basa 1C angel dikembangake tanpa rumit nganti tingkat basa utama, saengga ilang kauntungan saka kesederhanaan. Apa tugas vendor sing kudu ditanggulangi: kanggo ngetokake solusi standar sing bisa ditindakake dening siswa sing kejiret ing dalan kanthi tingkat kualitas sing dibutuhake (yaiku, kasus sing nutupi saka kios menyang pabrik gedhe wis rampung). Yen sampeyan lapak, njupuk mahasiswa yen sampeyan pabrik, njupuk guru saka partner pelaksana; Kasunyatan yen mitra pelaksana adol siswa kanthi rega guru ora dadi masalah karo kerangka kasebut. Secara arsitektur, kerangka kasebut kudu ngrampungake masalah loro-lorone, kode konfigurasi standar (sing didol menyang bisnis kanthi janji kustomisasi) kudu bisa dimangerteni dening siswa, lan guru kudu bisa ngerti apa wae sing dikarepake.

Apa, ing mratelakake panemume, iku pancene ilang ing basa, apa meksa sampeyan nulis luwih saka sampeyan bisa, apa sampah wektu mbayar dening customer.

  • Kemungkinan ngetik ing tingkat, contone, TypeScript (minangka asil, alat analisis kode sing luwih maju ing IDE, refactoring, jambs nyerang luwih sithik)
    Kasedhiyan fungsi minangka obyek kelas kapisan. Konsep sing rada rumit, nanging jumlah kode boilerplate sing khas bisa dikurangi. Pangerten siswa babagan kode kasebut, IMHO, malah bakal tambah amarga nyuda volume
  • Literal koleksi universal, initializers. Bab sing padha - nyuda jumlah kode sing kudu ditulis lan / utawa dideleng kanthi mripat. Koleksi ngisi njupuk luwih saka 9000% wektu pemrograman 1C. Nulis iki tanpa gula sintaksis dawa, larang lan rawan kesalahan. Umumé, jumlah LOC ing solusi 1C ngluwihi kabeh watesan sing bisa dibayangake dibandhingake karo kerangka kerja sing kasedhiya lan, umume, kabeh perusahaan Javas digabungake. Basa iku verbose, lan iki degenerates menyang jumlah data, memori, rem IDE, wektu, dhuwit ...
  • pungkasane konstruksi Aku duwe hipotesis yen konstruksi iki ilang amarga dheweke ora nemokake terjemahan sing sukses ing basa Rusia :)
  • Tipe data dhewe (tanpa OOP), analog saka Tipe saka VB6. Sampeyan bakal ngidini sampeyan ora ngetik struktur nggunakake komentar ing BSP lan cara sihir sing mbangun struktur kasebut. Kita entuk: kode kurang, pitunjuk liwat titik, solusi sing luwih cepet kanggo masalah kasebut, luwih sithik kesalahan amarga kesalahan ketik lan properti struktur sing ilang. Saiki ngetik struktur pangguna gumantung karo tim pangembangan Pustaka Subsistem Standar, sing, kanthi kredit, kanthi teliti nulis komentar babagan properti sing dikarepake saka struktur parameter sing dilewati.
  • Ora ana gula nalika nggarap telpon ora sinkron ing klien web. callback-neraka ing wangun ProcessingNotifications minangka crutch sauntara disebabake owah-owahan dadakan ing API saka browser utama, nanging sampeyan ora bisa manggon kaya iki kabeh wektu kauntungan saka "mahasiswa pemahaman" kode bedo liyane lan liyane. Tambah ora ndhukung paradigma iki ing IDE utama lan dadi luwih elek.

Iki minangka salah sawijining masalah sing paling penting, jelas manawa dhaptar kasebut bisa uga luwih gedhe, nanging aja lali manawa iki dudu basa umum, ora mbutuhake multithreading, fungsi lambda, akses menyang GPU lan cepet. petungan floating-point. Iki minangka basa skrip logika bisnis.

A programmer sing wis makarya akeh karo basa iki, katon menyang js utawa c #, dadi bosen ing framework saka basa iki. Iku kasunyatan. Dheweke butuh pembangunan. Ing sisih liya saka ukuran kanggo vendor iku biaya kanggo ngleksanakake fitur tartamtu versus Tambah ing revenue sawise implementasine. Ing kene aku ora duwe informasi babagan apa sing saiki luwih gedhe ing mata perusahaan.

Lingkungan pangembangan

Ing kene uga ora lancar. Ana rong lingkungan pangembangan. Kapisan yaiku Configurator sing kalebu ing pangiriman. Kapindho yaiku lingkungan Enterprise Development Tools, utawa singkatan EDT, dikembangake kanthi basis Eclipse.

Configurator nyedhiyakake macem-macem tugas pangembangan, ndhukung kabeh fitur lan minangka lingkungan utama ing pasar. Iku uga morally lungse, ora berkembang, miturut gosip - amarga jumlah utang technical ing dhewe. Kahanan kasebut bisa didandani kanthi mbukak API internal (ing wangun kekancan karo wong salju A. Orefkova utawa kanthi basis independen), nanging iki ora kedadeyan. Laku wis nuduhake yen masyarakat bakal nulis fitur dhewe ing IDE, anggere vendor ora ngganggu. Nanging kita duwe apa sing kita duwe. Configurator gedhe ing 2004-2005, banget ngelingi Visual Studio wektu iku, ing sawetara panggonan malah adhem, nanging macet ing wektu sing.

Kajaba iku, volume solusi standar rata-rata wis thukul kaping pirang-pirang wiwit iku, lan dina iki IDE mung ora bisa ngrampungake karo jumlah kode karo kang panganan. Kapabilitas migunani lan refactoring ora malah nul, padha ing abang. Kabeh iki ora nambah semangat kanggo pangembang lan ngimpi pindhah menyang ekosistem liyane lan terus kode telek ana, nanging ing lingkungan penake sing ora ngidoni pasuryan karo prilaku sawijining.

Minangka alternatif, IDE ditulis saka ngeruk, dibangun ing Eclipse, ana. Ing kana, sumber, kaya ing piranti lunak liyane, manggon ing wangun file teks, disimpen ing GIT, narik cabang panyuwunan, kabeh iki. Ing sisih ngisor, wis ora ninggalake status beta nganti pirang-pirang taun saiki, sanajan dadi luwih apik saben rilis. Aku ora bakal nulis bab cacat EDT, dina iki minus, sesuk iku fitur tetep. Relevansi deskripsi kasebut bakal cepet ilang. Dina iki bisa berkembang ing EDT, nanging ora biasa sampeyan kudu disiapake kanggo sawetara bug IDE.

Yen sampeyan ndeleng kahanan liwat "prisma 1C" sing kasebut ing ndhuwur, sampeyan bakal entuk kaya iki: release saka IDE anyar ora nambah dodolan kothak, nanging aliran metu DEVELOPERS bisa uga suda. Iku angel ngomong apa sing nunggu ekosistem ing syarat-syarat comfort pangembang, nanging Microsoft wis ngaco munggah pangembang seluler dening nawakake layanan sawijining kasep.

Manajemen pembangunan

Kabeh ing kene luwih apik tinimbang nulis kode, utamane bubar, nalika upaya komunitas nyebabake masalah otomatisasi administrasi, ngluncurake prototipe sing njaluk mbuwang repositori 1C menyang tumpukan sampah lan nggunakake git, nyalahke cepet, review kode , analisis statis, penyebaran otomatis lan liya-liyane. Akeh fitur sing ditambahake ing platform sing nambah tingkat otomatisasi tugas pangembangan. Nanging, kabeh fitur iki ditambahake mung lan khusus kanggo pangembangan produk gedhe kita dhewe, nalika dadi jelas yen kita ora bisa nindakake tanpa otomatisasi. Ana panggabungan otomatis, perbandingan telung arah karo KDiff lan liya-liyane. Dibukak ing Github gitconverter, sing, terus terang, kanthi ideologis diseret saka proyek kasebut gitsync, nanging diowahi kanggo cocog karo pangolahan perusahaan vendor. Thanks kanggo wong lanang sing wangkal saka open-source, otomatisasi pangembangan ing 1C mudhun. API mbukak kanggo configurator, IMHO, uga bakal nggeser backwardness moral saka IDE utama.

Dina iki, nyimpen sumber 1C ing git kanthi komitmen sing ana gandhengane karo masalah ing Jira, review ing Crucible, tombol push saka laporan Jenkins lan Allure babagan tes kode ing 1C lan malah analisis statis ing SonarQube - iki adoh saka warta, nanging dadi mainstream ing perusahaan sing akeh pangembangan 1C.

Administrasi

Ana akeh sing kudu diomongake ing kene. Kaping pisanan, iki, mesthi, server (kluster server 1C). A bab apik banget, nanging amarga kasunyatan sing iku kothak rampung ireng, nyathet ing rinci cekap, nanging ing cara tartamtu - mastering Bukak saka operasi uninterrupted ing mode highload ing sawetara server iku akèh sawetara milih sing nganggo a medali kanthi tulisan "Ahli Masalah Teknologi". Wigati dicathet yen, ing prinsip, ngatur server 1C ora beda karo ngatur server liyane. Iku basis jaringan, aplikasi multi-threaded sing nggunakake memori, CPU, lan sumber daya disk. Nyedhiyani kesempatan akeh kanggo koleksi telemetri lan diagnostik.

Masalah ing kene yaiku vendor ora nawakake apa-apa khusus babagan solusi sing wis siap kanggo diagnostik iki. Ya, ana 1C: Instrumentasi lan Pusat Kontrol, malah cukup apik, nanging larang banget lan ora saben wong duwe. Komunitas duwe sawetara gagasan kanggo nyambungake Grafana, Zabbix, ELK lan liya-liyane saka set admin standar, nanging ora ana solusi sing cocog karo mayoritas. Tugas ngenteni pahlawane. Lan yen sampeyan bisnis sing rencana kanggo miwiti ing kluster 1C, sampeyan kudu Expert. Sampeyan dhewe ing njero utawa saka njaba, nanging sampeyan butuh. Biasane ana peran sing kapisah karo kompetensi kanggo operasi server, ora saben pangguna 1C kudu ngerti iki, sampeyan mung kudu ngerti yen peran kasebut dibutuhake. Ayo dadi contone SAP. Ing kana, programmer, paling kamungkinan, ora bakal tangi saka kursi yen dijaluk ngatur soko ing server aplikasi. Dheweke bisa uga bodho lan ora bakal isin. Ing metodologi SAP ana peran karyawan sing kapisah kanggo iki. Kanggo sawetara alasan, ing industri 1C dipercaya manawa iki kudu digabungake ing siji karyawan kanthi gaji sing padha. Iku khayalan.

Kekurangan server 1C

Ana persis siji minus - linuwih. Utawa, yen sampeyan seneng, unpredictability. Dumadakan prilaku aneh saka server wis dadi dhiskusi saka kutha. A obat universal - mungkasi server lan mbusak kabeh caches - malah diterangake ing handbook pakar, lan malah buku kumpulan dianjurake kanggo nindakake iki. Yen sistem 1C sampeyan wiwit nindakake apa wae sing ora kudu ditindakake kanthi teoritis, wektune kanggo mbusak cache data sesi. Miturut perkiraanku, mung ana telung wong ing saindenging negara sing ngerti cara ngoperasikake server 1C tanpa prosedur iki lan ora nuduhake rahasia, amarga ... padha manggon saka iki. Mbok menawa rahasia kasebut yaiku ngresiki data sesi, nanging ora ngandhani sapa wae, wong lanang.

Yen ora, server 1C minangka aplikasi sing padha karo liyane lan ditindakake kanthi cara sing padha, kanthi maca dokumentasi lan nuthuk rebana.

docker

Kegunaan nggunakake server 1C sing dikontainer ing produksi durung kabukten. Server ora clustered dening mung nambah simpul konco balancer, kang nyuda keuntungan saka containerization produksi kanggo minimal, lan laku operasi sukses ing kontaner ing mode highload durung ditetepake. Akibaté, mung pangembang nggunakake Docker + 1C kanggo nyiyapake lingkungan test. Ana iku banget migunani, digunakake, ngijini sampeyan kanggo muter karo teknologi modern lan ngaso saka despondency saka configurator.

Komponen komersial

Saka sudut pandang investasi, 1C ngidini sampeyan ngatasi masalah kanthi cepet ngluncurake ide bisnis amarga kemampuan kelas aplikasi sing akeh. 1C metu saka kothak menehi Reporting banget prayoga, integrasi karo apa wae, klien web, klien seluler, aplikasi seluler, support kanggo macem-macem DBMSs, kalebu. free, salib-platform loro server lan diinstal bagean klien. Ya, UI aplikasi bakal kuning, kadhangkala iki minus, nanging ora mesthi.
Kanthi milih 1C, bisnis entuk sakumpulan solusi piranti lunak sing ngidini nggawe macem-macem aplikasi, uga akeh pangembang ing pasar sing pengin dhuwit kurang saka Javaists lan ing wektu sing padha ngasilake asil luwih cepet.

Contone, tugas ngirim invoice PDF menyang klien bisa ditanggulangi sajrone jam kerja siswa. Masalah sing padha ing .NET bisa ditanggulangi kanthi tuku perpustakaan kepemilikan, utawa sawetara dina utawa minggu coding dening pangembang jenggot. Kadhangkala, loro-lorone bebarengan. Lan ya, aku mung ngomong babagan generasi PDF. Kita durung ujar manawa tagihan iki bakal teka. Frontender web kudu nggawe formulir ing ngendi operator bakal ngetik data, backender kudu nggawe model dto kanggo nransfer JSON, model kanggo nyimpen ing database, struktur database dhewe, migrasi menyang, pambentukan grafis. tampilan akun iki banget, lan mung banjur - PDF. Ing 1C, kabeh tugas, saka ngeruk, rampung sak jam.

Sistem akuntansi lengkap kanggo kios cilik kanthi siji proses bisnis sing dituku / didol rampung ing 3 jam Kanthi laporan penjualan, akuntansi barang ing rega tuku lan adol, dipecah dening gudang, kontrol hak akses, klien web lan aplikasi seluler. . Oke, aku lali babagan aplikasi, karo aplikasi ora ing 3 jam, ing enem.

Suwene tugas iki njupuk pangembang .NET saka nginstall studio visual ing komputer resik kanggo nuduhake menyang customer? Apa babagan biaya pembangunan? Bab sing padha.

Kekuwatan 1C minangka platform

1C kuwat ora amarga ana sing spesifik babagan sing paling apik ing donya. Kosok baline, ing saben subsistem individu sampeyan bisa nemokake analog sing luwih menarik ing piranti lunak donya. Nanging, adhedhasar kombinasi faktor, aku ora weruh platform sing padha karo 1C. Iki ngendi sukses komersial dumunung. Kauntungan saka platform kasebut kasebar ing saindenging lan paling jelas katon nalika sampeyan ndeleng kepiye cara iki ditindakake ing platform liyane. Sejatine, iki ora malah fitur, nanging ing nalisir - penolakan fitur ing sih saka siji paradigma tartamtu. Sawetara conto:

  1. Unicode. Apa neraka bisa luwih prasaja? Ora perlu nggunakake enkoding ASCII siji-byte ing taun 2019 (kajaba integrasi karo warisan kuno). ora tau. Nanging ora. Oalah, wong ing sawetara tabel nggunakake varchar siji-byte lan aplikasi bakal duwe masalah karo enkoding. Ing taun 2015, wewenang LDAP gitlab gagal amarga salah ngodhe karo JetBrains IDE isih ora bisa digunakake karo Cyrillic ing jeneng file ing endi wae. 1C nyedhiyakake isolasi kode aplikasi kanthi kualitas dhuwur saka lapisan database. Ana iku mokal kanggo ngetik tabel ing tingkat kurang lan jambs saka junior incompetent ing tingkat database mokal ana. Ya, bisa uga ana masalah liyane karo junior sing ora kompeten, nanging macem-macem masalah luwih cilik. Saiki sampeyan bakal ngandhani yen aplikasi sampeyan wis dirancang kanthi bener lan lapisan akses database diisolasi kaya sing dikarepake. Deleng maneh aplikasi Java khusus perusahaan sampeyan. Cedhak lan jujur. Apa nurani sampeyan ngganggu sampeyan? Banjur aku seneng kanggo sampeyan.
  2. Nomer dokumen/buku referensi. Ing 1C mesthine ora paling fleksibel lan ora paling apik. Nanging apa sing ditindakake ing piranti lunak perbankan lan ing sistem akuntansi sing ditulis dhewe - uga, mung peteng. Salah siji identitas bakal macet ing (lan banjur "oh, kok kita duwe bolongan"), utawa ing nalisir, padha bakal nggawe generator sing bisa karo ngunci ing tingkat DBMS (lan bakal dadi bottleneck). Nyatane, cukup angel kanggo nindakake tugas sing katon prasaja iki - enumerator end-to-end entitas, kanthi bagean keunikan adhedhasar set kunci tartamtu, prefixation, supaya ora ngalangi database sajrone entri data paralel. .
  3. Identifiers saka cathetan ing database. 1C nggawe keputusan sing kuat - kabeh pengenal link pancen sintetik lan kabeh. Lan ora ana masalah karo basis data sing disebarake lan ijol-ijolan. Pangembang sistem liyane stubbornly nggawe kaya identitas (iku luwih cendhek!), Seret menyang GUI nganti wektu kanggo nggawe sawetara kedadean sing gegandhengan (banjur bakal ditemokake). Apa sampeyan ora duwe iki? Jujur?
  4. Dhaptar. 1C nduweni mekanisme sing cukup sukses kanggo mbukak dhaptar (gedhe) lan navigasi. Ayo kula nggawe reservasi langsung - kanthi nggunakake mekanisme sing bener! Umumé, topik iki cukup karu, ora bisa ditanggulangi saenipun: iku salah siji intuisi lan prasaja (nanging risiko recordsets ageng ing klien), utawa paging iku salah siji utawa liyane crookedness. Tiyang ingkang nindakaken paging asring nindakaken bengkok. Sing nggawe scrollbar jujur ​​nambah database, saluran lan klien.
  5. Wangun sing dikelola. Ora mangu, ing klien web antarmuka ora bisa digunakake kanthi sampurna. Nanging kerjane. Nanging kanggo akeh sistem akuntansi lan perbankan liyane, nggawe papan kerja sing adoh minangka proyek tingkat perusahaan. wewaler: Begjanipun kanggo wong-wong sing Originally digawe ing web, iki ora mengaruhi.
  6. Aplikasi seluler. Bubar, sampeyan uga bisa nulis aplikasi seluler nalika ana ing ekosistem sing padha. Luwih rumit ing kene tinimbang karo klien web, spesifikasi piranti kasebut meksa sampeyan nulis khusus kanggo wong-wong mau, nanging, sampeyan ora nyewa tim pangembang seluler sing kapisah. Yen sampeyan butuh aplikasi kanggo kabutuhan internal perusahaan (nalika solusi seluler kanggo masalah perusahaan luwih penting tinimbang desain UI kuning), sampeyan mung nggunakake platform sing padha metu saka kothak.
  7. Nglaporake. Miturut tembung iki aku ora ateges sistem BI karo data amba lan lag ing proses ETL. Iki nuduhake laporan staf operasional sing ngidini sampeyan netepake kahanan akuntansi ing kene lan saiki. Saldo, mutual settlement, re-grading, lsp. 1C metu saka kothak kanthi sistem pelaporan kanthi konfigurasi pengelompokan, saringan, lan visualisasi sing fleksibel ing sisih pangguna. Ya, ana analog sing luwih adhem ing pasar. Nanging ora ana ing kerangka solusi kabeh-ing-siji lan kanthi rega kadhangkala luwih dhuwur tinimbang solusi kabeh-ing-siji. Lan luwih kerep malah sebaliknya: mung nglaporake, nanging luwih larang tinimbang kabeh platform, lan kualitase luwih elek.
  8. Wangun sing bisa dicithak. Ya, gunakake .NET kanggo ngatasi masalah ngirim slip gaji ing PDF menyang karyawan kanthi email. Lan saiki tugas print invoice. Kepiye carane nyimpen salinan menyang PDF sing padha? Kanggo julukan 1C, nggawe tata letak apa wae menyang PDF yaiku +1 baris kode. Iki tegese + 40 detik wektu kerja, tinimbang dina utawa minggu ing basa liya. Tata letak formulir sing dicithak ing 1C pancen gampang dikembangake lan cukup kuat kanggo saingan karo mitra sing dibayar. Ya, mbokmenawa, ora akeh kesempatan interaktif ing dokumen spreadsheet 1C, sampeyan ora bisa kanthi cepet entuk diagram 3D kanthi skala nggunakake OpenGL. Nanging apa pancen perlu?

Iki mung sawetara conto sing mbatesi fungsi utawa ngleksanakake kompromi dadi mupangat arsitektur sing penting ing mangsa ngarep. Malah kompromi utawa ora pilihan sing paling efektif - iku wis ing kothak lan dijupuk kanggo diwenehake. Implementasine independen bakal ora mungkin (amarga keputusan kasebut kudu ditindakake ing wiwitan proyek, lan ora ana wektu kanggo iku, lan ora ana arsitek), utawa sawetara iterasi sing larang. Ing saben TCTerms kadhaptar (lan iki ora dhaftar lengkap solusi arsitektur), sampeyan bisa meneng munggah lan introduce Watesan sing mblokir njongko. Ing kasus apa wae, sampeyan, minangka pengusaha, kudu mesthekake yen programer sampeyan, nalika nggawe "sistem saka awal," duwe tangan sing lurus lan bakal nindakake masalah sistem subtle kanthi cepet.

Ya, kaya ing sistem kompleks liyane, 1C dhewe uga duwe solusi sing ngalangi skala ing aspek tartamtu. Nanging, aku mbaleni, adhedhasar kombinasi faktor, biaya kepemilikan, lan jumlah masalah sing wis ditanggulangi sadurunge, aku ora weruh pesaing sing pantes ing pasar. Kanggo rega sing padha, sampeyan entuk kerangka aplikasi finansial, server imbang clustered, kanthi antarmuka UI lan web, kanthi aplikasi seluler, kanthi laporan, integrasi lan akeh liyane. Ing jagad Jawa, sampeyan nyewa tim ngarep lan mburi mburi, debug kode server sing ditulis ing omah lan mbayar kanthi kapisah kanggo 2 aplikasi seluler kanggo 2 OS seluler.

Aku ora ujar manawa 1C bakal ngrampungake kabeh kasus, nanging kanggo aplikasi perusahaan internal, nalika ora perlu merek UI - apa maneh sing dibutuhake?

Sendok tar

Sampeyan bisa uga duwe kesan yen 1C bakal nylametake jagad iki lan kabeh cara nulis sistem perusahaan salah. Ora kaya ngono babar pisan. Saka sudut pandang pengusaha, yen sampeyan milih 1C, saliyane kanggo pasar sing cepet, sampeyan kudu nganggep kekurangan ing ngisor iki:

  • linuwih server. Spesialis sing berkualitas tinggi dibutuhake sing bisa njamin operasi tanpa gangguan. Aku ora ngerti program latihan siap kanggo spesialis kasebut saka vendor. Ana kursus kanggo nyiapake ujian Expert, nanging iki, miturut pendapatku, ora cukup.
  • Nyokong. Waca paragraf sadurunge. Kanggo entuk dhukungan saka vendor, sampeyan kudu tuku. Kanggo sawetara alasan iki ora ditampa ing industri 1C. Lan karo SAP, meh kudu tuku lan ora ngganggu sapa wae. Tanpa dhukungan perusahaan lan tanpa pakar ing staf, sampeyan bisa ditinggalake kanthi gangguan 1C.
  • Nanging, sampeyan ora bisa nindakake kabeh kanthi 1C. Iki minangka alat lan kaya saben alat duwe watesan sing bisa ditrapake. Ing lanskap 1C, dikarepake banget duwe arsitek sistem "non-1C".
  • Jeneng julukan 1C sing apik ora luwih murah tinimbang programer sing apik ing basa liya. Senajan, programer ala larang kanggo nyewa, preduli saka basa sing ditulis ing.

Ayo dadi titik titik

  • 1C minangka kerangka pangembangan aplikasi cepet (RAD) kanggo bisnis lan dirancang kanggo iki.
  • Link telung tingkat kanthi dhukungan kanggo DBMS utama, UI klien, ORM lan laporan sing apik banget
  • Wide kemungkinan kanggo integrasi karo sistem sing bisa nindakake apa 1C ora bisa. Yen sampeyan pengin machine learning, njupuk Python lan ngirim asil kanggo 1C liwat http utawa RabbitMQ
  • Ora perlu ngupayakake kabeh nggunakake 1C, sampeyan kudu ngerti kekuwatane lan gunakake kanggo tujuan sampeyan dhewe.
  • Pangembang sing kepengin ngeduk gadget kerangka teknologi lan ngrancang ulang saben N taun menyang mesin anyar bosen karo 1C. Kabeh ana konservatif banget.
  • Pangembang uga bosen amarga ana keprihatinan banget saka pabrikan. Basa mboseni, IDE sing ringkih. Padha mbutuhake modernisasi.
  • Ing sisih liya, pangembang sing ora bisa nyenengake kanthi nggunakake lan sinau teknologi liyane sing disenengi yaiku pangembang sing ala. Dheweke bakal merengek lan pindhah menyang ekosistem liyane.
  • Juragan sing ora ngidini julukan 1C kanggo nulis soko ing Python iku juragan ala. Padha bakal kelangan karyawan karo pikiran inquisitive, lan ing panggonane bakal teka coders monkey sing, nalika sarujuk karo kabeh, bakal nyeret software perusahaan menyang rawa. Iku isih kudu ditulis maneh, supaya iku bakal luwih apik kanggo nandur modal sethitik ing Python sethitik sadurungé?
  • 1C minangka perusahaan komersial lan ngleksanakake fitur mung adhedhasar kapentingan lan kaprigelan dhewe. Sampeyan ora bisa nyalahake dheweke, bisnis kudu mikir babagan bathi, yaiku urip
  • 1C entuk dhuwit kanthi ngedol solusi kanggo masalah bisnis, dudu masalah pangembang Vasya. Loro konsep iki ana hubungane, nanging prioritase persis kaya sing dakkandhakake. Nalika pangembang Vasya siap mbayar lisensi pribadi kanggo 1C: Resharper, bakal katon cukup cepet, "Resharper" dening A. Orefkova minangka bukti iki. Yen vendor ndhukung, lan ora nglawan, pasar piranti lunak kanggo pangembang bakal katon. Saiki ana siji lan setengah pemain ing pasar iki karo asil pitakonan, lan kabeh amarga integrasi karo IDE negatif lan kabeh wis rampung ing crutches.
  • Praktek operator multi-mesin bakal ilang. Aplikasi modern gedhe banget kanggo elinga saka sisih kode lan saka sisih panggunaan bisnis. Server 1C uga dadi luwih rumit, ora bisa nyekel kabeh jinis keahlian ing siji karyawan. Iki kudu mbutuhake panjaluk spesialis, sing tegese daya tarik profesi 1C lan kenaikan gaji. Yen sadurunge Vasya kerja telu-ing-siji kanggo siji gaji, saiki sampeyan kudu nyewa loro Vasyas lan kompetisi antarane Vasyas bisa spur wutah sakabèhé saka tingkat sing.

kesimpulan

1C minangka produk sing pantes banget. Ing sawetara rega, aku ora ngerti analog apa wae, tulis ing komentar yen ana. Nanging, outflow saka pangembang saka ekosistem dadi liyane lan liyane ngelingke, lan iki minangka "saluran otak", ora ketompo carane katon ing. Industri luwe kanggo modernisasi.
Yen sampeyan dadi pangembang, aja mandheg ing 1C lan aja mikir yen kabeh iku gaib ing basa liya. Nalika sampeyan isih enom, mbok menawa. Sanalika ana sing luwih gedhe kudu ditanggulangi, solusi sing wis siap kudu digoleki luwih suwe lan rampung kanthi luwih intensif. Ing babagan kualitas "blok" saka solusi sing bisa dibangun, 1C apik banget.

Lan siji liyane - yen julukan 1C teka kanggo sampeyan nyewa, banjur julukan 1C bisa kanthi aman ditunjuk kanggo posisi analis timbal. Pangerten babagan tugas, area subyek, lan katrampilan dekomposisi apik banget. Aku yakin manawa iki amarga nggunakake paksa DDD ing pangembangan 1C. Wong dilatih kanggo mikir babagan makna tugas pisanan, babagan sambungan antarane obyek ing area subyek, lan ing wektu sing padha nduweni latar mburi teknis ing teknologi integrasi lan format pertukaran data.

Elinga yen kerangka kerja sing cocog ora ana lan ngurus dhewe.
Apik kanggo kabeh!

PS: matur nuwun sanget speshuric kanggo pitulungan kanggo nyiapake artikel.

Mung pangguna pangguna sing bisa melu survey. mlebunggih.

Apa sampeyan duwe 1C ing perusahaan sampeyan?

  • 13,3%Ora pisan-pisan.71

  • 30,3%Ana, nanging mung ing departemen akuntansi nang endi wae. Sistem inti ing platform liyane162

  • 41,4%Ya, proses bisnis utama bisa ditindakake221

  • 15,0%1C kudu mati, masa depan duweke %technology_name%80

534 pangguna milih. 99 pangguna abstain.

Source: www.habr.com

Add a comment