そのような課題を受け取ったとき、私はこのような記事を実際には欠いていました。これは同様の解決策を説明するものであり、これが誰かに役立つことを願っています。
この記事では、実装のジャングルを掘り下げることなく、この問題を解決する一般的な方法を説明することを直ちに予約します。
まず、設計されたシステムのイデオロギーについて説明します。
- システムは、商品の供給に関する契約を作成する必要があります。
- システムは、会計プログラム1C(貿易管理または同様のソフトウェアツール)と統合する必要があります。
- システムは、営業マネージャーの管理を許可する必要があります。
- システムには、さまざまな部分へのアクセス権を区切るシステムが必要です。
このシステムが達成する目標:
- モデル契約の締結時間の短縮。
- 各セールスマネージャーの個人的な貢献を追跡します。
- 顧客の要件を満たすための時間の短縮。
- 顧客と組織との関係を改善する。
- マネージャーの管理;
- 営業マネージャーの仕事への関心を高めます。
- 従業員への給与に関する組織の費用を削減することができます。
- セールスマネージャーが実行する作業量の増加。
このタスクを2つの主要な段階に分けました。
- 1Cからサイトデータベースへのデータ転送。
- 電子形式での契約の作成。
この問題を解決できる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モジュールを作成しようとするでしょう。いずれにしても、機能と機能を増やして、このアプリケーションをもう少し開発したいと思います。
ご清聴ありがとうございました! 建設的な批判に感謝します。