1s জন্য স্ক্রিপ্ট. এই সব বিদেশী উপাদান

পটভূমি

একটি প্রকল্প বাস্তবায়নের সময়, এইচটিএমএল ডকুমেন্ট ফিল্ড অবজেক্টের নিয়ন্ত্রণে জাভাস্ক্রিপ্ট (এর পরে জেএস হিসাবে উল্লেখ করা হয়েছে) কোড চালানোর প্রয়োজন দেখা দেয়, ফলাফল 1C-তে পাওয়া যায়। প্রাপ্ত নিবন্ধগুলিতে প্রদত্ত উদাহরণগুলি ব্যবহার করা খুব সুবিধাজনক বলে মনে হয়নি (বিশুদ্ধভাবে ব্যক্তিগত মতামত)। অন্য, সহজ সমাধান খোঁজার চেষ্টা করার সিদ্ধান্ত নেওয়া হয়েছিল অনুসন্ধানের জন্য 1 দিনের বেশি সময় দেওয়া হয়নি।

DIV.setAttribute("onclick", "alert("coordinates");");

স্ক্রিপ্ট রান করা যাক

DIV.click();

TA-DAH. সবকিছু কাজ করছে

পদ্ধতি RunScript(TextScript) DIV = Elements.doc.Document.getElementById("TEST"); DIV.setAttribute("অনক্লিক", টেক্সটস্ক্রিপ্ট); DIV.click(); শেষ প্রক্রিয়া

02.08.2016 থেকে আপডেট

মন্তব্যগুলিতে, জেএসকে কল করার আরেকটি উপায় প্রস্তাবিত হয়েছিল (ধন্যবাদ), আপনার যদি এইচটিএমএল নথির কোড পরিবর্তন করার ক্ষমতা থাকে তবে আপনি এটিতে একটি ফাংশন লিখে তারপর কল করতে পারেন। এটিতে জেএস কোড পাস করা।

ফাংশন exec(স্ক্রিপ্ট) ( eval(স্ক্রিপ্ট);)

এবং তারপর 1C তে:

Elements.HTMLDocumentField1.Document.parentWindow.exec("alert("OK")");

1C তে JS ফলাফল ফেরত

