ACS শুধুমাত্র রিপোর্টের জন্য নয় - সার্বজনীন নির্বাচনের বাস্তবায়ন। SCD-তে নির্বাচন ব্যবহার করা SDS ছাড়া কীভাবে নির্বাচন করবেন

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

নিয়মিত ফর্মে ব্যবহারকারীর জন্য প্রতিপক্ষ দ্বারা নির্বাচন সংগঠিত করার জন্য, প্রোগ্রামারকে ফর্মটিতে তিনটি উপাদান রাখতে হয়েছিল, যা দেখতে এইরকম ছিল:

একজন প্রোগ্রামারকে বিভিন্ন ধরনের তুলনা বর্ণনা করতে কতটা প্রচেষ্টা লাগে (সমান, সমান নয়, তালিকায়, একটি গোষ্ঠীতে...) এবং এই ধরনের তুলনার উপর ভিত্তি করে, ডেটা পাওয়ার জন্য তার চূড়ান্ত অনুরোধ পরিমার্জন করে।

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

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

এবং নির্বাচন ট্যাবে, নির্বাচনে কাউন্টারপার্টি যোগ করুন:

এখন ফর্ম তৈরি করা শুরু করা যাক। চলুন প্রসেসিং এর ফর্মে প্রদর্শন করা যাক যার সাথে ব্যবহারকারী কাজ করবে। আমরা ফর্মে টেবিল ফিল্ড টাইপের একটি উপাদান প্রদর্শন করব এবং ডেটা টাইপ Composer.Settings.Selection সহ এটিকে সিলেকশন নাম দিব:

এখন OnOpen ফর্মের জন্য ইভেন্ট হ্যান্ডলার এবং রান বোতামে ক্লিক করার জন্য একটি হ্যান্ডলার তৈরি করা যাক, কোডটি নীচে উপস্থাপন করা হয়েছে:

পেরেম লেআউট; পদ্ধতি বাটনএক্সিকিউটপ্রেস(বাটন) রেজাল্ট.ক্লিয়ার(); লেআউটলিঙ্কার = newDataLayoutLayoutLinker; লেআউট লেআউট = লেআউট কম্পোজার।এক্সিকিউট(লেআউট, কম্পোজার.গেটসেটিং(), টাইপ("ডেটা কম্পোজিশন লেআউট জেনারেটারফর ভ্যালু সংগ্রহ")); CompositionProcessor = newDataCompositionProcessor; LayoutProcessor.Initialize(LayoutLayout); আউটপুট প্রসেসর = নতুন আউটপুট প্রসেসর যা মূল্যের সংগ্রহে ডেটা গঠনের ফলাফল; OutputProcessor.SetObject(ফলাফল); আউটপুটপ্রসেসর।আউটপুট(কম্পোজিশনপ্রসেসর); যদি FormElements.Result.Columns.Quantity() = 0 হয় তাহলে FormElements.Result.CreateColumns(); যদি শেষ; EndProcedure ProcedureOnOpen() Layout = GetLayout("Layout"); SourceAvailableSettings = New SourceAvailableSettingsDataComposition(লেআউট); Linker.Initialize(SourceAvailableSettings); Linker.LoadSettings(Layout.DefaultSettings); প্রক্রিয়া শেষ

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

শুধু তাই, আমি আশা করি এই নিবন্ধটি আপনাকে আপনার প্রক্রিয়াকরণে নির্বাচনের নমনীয়তা উন্নত করতে সাহায্য করবে।

কোনোনভ সের্গেই

SKD কি জন্য ব্যবহার করা যেতে পারে?

প্রতিষ্ঠিত মতামত রিপোর্টিং উদ্দেশ্যে হয়.

আসলে ACS ক্ষমতা সার্বজনীন প্রতিবেদন তৈরির বাইরে যায়.

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

কি কাজের জন্য এটি দরকারী হবে?

দেওয়া যাক সাধারণ কনফিগারেশন থেকে উদাহরণ:

  • "সাইটে ডেটা আপলোড করা" প্রক্রিয়া করা হচ্ছে
  • একটি মূল্য তালিকা গঠন
  • টিএসডিতে ডেটা আপলোড করা হচ্ছে (ডেটা সংগ্রহের টার্মিনাল)
  • পণ্যের বিভাজন, অংশীদার
  • চাহিদা অনুযায়ী অর্ডার গঠন (ক্লায়েন্ট, সরবরাহকারী)
  • মেরামত পরিকল্পনা 1C:ERP.

অর্থাৎ, ব্যবহারকারীকে বিস্তৃত নির্বাচনের বিকল্প প্রদান করার জন্য যেখানেই প্রয়োজন সেখানে টুলটি কার্যকর।

