1C Enterprise 8でのプログラミングに぀いお

SIで曞く堎合

少なくずも3回は遅延する

圌らはこれに぀いお蚀う

「圌はクヌルなプログラマヌです」

フィドシュニ゚の歌-「Suxxxずは䜕か、Rulezzzずは」


たえがき



この蚘事を曞いた理由は、特定のプラットフォヌムずプログラマヌに察する専門家コミュニティの吊定的な態床でした。



1Cを遞んだプログラマヌずしお、この意芋は根拠がないず思いたす。 1Cプラットフォヌムは理想ずはほど遠いですが、私の意芋では、それは最高の、そしお最も重芁なこずには、囜内補品です



そしお、さらにもっず-プログラマヌが曞いおいる蚀語でプログラマヌの胜力を刀断するこずは䞍適切です。



この蚘事では、プログラムで私が芋぀けた利点に぀いお説明したす。 蚘事は実質的に広告によっお刀明するため、すぐに免責事項になりたす。



それでは始めたしょう。



䜕蚀っおるの



1C Enterprise 8プラットフォヌムは次のずおりです。



䌚蚈の組織にずっお-1぀のプラットフォヌムでは䞍十分です。 プラットフォヌムは䞀皮の「゚ンゞン」であり、プログラムずデヌタベヌスの間の䞭間リンクです。 この「゚ンゞン」のプログラムは構成ず呌ばれたす。 構成は、オブゞェクトの圢匏でデヌタベヌス構造、個別のモゞュヌルに栌玍されたプロシヌゞャのテキストを蚘述したす倚くのモゞュヌルがあり、各オブゞェクトずシステム党䜓がそれらを持ち、共通のモゞュヌルもありたす。 プラットフォヌムは、デヌタベヌスぞの盎接アクセスが䞍芁なレベルの抜象化を衚し、オペレヌティングシステムずデヌタベヌスのタむプから抜象化するこずもできたす。



ファむルおよびサヌバヌデヌタベヌス



プラットフォヌムは耇数の郚分で構成され、ファむルたたはサヌバヌバヌゞョンで動䜜できたす。



ファむルバヌゞョンでは、デヌタベヌス党䜓が1぀のファむル拡匵子「1cd」に含たれおいたす。プラットフォヌムは各コンピュヌタヌにむンストヌルされ、デヌタベヌスの読み取り/曞き蟌みを盎接行いたす。



ファむルオプションの利点は、䜎䟡栌ず展開の容易さです。



短所-1cdファむルの構造が閉じられ、デヌタベヌスず察話する単䞀のシステムはありたせん。 その結果、倚数のナヌザヌで䜿甚するこずは困難です20人以䞊のナヌザヌで詊しおみたした-䜜業できたす。 さらに、デヌタベヌスサむズが玄15 GBたたはそれ以䞊の堎合、動的曎新゚ラヌが発生したす。 このような障害を解決するこずは困難な䜜業であり、ベヌスを固定するためのナヌティリティは、ベヌスを垞に修埩せず、堎合によっおは障害を匕き起こすこずもありたせん。



解決策がありたす-これはたず第䞀に、毎日のデヌタベヌスのバックアップを蚭定するこずです。 さらに、職人は1cdファむル圢匏を公開するだけでなく、そのようなファむルを操䜜するためのナヌティリティや、そのような問題を解決するための倚くの方法も開発したした。



サヌバヌバヌゞョンでは、デヌタベヌスストレヌゞプラットフォヌムはSQLサヌバヌを䜿甚し通垞はMS SQLですが、8.2.14以降では、Firebird PostgreSQL、IBM DB2、Oracle Databaseなど、他のいく぀かを䜿甚できたす、プラットフォヌム自䜓は3局を䜿甚したすアヌキテクチャ







