একটি গতিশীল তালিকা দ্বারা প্রদর্শিত তথ্য পেয়ে

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

1C-তে গতিশীল তালিকার বৈশিষ্ট্য

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

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

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

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

  • গতিশীল তালিকা নির্বাচন;
  • গ্রুপ;
  • শ্রেণীবিভাজন;
  • সজ্জা।

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

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

আরও স্পষ্টতার জন্য, আসুন একটি পৃথক বাহ্যিক প্রক্রিয়াকরণ তৈরি করি এবং এটিতে একটি গতিশীল তালিকা রাখি। আমাদের পরিকল্পনা বাস্তবায়নের জন্য, নামকরণের টেবিলটি যথেষ্ট হবে না, তাই আমাদের একটি নির্বিচারে জিজ্ঞাসার অনুমতি দিতে হবে। এতে আমরা আইটেমগুলির তালিকা এবং ব্যালেন্সের রেজিস্টার সহ ডিরেক্টরির বাম সংযোগ বর্ণনা করব এবং ডিরেক্টরিটিকে মূল টেবিল হিসাবে সেট করব। এই স্কিমটি ব্যবহারকারীদের, একটি গতিশীল তালিকার সাথে কাজ করে, আইটেমগুলি যোগ বা পরিবর্তন করার অনুমতি দেবে৷



নাম হিসাবে নামকরণের তালিকা নির্বাচন করুন।নাম হিসাবে, গুডসইনওয়্যারহাউস অবশিষ্ট।গুদাম হিসাবে গুদাম, গুদামজাত গুদামগুলির অবশিষ্টাংশ।পরিমাণ হিসাবে অবশিষ্ট থাকে নির্দেশিকা থেকে।নামকরণ তালিকা হিসাবে নামকরণ, বাম সংযোগ। AS GoodsOnUS treasuresRemaining সফ্টওয়্যার NomenclatureList.Link = ProductsInWarehousesRemainings.Nomenclature WHERE

যেহেতু আমাদের অনুরোধটি "কারেন্টডেট" প্যারামিটার ব্যবহার করেছে, তাই প্রক্রিয়াকরণ ব্যবহার করার আগে আমাদের এটির মান সেট করতে হবে। এটি করার জন্য, "When CreatedOnServer" পদ্ধতির ফর্ম মডিউলে, একটি আদর্শ কমান্ড ব্যবহার করে, এটিকে "CurrentSessionDate" ফাংশন বরাদ্দ করুন। আমাদের নিয়ন্ত্রণ ফর্মে গতিশীল তালিকা প্রদর্শন করতে হবে এবং স্পষ্টতার জন্য ক্ষেত্রগুলির ক্রম পরিবর্তন করতে হবে। ফর্ম উপাদানগুলিতে (উপরের বাম অংশ) "নামকরণ অবশিষ্ট" বৈশিষ্ট্যটি টেনে আনুন এবং ফর্মের টেবিলে ক্ষেত্রগুলির ক্রম পরিবর্তন করতে নীল তীরগুলি ব্যবহার করুন৷

সার্ভারে তৈরি করা হলে সার্ভার পদ্ধতিতে (ব্যর্থতা, স্ট্যান্ডার্ড প্রসেসিং) নামকরণ রয়ে যায়। পরামিতি। সেট প্যারামিটার ভ্যালু("কারেন্টডেট", কারেন্টসেশনডেট()) শেষ প্রক্রিয়া


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

"তারিখ" টাইপের "তারিখ বাকি" অ্যাট্রিবিউট যোগ করুন এবং ফর্ম উপাদানে স্থানান্তর করুন। ক্ষেত্রের ইভেন্টগুলিতে, আমরা "অনচেঞ্জ" ইভেন্ট তৈরি করি এবং ডায়নামিক অনুরোধে ব্যবহৃত "কারেন্টডেট" প্যারামিটার সেট করার জন্য কোড লিখি। যাতে ফর্মটি খোলার সময় ব্যবহারকারী অবিলম্বে বুঝতে পারে যে সে কোন তারিখে ব্যালেন্স দেখতে পাবে, আমরা "When CreatedOnServer" পদ্ধতিতে ছোট পরিবর্তন করব।



&OnServer ProcedureWhenCreatingOnServer(ব্যর্থতা, স্ট্যান্ডার্ড প্রসেসিং)RemainingDate = CurrentSessionDate(); আইটেম অবশিষ্ট। পরামিতি। সেট প্যারামিটার ভ্যালু("বর্তমান তারিখ", অবশিষ্ট তারিখ); পদ্ধতির সমাপ্তি এবং ক্লায়েন্ট পদ্ধতির অবশিষ্ট তারিখে যখন পরিবর্তিত হয় (এলিমেন্ট) নামকরণ অবশিষ্ট থাকে। প্যারামিটার। সেট প্যারামিটার ভ্যালু("বর্তমান তারিখ", অবশিষ্ট তারিখ); পদ্ধতির সমাপ্তি

ফলস্বরূপ, আমাদের ডায়নামিক তালিকা ফর্ম যে কোনো তারিখ হিসাবে ব্যালেন্স প্রতিফলিত করতে পারে।

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

  1. নির্বাচন;
  2. তালিকা

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

প্ল্যাটফর্ম 1C: এন্টারপ্রাইজ 8.2 ডাটাবেস টেবিলের অনেক রেকর্ডের সাথে গতিশীল উপায়ে কাজ করতে পারে, অর্থাৎ অংশে ডেটা পড়তে পারে। পূর্বে নিবন্ধগুলিতে আমরা গতিশীল তালিকার প্রক্রিয়া এবং তাদের সাথে কাজ অপ্টিমাইজ করার পদ্ধতিগুলি দেখেছিলাম।

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

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

বাস্তবায়ন

এবং তাই, আসুন সমস্যা সমাধানের দিকে এগিয়ে যাই। আসুন ফর্ম পরিবর্তন করে শুরু করা যাক, তারপর আমরা চূড়ান্ত মান প্রাপ্ত করার জন্য অ্যালগরিদম বর্ণনা করব।

ফর্ম এবং ইন্টারফেস

প্রথমত, এর ফলে ক্ষেত্রগুলি প্রদর্শন করার জন্য একটি নথি ফর্ম প্রস্তুত করা যাক। এটি করার জন্য, আমরা "রেটিং" এবং "অ্যামাউন্ট" ফর্মের দুটি স্ট্রিং বিশদ যোগ করব।

নথিগুলির মোট মান এই বিবরণগুলিতে রেকর্ড করা হবে।

একটি গতিশীল তালিকার ফুটারে বিবরণের মানগুলি প্রদর্শন করতে, আপনাকে অবশ্যই তালিকা ফর্মের সংশ্লিষ্ট উপাদানের জন্য সংশ্লিষ্ট বিকল্পটি সক্রিয় করতে হবে (নিম্নলিখিত স্ক্রিনশটটি দেখুন)।

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

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

অ্যালগরিদম

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

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

ফলাফল প্রাপ্ত করার জন্য একটি অনুরোধ গঠনের পর্যায়গুলি নিম্নরূপ:

1. আমরা গতিশীল তালিকার জন্য প্রাথমিক অনুরোধ পাই।

আমরা দেখতে পাচ্ছি, অনুরোধটি সমস্ত নথির বিবরণ নির্বাচন করে। একটু বেশি জটিলতা যোগ করার জন্য, আমি আমার নিজের "রেটিং লেভেল" ফিল্ড যোগ করেছি, "SELECT" কনস্ট্রাক্ট দ্বারা তৈরি।

2. আমরা অনুরোধের শর্তগুলির পাঠ্য তৈরি করি (বিভাগ "কোথায়") এবং এটিকে মূল অনুরোধে প্রতিস্থাপন করি।

আমাদের কনফিগার করা গতিশীল তালিকা নির্বাচন অনুযায়ী প্রাপ্ত উত্স অনুরোধ পাঠ্যের শর্ত যোগ করতে হবে।

