再び圚庫自動化に぀いお

はじめに



Habréで圚庫に぀いお䜕床も曞いたが、私にずっお有甚なものは芋぀からなかった。 なんで 答えは簡単です。タスクは私の前に蚭定されたした。店舗商品の圚庫プロセスを自動化するこずです。 倉庫の棚にある商品はpingに応答せず、自分からのコマンドでは統蚈を収集しおサヌバヌに送信できたせん。 同時に、この店舗は仮想ではなく、小さな小売店でもありたせん。1時間以内に、手、ノヌト、ペンですべおを数えるこずができたす。 これは、非垞に異なる方向の商品を販売するかなり倧きな取匕ネットワヌクです。







もちろん、私たちはただロボットを䜿っおAmazonに成長しおいたせんが、それにもかかわらず、商品の圚庫を䜕らかの圢で実行する必芁がありたす。 これで、各補品を䞀意に識別できるようになりたした そしお、私は自転車を1台発明する必芁はありたせんでした。 商品の各ナニットは、 バヌコヌドで䞀意に識別されたす。 これは、情報の収集を自動化するのに十分すぎるほどです。 この蚘事では、デヌタ収集端末を䜿甚しおむンベントリテクノロゞヌを実装した経隓を説明したす。



゜ヌスデヌタ



販売されおいる補品のほずんどには、独自のバヌコヌドが付いおいたす。 ただし、そのようなマヌクのない商品であっおも、転蚘時に圚庫を埗るこずができたす。 さらに、補造された補品たずえば、私たちず䞀緒に、これらはペストリヌ、サラダ、その他のすぐに食べられる料理も独自のバヌコヌドステッカヌを受け取りたす。 すべおの商品のバヌコヌド化は、圚庫目的ではなく䌁業で導入されたしたが、販売を簡玠化するためです-スヌパヌマヌケットで商品がカヌトからどのようにレむアりトされ、特別なスキャナヌでキャッシュデスクでスキャンされるかはおそらく誰もが芋たした。 しかし、この事実すべおのすべおのバヌコヌドの合蚈は、䞻な問題-倉庫棚たたはトレヌディングフロア、それは重芁ではありたせんの商品の認識ずその䌚蚈の解決に本圓に圹立ちたした。 これらの目的のために、通垞、誇り高い名前を持぀特別なデバむス-デヌタ収集端末が䜿甚されたす。







これらのデバむスからの遞択は非垞に倧きく、特性は非垞に異なりたす。 基本的に、端末はデヌタ収集機胜が異なりたす。





しかし、たた、泚意する䟡倀がある他の倚くの特性がありたす。





最初はそのようなデバむスで圚庫を詊すだけでよく、それが䟿利であるこずが刀明した堎合-すべおの郚門で倧量実装にお金が割り圓おられるので、最も重芁な基準ずしお最䜎䟡栌を遞択したした。 怜玢ず比范の結果、 CipherLab 8001Lを遞択したした 。



統合



䌚蚈のために、䌚瀟は「1CEnterprise 8. Production Enterprise Management」SCPを䜿甚したす。 したがっお、このデバむスのシステムずの統合の問題は私にずっお重芁でした。 幞いなこずに、この端末は公匏にサポヌトされおいるデバむスのリストに登堎したした。 意図したずおり、これはドラむバヌをダりンロヌドしおむンストヌルし、1Cを凊理しお䜜業を開始するこずを意味するはずですが、この䜜業は私には䞍向きでした。



圓然、機噚はどの䌚蚈システムにも統合できたす。 最も簡単な方法は、端末ずシステム間の亀換に特定の圢匏のファむルを䜿甚するこずです。 ただし、1C甚に䜜成されたコンポヌネントは、タヌミナルを盎接操䜜するこずをサポヌトしおいたす。 ベヌスずしお、ロシアのCipherLabの公匏代衚であるScanCodeの゜フトりェアを䜿甚したした。 タヌミナルは䌚瀟のパヌトナヌから賌入され、適切なファヌムりェアラむセンスがありたした。 䞀般に、すべおのファヌムりェアは互いに類䌌しおおり、同様のアプリケヌションゞェネレヌタヌを持っおいるため、売り手は実際には重芁ではありたせん。 この蚘事の䟋を䜿甚するず、他のファヌムりェアを扱うこずができたす。 TSDのファヌムりェアずアプリケヌションの詳现は、以䞋に蚘茉されおいたす。 タヌミナルを実装するには、 開発者ペヌゞからダりンロヌドする必芁がありたす 。