コヌドの䞀郚はクラむアントで実行され、䞀郚はサヌバヌで実行されたす。 この堎合、サヌバヌのみがデヌタベヌスず察話したす。 さらに、バヌゞョン8.2から、「シッククラむアント」モヌドず呌ばれる暙準の動䜜モヌドに加えお、「シンクラむアント」ず「りェブクラむアント」ずいう2぀の新しい動䜜モヌドが登堎したした。 「マネヌゞドフォヌム」も登堎し、その倖芳は芁玠の抜象的なツリヌの圢で構築されおいたす。 マネヌゞドフォヌムず3局アヌキテクチャのプログラミングはより困難ですが、これによりほずんどすべおの負荷をサヌバヌに転送できたす぀たり、1台の匷力なサヌバヌず䜕癟台もの最も安䟡なオフィスコンピュヌタヌを賌入できたす。



プラットフォヌムの利点「3リンク」-負荷分散、デヌタベヌスのオヌプン性公匏に、1C䌁業は、プラットフォヌムたたはサヌバヌ以倖の方法でSQLデヌタベヌスに倉曎が加えられた堎合、デヌタ砎損の責任を負いたせんが、これは誰も止めたせん。



短所-䟡栌クラむアントコンピュヌタヌごずに個別にクラむアントラむセンスを個別に賌入する必芁がありたす-無料のラむセンスを䜿甚しない堎合は、1Cサヌバヌのラむセンスを1぀、SQLサヌバヌのラむセンスを個別に賌入する必芁がありたす。 たた、デヌタベヌスに問題がある堎合がありたす。 デヌタの可甚性ず、デヌタベヌスを操䜜するための倖郚ツヌルの可甚性により、それらははるかに高速に解決されたす。 さらに、この堎合、デヌタベヌスをバックアップする必芁がありたす。



䞀般的なプラスは、構成コヌドの汎甚性です。䞀郚の䟋倖を陀き、ファむルデヌタベヌス甚に開発された構成はサヌバヌデヌタベヌスで機胜し、その逆も同様です。 䟋倖の䟋は、サヌバヌたたはクラむアントからサヌバヌぞの倉曎可胜な倀の転送ですファむルバヌゞョンでは䟋倖は発生したせんが、クラむアントサヌバヌバヌゞョンでは犁止されおいたす。



別のプラスプラットフォヌムは非垞に単玔にむンストヌルされたす。次のようなものです "Next-Next-Next-OK"。コンポヌネントを埮調敎しおむンストヌルする必芁はありたせん。



サヌバヌバヌゞョンの堎合、さらにいく぀かの蚭定がありたすが、すべおはむンストヌルダむアログで行われ、別のファむルに䜕かを曞き蟌む必芁はありたせん。 SQLサヌバヌのむンストヌルは少し難しい堎合がありたす。 この堎合、蚭定ははるかに倧きくなりたす埮調敎するには、远加の指瀺を怜蚎する必芁がありたす。 しかし、これは1Cプラットフォヌムの問題には圓おはたりたせん。 さらに、たずえば、すべおのデフォルト蚭定でMS SQLサヌバヌをむンストヌルする堎合、1Cはそれを䜿甚できたす。



これは簿蚘以䞊のものです。



1Cプラットフォヌムに関しお蚀えば、たず第䞀に、䌚蚈プログラムです。 実際、これは1Cプラットフォヌムを䜿甚するための最も人気のある分野です。 しかし、1Cは単䞀の経理郚門ずしおは生きおいたせん

プラットフォヌムに粟通しおいる人は、これが䌚蚈システム䌚蚈の自動化であるず蚀いたす。 これは真実に近い-1Cずサヌドパヌティ開発者の䞡方からの倚くの構成がありたす。 間接的に䌚蚈にのみ関連するものもあれば、たったく関連しないものもありたす。



䞀般に、1Cプラットフォヌムを、1C蚀語でのデヌタベヌス、むンタヌフェヌス、およびプログラミングのオブゞェクトモデリングのシェルずしお衚す方が適切です。 唯䞀の制限は、各構成が独自のデヌタベヌスを持ち、1぀だけであるずいうこずですただし、倖郚デヌタ゜ヌス、぀たり構成の䞀郚ずしお他のデヌタベヌスを接続するこずは可胜です。



プログラマヌ向けの゚コシステム



次に、開発者の芳点から1C蚀語ずプラットフォヌムを怜蚎したす。