HTMLDocument Field অবজেক্ট থেকে স্ক্রিপ্টের ফলাফল 1C তে স্থানান্তর করতে, আমরা একটি ইভেন্ট ব্যবহার করব। আসুন OnClick ইভেন্টটিকে HTML ডকুমেন্ট ফিল্ডে আবদ্ধ করি, যা 3টি ইনপুট পরামিতি গ্রহণ করে:

  • যে উপাদানটিতে ঘটনাটি ঘটেছে (এইচটিএমএল ডকুমেন্ট ক্ষেত্র নিজেই)
  • অবজেক্ট ইভেন্ট
  • আদর্শ আচরণের পরিপূর্ণতার চিহ্ন
  • ক্লিক করার সময় একটি ইভেন্ট ট্রিগার করতে আপনাকে নিম্নলিখিত js কোডটি চালাতে হবে

    Var evt = document.createEventObject(); // একটি খালি ইভেন্ট অবজেক্ট তৈরি করুন evt.propertyName = "function1"; // আমি প্রপার্টিনাম অ্যাট্রিবিউট evt.data = "156"-এ ফলাফলের নাম (একটি প্রকারের মতো কিছু, বা যে ফাংশন থেকে ডেটা প্রাপ্ত হয়েছিল তার নাম) রাখার পরামর্শ দিই; //আমরা ফলাফলের ডেটা ডেটা অ্যাট্রিবিউট document.body.fireEvent("onclick", evt) এ স্থানান্তর করব; // HTML ডকুমেন্ট ফিল্ডে ক্লিক করা হলে একটি ইভেন্ট ফায়ার করুন

    এই js কোডটি পদ্ধতিতে কার্যকর করার মাধ্যমে, আপনি যখন দ্বিতীয় প্যারামিটারে ক্লিক করবেন, তখন আমাদের তৈরি ইভেন্ট অবজেক্টটি আসবে। যা হ্যান্ডেল করা বেশ সুবিধাজনক।

    উত্তর পার্সিংয়ের একটি উদাহরণ।

    &OnClient // ইভেন্ট পদ্ধতির নাম এবং ফলাফল পান অপারেশন ডেটা = ইভেন্ট ডেটা.ইভেন্ট.ডেটা; যদি OperationName = "" তাহলে // আমাদের ইভেন্ট রিটার্ন নয়; যদি শেষ;

    যদি OperationName = "Function1" তারপর // processing result ElseIf OperationName = "function2" তারপর // প্রক্রিয়াকরণ ফলাফল //...... EndIf; শেষ প্রক্রিয়া

    এই পদ্ধতিটি অপেক্ষা হ্যান্ডলারের প্রয়োজনীয়তা দূর করে, এবং একটি সুবিধাজনক ইভেন্ট শনাক্তকারী প্রদান করে। শনাক্তকারীর উপর ভিত্তি করে, আমরা জানি আমরা ঠিক কোন ডেটা পেয়েছি এবং কীভাবে এটি পার্স করতে হয়।

    03/26/2016 থেকে সংযোজন

    এবং এই জায়গায়ও, কিছু ভুল বোঝাবুঝি ঘটেছে (ত্রুটিটি শুধুমাত্র 8.3.5.1570 প্ল্যাটফর্মে পুনরুত্পাদন করা হয়েছে, তবে ভবিষ্যতে এই পরিস্থিতিগুলি প্রতিরোধ করার জন্য, আমি একটি সমাধান দেব) কারণটি নিজেই যখন ফর্মটি পুনরায় হয়- HTML ফিল্ডে ক্লিক করার সময় প্রক্রিয়াটি কল করার সময় নথির এইচটিএমএল ক্ষেত্রের সাথে চালু করা হয়েছিল, প্ল্যাটফর্ম কলটি সম্পূর্ণ COM অবজেক্ট আটকে গিয়েছিল এবং ক্র্যাশ হয়েছিল (একটি ব্যতিক্রম ঘটেছে (htmlfile): অনির্দিষ্ট ত্রুটি)। সমাধানটি ছিল ক্লিক ইভেন্টের স্ট্যান্ডার্ড এক্সিকিউশন অক্ষম করা এবং ইভেন্ট পপ-আপ মোড অক্ষম করা। এটি কীভাবে করবেন, নীচে দেখুন।

    // ইভেন্ট বুদবুদ নিষ্ক্রিয় করুন

    Evt.cancelBubble = true;

    // আদর্শ আচরণ অক্ষম করুন

    Evt.returnValue = false;

    ফলস্বরূপ, আমরা JS থেকে 1c তে ডেটা স্থানান্তর করার জন্য একটি ফাংশন পাব।

    ফাংশন return1c(name,data)( var evt = document.createEventObject(); evt.propertyName = নাম; evt.data = ডেটা; evt.cancelBubble = true; evt.returnValue = মিথ্যা; document.fireEvent("onclick", evt );

    উপসংহার।

    এই পদ্ধতিগুলি একত্রিত করে, আপনি খুব সহজেই আপনার প্রয়োজনীয় js কোডটি চালাতে পারেন এবং আরও প্রক্রিয়াকরণের জন্য 1C-তে ডেটা গ্রহণ করতে পারেন।

    উদাহরণ বাস্তবায়ন

    একটি স্ক্রিপ্ট বা, অন্য কথায়, একটি স্ক্রিপ্ট কি? এটি কোড সহ একটি সাধারণ পাঠ্য ফাইল যা সরাসরি কার্যকর করা যেতে পারে। সংকলন ছাড়াই, মধ্যবর্তী এক্সিকিউটেবল মডিউল তৈরি না করে - সরাসরি পাঠ্য বই থেকে। একটি স্ক্রিপ্ট প্রায়ই একটি এককালীন প্রোগ্রাম যা আপনাকে তৈরি করবেসঠিক কাজ

    . এটি নিক্ষেপ করা সহজ, শুধু এটি চালান, শুধু ফলাফল পান।

    উইন্ডোজে ঐতিহ্যগতভাবে শক্তিশালী স্ক্রিপ্টিং অটোমেশন টুলের অভাব রয়েছে। আমি জানি বিএটি ফাইল ভার্চুওসোস আছে যারা তাদের সাথে বিস্ময়কর কাজ করতে পারে, কিন্তু এই টুলটি আয়ত্ত করা হৃদয়ের অজ্ঞানতার জন্য নয়। উপরন্তু, উইন্ডোজ আছেস্ক্রিপ্ট হোস্ট (WSH) যা আপনাকে VBScript বা JS-এ কম-বেশি কার্যকরী স্ক্রিপ্ট লিখতে দেয়, যাইহোক, যখন সিরিলিক বর্ণমালার সাথে কাজ করার কথা আসে, তখন একটি ট্যাম্বোরিন সহ শামানিক নাচ শুরু হয়।

    এছাড়াও পাওয়ারশেল রয়েছে, যা নিঃসন্দেহে একটি শক্তিশালী পদক্ষেপ, তবে কখনও কখনও সমস্যা সমাধানের জন্য কিছুটা অনন্য পদ্ধতির সাথে আনন্দ যোগ করে।

    ঠিক আছে, লিনাক্সে, অবশ্যই, স্ক্রিপ্টিং খুব সাধারণ। নেটিভ শেল স্ক্রিপ্টগুলির একটি উন্নত সিস্টেম, যা প্রায় যে কোনও সিস্টেম অটোমেশন সম্পাদন করতে ব্যবহার করা যেতে পারে, অন্য কোনও স্ক্রিপ্টিং ভাষার সাথে সংযোগ করার ক্ষমতা দ্বারা লিনাক্সে পরিপূরক।

    যাইহোক, এই সমস্ত সরঞ্জামগুলির একটি সমস্যা আছে।

    এই সব বিদেশী উপাদান!

    1C প্ল্যাটফর্মের বাইরে কিছু করার জন্য, আমাদের এই ভাষা এবং প্রযুক্তিগুলির মধ্যে অন্তত একটি অধ্যয়ন করতে হবে। এটি নিজেই খারাপ নয়, তবে, প্রথমত, এটি থেকে বিচ্ছেদ বাস্তব সমস্যা, এবং দ্বিতীয়ত, এই প্রযুক্তিগুলি সময়ের সাথে সাথে ভুলে যেতে থাকে। এবং 1C থেকে অন্য ইকোসিস্টেমে প্রতিটি প্রত্যাবর্তনের অর্থ প্রায়শই বাক্য গঠন, মৌলিক কমান্ড এবং অন্যান্য সমস্ত জিনিস পুনরায় শেখা (মনে রাখা)।

    একটি সমাধান আছে!

    এমন একটি স্ক্রিপ্ট তৈরি করতে যা আমাদের সমস্যার সমাধান করে, আমাদের অন্য ভাষায় স্যুইচ করতে হবে না। আপনাকে সরাসরি 1C ভাষায় স্ক্রিপ্ট লিখতে হবে!

    কি স্বয়ংক্রিয় হতে পারে?

    সংক্ষেপে, প্রায় কিছু :) আমি আপনাকে একটি সহজ উদাহরণ দিতে. কিছুক্ষণ আগে, আমাদের সার্ভারের URL যা গিট সংগ্রহস্থলগুলি পরিচালনা করে তা পরিবর্তিত হয়েছে। আমার মেশিনের সমস্ত স্থানীয় কপি এই নতুন ঠিকানায় স্যুইচ করতে হবে। আমার কাছে প্রায় 10টি স্থানীয় অনুলিপি ছিল।

    ম্যানুয়ালি, আমাকে প্রতিটি ফোল্ডারে যেতে হবে, সেখানে গিট রিমোট টাইপ করতে হবে, সেখান থেকে পুরানো ঠিকানাটি কপি করতে হবে, এটিকে নতুনটিতে রূপান্তর করতে হবে এবং নতুন URL দিয়ে গিট রিমোট সেট -url চালাতে হবে।

    পাওয়ারশেলে কীভাবে এই সব করা যায় তা আমার মনে নেই, বিএটি/সিএমডি-তে অনেক কম। তাছাড়া আমি এসব মনে রাখতে চাই না। পরিবর্তে, আমি গিয়েছিলাম এবং 1C ভাষায় একটি স্ক্রিপ্ট লিখেছিলাম। শুধু তালিকা থেকে ফোল্ডারগুলির মাধ্যমে সাজান এবং তাদের প্রতিটিতে দুবার গিট চালান। শুধু কেকের টুকরো। তারপরে স্ক্রিপ্টটি সহকর্মীদের কাছে চলে গেছে যারা একই সমস্যার মুখোমুখি হয়েছিল।

    1স্ক্রিপ্ট কি?

    Infostart ইভেন্ট 2014 সম্মেলনে, আমি একটি নতুন স্ক্রিপ্ট ইঞ্জিন উপস্থাপন করেছি যা আপনাকে 1C: এন্টারপ্রাইজ ভাষায় কোড চালানোর অনুমতি দেয়, কিন্তু 1C প্ল্যাটফর্ম ছাড়াই। আসলে, এই নতুন টুলঅটোমেশন, যার জন্য 1C থেকে অন্য ভাষা এবং পিছনের আব্রাকাডাব্রাতে প্রসঙ্গ পরিবর্তনের প্রয়োজন হয় না এবং যা 1C বিশেষজ্ঞরা এই বা সেই রুটিন কাজকে স্বয়ংক্রিয় করতে ব্যবহার করতে পারেন অপারেটিং সিস্টেম.

    টেকনিক্যালি, এটি অন্য যেকোনো স্ক্রিপ্ট ইঞ্জিনের (পাইথন, জেস্ক্রিপ্ট, পিএইচপি) মতো গঠন করা হয়েছে। এটি একটি দোভাষী যা টেক্সট ফাইলগুলি সম্পাদন করে, সাধারণত কনসোল মোডে। এখানে অন্যান্য ভাষার তুলনায় সুবিধা হল একটি কাজ সম্পূর্ণ করার জন্য আপনাকে বিদেশী ইকোসিস্টেমে স্যুইচ করতে হবে না। আপনি অন্য ভাষা শেখার (বা মনে রাখার) সময় নষ্ট করবেন না। আপনি শুধু 1C লিখুন. এই ক্ষেত্রে, আপনি প্ল্যাটফর্মটি চালু করবেন না, আপনার লাইসেন্স কী দরকার নেই, আপনাকে "ফাইল" মেনু থেকে বাহ্যিক প্রক্রিয়াকরণ নির্বাচন করতে হবে না, যা প্রয়োজনীয় ক্রিয়া সম্পাদন করবে। একটি টেক্সট ফাইল তৈরি করুন এবং এটিতে সরাসরি লিখুন। আপনি এটি কার্যকর করার জন্য চালু করুন.

    যাইহোক, আমি বলতে ভুলে গেছি যে এটি একটি ক্রস-প্ল্যাটফর্ম টুল। আপনি একই সরলতার সাথে 1C ভাষায় লিনাক্সের জন্য স্ক্রিপ্ট লিখতে পারেন।

    আমি OneScript-এ আপনার প্রথম স্ক্রিপ্ট ইনস্টল এবং চালানোর পদ্ধতি বিবেচনা করার প্রস্তাব করছি। একটি উদাহরণ হিসাবে, আসুন একটি গিট সংগ্রহস্থলের জন্য URL পরিবর্তন করার একই কাজটি নেওয়া যাক।

    দোভাষী ইনস্টল করা হচ্ছে।

    OneScript হল ওপেন সোর্স এবং বিটবাকেটের একটি পাবলিক রিপোজিটরিতে উপলব্ধ।

    সংখ্যাগরিষ্ঠ খোলা প্রকল্পসাধারণত একটি প্রকাশিত স্থিতিশীল শাখা এবং একটি শাখা রয়েছে যা বিকাশাধীন। বিকাশ সংস্করণে সাধারণত আরও বেশি থাকে কার্যকারিতা. পরিচিতি এবং অধ্যয়নের জন্য, আমি উন্নয়ন সংস্করণ ডাউনলোড করার পরামর্শ দিই। তিনি আরো আকর্ষণীয়.

    দুটি ধরণের বিতরণ রয়েছে - একটি ইনস্টলার এবং প্রোগ্রাম ফাইল সহ একটি সংরক্ষণাগার। আমরা একটি ইনস্টলার প্রয়োজন. ডাউনলোড করুন এবং এটি চালু করুন।

    দোভাষী ব্যবহার করা সুবিধাজনক করতে ইনস্টলার স্বয়ংক্রিয়ভাবে PATH ভেরিয়েবলে oscript.exe যোগ করবে। চেক করতে আপনাকে দৌড়াতে হবে কমান্ড লাইনএবং সেখানে oscript কমান্ড টাইপ করুন। সবকিছু সফল হলে, নিম্নলিখিত বার্তা উপস্থিত হওয়া উচিত:

    যদি সিস্টেম কমান্ডটিকে চিনতে না পারে, তাহলে আপনাকে লগ আউট করতে হবে এবং আবার লগ ইন করতে হবে (সিস্টেমে পুনরায় লগইন করুন) যাতে PATH ভেরিয়েবল আপডেট করা হয়।

    উন্নয়ন পরিবেশ স্থাপন করা

    নীতিগতভাবে, স্ক্রিপ্টগুলি যে কোনও পাঠ্য সম্পাদকে লেখা যেতে পারে, তবে আপনি এখনও সিনট্যাক্স হাইলাইটিং এবং প্রাসঙ্গিক সহায়তা চান।

    আপনার যদি স্নোম্যান থাকে তবে আপনি 1C কনফিগারেটে স্ক্রিপ্ট লিখতে পারেন। আপনি যখন একটি টেক্সট ডকুমেন্ট বিল্ট-ইন ল্যাঙ্গুয়েজ মোডে স্যুইচ করবেন, তখন স্নোপথ একটি প্রসঙ্গ ইঙ্গিত দেবে, যেন এটি একটি স্ক্রিপ্ট নয়, কিন্তু একটি নিয়মিত 1C মডিউল।

    আমি এই পদ্ধতিটি ব্যবহার করি না, কিন্তু নোটপ্যাড++ এ স্ক্রিপ্ট লিখি। আতঙ্কিত হবেন না, এটি শুধুমাত্র একটি নোটপ্যাড নয়, এবং আমি একটি পাগল গীক নই (যদিও আমি পরবর্তী সম্পর্কে নিশ্চিত নই)। নোটপ্যাড++ হাইলাইটিং এবং ইঙ্গিত এবং স্ক্রিপ্ট চালানোর উপায় রয়েছে যা আপনি এই মুহূর্তেলিখুন আপনি শুধু এটি সব চালু করতে হবে. এই নোটবুকটি সহজেই একটি সুন্দর উন্নয়ন পরিবেশে পরিণত হয়।

    এখানে একটি প্রসঙ্গ সূত্র আছে.

    নোটপ্যাড++ সিনট্যাক্স হাইলাইটিং চালু করুন

    প্রথমে আপনাকে নোটপ্যাড++ ইন্সটল করতে হবে

    নোটপ্যাড++ 1C রঙের সাথে ঝলমল করার জন্য, আপনাকে বেশ কয়েকটি সেটিংস করতে হবে। প্রথমে, সিনট্যাক্স হাইলাইটিং ফাইলটি ইনস্টল করুন। আপনি এটি ডাউনলোড করতে পারেন. এরপর, "সিনট্যাক্স/আপনার নিজস্ব সিনট্যাক্স সেট করুন" মেনুতে যান।

    এই উইন্ডোতে, "আমদানি" বোতামে ক্লিক করুন এবং 1C সিনট্যাক্স সহ একটি ফাইল নির্বাচন করুন৷ নিশ্চিত করুন যে এক্সটেনশন ক্ষেত্রটি "os" এ সেট করা আছে। এই এক্সটেনশনের সাথে ফাইল খোলার সময়, Notepad++ স্বয়ংক্রিয়ভাবে প্রয়োজনীয় সিনট্যাক্স হাইলাইটিং চালু করবে।

    যদি ব্যাকলাইট চালু না হয়

    নোটপ্যাড++ একটি অদ্ভুত ত্রুটি আছে। 1C সিনট্যাক্স হাইলাইটিং শুধুমাত্র তখনই কাজ করে যদি ফাইলটি UTF-8 এনকোডিং ব্যবহার করে। অতএব, এইভাবে সমস্ত স্ক্রিপ্ট কোড করার সুপারিশ করা হয়। যদি একটি ফাইল থেকে আমদানি করার পরে ব্যাকলাইট চালু না হয়, তাহলে আপনাকে এনকোডিংটি UTF-8 (মেনু "এনকোডিংস\ কনভার্ট টু UTF-8") এ স্যুইচ করতে হবে এবং নোটপ্যাডটি পুনরায় চালু করতে হবে।

    প্লাগইন ইনস্টল করা হচ্ছে

    বিদ্যমান অনেক পরিমাণ NPP এর জন্য সুবিধাজনক প্লাগইন। "প্লাগইনস - প্লাগইন ম্যানেজার - প্লাগইন ম্যানেজার দেখান" মেনু থেকে চালু করা প্লাগইন ম্যানেজারের মাধ্যমে তাদের সবকটি সুবিধাজনকভাবে ইনস্টল করা হয়েছে।

    স্ক্রিপ্ট বিকাশের জন্য, সবচেয়ে দরকারী প্লাগইন হল NppExec। এটি আপনাকে নোটপ্যাড ছাড়াই, যেকোনো অ্যাপ্লিকেশন চালু করতে এবং নোটপ্যাড++ উইন্ডোতে সরাসরি এর কনসোল আউটপুট পর্যবেক্ষণ করতে দেয়।

    একজন স্ক্রিপ্ট বিকাশকারীর জন্য, এর মানে হল যে তিনি একটি স্ক্রিপ্ট লেখেন, একটি বোতাম টিপে এবং নোটপ্যাড উইন্ডোতে স্ক্রিপ্টের ফলাফল অবিলম্বে দেখতে পান। এটি "রাইট-ক্লিক- ফলাফল দেখুন" স্টাইলে একটি দ্রুত বিকাশ চক্র নিশ্চিত করে

    প্লাগইন ম্যানেজারে NppExec-এর পাশের বাক্সটি চেক করুন এবং ইনস্টলেশন শুরু করুন। ইনস্টলেশনের পরে, NppExec প্লাগইন মেনুতে উপস্থিত হবে। এই আইটেমের সাবমেনুতে, "অনুসরণ করুন ($CURRENT_DIRECTORY)" চেকবক্সটি চেক করার পরামর্শ দেওয়া হচ্ছে৷ আপনি যখন এক্সিকিউশনের জন্য একটি স্ক্রিপ্ট চালু করেন, তখন এটি স্বয়ংক্রিয়ভাবে সেই ডিরেক্টরিতে শুরু হবে যেখানে লঞ্চ করা স্ক্রিপ্টের ফাইলটি অবস্থিত।

    স্ক্রিপ্ট লঞ্চ সেট আপ করা হচ্ছে

    NppExec এই মত কাজ করে:

    • F6 বোতাম টিপুন এবং যে উইন্ডোটি খোলে সেখানে রান করার জন্য কমান্ডটি প্রবেশ করান। ঠিক আছে ক্লিক করুন এবং এটি সম্পন্ন হয়. ফলাফল একটি পৃথক পপ-আপ প্যানেলে প্রদর্শিত হবে
    • এরপর, Ctrl+F6 টিপুন এবং পূর্ববর্তী কমান্ডটি আবার চালানো হবে

    অর্থাৎ, আমাদের লঞ্চ উইন্ডোতে oscript $(FULL_CURRENT_PATH) কমান্ড লিখতে হবে এবং ঠিক আছে ক্লিক করুন। কনসোলটি বর্তমানে নোটপ্যাডে খোলা স্ক্রিপ্টের ফলাফল প্রদর্শন করবে।

    এটি কাজের পরিবেশের সেটআপ সম্পূর্ণ করে। এটা সহজ ছিল:

  • ইনস্টল করা নোটপ্যাড++
  • ইনস্টল করা সিনট্যাক্স হাইলাইটিং
  • NppExec প্লাগইন ইনস্টল করা হয়েছে এবং বর্তমান স্ক্রিপ্ট চালানোর জন্য কমান্ডটি কনফিগার করেছে
  • লাভ
  • এর স্বয়ংক্রিয় করা যাক!

    আসুন গিট রিপোজিটরি স্থানান্তর করার মূল কাজটিতে ফিরে আসি। সুতরাং, একটি ডিরেক্টরি রয়েছে যার ভিতরে বিভিন্ন সংগ্রহস্থলের স্থানীয় অনুলিপি রয়েছে।

    কাজ হল তাদের একটি ভিন্ন url এ পুনরায় কনফিগার করা।

    এক্সটেনশন ওএস দিয়ে একটি নতুন ফাইল তৈরি করুন। যদি আপনার নোটপ্যাড ANSI এনকোডিংয়ের জন্য কনফিগার করা থাকে, তাহলে UTF-8 এ স্যুইচ করুন যাতে ব্যাকলাইট কাজ করে।

    1Script-এর ক্ষমতা নেভিগেট করা সহজ করার জন্য, প্রকল্পের উইকিতে এক ধরনের "সিনট্যাক্স সহকারী" রয়েছে। এটি উপলব্ধ ভাষা সরঞ্জাম, ক্লাস, পদ্ধতি ইত্যাদি বর্ণনা করে।

    সুতরাং, যেহেতু স্ক্রিপ্টটি একটি এককালীন প্রোগ্রাম, আমরা সেটিংস নিয়ে মাথা ঘামাই না। সমস্ত পাথ সরাসরি স্ক্রিপ্টে হার্ডকোড করা যেতে পারে:

    WorkingDir = "C:\Documents\GITs"; TraverseAllRepositoriesInDirectory(WorkingDirectory);

    এখন আমরা "BypassAllRepositoriesInDirectory" পদ্ধতি তৈরি করি

    // রিপোজিটরিগুলির পুনঃনিবন্ধন পদ্ধতি বাইপাসঅলরেপোজিটরি ইনডিরেক্টরি(মান ওয়ার্কিং ডাইরেক্টরি); ডিরেক্টরি = FindFiles(WorkingDirectory, "*.*", False); ডাইরেক্টরিজ থেকে প্রতিটি ফাউন্ডফাইলের জন্য লুপ করুন IfFoundFile.ThisDirectory() তারপর ProcessDirectory(FoundFile.FullName); যদি শেষ;

    এন্ডসাইকেল; শেষ প্রক্রিয়া

    ঠিক আছে, "প্রসেস ডিরেক্টরি" পদ্ধতিতে URL পেতে এবং পরিবর্তন করতে গিট চালানো বাকি আছে

    আমরা এমন একটি ভাষায় কিছু সহজ কোড লিখেছি যা আমরা জানি এবং ভালোবাসি। আমরা এটা খুব ভাল জানি এবং এটা দিয়ে বিস্ময়কর কাজ করতে পারি, তাই না? এবং দয়া করে মনে রাখবেন, আমাদের কনফিগারারের প্রয়োজন নেই, আমরা 1C স্পর্শ করিনি। OneScript কোনো প্ল্যাটফর্ম লাইব্রেরি ব্যবহার করে না এবং এটি মেশিনে ইনস্টল করার প্রয়োজন হয় না।

    আর কি স্বয়ংক্রিয় হতে পারে? আপনি, উদাহরণস্বরূপ, বাড়ির ফটোগুলির একটি সংরক্ষণাগারকে Year\Month ফোল্ডারে সংগঠিত করতে পারেন এবং অপারেটিং সিস্টেম শিডিউলারের মাধ্যমে যেকোনো "আগত ফটো" ফোল্ডারের মনিটরিং সেট আপ করে এই প্রক্রিয়াটিকে স্বয়ংক্রিয় করতে পারেন৷ এটি একটি পরিচিত ভাষায় করা কেকের টুকরো, তাই না?

    কিছুটা অর্থনীতি

    আমরা বিভিন্ন কাজের জন্য আমাদের কাজে OneScript ব্যবহার করি। 1C ডাটাবেসের স্থাপনা স্বয়ংক্রিয়করণ থেকে শুরু করে এবং গিটে কনফিগারেশন উত্স সিঙ্ক্রোনাইজ করা থেকে, পরীক্ষার সাথে কোড কভারেজ গণনা করা পর্যন্ত। আমাদের স্ক্রিপ্টের কোডটিও গিট-এ অবস্থিত এবং কোম্পানির যেকোনো 1C ডাকনাম চাইলে কিছু পরিবর্তন করতে পারে। ভাষাটি সবার কাছে পরিচিত এবং অতিরিক্ত দক্ষতার প্রয়োজন হয় না।

    আমাদের অনুমান অনুসারে, কোডের কার্যকারিতা কমপক্ষে 1C এর চেয়ে খারাপ নয়। কিছু কাজের ক্ষেত্রে, OneScript প্রায় 2 গুণ দ্রুত, অন্যদের ক্ষেত্রে - প্রায় একই। আমরা এখনও 1C এর তুলনায় 1Script-এর গতিতে একটি আমূল ক্ষতি লক্ষ্য করিনি।

    এখন, সঙ্কট এবং নিষেধাজ্ঞার সময়ে, উইন্ডোজের লাইসেন্সের জন্য অর্থ সাশ্রয়ের প্রস্তাবগুলি ক্রমবর্ধমানভাবে ইন্টারনেটে পাওয়া যাচ্ছে; আপনি যদি বর্তমান হারে মাইক্রোসফ্ট লাইসেন্সগুলি গণনা করেন, তবে লিনাক্সে যাওয়া আরও বেশি আকর্ষণীয় দেখায়। আপনি যদি পাওয়ারশেল ব্যবহার করে অটোমেশন তৈরি করেন, তাহলে এটি আপনার জন্য হোঁচট খাবে। OneScript Linux-এ চলে এবং আপনার কোম্পানি যে OS ব্যবহার করুক না কেন আপনি আপনার কার্যকলাপ স্বয়ংক্রিয় করতে পারবেন (বা ভবিষ্যতে ব্যবহার করবে)। যদি আপনার কোম্পানির 1C কর্মীরা লিনাক্সে স্যুইচ করেন, তাহলে (আদর্শভাবে) তাদের শেল স্ক্রিপ্ট শিখতে হবে না। তারা একটি পরিচিত প্রোগ্রামিং ভাষা ব্যবহার করতে সক্ষম হবে।

    উপসংহার

    গত এক বছরে, 1Script থেকে বেড়েছে গবেষণা প্রকল্পপ্রকৃত ব্যবসায়িক সমাধানে সফলভাবে ব্যবহৃত একটি পণ্যে। এটি 1C ভাষার একটি সম্পূর্ণ স্বাধীন ক্রস-প্ল্যাটফর্ম দোভাষী। সোর্স কোড খোলা আছে. উপলব্ধ ক্লাস এবং বিশ্বব্যাপী পদ্ধতির সাহায্য উপলব্ধ এবং ক্রমাগত আপডেট করা হয়।

    স্ক্রিপ্ট লেখা সহজ, এবং সবচেয়ে গুরুত্বপূর্ণভাবে কার্যকর। স্বয়ংক্রিয় ! অপরিচিত প্রোগ্রামিং ভাষার ভয় আপনাকে আর থামাতে দেবেন না।

    অপারেটর : "হ্যালো! আমার নাম মারিয়া, কোম্পানি "উইন্ডোজ-টু-অল-দ্য-ওয়ার্ল্ড।"

    ক্লায়েন্ট : "আমার কিছু লাগবে না"

    অপারেটর : "কিন্তু আমাদের আছে আরও ভালো অবস্থাএবং..."

    ক্লায়েন্ট (বাধা হয়):"মারিয়া, বিদায়!"

    অপারেটর (জাবার):"আমরা 2003 সালের বাজারে কাজ করি এবং এই সময়ে ..."

    ক্লায়েন্ট (ঝুলে থাকা):...

    মারিয়া পরের নম্বর ডায়াল করে।

    সবার কাছে পরিচিত একটি বিরক্তিকর গল্প। এই ধরনের কথোপকথনের পরে, ক্লায়েন্টকে একটি নেতিবাচক আফটারটেস্ট দিয়ে ছেড়ে দেওয়া হবে এবং উইন্ডোজ টু অল দ্য ওয়ার্ল্ড মাঝারিভাবে মূল্যবান যোগাযোগ হারিয়েছে। যদিও, অপারেটর মারিয়া মাসের শেষে তার বেতন পাবেন, তাই সবাই এই পরিস্থিতিতে হারান না।

    এই পরিস্থিতিতে সবচেয়ে আপত্তিকর বিষয় হল যে মারিয়া সত্যিই চেষ্টা করেছিল, তিনি আন্তরিকভাবে মনে করেন যে "ক্লায়েন্টদের কেবল এটির প্রয়োজন নেই - তাই তারা এটি গ্রহণ করে না" এবং সাধারণভাবে "আমি কীভাবে তাকে হ্যাং আপ না করতে বাধ্য করতে পারি?" মারিয়া কে কেপিআই হিসাবে বিবেচনা করে তা বিবেচনা করে না - তারা আপনাকে যেভাবেই বেতন দেবে। মাসের শেষে, ম্যানেজার আলেক্সি তার অপারেটরদের কথোপকথনের 1001টি রেকর্ডিং অধ্যয়ন করবেন (এতে প্রতি মাসে কমপক্ষে 2-3 দিন সময় লাগে), তার ওয়ার্ডদের বকাঝকা করবেন - জবাবে তাকে অজুহাত দেওয়া হবে যে "আবার কল বেস ছিল না। লক্ষ্যবস্তু..." আলেক্সি দুঃখের সাথে দীর্ঘশ্বাস ফেলবে এবং প্রত্যেককে বেতন বিতরণ করবে। পরের মাস শুরু হবে।

    দলটি বন্ধুত্বপূর্ণ, অনেক কাজ করা হয়েছে, কিন্তু এটি চলতে পারে না। (সঙ্গে)এই ক্ষেত্রে কি খারাপ (কিন্তু অল্প প্রচেষ্টায় সমাধান করা যেতে পারে): কর্মক্ষেত্রে অপারেটরদের দৃষ্টিভঙ্গি
  • তারা স্বয়ংক্রিয়ভাবে কল করে। কিন্তু সুস্পষ্ট লক্ষ্য ছাড়া একটি ভালো সংলাপ গড়ে তোলা কঠিন;
  • তারা জানে না কিভাবে একজন ক্লায়েন্টের আপত্তির জবাব দিতে হয় বা অসফলভাবে সাড়া দিতে হয়;
  • তারা কথোপকথনের সাফল্য নিয়ে সন্দেহ করতে শুরু করার সাথে সাথেই তারা স্তব্ধ হয়ে যায়;
  • আমি নিশ্চিত যে তিনি প্রক্রিয়াটির জন্য একটি বেতন পাবেন - তাই তিনি প্রয়োজনীয় অনুপ্রেরণা ছাড়াই অবসর সময়ে, বিশ্রামের জন্য বিরতি সহ সবকিছু করেন;
  • চালু বিদ্যমান নিয়মক্লায়েন্টদের কল করার সময়, সবাই আটকে যায় এবং নির্দেশাবলীর জটিলতা এবং দৈর্ঘ্য সম্পর্কে অভিযোগ করে;
  • ম্যানেজারের পদ
    এই সমস্ত সমস্যার সমাধান করা হয়েছে "একটি কলের ব্যবস্থা করুন!"

    (এটি আপনার 1C-তে "এম্বেড করা" বা আলাদাভাবে ব্যবহার করা যেতে পারে)।

    "একটি কল করুন!" করতে পারা:
    • স্ক্রিপ্ট তৈরি করুন - অপারেটরদের জন্য বক্তৃতা মডিউল
    • বিভিন্ন গোষ্ঠী এবং শাখায় স্ক্রিপ্ট উপলব্ধতা বরাদ্দ করুন
    • স্ক্রিপ্ট ব্লকের ব্যবহার, লক্ষ্য অর্জন এবং ব্যর্থতার পরিসংখ্যান সংগ্রহ করুন, রূপান্তর পরিমাপ করুন
    • Excel থেকে একটি কল ডাটাবেস লোড করুন বা আগে কল করা গ্রাহক নম্বর ব্যবহার করুন
    • অপারেটরদের জন্য পরিসংখ্যান বোর্ড প্রদর্শন করুন
    • স্ক্রিপ্ট চালানোর সময় অর্ডার, দাবি তৈরি করুন এবং আপনার ডাটাবেসের যেকোনো বস্তু পূরণ করুন।
    • স্ক্রিপ্ট বিবৃতি নির্বিচারে ক্লিক সীমিত
    • এসআইপি টেলিফোনির সাথে কাজ করুন
    • সাথে কাজ করা ইমেইলের মাধ্যমে
    • সিস্টেমে লোড করে ইমেল বার্তা, ওয়েবসাইটের অনুরোধকে লিড এবং গ্রাহকের প্রয়োজনে রূপান্তর করুন
    • ক্লায়েন্ট, লিড এবং ডিল পরিচালনা করুন
    "একটা কল করো!" আপনাকে ক্লায়েন্টের সাথে মিথস্ক্রিয়াগুলির একটি বন্ধ চক্র তৈরি করতে দেয়।

    এই ধরনের কাজের পর্যায়গুলি আপনার স্বাদ অনুযায়ী কাস্টমাইজ করা হয়। উদাহরণস্বরূপ, এই মত:

    বিকল্প 1

  • সিস্টেমটি একটি নতুন সম্ভাব্য ক্লায়েন্ট পেয়েছে
  • অপারেটর অ্যালগরিদম ব্যবহার করে কল করেছে এবং পরিষেবাটির প্রয়োজনীয়তা স্পষ্ট করেছে
  • লক্ষ্য যোগাযোগ বিক্রয় বিভাগে স্থানান্তরিত করা হয়েছে
  • ম্যানেজার ক্লায়েন্টের সাথে সম্পর্ক তৈরি করে
  • ম্যানেজার একটি চুক্তি করে
  • বিকল্প নং 2

    অথবা এই মত:

  • অপারেটর একটি ইনকামিং কল গ্রহণ করে
  • যখন একটি কল করা হয়, ক্লায়েন্টের চাহিদা নির্ধারণের জন্য স্ক্রিপ্ট চালু হয়, এবং সঠিক কোম্পানি
  • কাজের প্রক্রিয়া চলাকালীন, অপারেটর গ্রাহকের অর্ডার দেয় এবং ডেলিভারির তারিখ নির্দিষ্ট করে
  • আদেশ সমাবেশের জন্য সংগ্রহ বিভাগে স্থানান্তর করা হয়
  • বিকল্প নং 3

    অথবা অন্য বিকল্প:

  • সাইটে একটি নতুন আবেদন জমা দেওয়া হয়েছে, সাইটটি এই অ্যাপ্লিকেশনের জন্য ডাটাবেসে চিঠিটি পুনঃনির্দেশ করে
  • ডাটাবেস চিঠিটি পার্স করে, এটি থেকে প্রতিপক্ষের ডেটা, বার্তার পাঠ্য, একটি প্রয়োজন এবং একটি কাজ তৈরি করে
  • ফ্রি অপারেটর টাস্ক তুলে নেয়, ক্লায়েন্টকে কল করে, সমস্যার সমাধান করে
  • যদি ক্লায়েন্ট সবকিছু পছন্দ করে, হয় একটি অর্ডার তৈরি করা হয় বা ক্লায়েন্টকে পরিচালকদের কাছে স্থানান্তর করা হয়
  • বিকল্প নং 4

    আপনার পছন্দ কোন বিকল্প সঙ্গে আসা!

    ম্যানেজার মাসের শেষে রিপোর্ট পায়:

  • গ্রাহকের চাহিদার বর্ধিত পরিসংখ্যান অনুসারে - কতজন সেখানে ছিল, কতজন যোগ্য ছিল, কতজন প্রত্যাখ্যান করা হয়েছিল - কোন অবস্থার জন্য
  • কথোপকথন স্ক্রিপ্ট এবং অপারেটর অপারেশন
  • ক্লায়েন্টদের সাথে যোগাযোগের বিষয়ে - কী আলোচনা করা হয়েছিল, কতবার। কত মানুষ ডাকল, কত চিঠি লিখেছে।
  • কিভাবে এটা কাজ করে

    "একটি কল করুন!" অন্তর্নির্মিত সাবসিস্টেম (ক্লিকযোগ্য):

    স্ক্রিপ্ট

    স্ক্রিপ্ট দ্বারা আমরা অ্যালগরিদম অনুযায়ী কিছু সম্পর্কিত ক্রিয়া বোঝায়। উদাহরণ স্বরূপ,

  • আউটগোয়িং কল - একটি পণ্য বা পরিষেবা বিক্রি করতে, একটি প্রচারে আমন্ত্রণ জানাতে, একটি ফর্ম পূরণ করুন৷
  • ইনকামিং কল - অর্ডারটি সঠিকভাবে প্রক্রিয়া করতে, ডিসকাউন্ট এবং ডেলিভারি সম্পর্কে ভুলবেন না
  • একটি নথি পূরণ করা - একটি সহকারী আকারে একটি আদর্শ ফর্ম
  • কিভাবে ব্যবহার করে
    • কনস্ট্রাক্টরে অপারেটর কথোপকথনের নিদর্শন তৈরি করুন
    • সম্পূর্ণরূপে কাস্টমাইজযোগ্য - কল স্ক্রিপ্ট (প্রশ্নমালা ডেটা, অর্ডার এন্ট্রি, ইত্যাদি) পূরণ করার জন্য যেকোনো ক্ষেত্র প্রদর্শন করুন।
    • অভ্যন্তরীণ জ্ঞানভিত্তিক নিবন্ধগুলির লিঙ্কগুলি প্রদান করুন যাতে অপারেটর যেকোনো উত্তর দিতে পারে প্রযুক্তিগত সমস্যা
    • কল স্ক্রিপ্টের সময় অর্ডার তৈরি করুন, অভিযোগ সংগ্রহ করুন, চিঠি পাঠান এবং স্থিতি পরিবর্তন করুন সম্ভাব্য ক্রেতা
    • কল স্ক্রিপ্টে তারকা পরিচালকদের আরও স্বাধীনতা দিন। এই ধরনের কর্মীরা বিধিনিষেধ পছন্দ করেন না, কথোপকথন 100% সীমাবদ্ধ না হলে তাদের কর্মক্ষমতা বেশি হয় - এই ধরনের পরিচালকদের জন্য একটি কথোপকথন স্ক্রিপ্ট তৈরি করুন, যা একটি প্রশ্নাবলী প্রম্পট হিসাবে ব্যবহার করা হবে এবং ব্লকগুলির মধ্যে স্থানান্তর বিনামূল্যে হবে। আপনি এই তারার পরিসংখ্যান পাবেন, এবং তারা কথোপকথনের স্ক্রিপ্ট দ্বারা "নিপুন" বোধ করবে না
    • কল পরিস্থিতি ব্যবহার করে অপারেটরদের কাজ পরীক্ষা করুন এবং একটি বিশেষ নথিতে পরীক্ষার ফলাফল রেকর্ড করুন
    • প্রতিযোগিতামূলক স্ক্রিপ্ট এক্সিকিউশন সেটিংস ব্যবহার করে বাজে কল থেকে মুক্তি পান
    • কল স্ক্রিপ্ট চলাকালীন একটি বাণিজ্যিক অফার সহ চিঠি পাঠান, প্রক্রিয়ায় অসন্তুষ্ট গ্রাহকদের কাছ থেকে অভিযোগ তৈরি করুন

    স্ক্রিপ্টগুলি হল "একটি কল করুন!" এর প্রধান সাবসিস্টেম নীচে একটি উদাহরণ ব্যবহার করে এর সেটিংস সম্পর্কে আরও কিছু বিশদ রয়েছে

    উদাহরণ

    উদাহরণস্বরূপ, এই ধরনের অপারেটরদের জন্য একটি কাজ থাকতে পারে: "আমাদের নম্বরগুলির একটি তালিকা কল করতে হবে, অ-লক্ষ্যযুক্ত পরিচিতিগুলিকে আউট করতে হবে এবং পরিচালকদের কাছে স্থানান্তর করতে হবে।" এটি করার জন্য, আমরা সিস্টেমে একটি স্ক্রিপ্ট তৈরি করব, xls থেকে সম্ভাব্য লেনদেনগুলি লোড করব, অপারেটররা স্ক্রিপ্ট অনুযায়ী লেনদেনের মধ্য দিয়ে যাবে, অ-লক্ষ্যগুলি বাদ দেওয়া হবে, এবং লক্ষ্যবস্তুগুলিকে কাজের জন্য পরিচালকদের কাছে স্থানান্তর করা হবে৷ প্রথমে একটি স্ক্রিপ্ট তৈরি করা যাক।

    একটি নতুন "স্ক্রিপ্ট" তৈরি করুন

  • আমরা এই স্ক্রিপ্টের একটি ফ্লোচার্ট তৈরি করি - অপারেটর কী বলবে, কী মান নির্বাচন করতে হবে এবং সিস্টেম তাকে পরবর্তীতে কী অফার করবে
  • আমরা অতিরিক্ত স্ক্রিপ্ট ক্ষেত্র সেট করি - উদাহরণস্বরূপ, প্রতিটি স্ক্রিপ্ট ব্লকে ক্লায়েন্টের পুরো নাম এবং কোম্পানি দৃশ্যমান হওয়া উচিত
  • আমরা প্রতিটি ব্লক থেকে দ্রুত রূপান্তর নির্দেশ করি। প্রতিটি ব্লকে, দ্রুত রূপান্তরের জন্য বোতামগুলি প্রদর্শিত হবে (অপারেটরকে যে কোনও সময় জিজ্ঞাসা করা যেতে পারে "আপনি কোন ধরণের কোম্পানি?" - এই ক্ষেত্রে, অপারেটর দ্রুত স্থানান্তরে ক্লিক করে, কোম্পানি সম্পর্কে পাঠ্যের ব্লকটি পড়ে এবং পূর্ববর্তী ব্লকে ফিরে আসে)
  • আমরা স্ক্রিপ্টটি কনফিগার করি - স্ক্রিপ্টটি লগ করা হবে, ডায়াগ্রামটি কি দৃশ্যমান হবে, এটি কি SIP ব্যবহার করা প্রয়োজন, স্ক্রিপ্ট চলাকালীন কোন কাজগুলি সম্পাদন করতে হবে ইত্যাদি।
  • আমরা এটিতে অ্যাক্সেসের অধিকার বরাদ্দ করি - যারা এই স্ক্রিপ্টটি দেখতে পারে, এটি ব্যবহার করে একটি নতুন কল তৈরি করতে পারে ইত্যাদি।
  • স্ক্রিপ্ট ব্লক ডায়াগ্রামে আমরা নির্দেশ করি যে অপারেটরকে কী বলা উচিত, ক্লায়েন্টের কী প্রতিক্রিয়ার বিকল্প রয়েছে এবং এই পর্যায়ে অপারেটরের কোন ক্ষেত্রগুলি পূরণ করা উচিত।

  • অপারেটরের বক্তৃতার পাঠ্য। আপনি পূর্ববর্তী স্ক্রিপ্ট ব্লক বা সাধারণ ক্ষেত্র থেকে অতিরিক্ত বিবরণ সন্নিবেশ করতে পারেন। আপনি পাঠ্য বিন্যাস করতে পারেন
  • টেক্সট প্যারামিটার এখানে সেট করা আছে - স্ক্রিনশট দেখায় যে কোম্পানির নাম থেকে [নাম] পূরণ করা হবে
  • আমরা জিজ্ঞাসা করি যে লক্ষ্যটি অর্জিত হয়েছে কিনা, যদি আমরা এই ব্লকে পৌঁছেছি, ব্লকটি কোন পর্যায়ের ("যোগাযোগ স্থাপন", "সচিবের কাছে পৌঁছানো" ইত্যাদি) এবং যদি আমরা এটিতে পৌঁছেছি তবে আমরা কী ফলাফল অর্জন করেছি? ব্লক
  • স্ক্রিপ্ট ব্লকে অতিরিক্ত শব্দার্থিক লোড থাকতে পারে:

    • আপনি এটিতে যেকোনো ক্ষেত্র স্থাপন করতে পারেন। উদাহরণস্বরূপ, অপারেটরকে ক্লায়েন্টের কাছে কীভাবে পণ্য সরবরাহ করতে হবে তা চয়ন করতে হবে - পিক-আপ, শহর বা আন্তঃনগরের মধ্যে কুরিয়ার। অপারেটর এই ক্ষেত্রটি পূরণ না করা পর্যন্ত, স্ক্রিপ্টটি আর এগিয়ে যাবে না। ঠিক আছে, ডায়াগ্রামে আপনি নির্দেশ করতে পারেন যে আপনি যদি আন্তঃনগর পূরণ করেন তবে আপনাকে একটি ব্লক দেখাতে হবে, যদি কুরিয়ার দ্বারা, তবে অন্যটি।
    • তৈরি ব্লকের বিবরণ কিছু দিয়ে পূরণ করা যেতে পারে। উদাহরণস্বরূপ, স্ক্রিপ্টের প্রথম ব্লকে আমাদের পরিচালকের নাম বলা হয়েছিল, এবং শেষ ব্লকে আমরা এই তথ্য পেতে পারি এবং অপারেটরের জন্য একটি ফর্মে এটি প্রদর্শন করতে পারি।
    • ব্লক থেকে আরও এগিয়ে যাওয়ার সময়, আপনি কিছু ক্রিয়া সম্পাদন করতে পারেন। উদাহরণস্বরূপ, যদি ক্লায়েন্ট বলে যে সে আমাদের প্রতি মোটেও আগ্রহী নয় এবং "লড়াই" করার কোন মানে নেই, তাহলে আমরা "নন-টার্গেট" স্থিতিতে প্রয়োজনীয়তা সেট করব। যদি আমরা স্ক্রিপ্টের শেষে পৌঁছে যাই এবং ক্লায়েন্টকে পরবর্তী বিভাগে স্থানান্তর করতে প্রস্তুত থাকি, তাহলে আমরা কোম্পানির অবস্থা "নতুন" এর পরিবর্তে "লিড" এ সেট করব। আপনি যে কোনো ক্ষেত্র পরিবর্তন করতে পারেন, শুধুমাত্র উপরে তালিকাভুক্ত নয়
    • ব্লকের জন্য, আপনি গ্রাহক প্রতিক্রিয়ার বিকল্পগুলি সেট করতে পারেন - "হ্যাঁ", "না", "পরে কল করুন", "আমাদের একটি টেন্ডার আছে", "আগ্রহ নেই" ইত্যাদি। বিকল্পগুলির উপর নির্ভর করে, আপনি স্ক্রিপ্ট ডায়াগ্রামটি শাখা করতে পারেন
    • স্ক্রিপ্ট ব্লক চলাকালীন, আপনি কিছু অন্যান্য উপাদান তৈরি করতে পারেন। উদাহরণস্বরূপ, ক্লায়েন্ট তার ইমেল ঠিকানা দিতে সম্মত হয়েছে - তারপর আমরা অবিলম্বে তাকে সিপি থেকে একটি চিঠি পাঠাব। আমরা সহজভাবে নির্দেশ করব যে একটি চিঠি তৈরি করা উচিত, টেমপ্লেট অনুযায়ী পূরণ করা উচিত এবং ক্লায়েন্টের ঠিকানায় পাঠানো উচিত।

    আমরা এই মত কিছু সঙ্গে শেষ:

    অপারেটর একটি স্ক্রিপ্ট প্রক্রিয়াকরণ ফর্ম সঙ্গে উপস্থাপন করা হবে মানুষের ফর্ম"সহকারী"। উদাহরণস্বরূপ, ডায়াগ্রামের একটি ব্লক এইরকম দেখতে পারে:

  • পাঠ্যটি আমরা অপারেটরকে লিখেছিলাম
  • এই ধাপে তাকে পূরণ করতে হবে এমন বিশদ বিবরণ
  • ক্লায়েন্ট প্রতিক্রিয়া বিকল্প প্রদান
  • স্ক্রিপ্টের উদ্দেশ্য এবং উদ্দেশ্য
  • প্রতিটি ব্লকে উপলব্ধ অন্যান্য ব্লকে রূপান্তর
  • সাধারণ স্ক্রিপ্ট ক্ষেত্র
  • নির্বাচিত উত্তরের লগ
  • স্ক্রিপ্ট স্কিম তৈরি হওয়ার পরে, অপারেটর ইতিমধ্যেই কল করা শুরু করতে পারে - অপারেটরের কর্মক্ষেত্রে (যদি স্ক্রিপ্টটি তৈরি করার অধিকার থাকে), আপনি "তৈরি করুন" বোতামে ক্লিক করতে পারেন, পছন্দসই স্ক্রিপ্টটি নির্বাচন করতে পারেন এবং উদাহরণস্বরূপ, xls টেবিল থেকে পরবর্তী ফোন নম্বর নিন, এটিতে কাজ করুন:

    এই পর্যায়ে, অপারেটররা ইতিমধ্যেই স্ক্রিপ্ট অনুসারে কাজ করতে পারে, তবে টেবিল থেকে পরিচিতিগুলি নেওয়ার অসুবিধা রয়েছে - এটি সাধারণ ত্রুটিগুলির একটি সিরিজের দিকে নিয়ে যায়।

    সাধারণ কলিংয়ের জন্য একটি এক্সেল স্প্রেডশীট থেকে পরিচিতিগুলি লোড করুন৷

    আমরা শুধুমাত্র কোম্পানির যোগাযোগের তথ্য দিয়ে আপলোড করব না, কিন্তু "যোগ্যতা" স্ট্যাটাস সহ "সম্ভাব্য চুক্তি" (ওরফে "লিডস") আপলোড করব। আসুন স্ক্রিপ্টটি সেট আপ করি যাতে এটি যাওয়ার সাথে সাথে লিডের স্থিতি পরিবর্তন করে - "অস্বীকৃত" থেকে "মিটিং নির্ধারিত।" সুতরাং, আমরা এই কল বেসের জন্য ফানেলটি দেখব।

    আসুন একটি ডেটা লোডিং সেটিং তৈরি করি:

  • যে ফাইল থেকে আমরা ডেটা নিই
  • ডাটা নিজেই যে ডাটাবেসে লোড হবে
  • ঠিক কিভাবে ডাটা লোড হবে
  • সেটিংসে, আপনি তৈরি করা বস্তুর যেকোন বিবরণ পূরণ করতে পারেন। আমরা "যোগ্যতা" এবং "স্ক্রিপ্টের সম্পাদন" স্থিতিতে কোম্পানির কাছ থেকে একটি সম্ভাব্য লেনদেন তৈরি করব - একটি স্ক্রিপ্ট ব্যবহার করে অপারেটরের জন্য কাজ করার জন্য প্রস্তুত একটি বস্তু, আমরা কলের ফলাফলগুলি ব্যবহার করে ফিল্টার করার জন্য প্রকল্পটি পূরণ করব এই ডাটাবেস:

    আমরা অপারেটর পূরণ করি না যাতে প্রত্যেকে তৈরি করা উপাদানগুলি দেখতে পারে এবং তাদের কাজে নিতে পারে। তৈরি স্ক্রিপ্ট এর মাধ্যমে উপলব্ধ হবে কর্মক্ষেত্রঅপারেটর:

    অপারেটররা "পরবর্তী" বোতামে ক্লিক করুন - সিস্টেমটি পরবর্তী স্ক্রিপ্টটি ক্রমানুসারে নির্বাচন করে এবং এটির জন্য প্রক্রিয়াকরণ শুরু করে। এইভাবে:

    • অপারেটরদের সর্বদা তাদের চোখের সামনে "আপ-টু-ডেট তথ্য" থাকে - কোন ডুপ্লিকেট কল নেই
    • ক্লায়েন্ট যারা কিছু সময় পরে কল ব্যাক করতে বলেছে তাদের বিরতি দেওয়া হয়েছে - এই ধরনের স্ক্রিপ্টগুলি পরবর্তী যোগাযোগের তারিখের সাথে একই উইন্ডোতে প্রদর্শিত হয়।
    • অপারেটররা কলে তাদের সহকর্মীদের পরিসংখ্যান দেখে, যার ফলে নিজেদের কাজ করতে অনুপ্রাণিত করে:

    অপারেটররা তাদের পরিসংখ্যান আরও বিস্তারিতভাবে দেখে:

    ঠিক আছে, যদি অপারেটররা ধূর্ত হয়, সময়ের আগে জটিল কলগুলি পরিত্যাগ করে, বা যতটা সম্ভব স্ক্রিপ্ট "রিজার্ভ" করার চেষ্টা করে, তাহলে আপনি প্রতিযোগিতামূলক নিয়ম ব্যবহার করে স্ক্রিপ্ট ইস্যু করা সীমিত করতে পারেন। আপনি নিম্নলিখিত সীমাবদ্ধতা সেট করতে পারেন:

    • Y মিনিটে X স্ক্রিপ্টের বেশি নয়৷
    • স্ক্রিপ্ট চালানোর পরে, X মিনিট অপেক্ষা করুন
    • আপনি X স্ক্রিপ্টের বেশি মুলতুবি রাখতে পারবেন না

    এই পর্যায়ে, আমাদের কাছে সীসাগুলির একটি সু-বিকশিত ডাটাবেস থাকবে - নন-কোরগুলি বাদ দেওয়া হয়েছে, এবং প্রাসঙ্গিকগুলিকে উপযুক্ত মর্যাদা দেওয়া হয়েছে৷ এখানে অপারেটরদের কাজ শেষ, এখন সেলস ম্যানেজাররা জড়িত।

    ম্যানেজারদের প্রক্রিয়ার সাথে সংযুক্ত করা।

    বিক্রয় বিভাগের প্রধান কোম্পানিগুলির ডিরেক্টরিতে যান, শুধুমাত্র তাদেরই নির্বাচন করেন যারা কল করার জন্য যোগ্য এবং লেনদেনে দায়িত্বশীল পরিচালক নিয়োগ করেন:

    ম্যানেজার তাকে বরাদ্দ করা ক্লায়েন্টের প্রয়োজনে প্রবেশ করে এবং ক্লায়েন্টের প্রয়োজন অনুসারে কাজ শুরু করে। সমস্ত মিথস্ক্রিয়া প্রয়োজন কার্ডে রেকর্ড করা হয়:

    ফলাফল বিশ্লেষণ

    ম্যানেজার প্রতিটি অপারেটরের পরিসংখ্যান এবং প্রতিটি স্ক্রিপ্টের রূপান্তর উভয়ই দেখেন:

    প্রক্রিয়াকৃত প্রয়োজনের অবস্থার উপর ভিত্তি করে, আপনি একটি ফানেল তৈরি করতে পারেন:

    জ্ঞানভিত্তিক

    আপনি জ্ঞানের ভিত্তিতে বিভাগগুলিতে বিভক্ত নিবন্ধগুলি পোস্ট করতে পারেন। প্রতিটি বিভাগ পৃথক ব্যবহারকারীদের দ্বারা দেখা এবং তৈরি করা যেতে পারে। নিবন্ধের লিঙ্কটি স্ক্রিপ্ট হ্যান্ডলারে স্থাপন করা যেতে পারে।

    কিভাবে ব্যবহার করে
    • আপনার পণ্য সম্পর্কে উপকরণ তৈরি করুন এবং কথোপকথনের স্ক্রিপ্টে তাদের লিঙ্কগুলি রাখুন - তারপর আপনার অপারেটররা গ্রাহকদের কাছ থেকে প্রযুক্তিগত প্রশ্নের উত্তর দিতে সক্ষম হবে
    • নিবন্ধগুলিতে কথোপকথন স্ক্রিপ্ট ব্যবহার করার বিবরণ রাখুন এবং নতুন কর্মীদের পর্যালোচনার জন্য দিন।
    সিআরএম

    গ্রাহক সম্পর্কের সাথে কাজ করার জন্য একটি ছোট সিস্টেম। কোম্পানিগুলির একটি ডিরেক্টরি অন্তর্ভুক্ত করে (এতে কাউন্টারপার্টির একটি লিঙ্ক রয়েছে, যদি "কলের ব্যবস্থা করুন!" একটি কার্যকরী কনফিগারেশনে লোড করার প্রয়োজন হয়), এই সংস্থাগুলির পরিচিতি এবং সম্ভাব্য লেনদেন৷ ম্যানেজাররা প্রতিপক্ষের সম্ভাব্য লেনদেনের উপর কাজ করে, বিভিন্ন অবস্থা অনুযায়ী তাদের প্রক্রিয়াকরণ করে। সম্পূর্ণ লেনদেনের উপর ভিত্তি করে, বিক্রয় তৈরি করা হয় এবং অর্থপ্রদান নিয়ন্ত্রণ করা হয়। মাসের শেষে, ম্যানেজার মূল্যায়ন করে যে কতগুলি যোগাযোগ করা হয়েছে, লিড জেনারেটরের কারণে কী পারিশ্রমিক রয়েছে এবং প্রতিটি ম্যানেজারের কী সূচক রয়েছে।

    কিভাবে ব্যবহার করে
    • গ্রাহক লেনদেনের পরিসংখ্যান এবং বিশ্লেষণ করা
    • ক্লায়েন্টদের সাথে কাজ করার জন্য সমস্ত বিকল্প প্রতিফলিত করুন
    • কল করার জন্য নতুন সম্ভাব্য ক্লায়েন্ট আপলোড করুন
    • "ভুলে যাওয়া" এবং "হারানো" ক্লায়েন্টদের হ্যান্ডেল করুন
    • পরিষেবার কর্মক্ষমতা নিরীক্ষণ

    প্রতিটি কোম্পানির কার্যকলাপের ধরন অনুসারে অনন্য বিবরণ থাকতে পারে:

    প্রতিটি কোম্পানির জন্য (এবং সম্ভাব্য চুক্তি), ইন্টারঅ্যাকশনের ইতিহাস প্রদর্শিত হয়:

    সমস্ত আসন্ন মিথস্ক্রিয়া "ফিড"-এ প্রদর্শিত হয়, যেকোনো পরিচালকের সেগুলিতে অ্যাক্সেস রয়েছে দ্রুত অ্যাক্সেসযে কোন সময় ফিড আপনাকে পাঠানো মন্তব্যগুলিও প্রদর্শন করে - উদাহরণস্বরূপ, একজন লজিস্টিয়ান একটি ক্লায়েন্টের অনুরোধে "যখন আমরা বিতরণ করি" মন্তব্যটি ছেড়ে দেয় এবং বিতরণের জন্য দায়ী ব্যক্তি তার ফিডে এটি দেখতে পান।

    একজন ম্যানেজার ক্লায়েন্টদের সাথে যোগাযোগের সংখ্যার পরিপ্রেক্ষিতে তার অধীনস্থদের কাজের মূল্যায়ন করতে পারেন। কে কতবার কল করেছিল, চিঠি লিখেছিল, মেসেঞ্জারে যোগাযোগ করেছিল, কী মিথস্ক্রিয়াগুলির জন্য কী লিড ব্যবহার করা হয়েছিল।

    মেইল ক্লায়েন্ট

    সাবসিস্টেমটি শুধুমাত্র মেল পাঠানো এবং গ্রহণ করে না। একটি মেইল ​​ফিল্টার হিসাবে একটি জিনিস আছে এটি একটি নির্দিষ্ট চিঠি দিয়ে কি করা প্রয়োজন তা নির্ধারণ করতে সাহায্য করে। উদাহরণস্বরূপ, আপনার ওয়েবসাইটে একটি ফর্ম আছে প্রতিক্রিয়া, ব্যবহারকারী এটি পূরণ করার সাথে সাথে আপিলের পাঠ্য সহ একটি চিঠি অবিলম্বে আপনার কাছে পাঠানো হবে ইমেল ঠিকানা. "একটি কল করুন!" এ ফিল্টার করুন! এইভাবে কনফিগার করা যেতে পারে - "যদি চিঠিটি ঠিকানা থেকে আসে [ইমেল সুরক্ষিত], তারপর আপনাকে চিঠির পাঠ্য থেকে পুরো নাম এবং ক্লায়েন্টের প্রয়োজনীয়তা বের করতে হবে এবং এই ডেটা ব্যবহার করে একটি নতুন সম্ভাব্য চুক্তি তৈরি করতে হবে।" এইভাবে, আপনি একটি চিঠি ফিল্টারের অধীনে পড়ে কিনা এবং এর জন্য ফিল্টার অ্যাকশনের নিয়ম নির্দিষ্ট করতে পারেন। চিঠি।

    এই উদ্দেশ্যে তারা পরিবেশন করে:

    • চিঠির বিবরণ - চিঠির অতিরিক্ত ক্ষেত্র, উদাহরণস্বরূপ, "পুরো নাম", "ডেলিভারির ঠিকানা", "টেলিফোন", "বার্তা পাঠ্য"
    • একটি চিঠি থেকে বিশদ পূরণ করা - যে নিয়মগুলির দ্বারা সিস্টেম চিঠির পাঠ্য থেকে বিশদে তথ্য "পাবে"
    • ফিল্টার অ্যাকশন - কোন নতুন ইমেল অবজেক্ট তৈরি করতে হবে এবং কীভাবে সেগুলি পূরণ করতে হবে
    কিভাবে ব্যবহার করে:
    • ওয়েবসাইট থেকে অ্যাপ্লিকেশনগুলির স্বয়ংক্রিয় সংগ্রহ সেট আপ করুন এবং এই সম্ভাব্য ক্লায়েন্টদের জন্য কথোপকথন স্ক্রিপ্ট অনুযায়ী পরিচালকদের কলের নিয়োগ করুন
    • পণ্যগুলির জন্য অনুরোধগুলিকে রূপান্তর করুন (উদাহরণস্বরূপ, তারা একটি নির্দিষ্ট ই-মেইলে আসে) একটি "গ্রাহকের অনুরোধ" নথিতে, প্রয়োজনীয় নির্দেশাবলীতে নথিটি অনুসরণ করুন
    • ডাটাবেস থেকে সরাসরি ইমেল বার্তা ব্যবহার করে ক্লায়েন্টদের সাথে পরিচালকদের কাজ নিরীক্ষণ করুন
    নথি অ্যাকাউন্টিং

    আপনাকে সিস্টেমে নথিগুলিকে তাদের প্রকার অনুসারে রেকর্ড করতে এবং তাদের অ্যাক্সেসের অধিকার সীমিত করার অনুমতি দেয়। উদাহরণ স্বরূপ, আপনি ডকুমেন্ট টাইপ করতে পারেন "গুণমানের দাবি" এবং শুধুমাত্র "QC" বিভাগে অ্যাক্সেস দিতে পারেন। এই নথিতে আপনার কাছে কয়েকটি নতুন বিবরণ থাকবে, যেমন "দাবীর পাঠ", "আবেদনের তারিখ", "ফলাফল" অথবা আপনি ক্লায়েন্টদের কাছ থেকে "কাজের অনুরোধ" সংগ্রহ করতে পারেন, তাদের সাথে ফাইল সংযুক্ত করতে পারেন এবং পাস করতে পারেন৷ তাদের স্ট্যাটাসের মাধ্যমে (" শুরু হয়নি", "প্রগতিতে", "গণনা করা হয়েছে", "সম্মত", "অস্বীকৃত")।

    কিভাবে ব্যবহার করে
    • মেল ফিল্টার সেট আপ করার সময়, আপনি সরাসরি ক্লায়েন্ট অক্ষর থেকে পণ্যগুলির জন্য অ্যাপ্লিকেশন এবং অনুরোধ তৈরি করতে পারেন
    • কথোপকথনের স্ক্রিপ্টগুলির সাথে একত্রে, আপনি কল স্ক্রিপ্টের সময় সরাসরি নথি তৈরি করতে পারেন (উদাহরণস্বরূপ, ক্লায়েন্ট পরিষেবার গুণমান নিয়ে অসন্তুষ্ট - আমরা একটি "দাবি" তৈরি করি, যা তারপর QC বিভাগ দ্বারা প্রক্রিয়া করা হবে)

    এটি এই মত দেখায়:

  • নথির স্থিতি
  • নথির প্রকার যা নথিতে বিবরণের উপস্থিতি নির্ধারণ করে
  • অতিরিক্ত নথির বিবরণ
  • এই নিবন্ধটি পড়ার জন্য আপনাকে শুভেচ্ছা। যেহেতু এটি ঘটেছে যে আপনি এখানে শেষ করেছেন, এর মানে হল যে আপনি, আমার মতো, 1C: ডকুমেন্ট ফ্লো কনফিগারেশনের সাথে পরিচিত হওয়ার কঠিন কাজ দ্বারা আনা হয়েছিল। এবং সম্ভবত এটি এমন পর্যায়ে এসেছে যে কারও জীবনকে সহজ করতে এবং কিছু স্বয়ংক্রিয় করতে আপনাকে কিছু ধরণের স্ক্রিপ্ট লিখতে হবে। দিন দুয়েক আগে আমার সাথে ঠিক এরকমই হয়েছিল।

    আমি জোরে জোরে এবং দীর্ঘক্ষণ Google-কে বলেছিলাম যে এটি কীভাবে করা যায় সে সম্পর্কে আমাকে অন্তত কিছু তথ্য দিতে, কিন্তু এটি সবই বৃথা। তারপরে আমি কনফিগারেশনের উপর একটি বই খুঁজে পেয়েছি, কিন্তু সেখানে সবকিছুই ছিল অতিমাত্রায়। শেষ পর্যন্ত, দুটি জিনিস আমাকে সাহায্য করেছে:

    আচ্ছা, সূচনা অংশ শেষ, চলুন অনুশীলনে এগিয়ে যাই।

    সুতরাং কাজটি নিম্নরূপ ছিল:

    1) জেনেটিভ ক্ষেত্রে দায়ী ব্যক্তিকে চুক্তি ফর্মে প্রতিস্থাপন করুন

    2) এছাড়াও genitive ক্ষেত্রে তার অবস্থান প্রতিস্থাপন

    3) আচ্ছা, পাওয়ার অফ অ্যাটর্নির ভিত্তি, যা চুক্তি সম্পর্কিত নথি থেকে নিতে হয়েছিল।

    তাত্ত্বিকভাবে, কাজটি সহজ, যদি আমরা বলি এটি বাস্তবায়ন করতে, বলুন, অ্যাকাউন্টিংয়ে। তবে যেমনটি দেখা গেছে, নথি ব্যবস্থাপনায় সবকিছু আরও সহজ, তবে আসুন এটিকে ক্রমানুসারে নেওয়া যাক:

    আমরা এন্টারপ্রাইজ মোডে কনফিগারেশনে যাই। এরপরে, মাস্টার ডেটা বিভাগে যান, নথির প্রকারগুলি নির্বাচন করুন এবং ওয়ার্ড বিন্যাসে আপনার কাছে একটি টেমপ্লেট আছে এমন নথি নির্বাচন করুন৷ আমার উদাহরণ একটি বিতরণ চুক্তি নথিতে, তাই আমি এটিতে যাই এবং এই ছবিটি দেখি:

    টেমপ্লেটের ডানদিকে একটি "খোলা" বোতাম রয়েছে। ক্লিক।

    বিশদ ট্যাবে, প্ল্যাটফর্ম নিজেই বিবরণ দেখায় যা টেমপ্লেটে সন্নিবেশ করা যেতে পারে। অর্থাৎ, প্রয়োজনীয় বাক্সে টিক চিহ্ন দিয়ে এবং সম্পন্ন ক্লিক করে, একটি টেমপ্লেট খোলে, যেখানে পূরণের জন্য পূর্বে চিহ্নিত ক্ষেত্রগুলি একেবারে শীর্ষে প্রদর্শিত হবে। এগুলি ধূসর রঙে হাইলাইট করা হয়েছে (মুদ্রণ এবং পাঠানোর সময় এই রঙটি প্রদর্শিত হয় না)।

    আমরা পরামিতিগুলি সাজাই সঠিক জায়গানথিতে এটার মতো কিছু:

    সবকিছু ঠিকঠাক হবে, কিন্তু আমার কোন ক্ষেত্র নেই। অর্থাৎ দায়ী ব্যক্তিকে আমি টেনে তুলতে পারি, তবে তিনি নমিনেশনের ক্ষেত্রে থাকবেন। কিন্তু সংশ্লিষ্ট দলিল এবং অবস্থান এখানে মোটেই নেই।

    এখানেই স্ক্রিপ্টগুলি উদ্ধারে আসে।

    যে ট্যাবে আপনি বিশদ উল্লেখ করেছেন, স্ক্রিপ্ট ট্যাবে যান এবং আপনার ক্ষেত্রগুলি পূরণ করার পরে, টেমপ্লেটটি আবার খুলবে এবং আমাদের সেগুলিকে তাদের জায়গায় রাখতে হবে।

    অবস্থানটি ব্যবহারকারীর কার্ডে রয়েছে এবং সংশ্লিষ্ট নথিটি চুক্তির "সংযোগ" ট্যাবে রয়েছে।

    এখন স্ক্রিপ্ট লেখার সময় এসেছে এবং এখানে সবচেয়ে মজার বিষয় হল, এই সবগুলি একইভাবে লেখা যেতে পারে যেন আমরা কনফিগারেটে লিখছি, একটি ছোট BUT দিয়ে: আপনাকে "File.FileOwner" নির্মাণ ব্যবহার করতে হবে, এর ফলে আমরা টেমপ্লেটের মালিককে নির্দেশ করবে, অর্থাৎ, নথি, যেখান থেকে টেমপ্লেটটি সম্পূর্ণ চুক্তি গঠন করবে।

    সমস্যা সমাধানের জন্য আমি যে স্ক্রিপ্টগুলি ব্যবহার করেছি তা এখানে:

    //ডকের সাথে সংযোগটি টানুন //বিশেষত অ্যাটর্নি অনুরোধের অধীনে = নতুন অনুরোধ; Query.Text = "নির্বাচন | নথির লিঙ্ক৷ সম্পর্কিত নথি | FROM | তথ্য নিবন্ধন৷ নথির লিঙ্কগুলি নথির লিঙ্ক হিসাবে | কোথায় | নথির লিঙ্কগুলি৷ নথি = &নথি"; Request.SetParameter("Document", File.FileOwner); //File.FileOwner - চুক্তির লিঙ্ক ফলাফল = Request.Execute().Select(); ফলাফল। পরবর্তী(); প্রসেসিং রেজাল্ট = StrPower of Attorney; // প্রক্রিয়াকরণের ফলাফলটি সঠিকভাবে সেই পরিবর্তনশীল যা থেকে মানটি প্যারামিটারে প্রতিস্থাপিত হবে।

    2) এবং এখানে যা আমি বিশেষভাবে পছন্দ করেছি। কনফিগারেশনে, সাধারণ মডিউলে একটি ডিক্লিনেশন ফাংশন রয়েছে এবং আপনি স্ক্রিপ্টে এটি অ্যাক্সেস করতে পারেন।

    //অস্বীকৃতি স্ক্রিপ্ট ফলাফল = ""; প্রত্যাখ্যান = ব্যক্তিবিশেষ। //File.FileOwner.Responsible - নথি থেকে মালিকের লিঙ্ক। প্রক্রিয়াকরণ ফলাফল = ফলাফল;

    3) একইভাবে, আমরা সাধারণ মডিউল থেকে ব্যবহারকারীর অবস্থান (দায়িত্বশীল) পেতে ফাংশনটি ব্যবহার করি।

    //পজিশন ফলাফল = ""; অবস্থান = JobWithUsers.GetPosition(File.FileOwner.Responsible); SclPosition = Individuals.Disk(Line(Position), 2, Result); প্রক্রিয়াকরণ ফলাফল = ফলাফল;

    এবং এখানে ফলাফল:

    এটা যে সহজ. কিন্তু সেখানে যেতে আমার বেশ কয়েক ঘণ্টা লেগেছিল। আমি কেবলমাত্র স্ক্রিপ্ট লেখার আকারে ক্যোয়ারী কনস্ট্রাক্টরকে কল করতে চাই, তবে এটি কেবল আমি নিটপিক করছি)))।

    আবারও আমি বলব যে "স্ক্রিপ্ট এমুলেটর" প্রক্রিয়াকরণ আমাকে অনেক সাহায্য করেছে। এটি মোটামুটিভাবে একটি ক্যোয়ারী কনসোলের মতো কাজ করে, অর্থাৎ, আমরা এতে আমাদের স্ক্রিপ্ট সন্নিবেশ করি বা লিখি এবং এটি অবিলম্বে এই স্ক্রিপ্টের সাথে যে মানটি পাই তা বের করে দেয়।

    এটা খুবই সম্ভব যে সমস্যাটি অনেক সহজভাবে সমাধান করা যেতে পারে, কিন্তু আমি এখনও নথি ব্যবস্থাপনায় নতুন। তাই এক নিবন্ধে আরও তথ্য সংগ্রহ করার জন্য বিশেষজ্ঞরা মন্তব্যে তথ্য যোগ করলে আমি কৃতজ্ঞ থাকব।

    আমি সত্যিই আশা করি যে আপনি, যারা এতদূর পড়েছেন এবং ঘুমিয়ে পড়েননি, তারা এই তথ্যটি খুব সহায়ক বলে মনে করবেন এবং জীবনের ঘন্টা এবং মানসিক জ্বালানী বাঁচাতে পারবেন।

    স্বাধীনভাবে কিন্তু উত্পাদনশীলভাবে বাস করুন।

    আপনার মনোযোগের জন্য আপনাকে ধন্যবাদ।

    একটি ভার্চুয়াল মেশিন যা 1C: এন্টারপ্রাইজ ভাষাতে স্ক্রিপ্টগুলি চালায়।

    অন্য কথায়, এটি 1C: এন্টারপ্রাইজ প্ল্যাটফর্ম ব্যবহার না করে 1C ভাষায় প্রোগ্রাম লেখার ক্ষমতা।

    এবং এটি আমাদের চূড়ান্তভাবে কনফিগারে লিখিত কোডের তৈরি টুকরা নিতে এবং ন্যূনতম অভিযোজন সহ একটি OneScript প্রোগ্রামে স্থানান্তর করতে দেয়।

    এবং যদিও বিকাশকারীদের মতে এটি তা নয় মূল উদ্দেশ্যপ্রকল্প, কিন্তু আমি একটি OneScript প্রোগ্রাম থেকে 1C ডাটাবেসের মাধ্যমে সংযোগ করার ক্ষেত্রে সুনির্দিষ্টভাবে আগ্রহ দেখতে পাচ্ছি বাইরের যোগদানএবং কিছু দরকারী কোড চালান।

    আপনি জিজ্ঞাসা করতে পারেন - কেন এটি আদৌ প্রয়োজন? কেন একই কোড প্রক্রিয়াকরণে লিখবেন না এবং 1c এর মাধ্যমে স্ট্যান্ডার্ড উপায়ে চালাবেন?

    কিন্তু আমরা অটোমেশন সম্পর্কে কথা বলছি এবং এখানে মৌলিক সমস্যা রয়েছে:

    • ডাটাবেস শুরু হবে এবং কিছু বাহ্যিক প্রসেসিং কোড এতে কার্যকর করা হবে এমন গ্যারান্টি দেওয়ার কোন উপায় নেই (যারা অনুশীলনে এর সম্মুখীন হয়েছেন তারা জানেন যে অনেক কিছু ভুল হতে পারে, এই সত্য থেকে শুরু করে যে প্রক্রিয়াকরণ সম্পূর্ণ হবে না কিছু মডেল উইন্ডোর কারণে)
    • না সহজ উপায়প্রোগ্রামগতভাবে এই ধরনের প্রক্রিয়াকরণ তৈরি করুন, কিন্তু আমরা যদি ডাটাবেসের একটি গ্রুপে দরকারী কোড চালানোর কথা বলি তবে আমাদের এটির প্রয়োজন হতে পারে
    • এই প্রক্রিয়াকরণের সম্পাদন লগ করার কোন সহজ উপায় নেই

    OneScript এই সমস্ত সমস্যার সমাধান করে।

    আপডেটারে এই স্ক্রিপ্টগুলি কেন লিখবেন এবং চালাবেন?

    কারণ আপডেটার ডাটাবেসের সাথে মিথস্ক্রিয়া পরিপ্রেক্ষিতে এই ধরনের স্ক্রিপ্ট লেখা সহজ করার জন্য অনেক কঠিন জিনিস গ্রহণ করে।

    যথা.

    প্রক্রিয়াকরণের জন্য ডাটাবেসের তালিকা

    আমরা যে স্ক্রিপ্টটি লিখেছি তা চালানোর জন্য আমাদের কতগুলি ডাটাবেস দরকার তার জন্য আপডেটারে আমরা নির্বাচন করি:

    ডাটাবেস প্যারামিটার পাস করা

    স্ক্রিপ্টটি চালানোর সময়, আপডেটার নিজেই বর্তমান ডাটাবেস সম্পর্কে তথ্য সহ প্রয়োজনীয় পরামিতিগুলি এতে পাস করে:

    আমরা আমাদের স্ক্রিপ্টে এই সমস্ত পরামিতি ব্যবহার করতে পারি, এটিকে যেকোনো সংখ্যক নির্বাচিত ডাটাবেসে কার্যকর করার জন্য সর্বজনীন করে তোলে।

    আপডেটার টেমপ্লেটের তালিকায় আমরা এই ধরনের স্ক্রিপ্টের উদাহরণ খুঁজে পেতে পারি:

    ডাটাবেসের প্রাথমিক সংরক্ষণাগার

    যদি প্রয়োজন হয়, আপডেটার নিশ্চিত করবে যে স্ক্রিপ্ট চালানোর আগে একটি ব্যাকআপ কপি তৈরি করা হয়েছে:

    এই ব্যাকআপ কপিসাথে একমত হবে সাধারণ সিস্টেমআর্কাইভিং, অর্থাৎ, এটি "টিউনিং" এর বিষয়ও হতে পারে অতিরিক্ত বিন্যাসআপডেটার এই ধরনের একটি অনুলিপি সর্বদা "বিপজ্জনক অপারেশনের আগে" চিহ্নিত করা হবে।

    লকিং, বেস আনলক করা

    যদি প্রয়োজন হয়, আপডেটার আপনার স্ক্রিপ্ট চালানোর আগে ডাটাবেসটিকে সম্পূর্ণরূপে ব্লক করবে এবং পরে এটি আনলক করবে:

    এবং এটি আপডেটারের অন্যতম প্রধান "বৈশিষ্ট্য" - সর্বোপরি, উদাহরণস্বরূপ, সার্ভার বেস ব্লক করার সঠিক সম্পাদন সাধারণ ক্ষেত্রেএকটি বরং অ তুচ্ছ কাজ.

    বর্তমান ব্যবহারকারী সংযোগ, প্রশাসনিক সংযোগ এবং ব্যাকগ্রাউন্ডের কাজগুলি "সমাধান" করার জন্য এটি প্রয়োজনীয়। এবং এই সব সরাসরি 1c ক্লাস্টারের সাথে যোগাযোগের মাধ্যমে।

    প্রতিবেদন সংরক্ষণ করা হচ্ছে

    আপডেটার রিপোর্ট ম্যানেজারে এই ধরনের স্ক্রিপ্টগুলির সম্পাদনের ইতিহাস সংরক্ষণ করে।

    সাধারণ পদে:

    তাই বিস্তারিতভাবে:

    ইমেল দ্বারা বিজ্ঞপ্তি

    যদি আপনার ইমেল বিজ্ঞপ্তিগুলি কনফিগার করা থাকে (সমস্ত বা শুধুমাত্র ত্রুটির জন্য)...

    তারপরে স্ক্রিপ্টগুলি সম্পাদনের তথ্য (বিস্তারিত প্রতিবেদন সহ) আপনার কাছে আপডেটার থেকে অন্যান্য ক্রিয়াকলাপ সম্পাদনের তথ্যের মতোই আসবে:

    একটি সময়সূচী একটি স্ক্রিপ্ট চলমান

    ক্লাউড মনিটরিং

    স্ক্রিপ্টটি সংরক্ষণ করার সময়, আমাদের কাছে ক্লাউডে এর কাজ নিরীক্ষণ করার বিকল্পও রয়েছে - আমার মতে একটি একেবারে আশ্চর্যজনক বৈশিষ্ট্য। যে ক্লাউড পর্যবেক্ষণ সম্পর্কে.

    মাল্টি-থ্রেডেড স্ক্রিপ্ট এক্সিকিউশন

    বিভিন্ন ডাটাবেসের জন্য সমান্তরালভাবে একটি স্ক্রিপ্ট কীভাবে চালানো যায় তা বিশদভাবে বর্ণনা করা হয়েছে।

    স্ক্রিপ্ট লেখার আগে শিখতে আর কি দরকারী?

    ওয়েল, অবশ্যই, 1C ভাষা নিজেই. তাকে ছাড়া আমরা কোথায় থাকব...

    প্রথমত, উদাহরণ সহ এই 1C ভাষার রেফারেন্স বই রয়েছে:

    ওয়ানস্ক্রিপ্ট এবং স্ট্যান্ডার্ড 1C ভাষার মধ্যে পার্থক্যগুলিও বিবেচনা করা মূল্যবান। তার মধ্যে কয়েকটি আছে (লিংক)।

    আমি কিভাবে আমার নিজের স্ক্রিপ্ট নিয়ে আসতে পারি?

    অনুপ্রেরণার জন্য, আমি প্রথমে আপনাকে আপডেটার টেমপ্লেটগুলি থেকে স্ক্রিপ্টগুলি বিশ্লেষণ এবং বোঝার পরামর্শ দিচ্ছি। এটি ইতিমধ্যে আপনাকে অনেক দেবে।

    এবং যদি আপনার একটি স্ক্রিপ্ট লেখার জন্য একটি ধারণার প্রয়োজন হয় যা অন্য শত শত ব্যবহারকারীর জন্য উপযোগী হবে, তাহলে আমি আপনাকে জিজ্ঞাসা করছি - আপনার জন্য সুবিধাজনক যেকোনো উপায়ে এটি সম্পর্কে আমাকে লিখুন। আমার কাছে প্রচুর ধারণা আছে, কিন্তু পর্যাপ্ত সময় এবং সুযোগ নেই।

    এটি করার জন্য, আমি গিথুবে একটি বিশেষ প্রকল্প শুরু করেছি, যেখানে আমি আপডেটার ব্যবহারকারীদের থেকে দরকারী স্ক্রিপ্ট সংগ্রহ করি যাতে যতটা সম্ভব মানুষ তাদের কাজে ব্যবহার করতে পারে।

    আপনি কি আমাকে আপনার স্ক্রিপ্ট পাঠাতে চান? আমি তোমাকে বলেছিলাম ।

    আন্তরিকভাবে, ভ্লাদিমির মিলকিন (শিক্ষক এবং বিকাশকারী)।