ACS ব্যবহার করে একটি নিয়ন্ত্রিত আকারে একটি র্যান্ডম নির্বাচন তৈরি করা

পাঠ কভার সঙ্গে কাজ সেটিংস নির্মাতাডেটা লেআউট স্কিম:

  • ফর্মে নির্বাচন আউটপুট
  • সেটিংস নির্মাতা এবং লেআউট ডায়াগ্রামের মধ্যে সফ্টওয়্যার সংযোগ
  • অ্যাক্সেস কন্ট্রোল সিস্টেমে ডিফল্ট নির্বাচন তৈরি করা।

ACS নির্বাচন দ্বারা ফিল্টারিং সহ ডাটাবেস থেকে ডেটা গ্রহণ করা

ভিডিওটি দেখায় কিভাবে আপনি সেটিংস বিল্ডারে পূর্বে সেট করা নির্বাচন ব্যবহার করে ডেটা নির্বাচন করতে পারেন।

একটি "ভীতিকর" বস্তু ব্যবহার করা হয় - প্রসেসরআউটপুট রেজাল্ট কম্পোজিশন ডেটাইনটো ভ্যালু কালেকশন.

আসলে, সবকিছু এত জটিল নয় - 8 মিনিটের মধ্যে আমরা সমস্যার সমাধান করি।

তথ্য বেসে SKD নির্বাচন সংরক্ষণ করা

পাঠে আমরা দেখব ACS বিল্ডার সেটিংস সংরক্ষণভ্যালু স্টোর ব্যবহার করে।

আসুন "1C: ম্যানুফ্যাকচারিং এন্টারপ্রাইজ ম্যানেজমেন্ট 1.3" কনফিগারেশনে কীভাবে এই সমস্যাটি সমাধান করা যায় তা বের করা যাক।

দর্শন উপভোগ কর! :)

সাধারণভাবে, ACS অনেক সুযোগ প্রদান করে।

এখানে কয়েকটি "কৌশল" রয়েছে যা কোর্স পৃষ্ঠায় বর্ণনা করার জন্য আমাদের কাছে সময়ও ছিল না।

প্রয়োজন হলে সংগ্রহ করতে হবে বিভিন্ন উৎস থেকে তথ্য, তিনটি বিকল্প আছে.

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

একই সময়ে, সঠিক ফলাফল পাওয়া গুরুত্বপূর্ণ - যদি বেশ কয়েকটি উত্স থাকে তবে এটির বিশেষত্ব রয়েছে

SKD এর সাহায্যে আপনি সহজভাবে করতে পারেন রিপোর্টে প্রতিটি তারিখের জন্য সর্বশেষ একটি স্ন্যাপশট পান.

অথবা, স্পষ্টতার জন্য, - প্রতিটি বিক্রয়ের তারিখের জন্য পণ্যের মূল্য পান.

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

ACS ব্যবহার করে, আপনি পিরিয়ড যোগ করে নেস্টেড গ্রুপিং সংগঠিত করতে পারেন (বছর/ত্রৈমাসিক/মাস, ইত্যাদি)

রিপোর্টটিকে ইচ্ছামতো সাজান, উদাহরণস্বরূপ, কলাম হেডারটি উল্লম্বভাবে এবং এই কলামের ডেটা অনুভূমিকভাবে প্রদর্শন করুন।

রিপোর্ট মডিউল সম্পাদনা না করে শুধুমাত্র সেটিংস দ্বারা - ব্যবহারকারীকে রিপোর্টে কোন ফ্রিকোয়েন্সি সহ ডেটা প্রদর্শিত হবে তা বেছে নেওয়ার অনুমতি দিন (বছর, ত্রৈমাসিক, মাস অনুসারে)।

কিভাবে একটি প্রতিবেদনে OR ব্যবহার করে বেশ কয়েকটি শর্ত একত্রিত করবেন? এই বিকল্পটি, উদাহরণস্বরূপ, রিপোর্ট বিল্ডারে উপলব্ধ নয়, তবে ACS-এ উপলব্ধ

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

অবশ্যই, এমন কিছু সূক্ষ্মতা রয়েছে যা মনোযোগ দেওয়া দরকার।

রিপোর্ট তৈরি করার সময়, ডেভেলপার ক্যোয়ারী টেক্সট ডিবাগ করে, কিন্তু অ্যাক্সেস কন্ট্রোল সিস্টেমের রিপোর্টে এই ক্যোয়ারী ব্যবহার করার সময়, সিস্টেমটি একটি ভুল ফলাফল তৈরি করে।

অতএব, ডাটাবেস থেকে ডেটা প্রাপ্ত করার জন্য এবং এই জাতীয় ক্যোয়ারী ডিবাগ করার জন্য সিস্টেমটি যে ক্যোয়ারীটি কার্যকর করে তা অর্জন করতে সক্ষম হওয়া গুরুত্বপূর্ণ।