পদ্ধতি, পাস করা নির্বাচন উপাদান (গ্রুপ বা নির্বাচন উপাদান) ধরনের উপর নির্ভর করে, সংশ্লিষ্ট শর্ত পাঠ্য তৈরি করে। একটি গোষ্ঠীর সমস্ত শর্ত বন্ধনী দ্বারা বেষ্টিত, এবং যারা গ্রুপে অন্তর্ভুক্ত তারাও বন্ধনী দ্বারা বেষ্টিত। অভিব্যক্তির মধ্যে শর্তগুলি অভিভাবক গোষ্ঠীর উপর নির্ভর করে (একটি "AND" শর্ত অনুক্রমের শীর্ষ উপাদানগুলির মধ্যে স্থাপন করা হয়)।

যদি একটি উপাদান একটি ব্যবহার পতাকা সেট ("ব্যবহার" বৈশিষ্ট্য), তারপর উপাদান প্রক্রিয়া করা হয়. উত্পন্ন পাঠ্য তুলনা অবস্থার উপরও নির্ভর করে (সমান, সমান নয়, তালিকায়, ইত্যাদি)। তুলনার ধরণের উপর জেনারেট কন্ডিশন টেক্সটের নির্ভরতা নিম্নলিখিত ফাংশনে দেখা যেতে পারে।

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

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

উৎপন্ন অবস্থার পাঠ্যটি মূল গতিশীল তালিকা অনুরোধের সাথে যুক্ত করা হয়েছে। প্রশ্নের ফলাফল একটি অস্থায়ী টেবিলে স্থাপন করা হয়.

3. আমরা একটি অস্থায়ী সারণীতে প্রথম ক্যোয়ারী রাখি এবং প্রয়োজনীয় সমষ্টি ফাংশন সহ সারাংশ ক্ষেত্র দ্বারা গোষ্ঠীবদ্ধ করি।

আমি আপনাকে মনে করিয়ে দিই যে আমাদের "রেটিং" ক্ষেত্রের গড় মান এবং "অ্যামাউন্ট" ক্ষেত্রের মোট পরিমাণ পেতে হবে। আমরা ইতিমধ্যেই নির্বাচনগুলি বিবেচনায় নিয়ে একটি অনুরোধ তৈরি করেছি; যা বাকি থাকে তা হল মোট মান গণনা করা। এটি নিম্নলিখিত অনুরোধের সাথে করা হয়:

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

সমাধানের সর্বোত্তমতা

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

প্লাস, আমরা শুধুমাত্র সার্ভারের দিকে টোটাল এবং অনুরোধ গণনা করতে পারি। অতএব, আপনাকে গুরুত্ব সহকারে সার্ভারের সাথে যোগাযোগ করতে হবে, যেহেতু টোটাল আপডেট করার পদ্ধতিটি প্রায়শই করা যেতে পারে। একটি বাণিজ্য সংস্থায় একটি নগদ রেজিস্টার রসিদ জার্নাল কল্পনা করুন, যেখানে প্রতি মিনিটে 5টি পর্যন্ত রসিদ প্রবেশ করা যেতে পারে এবং প্রতি ঘন্টায় 300টি পর্যন্ত রসিদ দেওয়া যেতে পারে। প্রতিবার একটি নথি লেখা হলে, মোট সংখ্যা আপডেট করা হবে। অতএব, প্রেক্ষাপটের বাইরের পদ্ধতিগুলি ব্যবহার করে প্রেরিত ট্র্যাফিক হ্রাস করা যুক্তিসঙ্গত হবে৷

নিম্নলিখিত স্ক্রিনশটটি একটি বহির্ভূত প্রসঙ্গ সার্ভার ফাংশন কল করার জন্য প্রোগ্রাম কোড দেখায় যা মোট প্রদান করে।

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

দ্রষ্টব্য: প্রসঙ্গ-সংবেদনশীল সার্ভার পদ্ধতির বিপরীতে ("&OnServer" নির্দেশিকা) থেকে ফর্ম ডেটা সার্ভারে প্রেরণ করা হয় না বলে প্রেক্ষাপটের বাইরের পদ্ধতিগুলির ব্যবহার আপনাকে প্রেরিত ট্র্যাফিকের আকারকে কয়েকগুণ কমাতে দেয়৷

উপসংহার

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

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

তবুও, সমস্যাগুলি সমাধান করার সময় নিবন্ধে বর্ণিত পদ্ধতিটি ঘটে।

ডাউনলোডের জন্য ফাইল:

প্রিন্ট (Ctrl+P)

গতিশীল তালিকা

1। সাধারণ তথ্য

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

ভাত। 1. একটি গতিশীল তালিকা তৈরির জন্য বিকল্প

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

পছন্দ করা
চয়েস
যখন ডেলিভারি. সহগ = 1 তারপর & উপস্থাপনা
অন্যথায় ডেলিভারি। গুণাঙ্ক
অনুপাত হিসাবে শেষ করুন
থেকে

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

পছন্দ করা
চয়েস
WHEN Delivery.Coefficient = 1 তারপর এক্সপ্রেস করুন(&Representation as String(100)) ELSE Delivery. গুণাঙ্ক
অনুপাত হিসাবে শেষ করুন
থেকে
ডকুমেন্ট। পণ্যের ডেলিভারি কিভাবে ডেলিভার করতে হয়

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

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

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

2. সীমাবদ্ধতা এবং বৈশিষ্ট্য

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

ডায়নামিক তালিকা তৈরি করার সময়, কাস্টম কোয়েরি সহ সমস্ত গতিশীল তালিকা পরীক্ষা করার পরামর্শ দেওয়া হয়। যাচাইকরণ প্রক্রিয়া চলাকালীন, আপনাকে নিশ্চিত করতে হবে যে যদি একটি তালিকা কোয়েরিতে নেস্টেড কোয়েরি বা ভার্চুয়াল টেবিল থাকে এবং সেগুলির মধ্যে উপনাম সহ ক্ষেত্রগুলি যা মানক বিবরণের মালিক, পিতামাতা, তারিখ, সময়কাল, ThisGroup বা কী ক্ষেত্রগুলির উপনামের সাথে মেলে নির্বাচন, তাহলে এই ক্ষেত্রগুলি মানক বিবরণের সাথে মিলে যায় যার সাথে তাদের ডাকনাম মেলে। যদি এই ক্ষেত্রে না হয়, আপনি অনুরোধ পরিবর্তন করা উচিত যাতে তারা মেলে বা
ডাকনাম ভিন্ন ছিল।
আপনি যদি ম্যানুয়ালি একটি অনুরোধ তৈরি করতে চান, তাহলে অনুরোধের উপর কিছু বিধিনিষেধ আরোপ করা হয়:
● একটি গতিশীল তালিকা ক্যোয়ারীতে প্রথম বিবৃতি ব্যবহার করা সমর্থিত নয়৷ আপনি যদি একটি ডায়নামিক তালিকায় রেকর্ডের সংখ্যা দ্বারা সীমিত একটি নির্বাচন ব্যবহার করতে চান, তাহলে আপনাকে একটি গতিশীল তালিকা তৈরি করার অনুরোধটি এমনভাবে পুনরায় কাজ করতে হবে যাতে অনুরোধের প্রকৃত বিষয়বস্তু একটি সাবকোয়েরিতে রাখা হয় এবং রেকর্ডের সংখ্যা সীমিত করা হয়। এই subquery প্রাপ্ত. আপনি একটি subquery পরিবর্তে একটি অস্থায়ী টেবিল ব্যবহার করতে পারেন.
● নির্বাচন, বাছাই এবং গ্রুপিং সমর্থিত নয়:

  • সারণী অংশের বিবরণ অনুযায়ী।
  • ক্ষেত্রগুলি দেখুন।
  • ডেটা সংস্করণ ক্ষেত্র।
  • পূর্বনির্ধারিতDataName ক্ষেত্র।
  • অ্যাকাউন্ট টেবিলের ধরন ক্ষেত্রের চার্ট।
  • জমা রেজিস্টার টেবিলের আন্দোলনের ক্ষেত্রের ধরন।
  • বৈশিষ্ট্যযুক্ত টাইপ প্ল্যান টেবিলের ফিল্ড টাইপ ভ্যালু।
  • টাইপ ফিল্ড টাইপ;
  • স্ট্রিং ধরনের ক্ষেত্র (সীমাহীন দৈর্ঘ্য)।
  • বাইনারি ডেটার ক্ষেত্র।