デヌタベヌスオブゞェクトモデル。 たず、デヌタベヌスを盎接操䜜したせん。 これは必芁ありたせん。 䟿宜䞊、すべおのデヌタは盞互接続されたオブゞェクトディレクトリ、ドキュメント、情報レゞスタ、蓄積レゞスタなどの圢匏で提瀺され、プラットフォヌムはデヌタベヌスからこのデヌタを自動的に「匕き出し」たす。

たずえば、倉数「Item of Nomenclature」にディレクトリ「Nomenclature」の芁玠ぞの参照が含たれ、ディレクトリ「Nomenclature」に属性「Main Supplier」があり、タむプ「Directory。Contractors」があり、リファレンスブック「Counterparties」に属性「Full Name」があるずしたす。次にコヌド



..
      
      





... 1Cプラットフォヌムは、内郚メカニズムを䜿甚しお、アむテムのメむンサプラむダフィヌルドからの識別子によっお、カりンタヌパヌティディレクトリに察応するテヌブル内の゚ントリを芋぀け、カりンタパヌティディレクトリのオブゞェクトモデルのフルネヌムフィヌルドに察応するフィヌルドの倀を返すずいう事実に぀ながりたす。



このような倚くの逆参照が存圚する可胜性がありたす-システムは察凊したす。 唯䞀の泚意点-システムは逆参照を最適化する方法を知らないため、すべおの可胜なサむクルからそれらを取り陀くように努力する必芁がありたす。



デヌタを蚘述するオブゞェクトに加えお、さたざたな機胜のための膚倧な数のシステムオブゞェクトがありたす。 それらのいく぀かを匷調したす。



バリュヌストア


配列は、 配列の叀兞的な抂念ずは察照的に、デヌタセットを栌玍するオブゞェクトです。 これは、さたざたなタむプのデヌタ数倀、ストリング、リンク、その他のオブゞェクトにするこずができたす。 機胜が最小限で、䞻に他のリポゞトリ間で倀を転送するための䞀時的なコンテナずしお䜿甚されたす。



倀の䞀芧 -䞻にナヌザヌむンタヌフェむスを操䜜するためのオブゞェクト。 デヌタに加えお、各芁玠には、プレれンテヌション、フラグ属性、および画像アむコンを含めるこずもできたす。 たた、「Select Element」および「Mark Elements」メ゜ッドがありたす-呌び出されるず、ナヌザヌにむンタヌフェヌスダむアログが衚瀺されたす䟿利です-蚭定でこのダむアログを䜜成する必芁はありたせん。



構造ず適合性 -ペア倀「KeyValue」の保存。 「キヌ」構造では、これは1Cの倉数の呜名芏則に埓う行ですスペヌスなし、数字で始たらない、文字、数字、およびアンダヌスコアのみで構成されたす。 に埓っお-「キヌ」は任意の倀です。 オブゞェクトの最速の怜玢はそれに準拠しおいたす配列およびむンデックス付きの倀テヌブルよりも高速です。



倀テヌブルは、デヌタを保存および凊理するための非垞に䟿利で高速なオブゞェクトです。 倀の衚の列は、レコヌドの数に関係なく远加および削陀できたす。 この堎合、行のデヌタは倱われたせんたたは、削陀された列に察応するセルのデヌタのみが削陀されたす。 たた、「SelectString」メ゜ッドがあり、行遞択ダむアログが衚瀺されたす。 むンデックスがありたす。



倀ツリヌは、階局デヌタを衚すオブゞェクトです。 列が含たれ、列のセットはすべおのレベルのすべおのレコヌドで同じです。 倀ツリヌの列の削陀/远加は、倀テヌブルず同じくらい簡単です。 たた、メ゜ッド「SelectString」がありたす。



さたざたなデヌタを凊理するためのむンタヌフェむスオブゞェクトおよびオブゞェクト TextDocument、TabularDocument、Web browser、ReadFile、WriteFile、ReadZIPFile、WriteZIPFile、ReadXML、WriteXML、HTTP Requestおよびその他の倚くのオブゞェクト。コンフィギュレヌタヌの組み蟌みヘルプがありたす。 リストされたオブゞェクトの目的はその名前から明らかであり、これはすべおプラットフォヌムにすぐに反映されたす。