একটি প্রতিবেদনে একটি নথি-রেকর্ডারে বিশদ যোগ করার সময়, সিস্টেমটি কখনও কখনও "ভুল" খোলার এবং বন্ধ করার ব্যালেন্স তৈরি করে।

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

রিসোর্স মান অনুসারে নির্বাচন কোথায় কনফিগার করা হয়েছে তার উপর ভিত্তি করে রিপোর্টের ফলাফল পরিবর্তিত হতে পারে - রিপোর্ট স্তরে এবং একটি পৃথক গোষ্ঠীর স্তরে, আপনাকে এটি নিরীক্ষণ করতে হবে।

যদি তুমি চাও পেশাদার ACS মাস্টারএবং প্রতিদিন আপনার কাজে আবেদন করুন, কোর্সের জন্য সাইন আপ করুন:

সমর্থন - 2 মাস. কোর্সের সুযোগ- 34 শিক্ষণ ঘন্টা.

আপনার পড়াশুনা দেরি করবেন না!

ডেটা কম্পোজিশন সিস্টেমের জন্য কোয়েরি ল্যাঙ্গুয়েজ এক্সটেনশন

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

ডেটা কম্পোজিশন সিস্টেম কোয়েরি ল্যাঙ্গুয়েজ এক্সটেনশনের সিনট্যাকটিক উপাদান

পছন্দ করা

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

উদাহরণ স্বরূপ:

(আইটেম, গুদাম নির্বাচন করুন)

ক্ষেত্রের উপনামের পরে ".*" অক্ষরের সংমিশ্রণ থাকতে পারে, যা এই ক্ষেত্র থেকে চাইল্ড ক্ষেত্রগুলি ব্যবহার করার সম্ভাবনা নির্দেশ করে৷

উদাহরণস্বরূপ, এন্ট্রি নামকরণ।* "নামকরণ" ক্ষেত্রের শিশু ক্ষেত্রগুলি ব্যবহার করার সম্ভাবনা নির্দেশ করে (উদাহরণস্বরূপ, "নামকরণ. কোড" ক্ষেত্র)। SELECT উপাদানটি শুধুমাত্র প্রথম যোগদানের প্রশ্নে উপস্থিত হতে পারে।

কোথায়

যে ক্ষেত্রগুলিতে ব্যবহারকারী নির্বাচন প্রয়োগ করতে পারে সেগুলি বর্ণনা করা হয়েছে। এই প্রস্তাব টেবিল ক্ষেত্র ব্যবহার করে. নির্বাচন তালিকা ক্ষেত্রের উপনাম ব্যবহার অনুমোদিত নয়। ইউনিয়নের প্রতিটি অংশের নিজস্ব WHERE উপাদান থাকতে পারে।

(যেখানে নামকরণ।*, গুদাম)

একটি সহজ উদাহরণ

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

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

ReferenceNomenclature.Link as Nomenclature, SalesTurnover.Counterparty, SalesTurnover.Counterparty Agreement, SalesTurnover.QuantityTurnover AS পরিমাণ, SalesTurnover.CostTurnover AS Cost FROM Reference.NomenferencesCcNFT.References les.Turnover AS SalesTurnover PO SprNomenclature.Link = SalesTurnover.Nomenclature

এখানে ফলাফল:

কাউন্টারপার্টি চুক্তি নামকরণ পরিমাণ সমষ্টি
খালি খালি _পরীক্ষা ১ খালি খালি
এলএলসি "হর্ন এবং খুর" চুক্তি ১ চপ্পল 10 1200
"গ্যাজপ্রম" শান্ত চুক্তি বুট 5 13000
খালি খালি গ্যালোশেস খালি খালি
খালি খালি স্লেট খালি খালি

এই উদাহরণে, আইটেমগুলির কোনও বিক্রয় ছিল না: "ওভারশুস" এবং "স্লিপারস"