● সাবকন্টো ক্ষেত্র অনুসারে বাছাই এবং গোষ্ঠীকরণ সমর্থিত নয়<НомерСубконто>এবং ViewSubconto<НомерСубконто>অ্যাকাউন্টিং রেজিস্টারের সাবকন্টো টেবিল আন্দোলন।
● সমষ্টিগত ফাংশন সমন্বিত কোয়েরি ভাষার অভিব্যক্তিগুলি ক্ষেত্রগুলির দ্বারা গোষ্ঠীবদ্ধ করা সমর্থিত নয়৷
● যখন মূল টেবিলটি নির্বাচন করা হয়, তখন গতিশীল তালিকার ক্যোয়ারীতে নিম্নলিখিত সীমাবদ্ধতা থাকে:

  • যোগদান সমর্থিত নয়।
  • ORDER BY বিভাগটি সমর্থিত নয়। আপনি একটি প্রধান টেবিল ছাড়া একটি ক্যোয়ারী ব্যবহার করা উচিত বা গতিশীল তালিকা সেটিংস মাধ্যমে প্রয়োজনীয় ক্রম সেট করা উচিত.

● যদি একটি ডায়নামিক তালিকা একটি শ্রেণিবদ্ধ তালিকা বা ট্রি হিসাবে প্রদর্শিত হয়, তাহলে একটি এন্ট্রি একটি গতিশীল তালিকা হিসাবে প্রদর্শিত হবে না যদি না সেই এন্ট্রির অন্তত একজন অভিভাবক প্রদর্শিত হয়৷ অন্য কথায়, একটি শ্রেণিবদ্ধ তালিকার একটি উপাদান প্রদর্শন করতে, একটি গতিশীল তালিকাকে অবশ্যই সেই উপাদানটির সমস্ত পিতামাতাকে তালিকার শীর্ষে প্রদর্শন করতে হবে। এই ক্ষেত্রে, তালিকার শীর্ষ দ্বারা আমরা হয় মানে
একটি ডায়নামিক তালিকা দ্বারা প্রদর্শিত অনুক্রমিক বস্তুর মূল উপাদান, অথবা একটি গতিশীল তালিকার জন্য একটি ফর্ম টেবিল এক্সটেনশনের ParentTopLevel বৈশিষ্ট্য হিসাবে সেট করা উপাদান৷

একটি গতিশীল তালিকার প্রধান টেবিল হিসাবে নিম্নলিখিত টেবিলগুলি ব্যবহার করা সমর্থিত নয়:

● একটি টেবিল যার একটি কী নেই যা প্রতিটি টেবিল রেকর্ডকে স্বতন্ত্রভাবে সনাক্ত করে (অবজেক্ট টেবিলের জন্য একটি রেফারেন্স এবং রেজিস্টার টেবিলের জন্য একটি রেকর্ড কী)। যাইহোক, নিম্নলিখিত টেবিলগুলি একটি গতিশীল তালিকার মূল টেবিল হিসাবে সেট করা যেতে পারে (কী না থাকা সত্ত্বেও):

● অ্যাকাউন্টিং রেজিস্টারের সাবকন্টো টেবিল;
● মুভমেন্টস সাবকন্টো টেবিল ব্যতীত অ্যাকাউন্টিং রেজিস্টারের সমস্ত ভার্চুয়াল টেবিল;
● ধ্রুবক মানের টেবিল (ধ্রুবক সারণী সহ);
● কী ক্ষেত্র ছাড়াই বহিরাগত ডেটা উৎসের টেবিল;
● বাহ্যিক তথ্য উৎসের ঘনক টেবিল;
● জমা রেজিস্টার টেবিল:

  • বিপ্লব টেবিল;
  • ব্যালেন্স টেবিল;
  • টার্নওভার এবং ব্যালেন্সের টেবিল।

● গণনা রেজিস্টার টেবিল:

  • প্রকৃত মেয়াদের সারণী;
  • সময়সূচী তথ্য;
  • মৌলিক তথ্য.

● বস্তুর সারণী অংশের টেবিল;
● রেজিস্ট্রেশন টেবিল পরিবর্তন করুন (ডেটা এক্সচেঞ্জ মেকানিজম ব্যবহার করা হয়);
● সিকোয়েন্স টেবিল;
● রূপান্তর সারণী (পর্যায়ক্রমিক নিষ্পত্তি প্রক্রিয়ায় ব্যবহৃত)।
● একটি টেবিল যা শুধুমাত্র একটি বহিরাগত যোগদানে একটি প্রশ্নে ব্যবহৃত হয়।

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

চয়েস
এটি একটি মিথ্যা যখন
তারপর 5
অন্যথায়
&প্যারামিটার
শেষ

আপনি যদি প্যারামিটার প্যারামিটারটিকে অন্য ধরণের একটি মানতে সেট করেন, সেই ক্ষেত্রের জন্য গতিশীল তালিকাটি মান 0 (সংখ্যা প্রকারের জন্য ডিফল্ট মান) পাবে।
যদি এই ধরনের পরিস্থিতিতে আপনাকে একটি ভিন্ন ধরনের প্যারামিটার নির্বাচন করতে হয়, তাহলে ক্যোয়ারী ভাষা নির্মাণ ব্যবহার করার পরামর্শ দেওয়া হয় প্রকাশ করা. উদাহরণ স্বরূপ,
যদি উপরের উদাহরণে আপনাকে প্যারামিটারে 100 অক্ষরের বেশি স্ট্রিং পাস করতে হবে, তাহলে আপনাকে প্যারামিটারের সাধারণ ইঙ্গিতটিকে একটি স্পষ্ট টাইপ কাস্ট সহ একটি এক্সপ্রেশন দিয়ে প্রতিস্থাপন করা উচিত:

চয়েস
এটি একটি মিথ্যা যখন
তারপর 5
অন্যথায়
এক্সপ্রেস(&প্যারামিটার AS স্ট্রিং(100))
শেষ

যদি একটি ডায়নামিক তালিকা অনুরোধের নির্বিচারে পাঠ্য নির্বাচন ক্ষেত্রের অভিব্যক্তিতে পরামিতি ব্যবহার করে, তাহলে আপনাকে স্পষ্টভাবে কনস্ট্রাক্ট ব্যবহার করে প্যারামিটারের ধরন নির্দেশ করতে হবে প্রকাশ করা. উদাহরণস্বরূপ, পরিবর্তে &নামকরণ AS নামকরণব্যবহার
EXPRESS(&Nomenclature AS Directory.Nomenclature) AS নামকরণ. অন্যথায় অনুসন্ধান বারের মাধ্যমে অনুসন্ধান কাজ করতে পারে
ভুল বা ত্রুটি উত্পাদন.

3. একটি গতিশীল তালিকা সহ ডেটা পুনরুদ্ধার এবং ক্যাশে করার পদ্ধতি