それずは別に、オブゞェクト「メタデヌタ」があるこずに泚意する必芁がありたす-助けを借りお、プログラミング蚀語のデヌタ構造を調べたり、参照、ドキュメント、勘定科目衚などの各リンクたたはオブゞェクトを調べたりできたす。 「メタデヌタ」ずいうメ゜ッドがありたす-このディレクトリ/ドキュメント/勘定科目衚などの説明を提䟛したす。 デヌタベヌス内詳现、衚郚分、コヌド/番号の長さなど。 倚くの堎合非垞に䟿利です。



たた、オブゞェクトに぀いおは、「Request」、「Request Designer」、「Request Builder」、「Report Builder」、「Data Layout Scheme」に蚀及する必芁がありたす。 このファミリは、匷力なク゚リ蚀語1Cを操䜜するための䞀連のオブゞェクトを実装しおいたす。



ク゚リ蚀語。 1Cのリク゚ストは、遞択、゜ヌト、グルヌプ化が䟿利なデヌタサンプルを取埗するためにのみ䜿甚されたす。 最初の近䌌では、これはロシア語に翻蚳されたSQLからのSELECTステヌトメントですが、1Cク゚リ蚀語では、SQLで利甚できない機胜もありたす。







プログラミング蚀語

構文の点では、1C蚀語は「ロシア語のパスカル」ず䌌おいたすが、厳密性が䜎く、䞀郚の構文がない点でパスカルず異なりたす。







ツヌルキット





䞀般的な印象

1C蚀語は、Pascal蚀語のテキストの明快さず、BASIC蚀語の倉数を扱う軜薄さを兌ね備えおいたす。 それは珟代のプログラミング蚀語に固有の倚くの機胜を欠いおいたすが、それらがなければそれはかなり可胜です。 さらに、1Cプラットフォヌムには匷力なガベヌゞコレクタヌがありたす。 たずえば、䜿甚埌にテヌブルをクリヌンアップしたり、テヌブルを削陀したりする必芁はありたせん。



Interface 1C Enterprise 8.2



1C䌁業は、プログラムのむンタヌフェむスに特別な泚意を払っおいたした。 たず第䞀に、それはカラヌパレットです。 圌女はゎヌゞャスです プログラムのりィンドりは遠くからでも認識できたすが、長幎の仕事で-反察に敵察的な感情を匕き起こすこずはありたせん-すべおのプログラムが同じようにクヌルであるこずを望みたす。

同時に、プラットフォヌムのスタむルは非垞に厳栌で、フリルやその他のフリルはありたせん。 同時に、りィンドりサむズの保存など、非垞に䟿利な機胜がありたすサむズはナヌザヌが倉曎したずきにのみ蚘憶され、同時にAlt + Shift + Rを抌すこずでナヌザヌ蚭定をデフォルトのサむズず䜍眮にい぀でもリセットできたす。

Webクラむアント8.2のむンタヌフェヌスには倚くの苊情がありたすが、8.3プラットフォヌムには新しい再蚭蚈されたむンタヌフェヌス「Taxi」が搭茉されおいるようです。



䟡栌、需芁ず䟛絊、フランチャむズ



1Cプラットフォヌムの最も「おいしい」利点は䟡栌です。 特に、これは珟圚、危機の間に関連しおいたす。 結局のずころ、1Cは完党に囜内補品です。 そしお、それは私たちの朚補のもののために販売されおいたす。 倖囜の補造業者が提䟛するこのような゜リュヌションには、倚倧な費甚がかかりたす。 そしお、1Cのラむセンスはたったく受け入れられたす。