1C以倖の䌚蚈システムを䜿甚する堎合は、機噚メヌカヌのりェブサむトで、デバむスを操䜜するためのラむブラリをダりンロヌドできたす。 このアヌカむブには、さたざたなプログラミング蚀語でラむブラリを䜿甚する䟋が含たれおいたす。 同じサむトで、私が理解した指瀺をダりンロヌドしお、端末で快適に䜜業できるようにするこずもできたす。



ドッキングステヌションドラむバヌは通垞のデバむスずしおむンストヌルされたす。その埌、USBクレヌドルが正垞に怜出され、COMポヌトずしお機噚に衚瀺されたす。 このポヌトの番号を芚えおおく必芁がありたす。







䜜業を開始したい堎合は、1Cのコンポヌネントをむンストヌルしお凊理を接続するだけです。 コンポヌネントは通垞の゜フトりェアずしおむンストヌルされ、凊理は商甚機噚のディレクトリを介しお接続されたす。 ゜フトスタヌタヌの䟋を䜿甚するず、次のようになりたす。







サヌビス凊理は、以前にむンストヌルしたファむルから接続するか、1Cサヌバヌからダりンロヌドしお、登録デヌタを瀺したす。



cipherlab.dllラむブラリが正しく登録されおいないこずがあるため、次のコマンドを䜿甚しおシステムに手動で登録できたす。



regsvr32 [__]\cipherlab.dll







ディレクトリ「Commercial Equipment」に行が䜜成されたす。







他に泚意すべきこずは、端末のセットアップです。







ここでは、IRスタンドをむンストヌルするずきに䞊蚘で蚘憶したCOMポヌト、デフォルトで残すこずができる特定のパラメヌタヌ、およびTSDず亀換するためのDBずファむルの2぀の圢匏を指定する必芁がありたす。 デヌタベヌス圢匏-ニヌズによっお異なりたす。蚘事のスクリヌンショットはありたせんが、ファむル圢匏の䟋を次に瀺したす。







これらの簡単な操䜜の埌、䜜業䞭に端末を䜿甚するこずはすでに可胜ですが、これはやや䞍䟿であるこずが刀明したした。 したがっお、いく぀かの倉曎を加えるこずにしたしたが、これに぀いおは埌で説明したす。



分析ず改良



さたざたなレベルずさたざたな圹職の埓業員ずの長い䌚話の埌、次の䞀連のアクションが構築され、圚庫管理が䟿利になりたした。







このプロセスで自動化する必芁がある点を考慮しおください。



ドキュメント䜜成



すべおが明らかなようです。圚庫䌝祚が䜜成されおおり、そこに実際の圚庫の量を蚘入し、それを䌚蚈残高ず比范する必芁がありたす。 簡単に聞こえたすが、先を芋る必芁がありたす正面には、2぀の充填オプションがありたす。





最初のオプションはよりシンプルで、実際には䜕も完了する必芁はありたせん。端末で行っおアむテムリスト党䜓をストロヌクし、数量を入力しおから、暙準凊理でドキュメントにアむテムをロヌドしたす。

2番目のオプションは、はるかに䟿利で実甚的です。 たず、オペレヌタヌは、TSDで珟圚考慮しおいる呜名法のバヌコヌドを確認したす。 端末は、このバヌコヌドがどの呜名法に割り圓おられおいるかを認識したす。 アカりンティング数量を衚瀺するこずもできたすが、私はこれを拒吊したした。これにより、オペレヌタヌはたったくリラックスせず、゚ンタヌボタンをむやみに突くのではなく、数量を確認しお数字で入力したす。 誰かが量を入力するこずはシステムの穎だず気付くかもしれたせん。 人的芁因により、間違った量が投䞎される可胜性がありたす。 これに察しお、責任者は怜査官監査人のポストに連れお行かれ、間違っおはいけない、これが圌らの仕事であるず答えたす。 さらに、アむテムの各アむテムを「突いお」、数量を自動合蚈する堎合ここで自動合蚈モヌドを芁玄したこずに泚意しおください、プロセスは匕きずられ、圚庫時間読み取り-ストアダりンタむム、収入を生成するを枛らすこずが重芁でした。 第二に、最初のバヌゞョンでは、䌚蚈残高の呜名法が圚庫にある可胜性がありたすが、実際にはそれが利甚可胜でない堎合、端末はこれに぀いお䜕も蚀わず、䞍䞀臎は考慮されたせん。 ただし、この問題は最初のオプションでも消えたす。最初にドキュメントを倉庫の残りの郚分に蚘入し、その埌タヌミナルからデヌタをロヌドする堎合、最初に実際の数量列をリセットするだけです。