প্রদর্শনের জন্য ডেটা পাওয়ার সময়, একটি গতিশীল তালিকা তিনটি পদ্ধতির একটি ব্যবহার করে:
1. ডাটাবেস থেকে পঠন খণ্ডে সঞ্চালিত হয় তালিকা দ্বারা একযোগে প্রদর্শিত সারির সংখ্যার চেয়ে সামান্য বেশি ডেটা উপাদানের সংখ্যা (কিন্তু 20টির কম নয়)। ডেটা সার্ভারে ক্যাশে করা হয় না।
2. ডাটাবেস থেকে পঠন করা হয় 1,000টি ডেটা আইটেমের পাতায়। সার্ভারে ডেটা ক্যাশে করা হচ্ছে। অনুক্রমিক ডেটা ক্যাশে করা হয়: প্রতিটি অভিভাবকের জন্য 2টির বেশি পৃষ্ঠার উপাদান ক্যাশে করা হয় না। প্রতি গতিশীল তালিকায় 20 পৃষ্ঠার বেশি আইটেম ক্যাশে করা হয় না। নিম্নলিখিত টেবিলের জন্য একটি গতিশীল তালিকা দ্বারা ক্যাশিং সক্ষম করা হবে:
● নির্বাচনের মানদণ্ড;
● অ্যাকাউন্টিং রেজিস্টারের সমস্ত টেবিল, প্রধান টেবিল এবং মুভমেন্টস সাবকন্টো টেবিল ছাড়া;
● মূল টেবিল ব্যতীত সমস্ত জমা রেজিস্টার টেবিল;
● মূল টেবিল ব্যতীত তথ্য নিবন্ধনের সমস্ত টেবিল;
● মূল টেবিল ব্যতীত গণনার রেজিস্টারের সমস্ত টেবিল;
● পারফর্মার দ্বারা টাস্কের ভার্চুয়াল টেবিল;
● চাবি ছাড়া বাহ্যিক উত্সের টেবিল;
● বাহ্যিক উৎস থেকে কিউব।

3. ডাটাবেস থেকে পঠন 1,000 উপাদানের পৃষ্ঠায় সঞ্চালিত হয়। প্রথম অংশটি 1 পৃষ্ঠার সমান। প্রতিটি পরবর্তী অংশ 1 পৃষ্ঠা দ্বারা বৃদ্ধি পায় (যখন পূর্ববর্তী নমুনার শেষ হয়)। "ভিউ পয়েন্ট" যত কাছে প্রদর্শিত ডেটার শেষের দিকে যায়, ডাটাবেস থেকে নমুনাটি তত বেশি পড়া হয়, অবশেষে সমস্ত প্রদর্শিত ডেটার সমান হয়ে যায়। সার্ভারে ডেটা ক্যাশে করা হচ্ছে। ক্যাশে এবং ডায়নামিক তালিকায় সর্বাধিক সংখ্যক এন্ট্রি হল 1,000,000৷
ডায়নামিক তালিকার প্রধান টেবিলের দ্বারা কী নির্বাচন করা হয়েছে এবং ডায়নামিক রিডিং প্রপার্টি কী মান নেয় তার উপর নির্ভর করে, ডেটা পড়ার এক বা অন্য পদ্ধতি ব্যবহার করা হয়:

● নিম্নলিখিত সারণীগুলির মধ্যে একটিকে প্রধান টেবিলের সম্পত্তির মান হিসাবে নির্দিষ্ট করা হয়েছে: বিনিময় পরিকল্পনা, ডিরেক্টরি, নথির তালিকা, নথিপত্রের জার্নাল, বৈশিষ্ট্যের ধরনগুলির পরিকল্পনা, অ্যাকাউন্টের তালিকা, গণনার প্রকারের পরিকল্পনা, ব্যবসায়িক প্রক্রিয়া, কাজ, টেবিল ব্যবসায়িক প্রক্রিয়া পয়েন্ট:



● নিম্নলিখিত সারণীগুলির মধ্যে একটি প্রধান টেবিলের সম্পত্তির মান হিসাবে নির্দিষ্ট করা হয়েছে: তথ্য নিবন্ধনের মূল টেবিল, সঞ্চয় নিবন্ধন, অ্যাকাউন্টিং রেজিস্টার, গণনা রেজিস্টার, অ্যাকাউন্টিং রেজিস্টারের ভার্চুয়াল টেবিল MovementsSubconto:

● গতিশীল পড়ার বৈশিষ্ট্য:
● ইনস্টল করা: পদ্ধতি 1 ব্যবহার করা হয় (পদ্ধতির বিবরণ উপরে দেওয়া হয়েছে)।
● রিসেট: পদ্ধতি 2 ব্যবহার করা হয় (পদ্ধতির বিবরণ উপরে দেওয়া হয়েছে)।

● প্রধান টেবিলের বৈশিষ্ট্যে নির্বাহকের দ্বারা নির্বাচনের মানদণ্ডের সারণী বা টাস্ক টেবিল থাকে (কর্মকর্তার দ্বারা কাজ):
● একটি টেবিল সারি সনাক্তকরণ কী: লিঙ্ক।

● মূল টেবিলের বৈশিষ্ট্য স্লাইসফার্স্ট বা স্লাইসলাস্ট তথ্য রেজিস্টারের ভার্চুয়াল টেবিল নির্দিষ্ট করে:
● কী একটি টেবিল সারি সনাক্তকরণ: RecordKey.
● ডায়নামিক রিডিং প্রপার্টি প্রযোজ্য নয়।
● পদ্ধতি 2 ব্যবহার করা হয় (পদ্ধতির বিবরণ উপরে দেওয়া হয়েছে)।

● প্রধান টেবিলের বৈশিষ্ট্যটি ভার্চুয়াল রেজিস্টার টেবিলগুলির একটিতে সেট করা হয়েছে, উপরে তালিকাভুক্তগুলি ছাড়া:

● ডায়নামিক রিডিং প্রপার্টি প্রযোজ্য নয়।

● প্রধান সারণী সম্পত্তি নির্দিষ্ট করা নেই, একটি নির্বিচারে প্রশ্ন ব্যবহার করা হয়:
● একটি টেবিল সারি সনাক্তকরণ কী: সংখ্যা।
● ডায়নামিক রিডিং প্রপার্টি প্রযোজ্য নয়।
● পদ্ধতি 3 ব্যবহার করা হয় (পদ্ধতির বিবরণ উপরে দেওয়া হয়েছে)।

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

4. ডায়নামিক তালিকা সেটিংস

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


ভাত। 2. একটি গতিশীল তালিকার শর্তাধীন স্টাইলিং

কনফিগারেশনে একটি গতিশীল তালিকা সেট আপ করার সময়, অ্যাপ্লিকেশন বিকাশকারীর নিম্নলিখিতগুলি করার সুযোগ রয়েছে:
● আপনি বাছাই করতে চান এমন ক্ষেত্রগুলি সেট করুন;
● তালিকায় ডেটা নির্বাচন বর্ণনা করুন;
● শর্তসাপেক্ষ চেহারা সেটিংস নির্দিষ্ট করুন;
● ক্ষেত্রগুলি সেট করুন যার দ্বারা আপনি ডেটা গ্রুপ করতে চান৷
আপনি যদি সিস্টেম দ্বারা সেট করা ডিফল্ট বাছাইয়ের সাথে সন্তুষ্ট না হন তবে বিকাশকারীর কাছে বাছাই সেট করা বোধগম্য।

