1C統合によるPHP契約生成システム

こんにちは、カブロビテス。 少し前までは、次の問題を解決する必要がありました。 特定の機器またはサービスの供給のためのモデル契約の大量生成のためのWebアプリケーションを開発します。 商品に関するすべてのデータは1Cで保存されます:貿易管理。 このアプリケーションは営業部長にとって必要です。営業部長はオフィスの外で働き、顧客に行き、会社のウェブサイトで契約を結ぶのが彼らにとって十分に便利だからです。 TKはここで終了します。 私も5年生なので、大学院のデザインにも同じ申請書を提出することにしました。



そのような課題を受け取ったとき、私はこのような記事を実際には欠いていました。これは同様の解決策を説明するものであり、これが誰かに役立つことを願っています。



この記事では、実装のジャングルを掘り下げることなく、この問題を解決する一般的な方法を説明することを直ちに予約します。



まず、設計されたシステムのイデオロギーについて説明します。





このシステムが達成する目標:



このタスクを2つの主要な段階に分けました。

  1. 1Cからサイトデータベースへのデータ転送。
  2. 電子形式での契約の作成。


この問題を解決できるWebベースのツールの中で、私はPHPとMySQLにしか精通していないため、それらに基づいたすべてのソリューションを探しました。



1Cからサイトデータベースへのデータの転送


この段階はおそらく、私にとって最も難しいものでした。なぜなら、この段階の前には1Cさえ見なかったからです。 1Cでデータをインポートおよびエクスポートする可能性について簡単に研究した後、次のデータ転送スキームを使用することにしました。 実際、必要なのは製品範囲だけなので、標準の1Cツールを使用してXMLファイルにアップロードしました。 1Cは、商用情報CommerceMLの交換のための非常に便利な標準をサポートしていることに言及する価値があります。

このファイルを解析するために、 SimpleXML拡張機能を使用しました。これは、バージョン5以降、PHPで使用可能です(ロシア語のタグを使用し XMLの解析については、 こちらをご覧ください )。 誰かが興味を持っている場合、デモデータベース1Cからアイテムをアンロードするときに取得されるXMLファイルを次に示します。

以下に、パーサーコードの一部を示します。



$xml = new SimpleXMLElement($xmlstr);

foreach ($xml as $key=>$v)

{

$name=iconv("utf-8", "windows-1251", $v->);

$id=iconv("utf-8", "windows-1251", $v->);

$barcode=iconv("utf-8", "windows-1251", $v->);

$art=iconv("utf-8", "windows-1251", $v->);

$unit=iconv("utf-8", "windows-1251", $v->->->);

$gr=iconv("utf-8", "windows-1251", $v->->);

$tax_s=iconv("utf-8", "windows-1251", $v->->->);

$price=iconv("utf-8", "windows-1251", $v->->->);

}

$query = "INSERT INTO test (name,id,barcode,artikl,unit,gr,tax_type,tax_s,price) VALUES ('$name','$id','$barcode','$art','$unit','$gr','$tax_type','$tax_s','$price')"; mysql_query($query)or die(mysql_error());








その瞬間まで、私はパーサーを使用していませんでしたが、それは私に思えたほど怖くないことが判明しました。 このアプリケーションは組織のサイトでホストされるため、windows-1251に変換する必要があり、このエンコードのサイトデータベースはこの問題を解決する簡単な方法があるかもしれませんが、私はそれを行いました。



電子形式で契約を作成する


命名法と他の何かが1Cからアプリケーションデータベースに転送された後、タスクの2番目の部分について考えることができます。

もちろん、契約を作成する前に、契約を作成する商品を選択する必要がありますが、この部分は面白くありません。

生成が行われる形式として、PDF形式が選択されました。まず、クロスプラットフォームおよびマシンに依存しないために選択されました。つまり、任意のコンピューターまたはモバイルデバイスで開き、ほとんどすべての印刷デバイスで印刷できます。 インターネットでは、PDFを操作するためのライブラリとPHPクラスのレビューが多数あります。 最終的に、私はFPDFを選択しました 。このクラスの唯一の問題は、キリル文字に少し汗をかく必要があることです。 ロシア語など、このクラスの使用例がたくさんあるので、コードを散らかす価値はないと思います。

このアプリケーションの結果は、およそ次のとおりです。

画像

また、QRコードを契約書に貼り付けました( ここに引っ張りまし )、これはもはや機能ローションではなく、1Cが通常の2Dバーコードで動作できることをフォーラムで読んでいますが、単にWebテクノロジーの能力を先生に示す方法ですアイデアは意味がないわけではなく、少しだけ開発する必要があります。



タスクの目標は、契約の作成だけでなく、各セールスマネージャーの作業に関するレポートの作成でもありました。現在、組織内の契約を非常に簡単に追跡できます。 どのマネージャーが、いくつの契約に、どのような金額で、どの期間に参加したかを追跡するのは簡単です。 統計は、チャートと表形式の2つの方法で表示されます。

すぐにこのアプリケーションを市場に投入し始める予定です。おそらく、このビジネスからbitrixモジュールを作成しようとするでしょう。いずれにしても、機能と機能を増やして、このアプリケーションをもう少し開発したいと思います。



ご清聴ありがとうございました! 建設的な批判に感謝します。



All Articles