そこで、ここで2番目のオプションを遞択したした。端末にデヌタをアップロヌドする段階が珟れたので、これを行う凊理を蚘述する必芁がありたした。 䌚蚈残高による䌝祚の蚘入は、暙準機胜「フィル」→「倉庫の残高蚘入運動䌚蚈」によっお行われたす。



端末ぞのデヌタのアップロヌド



最も簡単な方法は、ドキュメント自䜓から特定のアむテムのリストをアンロヌドするこずです。これは、最初にリストが既にドキュメントに存圚し、2番目に、オペレヌタヌが端末を埋めるために別の凊理に切り替える必芁がないためです。 たた、これにより、ドキュメントがアむテムの1぀のセットで満たされおいる堎合に発生する可胜性のある゚ラヌがなくなり、凊理によっお別のセットがアップロヌドされたす。 ドキュメントからのアンロヌドを実装するために、衚の郚分を埋める倖郚凊理のメカニズムを䜿甚したした。



すべおのコヌドを提䟛するのではなく、 凊理ファむル自䜓を提䟛し、1぀の興味深い点に぀いお説明したす。端末に転送できるのは固定されたフィヌルドのみです。これは、ドラむバヌのラッパヌを凊理する開発者の制限です。 別の蚀語で蚘述するか、独自のラッパヌを蚘述する堎合、もちろんこれらの制限は回避できたすが、転送されたフィヌルドのリストには非垞に満足しおいたす。





さらに、このセットから、䞀般に、バヌコヌドず名前の2぀のフィヌルドだけで十分です。 確かに、ここで別の問題に盎面しおいたす。耇数のバヌコヌドを呜名に割り圓おるこずができたす。 になる方法 はい、名前の付いたすべおのバヌコヌドをアンロヌドするだけです。 1぀のむンベントリで完党に満たされる可胜性が䜎い端末メモリを保存するのはなぜですか その埌、バヌコヌドのいずれかを䜿甚するタヌミナルは、デヌタベヌス内で正しい呜名法の゚ントリを怜玢し、数量を提䟛したす。異なるレコヌドからすべおの数量を読み蟌むず、1぀の呜名法が加算されたす。 タヌミナルに加えお、バヌコヌドに関連付けられた数量の増倍率も送信したす。 これはバルク品に必芁ですが、包装にも䜿甚できたす。 確かに、私は圚庫管理ではなく、パッケヌゞングでの䜜業をかなり埌で実珟したした。



メニュヌ「ツヌル」→「远加の倖郚レポヌトず凊理」→「テヌブルパヌツの入力凊理」で開くこずができる、テヌブルパヌツを入力するための倖郚凊理のディレクトリに倖郚フォヌムを接続する必芁がありたす。 䜜成されたアむテムは次のようになりたす。







これで、ドキュメント自䜓で、「入力」→「デヌタ収集端末ぞのデヌタのアップロヌド」を介しお、凊理するアむテムのリストを送信できたす。 凊理自䜓は普遍的に䜿甚するために曞かれおおり、りィンドり内でアンロヌドするアむテムを盎接遞択できたすが、リストを受け取ったら、「アンロヌド」をクリックしお埅機したす。



タヌミナルを䜿甚したデヌタ収集



デヌタ収集端末はかなり耇雑なデバむスであり、正しく動䜜するためにはプログラムが必芁です そうしないず、圌はこのリストをどうすればよいかわかりたせん。 CipherLab端末甚のプログラムには、ファヌムりェアずアプリケヌションの2皮類がありたす。 ファヌムりェアは、タヌミナルオペレヌティングシステムのようなもので、アプリケヌションずI / Oシステムの間に配眮されたす。 独自のファヌムりェアを開発できたす。 これを行うために、端末メヌカヌのりェブサむトには、゜フトりェア、サンプル、ドキュメントなど、必芁なものがすべお揃っおいたす。 ScanCodeの暙準ファヌムりェアは、私にぎったりでした。 ファヌムりェアの開発を実隓したい人は、おそらくそれも曎新する必芁があるず掚枬した。 これは、パッケヌゞに含たれおいるナヌティリティを䜿甚しお行われたす。 アプリケヌションを䜜成するためだけに残りたす。 なぜ開発ではなく䜜成ず蚀うのですか はい、このプロセスは玔粋に芖芚的であり、アプリケヌションゞェネレヌタヌを䜿甚しお実行されるためです。 ゞェネレヌタヌのメむンりィンドりはTSD゚ミュレヌタヌです。







プログラムのすべおの機胜は、コンテキストメニュヌに隠されおいたすメむンフォヌム䞊にマりスカヌ゜ルを眮いお右クリックするず開きたす。 開発プロセスは次のようになりたす。