উপদেশ।এটি মনে রাখা উচিত যে বাছাই ক্ষেত্রগুলির দুর্বল নির্বাচন (পাশাপাশি ডেটার নির্বাচন এবং গোষ্ঠীকরণ) গতিশীল নমুনার দক্ষতাকে নেতিবাচকভাবে প্রভাবিত করে।
একটি অ্যাপ্লিকেশন ডেভেলপারের দৃষ্টিকোণ থেকে, গতিশীল তালিকা সেটিংসে বেশ কয়েকটি অংশ থাকে যা আন্তঃসংযুক্ত। প্রধান বৈশিষ্ট্য যার মাধ্যমে আপনি একটি গতিশীল তালিকার সেটিংস পরিচালনা করতে পারেন লিঙ্কার সেটিংস. এই বস্তুটিতে সেটিংসের তিনটি সেট রয়েছে যা, যখন সিস্টেম চলে, তখন গতিশীল তালিকায় প্রয়োগ করা চূড়ান্ত সেটিংস নির্ধারণ করে:
● সেটিংস – সেটিংস কনফিগারার মোডে তৈরি করা হয়েছে। ডায়নামিক তালিকার অর্ডার প্রপার্টি সেটিংসে দ্রুত অ্যাক্সেস প্রদান করে। ডায়নামিক লিস্টের সেটিংস বিল্ডারের অর্ডার প্রপার্টি, তাই নিম্নলিখিত কনস্ট্রাক্টগুলি সমতুল্য:
List.Order এবং List.SettingsLinker.Settings.Order;
● UserSettings – এগুলি হল সেটিংস যা ব্যবহারকারী দ্বারা 1C:Enterprise মোডে পরিবর্তন করা হয়;
● স্থির সেটিংস – এই সেটিংসগুলি অন্তর্নির্মিত ভাষা থেকে সেট করা হয়েছে৷ এই সম্পত্তিতে নির্বাচনের মানও রয়েছে যা এর পরামিতি ব্যবহার করে ফর্মে স্থানান্তরিত হয়। ডায়নামিক তালিকা বৈশিষ্ট্য নির্বাচন, বিকল্প, শর্তসাপেক্ষ উপস্থিতি ডায়নামিক তালিকা সেটিংস নির্মাতার নির্দিষ্ট সেটিংসে দ্রুত অ্যাক্সেস প্রদান করে। অন্য কথায়, এই কলগুলি সমতুল্য:
List.Settings Composer.FixedSettings.Selection এবং List.Selection.
একটি গতিশীল তালিকার জন্য চূড়ান্ত সেটিংস তৈরি করার সময়, বিভিন্ন সেটিংস বিকল্পগুলি নিম্নরূপ একত্রিত হয়:
● যদি কোনো ধরনের সেটিংস সম্পূর্ণরূপে কাস্টম হিসেবে চিহ্নিত করা হয়, তাহলে ফলস্বরূপ সেটিংসে কাস্টম সেটিংস অন্তর্ভুক্ত থাকে
(List.ComposerSettings.UserSettings)। অধিকন্তু, যদি কোনো সেটিংস উপাদান অনুপলব্ধ হিসাবে চিহ্নিত করা হয়, তাহলে এই সেটিংসগুলি List.Settings Composer প্রপার্টি থেকে প্রাপ্ত সেটিংসে স্থাপন করা হবে। সেটিংস.
● যদি কোনো ধরনের সেটিংস কাস্টম হিসাবে চিহ্নিত করা হয় সম্পূর্ণরূপে নয়, কিন্তু উপাদান দ্বারা উপাদান, তারপর:
● কাস্টম হিসাবে চিহ্নিত আইটেমগুলি List.SettingsComposer.CustomSettings সম্পত্তির ফলাফলের সেটিংসে অন্তর্ভুক্ত করা হবে৷
● অনুপলব্ধ হিসাবে চিহ্নিত আইটেমগুলি List.SettingsComposer.Settings সম্পত্তির ফলাফলের সেটিংসে অন্তর্ভুক্ত করা হবে৷
● স্থির সেটিংস (List.SettingsComposer.FixedSettings) ফলে সেটিংসে যোগ করা হয় "যেমন আছে"। একই সময়ে, এটি অগ্রহণযোগ্য যে স্থির এবং ব্যবহারকারী সেটিংসে একই নামের সেটিংস রয়েছে, উদাহরণস্বরূপ, শর্তে একই বাম মান সহ নির্বাচন।

যদি ডায়নামিক তালিকা সেটিংসে সেটিংস থাকে যা কার্যকরী বিকল্পগুলি ব্যবহার করে অক্ষম করা হয়, ডায়নামিক তালিকা ডেটা পুনরুদ্ধার করা হলে এই সেটিংসগুলি উপলব্ধ সেটিংসের তালিকা থেকে সরানো হবে৷
কোন সেটিংস ব্যবহারকারীর কাছে উপলব্ধ হবে এবং কোনটি হবে না তা নিয়ন্ত্রণ করা ডায়নামিক তালিকা সেটিংস উইন্ডোতে করা হয়।


ভাত। 3. ব্যবহারকারী সেটিংসে অন্তর্ভুক্তি নিয়ন্ত্রণ করুন

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

একটি ডায়নামিক তালিকা খোলার সময় আপনার যদি কোনো বিশেষ সেটিংস লোড করার প্রয়োজন হয়, এটি দুটি উপায়ে করা যেতে পারে:
● ডাইনামিক লিস্ট ফর্ম প্যারামিটার UserSettings ব্যবহার করে। এই প্যারামিটারে থাকা ডেটা ব্যবহারকারীর গতিশীল তালিকা সেটিংসে স্থাপন করা হবে।
● ডাইনামিক লিস্ট ফর্ম প্যারামিটার ইউজারসেটিংসকি ব্যবহার করে। আপনি যদি একটি ফর্ম খোলার সময় এই প্যারামিটারটি নির্দিষ্ট করেন, তাহলে নির্দিষ্ট কী সহ সেটিংস স্টোরেজে অবস্থিত ব্যবহারকারী সেটিংস ডায়নামিক তালিকায় লোড হবে, যা ফর্মটির প্রধান বৈশিষ্ট্য।

5. একটি গতিশীল তালিকায় অনুসন্ধান করুন৷

ফর্মে অবস্থিত একটি গতিশীল তালিকা প্রদর্শিত ডেটা ইন্টারেক্টিভভাবে অনুসন্ধান করার ক্ষমতা প্রদান করে। অনুসন্ধানটি নিম্নলিখিত সরঞ্জামগুলি ব্যবহার করে করা যেতে পারে: অনুসন্ধান বার, অনুসন্ধান ডায়ালগ, বর্তমান মান অনুসন্ধান করা, অনুসন্ধানের ইতিহাস ব্যবহার করে এবং সময়কাল সেট করা (দস্তাবেজগুলি প্রদর্শনকারী গতিশীল তালিকাগুলির জন্য)। অনুসন্ধান ফলাফল রেকর্ডের একটি সীমিত সেট
একটি গতিশীল তালিকা (একটি প্রদত্ত ব্যবহারকারীর কাছে উপলব্ধ) যা অনুসন্ধানের মানদণ্ডের সাথে মেলে।
একটি গতিশীল তালিকার অনুসন্ধান ক্ষমতা নিয়ন্ত্রণ করতে, পরিচালিত ফর্মে তিনটি টেবিল বৈশিষ্ট্য রয়েছে যা গতিশীল তালিকা প্রদর্শন করে:
● অনুসন্ধান স্ট্রিং অবস্থান – অনুসন্ধান স্ট্রিং অবস্থান নির্ধারণ করে। নিম্নলিখিত মানগুলি নিতে পারে: স্বয়ংক্রিয়, কমান্ড বার, নেই, শীর্ষ, নীচে।


ভাত। 4. একটি গতিশীল তালিকায় অনুসন্ধান স্ট্রিং

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


● যদি সামঞ্জস্যতা মোড প্রপার্টি 8.3.4 সংস্করণ ব্যবহার করবেন না বা তার চেয়ে পুরানো সেট করা থাকে - মানটি হল কমান্ড প্যানেল।
নিম্নরূপ অনুসন্ধান লাইনে যান:
● Ctrl+F কী সমন্বয় টিপে;
● মাউস;
● যখন আপনি একটি ডায়নামিক তালিকায় টাইপ করা শুরু করেন (গতিশীল তালিকার SearchOnTyping বৈশিষ্ট্যের মান বিবেচনা করে)।
● ভিউ স্টেট পজিশন – বর্ণনা করে যেখানে ভিউ স্টেট প্রদর্শিত হবে: কোন ক্ষেত্রগুলি অনুসন্ধান করা হয়েছে এবং কোন মানগুলি
প্রতিটি ক্ষেত্রে অনুসন্ধান করা হয়েছে। নিম্নলিখিত মানগুলি নিতে পারে: স্বয়ংক্রিয়, নেই, শীর্ষ, নীচে