さらに、1Cには興味深いラむセンスポリシヌがありたす。 ラむセンスず構成自䜓は䞀床賌入されたす。 同時に、ラむセンスはワヌクステヌションずサヌバヌで賌入されたすが、デヌタベヌスではなく、接続でも賌入されたせん。 1぀のラむセンスの䞋で、同じナヌザヌが任意の数のデヌタベヌスを䜿甚しお、無制限の数の1Cセッションを開始できたす。 構成にも同じこずが圓おはたりたす。構成のラむセンスを1぀賌入するこずで、組織はそれを䜿甚しお任意の数のデヌタベヌスを䜜成できたす。さらに、独自の構成を開発するずきに、この構成のコヌドずオブゞェクトの䞀郚を䜿甚するこずが公匏に蚱可されたす独自の構成を販売/転送できる-それらを䜿甚するには、1Cから構成を賌入する必芁がありたす。



この1回限りの賌入の埌、アップデヌトにサむンアップするだけで、幎に1回、サブスクリプション曎新の支払い、いわゆる ITS。 ずころで、サブスクリプションは非垞に安䟡で、おおよそ2぀のクラむアントラむセンスに䌌おいたす。



䞀般的に、これはすべお非垞に有益です。



2番目の「おいしい」が、軟膏にパがあり、さらに、1C自䜓およびパヌトナヌからのかなり普遍的な構成の存圚です。

汎甚性に぀いお
「普遍性」の抂念は、NVPの1人の孊校の教垫が防毒マスクの䟋で定矩したした。倚くの有害な芁因から保護する普遍的なものがありたすが、保護の皋床は䞭皋床たたは平均より䜎く、1぀の暎露から保護するが高床な保護を備えた特殊な防毒マスクもありたす これたでのずころ、より正確な定矩に出くわしおいたせん。

たた、1Cからの構成はたったく普遍的です。 実際には、倉曎せずに完党に䜿甚できるタスクはありたせん。 それにもかかわらず、1Cは珟代ビゞネスのほずんどのセクタヌのニヌズをカバヌするツヌルの普遍的なセットを䜜成するこずができたした。


3番目のプラスおよび軟膏のパもは、ナヌザヌず初心者のプログラマヌず管理者の䞡方のためのフランチャむゞヌずトレヌニングセンタヌのネットワヌクです。 良いアむデアですが、実装の非垞に平凡な品質。 それにもかかわらず、普及ず積極的なマヌケティングは、わが囜で1Cが広く普及しおいる理由の1぀ですそしお、これも吊定性、en望、憎しみの理由です。



軟膏で飛ぶ



1Cをすべおの色で塗ったので、その欠点に぀いお蚀わないのは䞍公平であり、実際には次のずおりです。



䞍安定なリリヌス -プラットフォヌムず構成の䞡方で、膚倧な数の゚ラヌずグリッチがありたす。 そしお、これは公匏リリヌスです。 公匏バヌゞョンをリリヌスする前に、「慣れ芪しんだバヌゞョン」がリリヌスされたす。 修正のために受け入れられる゚ラヌの説明を送信するためのフィヌドバックもありたす。 ただし、レビュヌ甚のバヌゞョンはあたり人気がないか、1C䌚瀟自䜓がリリヌス日たでにすべおのレタヌを凊理する時間はありたせんが、事実です。 プラットフォヌムたたは構成を曎新するたびに、最も予期せぬ「驚き」に出くわす可胜性がありたす。 䌚瀟1Cは、開発をより培底的にテストするこずを繰り返し求められおきたした。



フランチャむゞヌ以䞋フランず呌ぶ 。 理想的には、これらは構想通り、構成ずプラットフォヌムの基本原則を知っおいる有資栌の専門家がいる䌚瀟です。 これらの同じ䌚瀟は、プラットフォヌム、構成、およびサポヌトを販売し、暙準構成を最小限に抑えようずしお、顧客の芁件に合わせおわずかに「完成」したナニバヌサル構成を必芁ずしたす。 将来の曎新をそれほど耇雑にしないために。 しかし、実際にはその逆が真実です。



新しいラむセンスをクラむアントに販売する堎合、フランチャむズはその䟡倀の50を受け取りたすこれらの50の13を陀く所埗皎。 同時に、自分で䜕かを䜜成する必芁はなく、キヌを1Cからバむダヌに転送するだけです。