デフォルトでは、基瀎ずなるアプリケヌションは単にバヌコヌドず数量を収集したす。 䞊蚘で決定したように、これは私たちには適さず、端末はアむテムの名前、私が数えたばかりのバヌコヌド、およびこのアむテムの䌚蚈額を衚瀺する必芁がありたす。 そのため、 このようなアプリケヌションはマりスで停止しおいたした。 それを曞くために必芁なこずは、ゞェネレヌタを䜿甚するための添付の指瀺を読むこずだけでした。 基本ファむルで倉曎したこずを別にメモしたす。



  1. 耇数のデヌタベヌスでの䜜業を削陀したしたこのモデルは同時に3぀のデヌタベヌスをサポヌトしたす。 これを行うには、最初のデヌタベヌス以倖のすべおを操䜜するためにフォヌムを開くメニュヌから項目を単に陀倖したした。 これは、゚ラヌの可胜性を枛らすために行われたす。 これらのデヌタベヌスで゚ンドナヌザヌが混乱するこずはありたせん。
  2. 圌は、このために「怜玢察象」フィヌルドに端末が衚瀺する情報を瀺し、1Cを凊理しお必芁なデヌタを送信したデヌタベヌスフィヌルドを瀺したした。 オペレヌタヌの䌚蚈数量を衚瀺しお、それを軜率に確認する堎合は、8行目の「怜玢」フィヌルドに倀「フィヌルド4」を蚭定するだけです。 確かに、このフィヌルド4で、タヌミナルぞのアンロヌド凊理で数量が正確に満たされるようにする必芁がありたす。
  3. 䟡栌の代わりに、数量のバヌコヌド乗数を枡したした。 これに぀いおは䞊で曞きたした。 非加重商品の堎合、このバヌゞョンではこの係数は垞に1に等しくなりたす包装䌚蚈はただ実装されおいたせん。


さお、この段階で、䌚蚈システムで䜜成されたドキュメントず、このドキュメントのアむテムのリストがロヌドされたタヌミナルができたした。 倉庫を通過し、棚にあるすべおのものをスキャンしお、TSDに数量を入力したす。



アむテムの実際の数量をドキュメントにロヌドする



それから私は䜕もスマヌトにせず、1Cからのタヌミナルからの暙準ロヌドを䜿甚したした。 TSDが取匕機噚に接続されるず、「デヌタ収集端末から入力」項目が倚くのドキュメント「倉庫内の商品の圚庫」ドキュメントを含むの「入力」メニュヌに衚瀺されたす。 このメカニズムは、端末からバヌコヌドず数量のみを受け取りたす。 さらに、ドキュメントの衚の郚分を埋める凊理は、アむテムのバヌコヌドを䜿甚しおデヌタベヌスを怜玢し、ドキュメント内でこのアむテムを怜玢たたは远加し、「実際の数量」フィヌルドに入力したす。 この埌、文曞を曞き留め、芏制手順の残りの郚分を実行する必芁がありたす照合シヌトの印刷、玛倱品のscりの配垃など。 これは、自動化されたプロセスが終了する堎所です。 TSDは棚に送られ、監査人は家に送られ、䞀郚の埓業員は必死に「倱敗」を探しおいたす。



あずがき



珟時点では、リヌダヌシップによっお蚈画された芏暡では、テクノロゞヌは䜿甚されおいたせん。 タヌミナルは倉庫の圚庫を午埌4時から午前4時たで加速したしたが、䞀郚の埓業員は銃剣に立ち向かい、タヌミナルを切断に䜿甚するこずを拒吊し、その結果、監査員は1人しか䜿甚したせんでした。 しかし、デバむス自䜓は、倉庫から店舗ぞの商品の出荷ず、サプラむダヌからの倉庫での商品の受け取りを担圓する人々に関心がありたした。 その結果、私は圌らのプロセスを自動化するこずを任されたした。 このために、より掗緎されたipherlab8500を賌入したした。端末で䜜業を凊理する必芁がありたしたが、䞀般的にこれはたったく異なる話です。 この機噚に加えお、私は勀務䞭に、財政登録機関や銀行の決枈端末で既に働いおいたす。 このトピックが読者にずっお興味深いものである堎合、新しい蚘事でこれらの分野での私の成果を説明できたす。 箄1幎前にこのすべおを玹介したしたが、䜕かを忘れるこずがありたした。 誰かがこの資料を指瀺ずしお䜿甚しおいるのに問題が発生した堎合は、問題の解決に努めたす。 誰かがもっず詳现を知りたいのではないでしょうか 次に、どれを瀺したす。



All Articles