ভাত। 5. গতিশীল তালিকায় অনুসন্ধানের অবস্থা

যদি সম্পত্তিটি No তে সেট করা হয়, তাহলে ভিউ স্টেট ফর্মটিতে উপস্থিত থাকবে না। ফলস্বরূপ, অনুসন্ধানটি বাতিল করা বাটনের উপলব্ধতার মাধ্যমে অনুসন্ধানটি সম্পূর্ণ হয়েছে কিনা তা নির্ধারণ করা সম্ভব হবে।
যদি প্রপার্টি শীর্ষে সেট করা থাকে, তাহলে ভিউ স্টেট লিস্ট কমান্ড বার এবং ডাইনামিক তালিকা প্রদর্শনকারী টেবিলের মধ্যে অবস্থিত হবে। যদি প্রপার্টিটি নীচে সেট করা থাকে, তাহলে ডাইনামিক তালিকা প্রদর্শনকারী টেবিলের পরপরই ভিউ স্টেট স্থাপন করা হবে।
যদি ফর্মটি 1C:Enterprise সংস্করণ 8.3.4 এবং তার আগে তৈরি করা হয়, সম্পত্তিটি No-এ সেট করা হয়। যদি ফর্মটি 1C:Enterprise সংস্করণ 8.3.5 এবং তার আগে তৈরি করা হয়, সম্পত্তিটি অটোতে সেট করা হয়। এই ক্ষেত্রে সম্পত্তির প্রকৃত মূল্য নিম্নরূপ নির্ধারণ করা হবে:
● যদি সামঞ্জস্যতা মোড বৈশিষ্ট্যটি সংস্করণ 8.3.4 (এবং নিম্নতর)-তে সেট করা থাকে - মান নং;
● যদি সামঞ্জস্যতা মোড প্রপার্টি 8.3.4 সংস্করণ ব্যবহার করবেন না বা তার চেয়ে বেশি - মান শীর্ষে সেট করা থাকে;
● অনুসন্ধান নিয়ন্ত্রণ অবস্থান – অনুসন্ধান নিয়ন্ত্রণ বোতামটি কোথায় প্রদর্শিত হবে তা নির্ধারণ করে। বোতামটি একটি মেনু খোলে যেখানে নিম্নলিখিত তথ্য রয়েছে: কমান্ড বর্তমান মান দ্বারা খুঁজুন, উন্নত অনুসন্ধান, অনুসন্ধান বাতিল করুন, সময়কাল সেট করুন (নথি এবং জার্নাল তালিকার জন্য) এবং অনুসন্ধান ক্যোয়ারী ইতিহাস (শেষ 5টি প্রশ্ন)। সম্পত্তি নিম্নলিখিত মান নিতে পারে: Auto, None, Command panel.


ভাত। 6. একটি গতিশীল তালিকায় অনুসন্ধান পরিচালনা করা

যদি সম্পত্তিটি No তে সেট করা থাকে, তাহলে অনুসন্ধান নিয়ন্ত্রণ বোতামটি ফর্মে থাকবে না (তবে আরও মেনু ব্যবহার করে কমান্ডগুলি উপলব্ধ হবে)। কমান্ড বার প্রপার্টি মান একটি ডাইনামিক তালিকা প্রদর্শনকারী একটি টেবিলের সাথে যুক্ত কমান্ড বারে একটি বোতাম রাখে।
যদি ফর্মটি 1C:Enterprise সংস্করণ 8.3.4 এবং তার আগে তৈরি করা হয়, সম্পত্তিটি No-এ সেট করা হয়। যদি ফর্মটি 1C:Enterprise সংস্করণ 8.3.5 এবং তার আগে তৈরি করা হয়, সম্পত্তিটি অটোতে সেট করা হয়। এই ক্ষেত্রে সম্পত্তির প্রকৃত মূল্য নিম্নরূপ নির্ধারণ করা হবে:
● যদি সামঞ্জস্যতা মোড বৈশিষ্ট্যটি সংস্করণ 8.3.4 (এবং নিম্নতর)-তে সেট করা থাকে - মান নং;
● যদি সামঞ্জস্যতা মোড প্রপার্টি 8.3.4 সংস্করণ ব্যবহার করবেন না বা তার চেয়ে পুরানোতে সেট করা থাকে - মানটি হল কমান্ড প্যানেল;
যদি একটি ফর্মে একাধিক কমান্ড প্যানেল থাকে, কমান্ডের উত্স যার জন্য পরিচালিত ফর্মের একটি টেবিল (গতিশীল তালিকা ডেটা প্রদর্শন করা হয়), তবে অনুসন্ধান লাইন এবং অনুসন্ধান নিয়ন্ত্রণ বোতামটি শুধুমাত্র একটি কমান্ড প্যানেলে অবস্থিত হবে:
● অথবা ডায়নামিক তালিকার কমান্ড বারে (যদি এটি স্বয়ংক্রিয়-সম্পূর্ণতা সক্ষম থাকে)
● অথবা অবশিষ্ট কমান্ড প্যানেলের যে কোনো একটিতে।

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

● অনুসন্ধানটি ডায়নামিক তালিকার (এবং কনফিগারেশন অবজেক্ট) সমস্ত কলামে সঞ্চালিত হয় না, তবে শুধুমাত্র সেই কলামগুলিতে যা টেবিলে প্রদর্শিত হয়৷
● নির্বিচারে উপস্থাপনা সহ রেফারেন্স প্রকারের ক্ষেত্রগুলির দ্বারা একটি গতিশীল তালিকায় অনুসন্ধান করা ক্ষেত্রগুলি দ্বারা সঞ্চালিত হয় যা এর জন্য ব্যবহৃত হয়
প্রতিনিধিত্ব গঠন (এখানে দেখুন)। ভিউতে অন্তর্ভুক্ত ক্ষেত্রগুলি সংশ্লিষ্ট বস্তুর ViewFieldGettingProcessing() হ্যান্ডলারকে বিবেচনা করে প্রাপ্ত করা হয়।
● একটি নির্দিষ্ট প্রধান টেবিলের সাথে গতিশীল তালিকার জন্য, মূল টেবিলে পূর্ণ-পাঠ্য অনুসন্ধান ব্যবহার করা হয়। মূল টেবিলের সমস্ত নন-ইনডেক্সড লিঙ্ক পূর্ণ-পাঠ্য অনুসন্ধান ফলাফলে যোগ করা হবে। মূল টেবিলের জন্য একটি পূর্ণ-পাঠ্য অনুসন্ধানের ফলাফল কী ক্ষেত্রগুলির উপর ভিত্তি করে একটি নির্বাচন হিসাবে ব্যবহৃত হয়। একটি পূর্ণ-পাঠ্য অনুসন্ধান অন্যান্য টেবিল থেকে তালিকায় প্রদর্শিত ক্ষেত্রগুলিতেও সঞ্চালিত হয় (যদি ক্ষেত্র এবং কনফিগারেশন অবজেক্টটি পূর্ণ-পাঠ্য অনুসন্ধান ব্যবহার করে)। সম্পূর্ণ টেক্সট অনুসন্ধান সক্রিয় ছাড়া, তথ্য হতে পারে
পাওয়া গেছে, কিন্তু অনুসন্ধান নিজেই খুব ধীর হবে.
যদি একটি পূর্ণ-পাঠ্য অনুসন্ধান করার চেষ্টা করার সময় একটি ত্রুটি ঘটে, অনুসন্ধানটি সম্পূর্ণ পাঠ্য অনুসন্ধান প্রয়োগ না করেই সঞ্চালিত হবে।
উদাহরণস্বরূপ, এই চিঠিটি দিয়ে শুরু করে তথ্য বেসে একটি অক্ষর এবং প্রচুর সংখ্যক লাইন অনুসন্ধান করার সময় এটি ঘটতে পারে।
● যদি একটি ডায়নামিক তালিকার প্রধান টেবিলের একটি ক্ষেত্রের জন্য তুলনা টাইপ Equals সহ একটি নির্বাচন ব্যবহার করা হয়, তাহলে একটি পূর্ণ-পাঠ্য অনুসন্ধান করার সময়, এই টেবিলের জন্য অনুসন্ধান ক্যোয়ারীতে একটি নির্বাচন মান যোগ করা হবে।
● অনুসন্ধান স্ট্রিং শব্দে বিভক্ত। এই পার্টিশন নিম্নলিখিত নিয়ম অনুযায়ী সঞ্চালিত হয়:
● রেখাটি স্পেস এবং ট্যাব অক্ষরগুলিকে ডিলিমিটার হিসাবে ব্যবহার করে ভাঙা হয়েছে৷
● তারপর প্রতিটি ফলস্বরূপ খণ্ড প্রক্রিয়া করা হয়:
● যদি খণ্ডটি বর্তমান সেশন লোকেলের উপর ভিত্তি করে একটি তারিখ উপস্থাপনা (সময় সহ বা ছাড়া) হয়, তাহলে শব্দটি হল খণ্ড।
● অন্যথায়, “,.-/\” অক্ষরগুলিকে সীমাবদ্ধকারী হিসাবে ব্যবহার করে খণ্ডটিকে আরও বিভক্ত করা হয়। এই ক্ষেত্রে, স্ট্রিংয়ের প্রতিটি ফলস্বরূপ খণ্ডকে একটি শব্দ হিসাবে নেওয়া হয়।