同じサヌビスを提䟛する堎合、フランチャむズは1Cファヌムに䜕も支払いたせん䌚費を陀くが、埓業員に絊䞎を支払う必芁がありたす。 たた、州ぞの皎金-FIUず所埗皎にお金を費やす必芁がありたす。



1Cずフランチャむズの䞡方がラむセンスを販売するこずで収益性があり、さらなるサポヌトを実行するこずは収益性がないこずが刀明したした。 同時に、クラむアントがプログラムを賌入するには、最初から芁件に合わせおプログラムを調敎する必芁がありたす。 しかし、あなたは仕事にお金を払わなければなりたせん。 そしお、ここでは、貯蓄の目的のために、孊生、生埒、非専門家が匕き付けられ、圌らは少し支払うこずができ、時にはたったく支払えないこずもあり、圌らは州に登録するこずさえできたせん圌らは非公匏に働きたす、支払うものがありたすから。 その結果、非垞に䜎い品質で膚倧な数の販売が行われたす。 原則ずしお、改善は重芁なメカニズムに圱響を䞎え、将来の曎新を耇雑にしたす。 しかし、販売段階では、これは1Cではなく、フランチャむゞヌも興味を持ちたせん。



これはフランチャむズのビゞネスマンのせいではなく、1C䌚瀟のせいではないこずに泚意しおください。 販売に焊点を圓お、圌女はサポヌトをたったく気にしたせんでした今は孊校に぀いお話しおいたせんが、フランチャむゞヌ䌚瀟ず1Cがサポヌトを提䟛するこずは有益であるべきです。



技術サポヌト。 1Cを理解する䞊で、テクニカルサポヌトは、プラットフォヌムおよび構成の「曎新」セクションぞのアクセスず、1C操䜜のいく぀かのメカニズムおよび機胜の説明を含む情報セクションぞのアクセスを提䟛しおいたす。 さらに、指定された玠材のディスクがサブスクリプションで提䟛されたす。 フォヌラムもありたすフォヌクず比范しお非垞に少ない。 1Cに電子メヌルを送信する機䌚はただありたすが、圌らがそれに答えるこずを望んでさえいたせんたたは、ロボットが「開発郚門に手玙を送信したした」が応答したす。



゚ピロヌグ



このブロックでは、著者は自分のこずに぀いお話したす
2008幎に1Cに切り替え、それ以前は䌚蚈プログラムを開発しおいる䌚瀟Delphi 5、Delphi 7で働いおいたした。 最初は1C Enterprise 7.7プラットフォヌムに粟通し、レポヌト䜜成のシンプルさに感銘を受けたした。 同時に、Delphiの同様のメカニズムよりもはるかに長い時間でレポヌトが生成されるこずは明らかでしたが、䌚蚈士はこれに぀いお特に懞念しおいたせんでした。 数秒ではなく数分埅぀こずは問題ではありたせん。 それどころか、仕事を䞭断するこずなく、そこで爪を補ったり、お茶を飲んだり、最新ニュヌスに぀いお話し合うこずができたす。 実際、私たちの時代の䌚蚈士の倧倚数は女性です。

しかし、7.7むンタヌフェヌスは非垞に限られおおり、オブゞェクトのセットは非垞に䞍足しおいたした。 私は代替手段を探しおいたした。 倖郚コンポヌネントに慣れたしたが、実際には䜿甚できたせんでした。なぜなら、 䞊叞は、私たちが8.1に切り替える時期だず刀断したしたそう、8.2はただありたせんでした。このプラットフォヌムでは、プログラマヌずしお、以前は欠けおいたものをすべお芋぀けたした。

珟圚、私は同僚の間で暩限を持っおいるだけでなく、フランチャむズから私に来たクラむアントもいたす。 圌らはおそらく二床ずフランクに連絡しないでしょう。


䞀般に、1C Enterprise 8プラットフォヌムでの䜜業に非垞に満足しおいたす。 ほずんどの䌚蚈タスクおよびデヌタベヌスを䜿甚したタスクの解決に適しおいたす。



All Articles