এবং সবকিছু ঠিক হবে, যদি আমরা কাউন্টারপার্টি দ্বারা নমুনাকে গোষ্ঠীবদ্ধ করি, তাহলে সমস্ত অবিক্রীত আইটেম একটি পৃথক গ্রুপে পড়বে, যেখানে কাউন্টারপার্টি = নাল, কিন্তু ক্লায়েন্ট কাউন্টারপার্টি ক্ষেত্রের রিপোর্টে একটি এলোমেলো নির্বাচন করতে চায় (স্বাভাবিকভাবে, এটি সেলস রেজিস্টার থেকে কাউন্টারপার্টি মানে)। আমার কি করা উচিৎ? সর্বোপরি, আসলে, আমাদের কেবল টেবিলটি ফিল্টার করতে হবে বিক্রয়. যদি আমরা ACS কনস্ট্রাক্টরে স্বয়ংসম্পূর্ণ ব্যবহার করি, তাহলে উপলব্ধ নির্বাচন ক্ষেত্রগুলি ক্ষেত্রটি অন্তর্ভুক্ত করবে কাউন্টারপার্টি, সবকিছু ঠিক আছে বলে মনে হচ্ছে, কিন্তু প্রতিপক্ষের দ্বারা নির্বাচনের সাথে একটি প্রতিবেদন কার্যকর করার সময়, আমরা আইটেমের সাথে সংযোগ থেকে সমস্ত রেকর্ড হারাবো। উদাহরণস্বরূপ, আসুন নির্বাচন সেট করি: কাউন্টারপার্টি = LLC "হর্ন এবং খুর". ফলাফল এই মত দেখাবে:

আমাদের যা প্রয়োজন তা নয়, তাই না?

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

একটি সমাধান আছে: এই জন্য কোয়েরি নির্মাতাট্যাবে ডেটা রচনা => টেবিলভার্চুয়াল টেবিল শর্তাবলী একটি শর্ত ক্ষেত্র যোগ করুন সেলস টার্নওভারএবং তার ডাক নাম পরিবর্তন করুন কাউন্টারপার্টি নির্বাচন

ব্যবহারকারীকে নির্বাচনের ক্ষেত্রে বিভ্রান্ত না করার জন্য, আমরা শর্ত ক্ষেত্রটি নিষ্ক্রিয় করব কাউন্টারপার্টিএবং ক্ষেত্রের জন্য শিরোনাম পরিবর্তন করুন কাউন্টারপার্টি নির্বাচন


কাউন্টারপার্টি ক্ষেত্র দ্বারা সক্রিয় নির্বাচনের সাথে এই স্কিমটি কার্যকর করার ফলে, ফলাফলের ক্যোয়ারীটি ফর্মটি গ্রহণ করবে:

SprNomenclature.Link হিসাবে নামকরণ, SalesTurnover.Counterparty হিসাবে কাউন্টারপার্টি, SalesTurnover.কাউন্টারপার্টি চুক্তি কাউন্টারপার্টি চুক্তি হিসাবে, SalesTurnover.QuantityTurnover AS >পরিমাণ, SalesTurnover.CostPrnover.CostPartnover চুক্তি) চুক্তির কাউন্টারপার্টি একটি উপস্থাপনা হিসাবে, উপস্থাপনা লিঙ্ক (সেলস টার্নওভার. কাউন্টারপার্টি ) কাউন্টারপার্টি প্রেজেন্টেশন, SprNomenclature.Presentation AS NameclaturePresentation from Directory.Nomenclature AS SprNomenclature LEFT Connection Register Accumulations.Sales.Turnover(&P , , , Counterparty) Sales.SprNomens = B&P, . টার্নওভার।নামকরণ

এবং সেই অনুযায়ী ফলাফল:

কাউন্টারপার্টি চুক্তি নামকরণ পরিমাণ সমষ্টি
খালি খালি _পরীক্ষা ১ খালি খালি
এলএলসি "হর্ন এবং খুর" চুক্তি ১ চপ্পল 10 1200
খালি খালি বুট খালি খালি
খালি খালি গ্যালোশেস খালি খালি
খালি খালি স্লেট খালি খালি

Test1 নামকরণ ডিরেক্টরির একটি গ্রুপ যেখানে সবকিছু অবস্থিত

প্রকাশনার সাথে সংযুক্ত করা হয়েছে প্রকাশনায় ব্যবহৃত প্রতিবেদনের XML স্কিমা। আমি ইন্টিগ্রেটেড অটোমেশনে সার্কিট তৈরি করেছি, কিন্তু আমি মনে করি UPP এবং UT 10 উভয় ক্ষেত্রেই সবকিছু ঠিকঠাক কাজ করবে

সারসংক্ষেপ

এই উদাহরণটি দেখায় কিভাবে অ্যাক্সেস কন্ট্রোল সিস্টেমে আপনার নিজস্ব নির্বাচন সেটিংস তৈরি করতে হয় এবং যদি আপনি পতাকা সক্ষম করে একটি সার্কিট ডিজাইন করেন তবে স্বয়ংক্রিয়ভাবে তৈরি হওয়াগুলিকে অক্ষম করবেন অটোফিল.

ব্যবহার না করে সার্কিট তৈরি করার যথেষ্ট অভিজ্ঞতা থাকলে অটোফিল- তাহলে এই পরামর্শের কোন মানে হয় না।

সফটওয়্যার ব্যবহার করা হয়েছে