● প্রতিটি শব্দের জন্য, শর্তগুলির নিজস্ব সেট গঠিত হয়, যা "OR" দ্বারা একত্রিত হয়। শর্তের এই সেটটি তৈরি হয় যদি টেবিলে একটি প্রদত্ত শব্দের জন্য একটি পূর্ণ-পাঠ্য অনুসন্ধান যেখান থেকে এই ক্ষেত্রটি প্রাপ্ত হয়েছিল তা কমপক্ষে একটি বস্তু ফেরত দেয়, বা এই ক্ষেত্রের জন্য একটি পূর্ণ-পাঠ্য অনুসন্ধান ব্যবহার না করা হয়। শর্তগুলি নিম্নরূপ গঠিত হয়:
● স্ট্রিং ধরনের একটি ক্ষেত্রের জন্য, শর্ত হল FieldName LIKE %Word%।
● টাইপ নম্বরের ক্ষেত্রের জন্য, শর্তটির ফর্ম আছে FieldName=Value, যেখানে মান হল একটি শব্দ যা সংখ্যার প্রকারে রূপান্তরিত হয়। যদি কাস্ট সঞ্চালিত না হয়, ক্ষেত্রের অনুসন্ধান সঞ্চালিত হবে না.
● বর্তমান অধিবেশনের জন্য সংজ্ঞায়িত ডিফল্ট বুলিয়ান উপস্থাপনায় শব্দটিকে একটি সাবস্ট্রিং হিসাবে দেখা হয়। যদি অনুসন্ধান শব্দটি একটি দৃশ্যে পাওয়া যায়, তাহলে এটি সেই দৃশ্যের সাথে সম্পর্কিত মান অনুসন্ধান করে যেখানে শব্দটি পাওয়া গেছে। এই ক্ষেত্রে, অনুসন্ধানটি এমন ভিউ ব্যবহার করে না যা ফর্ম্যাট ফর্ম উপাদান বৈশিষ্ট্য ব্যবহার করে নির্দিষ্ট করা হয়।
● তারিখ টাইপের ক্ষেত্রের জন্য, শর্তটি FieldName>=StartofDay(Word) ANDFieldName এর মত দেখায়<=КонецДня(Слово). Если Слово подобно дате, в которой год
এক বা দুটি সংখ্যা দ্বারা নির্দেশিত, বছরটি বর্তমান শতাব্দীতে হ্রাস পাবে এবং এই মানটি অনুসন্ধান শর্তে যুক্ত করা হবে।
● রেফারেন্স ক্ষেত্রগুলির জন্য, রেফারেন্স ভিউ তৈরি করতে ব্যবহৃত ক্ষেত্রগুলিতে একটি অনুসন্ধান করা হয়। এই ক্ষেত্র প্রতিটি অনুসন্ধান
উপরে বর্ণিত নিয়ম অনুযায়ী সঞ্চালিত। অনুসন্ধানটি একটি কাস্টম ডেটা উপস্থাপনা তৈরি করতে ব্যবহৃত ক্ষেত্রগুলি ব্যবহার করে না।
প্রতিটি শব্দের জন্য শর্তের সেট "AND" একত্রিত হয়।
● অগ্রণী শূন্য সহ মানগুলির জন্য, আপনি অগ্রণী শূন্য সহ স্ট্রিং বা অগ্রণী শূন্য ছাড়াই নির্দিষ্ট করা স্ট্রিং অনুসন্ধান করতে পারেন৷
● যদি একটি ডায়নামিক তালিকা নথির একটি তালিকা বা একটি নথির ইতিহাস প্রদর্শন করে, তাহলে আপনার নির্দিষ্ট করা তালিকা দেখার ব্যবধানটিও পছন্দসই গতিশীল তালিকার দৃশ্যের স্থিতি প্রদর্শনের জন্য সংরক্ষিত ফর্মের এলাকায় প্রদর্শিত হয়৷
● বর্তমান মান কমান্ড দ্বারা অনুসন্ধান পাওয়া যায় না যদি ডায়নামিক তালিকার প্রধান টেবিলটি নির্বাচনের মানদণ্ড হয়।
● সারণীতে প্রদর্শিত হলে পাওয়া স্ট্রিং টুকরা হাইলাইট করা হয়।
● একটি কলামের জন্য শুধুমাত্র একটি অনুসন্ধান স্ট্রিং সমর্থিত। একটি কলামের জন্য একটি নতুন অনুসন্ধান ক্যোয়ারী যোগ করার সময় যা ইতিমধ্যেই অনুসন্ধান করা হচ্ছে, অনুসন্ধানের অভিব্যক্তিটি প্রতিস্থাপন করা হবে দুটি অনুসন্ধানের প্রশ্ন একসাথে যোগ করার পরিবর্তে।
● যদি ফর্মটিতে ফর্মের একটি ফর্ম উপাদান সংযোজন না থাকে সার্চ স্ট্রিং ডিসপ্লে একটি ডায়নামিক তালিকা প্রদর্শন করে টেবিলের সাথে যুক্ত (ফর্ম উপাদান সংযোজন উত্স সম্পত্তি), তারপর Ctrl+F কী সমন্বয় টিপে অনুসন্ধান ডায়ালগ খোলে৷


ভাত। 7. অনুসন্ধান ডায়ালগ

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

● ডায়নামিক তালিকায় একটি অনুসন্ধান স্ট্রিং সরাসরি টাইপ করা শুরু করে অনুসন্ধান ডায়ালগ খোলার ফলে এই সত্যের দিকে পরিচালিত হয় যে কীভাবে অনুসন্ধান করবেন সুইচের মান স্ট্রিংয়ের অংশ অনুসারে মান সেট করা হয় এবং টাইপ করা পাঠ্যটি কী-তে শেষ হয় ক্ষেত্র অনুসন্ধান করতে।

6. একটি ডাইনামিক তালিকা দ্বারা প্রদর্শিত ডেটা পাওয়া

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

স্কিমা = Elements.List.GetExecutableDataCompositionSchema();
সেটিংস = Items.List.GetExecutableDataCompositionSettings();
লেআউটলিঙ্কার = newDataCompositionLayoutLinker();
LayoutLayout = LayoutComposer.Execute(স্কিম, সেটিংস);
CompositionProcessor = newDataCompositionProcessor;
LayoutProcessor.Initialize(LayoutLayout);
আউটপুটপ্রসেসর = নতুন আউটপুটপ্রসেসরডেটা কম্পোজিশন রেসল্টইনটিবুলার ডকুমেন্ট;
ReturnOutputProcessor.Output(CompositionProcessor);

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

কনফিগারেশন চূড়ান্ত করার প্রক্রিয়ায়, প্রতিটি 1C প্রোগ্রামার গতিশীল তালিকার সম্মুখীন হয়।
ডাইনামিক লিস্ট হল একটি ইন্টারফেস অবজেক্ট যা ডাটাবেস অবজেক্ট বা অ-অবজেক্ট ডেটা - রেজিস্টার এন্ট্রিগুলির বিভিন্ন তালিকা প্রদর্শন করতে ব্যবহৃত হয়।
উদাহরণস্বরূপ, আইটেমগুলির একটি তালিকা প্রদর্শন করতে একটি গতিশীল তালিকা ব্যবহার করা হয়:

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

ডিফল্টরূপে, আমাদের তালিকা সমস্ত গুদামের জন্য মোট ব্যালেন্স সহ আইটেমগুলির একটি তালিকা প্রদর্শন করবে। এই ধরনের একটি তালিকা বাস্তবায়ন করতে, নিম্নলিখিত ক্যোয়ারী যোগ করুন:


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

যদি আমরা এই ফর্মে আমাদের প্রক্রিয়াকরণ চালানোর চেষ্টা করি, আমরা একটি ত্রুটি পাব:


এটি নির্মূল করতে, আপনাকে "পিরিয়ড" প্যারামিটারের জন্য একটি মান সেট করতে হবে। এটি করার জন্য, আপনি ডায়নামিক তালিকার "প্যারামিটার" সংগ্রহের "SetParameterValue" পদ্ধতিটি ব্যবহার করতে পারেন। পদ্ধতি দুটি পরামিতি লাগে:
. "প্যারামিটার" - প্রকার: স্ট্রিং; ডেটা কম্পোজিশন প্যারামিটার। প্যারামিটার বা ডেটা কম্পোজিশন প্যারামিটারের নাম যার মান আপনি সেট করতে চান;
. "মান" - প্রকার: নির্বিচারে। সেট করার মান।
ফর্মের "OnCreateOnServer" হ্যান্ডলারে কল করা যেতে পারে:

আপনার কি প্রশ্ন আছে বা পরামর্শদাতার সাহায্যের প্রয়োজন আছে?


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


"তারিখ" ফর্ম উপাদানটির "অনচেঞ্জ" হ্যান্ডলারে, আমরা "সেটপ্যারামিটার ভ্যালু" পদ্ধতিকে কল করব, মান হিসাবে সংশ্লিষ্ট বৈশিষ্ট্যের মান পাস করে। একইভাবে, আসুন ফর্মের "When Creating On Server" পদ্ধতি পরিবর্তন করি। যেহেতু পদ্ধতিটি ক্লায়েন্টে উপলব্ধ, সার্ভারে কল করার দরকার নেই:


এখন তারিখ পরিবর্তন হলে, ব্যালেন্স স্বয়ংক্রিয়ভাবে আপডেট হবে:




আসুন ধরে নিই যে ব্যবহারকারীরা বর্তমান ব্যালেন্স বা পরিকল্পিত রসিদ দেখতে চান। এর বাস্তবায়ন বিকল্পগুলির মধ্যে একটি বিবেচনা করা যাক। আসুন একটি বুলিয়ান টাইপ ফর্ম অ্যাট্রিবিউট এবং একটি সম্পর্কিত সুইচ যোগ করি:


সুইচের মান পরিবর্তন করার সময়, আমরা অনুরোধের পাঠ্য পরিবর্তন করব। এটি করার জন্য, আমরা "অন চেঞ্জ" ইভেন্ট হ্যান্ডলার ব্যবহার করব "রসিদের উপর প্রদর্শনের পরিমাণ" ফর্ম উপাদানটির জন্য৷ অ্যাট্রিবিউটের মানের উপর নির্ভর করে আমাদের ডায়নামিক তালিকার "QueryText" বৈশিষ্ট্য পরিবর্তন করতে হবে। যেহেতু এই সম্পত্তিটি ক্লায়েন্টে উপলব্ধ নয়, তাই একটি সার্ভার পদ্ধতি কল করা আবশ্যক:


করা পরিবর্তনের ফলাফল:



অবশেষে প্রতি সাত বছরের স্বপ্ন পূরণ হলো। প্রোগ্রাম 7.7 এর ব্যবহারকারীরা কত ঘন ঘন আইটেমগুলির একটি সাধারণ নির্বাচনের জন্য জিজ্ঞাসা করেছিল? যাতে আপনি ব্যালেন্স, দাম এবং ফিল্টার সেট করতে পারেন। আমাদের বাহ্যিক উপাদান লেখা সহ বিভিন্ন কৌশল নিয়ে আসতে হয়েছিল। 1C 8.2-এ, গতিশীল তালিকা উপস্থিত হয়েছিল। আমি 1C 8.3-এ এটি কী এবং তারা আমাদের কী দিতে পারে তা বিবেচনা করার প্রস্তাব দিই।

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

তৈরি হয়ে গেলে, সিস্টেমটি ডিফল্টরূপে ফর্মটিতে "ডাইনামিক তালিকা" টাইপের একটি টেবিল ক্ষেত্র যোগ করবে।

আসুন এর বৈশিষ্ট্যগুলিতে যান এবং সেখানে কী আছে তা দেখুন।

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

সমাপ্ত কোড সহ একটি উইন্ডো খুলবে। আপাতত, "নামকরণ" ডিরেক্টরির সমস্ত ক্ষেত্র সহজভাবে সেখানে তালিকাভুক্ত করা হয়েছে।

বিনামূল্যে 1C-তে 267টি ভিডিও পাঠ পান:

আপনি দেখতে পাচ্ছেন, এখানে একটি কল বোতাম “ ” এবং একটি চেকবক্স রয়েছে যা তালিকার বিষয়বস্তুগুলি গতিশীলভাবে পরিবর্তন করা সম্ভব করে তোলে। অর্থাৎ, যখন অন্য ব্যবহারকারী ডিরেক্টরিতে কিছু পরিবর্তন করেন, তখন তা আমাদের তালিকায়ও পরিবর্তন হবে। এছাড়াও, একটি "সেটিংস" ট্যাব রয়েছে, তবে আমরা পরে এটি স্পর্শ করব।

গতিশীল তালিকায় কাস্টম ক্যোয়ারী

প্রথমে, ব্যালেন্স এবং দামের সাথে আমাদের প্রয়োজনীয় অনুরোধটি তৈরি করা যাক। সে রকমই:

"সেটিংস" ট্যাব

এবং এখন সেরা অংশ! "সেটিংস" ট্যাবে যান। এবং আমরা অবিলম্বে দেখতে পাচ্ছি যে প্রথম ট্যাবে আমরা অনুরোধের যেকোনো ক্ষেত্রের জন্য যেকোনো নির্বাচন করতে পারি:

একটি গতিশীল তালিকা 1C 8.3-এ প্রোগ্রামগতভাবে কোয়েরি প্যারামিটার সেট করা

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

আসুন ফর্ম প্যারামিটারে এই প্যারামিটারগুলি লিখি এবং ফর্ম মডিউলে নিম্নলিখিত লাইনগুলি যোগ করি:

&OnServer ProcedureWhenCreatingOnServer(ব্যর্থতা, স্ট্যান্ডার্ড প্রসেসিং) তালিকা। অপশন। সেট প্যারামিটার ভ্যালু("পিরিয়ড" , প্যারামিটার। তারিখ); তালিকা অপশন। SetParameterValue("PriceType", Parameters.PriceType); পদ্ধতির সমাপ্তি