1s 8.3 تبدیل داده 2.1 نحوه استفاده. دستورالعمل های ویدیویی برای تبدیل

1. معرفی.

2. آنچه شما نیاز دارید: پیکربندی 1C: تبدیل داده 2.* و پردازش از بسته. برای کارهای مثال، اجازه دهید تنظیمات 1C: Trade Management 11 و 1C: BP 3.* را در نظر بگیریم.

بنابراین، برای ایجاد قوانینی برای آپلود داده ها در 1C، به پیکربندی 1C نیاز دارید: Object Conversion 2، و همچنین پردازش موجود در بسته.

به عنوان مثال، ما قبلاً یک پایگاه داده تبدیل را مستقر کرده و آن را راه اندازی کرده ایم.

ما توسعه قوانین مبادله را بین پیکربندی 1C: Trade Management 11 و 1C: Enterprise Accounting 3 (قوانین تبادل UT / ACCOUNT) خواهیم نوشت.

3. برای تخلیه ساختار ابرداده و تبادل به پردازش نیاز داریم.

اولین چیزی که برای توسعه نیاز دارید فایل هایی با ساختار ابرداده است. این کار با استفاده از پردازش برای تخلیه ساختار ابرداده موجود در بسته تبدیل شی انجام می شود.

در واقع، در دایرکتوری پیکربندی بدون بسته بندی برای تنظیمات روی فرم های مدیریت شده، ما علاقه مند به پردازش MD83Exp.epf هستیم. اگر نیاز به تخلیه از تنظیمات روی فرم‌های معمولی باشد، از پردازش MD82Exp.epf استفاده می‌شود. این در صورتی است که، برای مثال، باید ساختاری را از پیکربندی هایی مانند 1C: UT 10، 1C: Manufacturing Enterprise Management 1.3، 1C: Integrated Automation 1.1، 1C: Zup 2.5 و غیره دریافت کنید.

علاوه بر این، برای آپلود و دانلود داده‌ها در 1C با استفاده از قوانین ما، باید «تبادل جهانی داده در قالب XML» V8Exchan83.epf را برای پیکربندی‌های روی فرم‌های مدیریت‌شده مانند 1C: Trade Management 11.*، 1C BP 3، 1C پردازش کنید: ERP 2. * و مشابه. و بر این اساس V8Exchan83.epf - برای پیکربندی در فرم های معمولی.

4. بارگذاری ساختار فراداده پیکربندی 1C: Trade Management 11.3 و 1C: Enterprise Accounting 3.0.*

بیایید با دانلود ساختار ابرداده از پیکربندی 1C: Enterprise Accounting 3 شروع کنیم.
بیایید پردازش MD83Exp.epf را باز کنیم

در فرم پردازش تنظیمات اضافی وجود دارد که می توانیم گزینه آپلود رجیسترها و حرکات را در 1C فعال یا غیرفعال کنیم. همچنین انتخابی وجود دارد که بارگذاری در کجا انجام شود: در سرور 1C یا "در مشتری". نام فایلی که ساختار داده در آن آپلود می شود را مشخص کنید. به روشی مشابه، ما ساختار ابرداده پیکربندی Trade Management 11 را تخلیه می کنیم.

اکنون باید پیکربندی را در پایگاه داده تبدیل آپلود کنید. هم از لیست تنظیمات و هم از لیست تبدیل ها می توان به این نقطه رسید. بیایید فقط از دسکتاپ بوت شویم:

در کادر محاوره ای، ساختار BP را بارگیری کنید:

و به طور مشابه - ساختار مدیریت تجارت.

پس از اتمام دانلود، یک کادر محاوره ای ظاهر می شود که در آن می توانید نام مناسب خود را مشخص کنید.

6. ایجاد قوانین تبدیل در 1C با استفاده از یک مثال خاص از یک کار.

بعد، به "تنظیم قوانین شی" بروید، جایی که یک تنظیم جدید ایجاد می کنیم.
در کادر محاوره‌ای ایجاد تبدیل، پیکربندی «منبع» و پیکربندی «مقصد» (که قبلاً بارگیری کرده‌اید) را انتخاب کنید و روی OK کلیک کنید.

از آنجایی که در این مقاله قصد داشتم ایجاد "از ابتدا" و "بدون زباله" را نشان دهم، به شما یادآوری می کنم که ما هیچ چیزی را به طور خودکار ایجاد نمی کنیم. بدون نمونه اولیه

ما هیچ کاری در این کادر محاوره ای انجام نمی دهیم، فقط روی "بستن" کلیک کنید.

بیایید قوانینی را برای بارگذاری نه یک سند در یک، بلکه یک نوع در دیگری ایجاد کنیم، به عنوان مثال، سند فروش کالا و خدمات از UT 11 با کتاب های مرجع لازم در سند دریافت کالا و خدمات در BP 3.

بنابراین، ما یک PKO جدید ایجاد می کنیم (قانون تبدیل اشیا در 1C)

مبدا فروش کالا و خدمات و مقصد رسید کالا و خدمات را انتخاب کرده و OK را بزنید.
در این مورد، یک کادر محاوره ای ظاهر می شود، جایی که ما دوباره از ایجاد خودکار PKS (قوانین تبدیل خواص) خودداری می کنیم. بعد، ما فقط موارد ضروری را انتخاب می کنیم.

اما به پیشنهاد ایجاد DVP (قوانین آپلود داده)، ما پاسخ می دهیم "بله".

PVD ها ایجاد می شوند که در پردازش تبادل XML جهانی برای انتخاب منعکس می شود:

قوانین تبدیل داده با قوانین تبدیل ویژگی خالی نیز ایجاد خواهد شد.

علاوه بر این، واضح است که به طور پیش فرض پیشنهاد شده است که نرم افزار را با شناسه شی داخلی جستجو کنید. این با ذره بین نزدیک PCO نشان داده می شود. ما جستجوی خود را انجام خواهیم داد و این کار را با شماره سند و تاریخ در ابتدای روز انجام خواهیم داد.

ما جستجو توسط UIO را حذف می کنیم:

حالا بیایید شروع کنیم به مقایسه خصوصیات (جزئیات) ضروری شی. برای انجام این کار، روی "همگام سازی خواص" (برچسب "1" در صفحه) کلیک کنید. ایجاد بازگشتی قوانین ("2") را حذف می کنیم. تمام جزئیات علامت گذاری شده ("3") را حذف کنید. و ما به تنهایی آنچه را که نیاز داریم انتخاب خواهیم کرد.

به عنوان مثال، آنچه را که نیاز دارید انتخاب کنید:

توجه شما را به این واقعیت جلب می کنم که ما PKS طرف مقابل را به سازمان و سازمان را به طرف مقابل تبدیل می کنیم و همچنین برخی از جزئیات را که با نام مطابقت ندارند مقایسه می کنیم ، به عنوان مثال "ارز" و "سند". واحد پول".

جایی که می بینیم هنوز قوانین تبدیلی وجود ندارد.

بیایید شروع به بررسی جزئیات و توصیف آنها کنیم. ابتدا، همانطور که قبلاً نوشتم، یک جستجوی اسناد را تنظیم می کنیم، یک سند را در ابتدای تاریخ آپلود و جستجو می کنیم و شماره گذاری را تغییر می دهیم. ما سه کاراکتر اول را با پیشوند "UTB" جایگزین می کنیم. و از آنجایی که شماره گذاری در BP و UT هر کدام 11 کاراکتر است، یک عدد ترکیبی می سازیم: پیشوند ما و 8 کاراکتر از منبع. نمونه ای در تصویر زیر.

ما همیشه اسناد را بدون بار و بدون جابجایی بارگذاری می کنیم. ما فرض می کنیم که اسناد پس از تایید توسط کاربر در گیرنده پردازش می شوند.

برای انجام این کار، با تنظیم PKS به عنوان انجام نشده، 0 یا 1، از آن به عنوان Boolean استفاده می کنیم.

با استفاده از ارز به عنوان مثال، یک قانون تبدیل شی برای PKS ایجاد می کنیم. در عین حال، ما معتقدیم که در هر دو پایگاه داده ارز وجود دارد و باید با کد همگام شوند. بنابراین، ما تمام PKS را در واحد پولی PQS ایجاد نمی کنیم، بلکه فقط یک کد جستجو اضافه می کنیم. آن ها ما پیشنهاد ایجاد PKS برای شی را رد می کنیم.

قانون تبدیل ایجاد شده به PQR سند برای PKS جایگزین شد. و خود قانون پیش فرض توسط یک شناسه منحصر به فرد ارائه می شود. ما آن را برطرف می کنیم، کد را جستجو می کنیم و ویژگی را طوری تنظیم می کنیم که یک شی جدید ایجاد نشود.

در نتیجه، گزینه زیر را دریافت می کنیم:

بعد، بر اساس قیاس، ما PKO و PKS را برای جزئیات باقی مانده ایجاد می کنیم. علاوه بر این، ما یک سازمان را بر اساس طرف مقابل و بالعکس توسط TIN جستجو می کنیم. این تقریباً همان چیزی است که با حداقل جزئیات به نظر می رسد (در صورت لزوم می توانید اضافه کنید).

برای قراردادهای طرف مقابل PCO، ما بر اساس طرف PKS، نام و مالک جستجو می کنیم.

بیایید ببینیم که چگونه مقدار مورد نیاز را در نوع شمارش در PKS مشخص کنیم. به عنوان مثال، ویژگی "نوع عملیات". در اینجا می توانید از شرایط مختلف و مقادیر جایگزین استفاده کنید. به عنوان مثال، ما به "نوع عملیات" نیاز داریم تا همیشه "کالا" تخلیه شود، در این مورد کافی است مقدار مورد نیاز را در خط "پیشانی" بنویسیم.

در زیر نحوه نصب بدون مشکل و در اکثر موارد PCS برای تعدد تسویه متقابل، نرخ تسویه متقابل، حساب حسابداری نشان داده شده است.

برای PKO Nomenklatura، جستجو را با شناسه منحصر به فرد داخلی ترک می کنیم. اما اجازه دهید توجه شما را به این موضوع جلب کنم که چگونه می توانید گروه خود را دوباره تعریف کنید. به عنوان مثال، ما موافقت می کنیم که یک مورد جدید از پیکربندی 1C: Trade Management 11 آپلود شود، اما لازم است که مورد در یک گروه خاص "OurGroup" جمع آوری شود.

برای اجرای این وظیفه، PKO دیگری ایجاد می کنیم. بیایید آن را "NomenclatureParent" بنامیم، که در PCS والدین در قانون تبدیل نشان خواهیم داد.

ما دو جستجو را تنظیم کردیم: با نام، که در آن نام گروه خود را به شدت نشان می‌دهیم، و ویژگی مورد نیاز ویژگی "This is a Group" روی true تنظیم شده است.

از آنجایی که تصمیم گرفته‌ایم همه آیتم‌های ما در گروه ما قرار بگیرند، نیازی به تخلیه گروه‌ها از UT 11 در هنگام بارگیری نیست. برای این کار در نرم‌افزار Nomenclature در کنترل‌کننده رویداد “Before Unloading” فیلتری را تنظیم می‌کنیم که نیازی به بارگیری گروه‌ها ندارد "شکست = منبع. این گروه؛".

در DRP (قوانین آپلود داده ها) برای فروش محصولات و خدمات، فیلتری اضافه می کنیم تا اسناد علامت گذاری شده برای حذف آپلود نشوند. برای انجام این کار، در VDP در کنترل کننده رویداد "Beefore Unloading"، فیلتر "Failure = Object.DeletionMark;" را می نویسیم.


بیایید قوانین توسعه یافته را در یک فایل ذخیره کنیم.


7. به طور خلاصه: آپلود و بارگذاری داده ها با استفاده از قوانین تبادل داده توسعه یافته.

باز کردن در 1C: مدیریت تجارت 11 پردازش "تبادل جهانی داده در قالب XML" V8Exchan83.epf.

تخلیه کامل شده است، اکنون از همان پردازش برای بارگیری در 1C استفاده می کنیم: Enterprise Accounting 3.


بارگیری تکمیل شد. بیایید بررسی کنیم که چگونه بارگیری شده است. بنابراین، سند همانطور که می خواستیم بارگیری می شود - سازمان ما در طرف مقابل و طرف مقابل در سازمان بارگیری می شود. حساب های حسابداری همه دانلود و نصب می شوند. شماره سند را با پیشوند خود و در ابتدای روز گرفتیم. تمام جزئیات ارائه شده تکمیل شده است.

بارگیری اقلام را بررسی می کنیم. می بینیم که همه چیز همانطور که برنامه ریزی کرده بودیم پیش رفت.


ما جزئیات را همانطور که در نظر داشتیم ایجاد و پر کرده ایم. ظرافت های زیادی در تبدیل و برخی موارد ساده اما ضروری وجود دارد که به شما در نوشتن دقیق تبدیل کمک می کند. و این به شما امکان می دهد خطاها را به حداقل برسانید، داده های موجود را خراب نکنید و از شر زباله های غیر ضروری خلاص شوید. این یکی از ساده ترین نمونه هاست. شما همچنین می توانید یک شی را به چندین یا برعکس، بسیاری را به یکی تبدیل کنید.

حالا تبدیل داده 3 وجود دارد، مشکلات دیگر را حل می کند. بنابراین، تبدیل 2 نیز مورد نیاز است. با آرزوی موفقیت برای همه در یادگیری و تسلط.

البته اگر برنامه نویس هستید و این شغل اصلی شماست، می توانید سعی کنید که تبدیل را خودتان بنویسید. اما اگر نه، پس باید برای زمان خود در زمینه فعالیت خود ارزش قائل شوید و از متخصصان بخواهید که این کار را انجام دهند.

تبدیل داده 2.0 و 2.1 یک پیکربندی تکنولوژیکی 1C است که بر روی نسخه های پلتفرم از 8.1 تا 8.3 پیاده سازی شده است.

وظیفه اصلی این ابزار نوشتن قوانینی برای تبادل بین راه حل های کاربردی 1C 8 و 7 است. نسخه فعلی تبدیل داده ها امروز 3.0 است.

تبدیل داده ها پیکربندی بسیار مفیدی است؛ با کمک آن می توانید نه تنها مسئله انتقال اطلاعات از یک پایگاه اطلاعاتی به پایگاه دیگر، بلکه به عنوان مثال، تبدیل اطلاعات در یک پایگاه داده را نیز حل کنید.

پیکربندی برای استفاده با بسیار راحت است.

تبدیل داده برای هر برنامه نویسی مفید خواهد بود: داشتن مهارت برای ایجاد قوانین مبادله یک امتیاز جدی برای مهارت های حرفه ای است.

برای یادگیری نحوه کار با یک پیکربندی، حل مسائل عملی بهترین گزینه است. سعی کنید وظایفی را برای خود ایجاد کنید، به عنوان مثال: انتقال برخی اطلاعات از یک پایگاه داده به پایگاه داده دیگر، تبدیل یک سند فروش به یک سند رسید، "وارد کردن" مانده حسابداری جاری در سند "ورود موجودی" و سایر وظایف.

درک قوانین تبادل "استاندارد" 1C 8.3 بسیار مفید خواهد بود؛ در آنجا اغلب می توانید نمونه های جالبی از اجرای وظایف را بیابید.

برای درک اصول اولیه، به مواد نیاز دارید، ما آنها را در زیر در نظر خواهیم گرفت.

دستورالعمل های ویدیویی برای تبدیل

برای اطلاع از اصول اولیه تنظیم تبادل داده در 1C با استفاده از پیکربندی "تبدیل داده 1C"، به مثال در ویدیو نگاه کنید:

مواد، کتاب های درسی برای مطالعه 1C Data Conversion 2.0

مطالب و اسناد زیادی در اینترنت وجود ندارد، من سعی کردم مهم ترین و جالب ترین مطالب را جمع آوری کنم:

0. اول از همه، من دوره ویدیویی رایگان ایلیا لئونتیف را توصیه می کنم، این دوره در دسترس است ارتباط دادن.

1. اول از همه توصیه می کنم از کمک داخلی در پیکربندی استفاده کنید. واقعاً خوب نوشته شده و از نظر فنی به خوبی اجرا شده است:

2. دومین منبع اطلاعاتی مهم سایت http://www.mykod.info/ (سایت بسته شده است) است که به طور خاص در زمینه تبدیل داده ها تخصص دارد. در آنجا می توانید تعداد زیادی از مواد را در مورد تبدیل بارگیری کنید.

3. به طور جداگانه، من می خواهم کتاب درسی را برجسته کنم - (نویسنده - اولگا کوزنتسوا).

انتقال داده ها بین پیکربندی های مختلف یک کار پیش پا افتاده نیست. مثل همیشه، چندین راه حل وجود دارد، اما همه آنها بهینه نیستند. بیایید سعی کنیم تفاوت های ظریف انتقال داده را درک کنیم و یک استراتژی جهانی برای حل چنین مسائلی انتخاب کنیم.

مشکل انتقال داده (ما صرفاً در مورد محصولات شرکت 1C صحبت می کنیم) از یک راه حل به راه حل دیگر دیروز بوجود نیامد. شرکت 1C به خوبی درک می کند که توسعه دهندگان هنگام ایجاد مهاجرت با چه مشکلاتی روبرو هستند، بنابراین سعی می کند به هر طریق ممکن به ابزار کمک کند.

در طول توسعه پلتفرم، این شرکت تعدادی ابزار جهانی و همچنین فناوری هایی را معرفی کرد که انتقال داده ها را ساده می کند. آنها در تمام راه حل های استاندارد تعبیه شده اند و مشکل مهاجرت بین پیکربندی های یکسان به طور کلی حل شده است. این پیروزی بار دیگر با ادغام نزدیک راه حل های استاندارد تأیید می شود.

با مهاجرت بین راه حل های غیر استاندارد، وضعیت تا حدودی پیچیده تر است. طیف گسترده ای از فناوری ها به توسعه دهندگان اجازه می دهد تا به طور مستقل راه بهینه را برای حل یک مشکل از دیدگاه خود انتخاب کنند.

بیایید به برخی از آنها نگاه کنیم:

  • تبادل از طریق فایل های متنی؛
  • استفاده از طرح های مبادله؛
  • و غیره.

هر کدام از آنها مزایا و معایب خاص خود را دارند. به طور خلاصه، عیب اصلی آن پرحرفی بودن آن خواهد بود. پیاده‌سازی مستقل الگوریتم‌های مهاجرت مملو از هزینه‌های زمانی قابل توجه و همچنین فرآیند رفع اشکال طولانی است. من حتی نمی خواهم در مورد حمایت بیشتر از چنین تصمیماتی صحبت کنم.

پیچیدگی و هزینه بالای پشتیبانی، شرکت 1C را بر آن داشت تا یک راه حل جهانی ایجاد کند. فناوری هایی که امکان ساده سازی توسعه و حمایت از مهاجرت ها را تا حد امکان فراهم می کند. در نتیجه، این ایده در قالب یک پیکربندی جداگانه - "تبدیل داده" اجرا شد.

تبدیل داده - راه حل استاندارد، پیکربندی مستقل. هر کاربر با اشتراک "ITS:Prof" می تواند این بسته را کاملاً رایگان از سایت پشتیبانی کاربر یا دیسک ITS دانلود کند. نصب به روش استاندارد انجام می شود - مانند تمام راه حل های استاندارد دیگر از 1C.

اکنون کمی در مورد مزایای راه حل. بیایید با مهمترین چیز شروع کنیم - همه کاره بودن. راه حل برای پیکربندی/نسخه های پلتفرم خاصی طراحی نشده است. با پیکربندی استاندارد و سفارشی به همان اندازه خوب کار می کند. توسعه دهندگان یک فناوری جهانی و یک رویکرد استاندارد برای ایجاد مهاجرت های جدید دارند. تطبیق پذیری راه حل به شما امکان می دهد مهاجرت ها را حتی برای پلتفرم هایی غیر از 1C:Enterprise آماده کنید.

دومین مزیت بزرگ کمک های بصری است. مهاجرت های ساده بدون برنامه نویسی ایجاد می شوند. بله، بله، بدون حتی یک خط کد! برای این به تنهایی، ارزش آن را دارد که یک بار برای یادگیری این فناوری وقت بگذارید و سپس از مهارت های ارزشمند به طور مکرر استفاده کنید.

مزیت سومی که باید به آن اشاره کنم عدم وجود محدودیت در توزیع داده است. خود توسعه دهنده روش تحویل داده ها به پیکربندی گیرنده را انتخاب می کند. دو گزینه خارج از جعبه وجود دارد: آپلود در یک فایل xml و اتصال مستقیم به پایگاه اطلاعاتی (COM/OLE).

تحصیل در رشته معماری

ما قبلاً می دانیم که تبدیل داده ها می تواند معجزه کند، اما هنوز کاملاً مشخص نیست که مزایای فنی آن چیست. اولین چیزی که باید بدانید این است که هرگونه انتقال داده (تبدیل) بر اساس قوانین مبادله است. قوانین تبادل یک فایل xml معمولی است که ساختاری را که داده‌های امنیت اطلاعات در آن آپلود می‌شود، توصیف می‌کند. پردازش سرویس که داده ها را آپلود/دانلود می کند، قوانین تبادل را تجزیه و تحلیل می کند و بر اساس آنها آپلود را انجام می دهد. در حین بارگذاری، فرآیند معکوس رخ می دهد.

پیکربندی "CD" نوعی سازنده بصری است که توسعه دهنده با کمک آن قوانین تبادل را ایجاد می کند. نمی داند چگونه داده ها را دانلود کند. پردازش خدمات خارجی اضافی موجود در بسته توزیع CD مسئول این امر است. چندین مورد از آنها وجود دارد (XX در نام فایل شماره نسخه پلت فرم است):

  • MDXXExp.epf- پردازش به شما امکان می دهد تا توضیحی از ساختار پایگاه اطلاعاتی را در یک فایل xml آپلود کنید. توضیحات ساختار برای تجزیه و تحلیل بیشتر و ایجاد قوانین تبادل در CD بارگذاری می شود.
  • V8ExchanXX.epf- آپلود/دانلود داده ها از پایگاه اطلاعاتی مطابق با قوانین تبادل. در اکثر پیکربندی‌های معمولی، پردازش خارج از جعبه وجود دارد (به آیتم منوی «سرویس» مراجعه کنید). پردازش جهانی است و به هیچ پیکربندی/قوانین خاصی وابسته نیست.

خوب، اکنون، بر اساس همه موارد فوق، اجازه دهید مراحل توسعه یک تبدیل جدید را تعریف کنیم:

  1. تعریف تکلیف. لازم است به وضوح درک کنید که چه داده هایی باید منتقل شوند (از کدام اشیاء پیکربندی) و مهمتر از همه ، کجا باید منتقل شوند.
  2. تهیه توضیحات ساختارهای پیکربندی (Source/Sink) برای بارگذاری بعدی در CD. مشکل با پردازش سرویس MDXXExp.epf حل می شود.
  3. بارگذاری توضیحات آماده سازه ها در امنیت اطلاعات.
  4. ایجاد قوانین تبادل با استفاده از ابزار CD تصویری.
  5. انجام آپلود/دانلود طبق قوانین تبدیل داده ایجاد شده با استفاده از پردازش V8ExchanXX.epf.
  6. اشکال زدایی قوانین تبادل (در صورت لزوم).

ساده ترین تبدیل

برای نمایش به دو پیکربندی مستقر نیاز داریم. من تصمیم گرفتم با این گزینه استفاده کنم: "مدیریت تجارت" ویرایش 10 و یک راه حل کوچک نوشتاری خانگی. وظیفه انتقال داده ها از پیکربندی استاندارد "UT" خواهد بود. برای اختصار، بیایید راه حل خودنویس را «سینک» و مدیریت تجارت را «منبع» بنامیم. بیایید حل مشکل را با انتقال عناصر از فهرست "Nomenclature" شروع کنیم.

اول از همه، بیایید نگاهی به طرح تبدیل داده بیندازیم و لیست اقداماتی را که باید انجام شوند دوباره مطالعه کنیم. سپس پیکربندی "Source" را راه اندازی می کنیم و پردازش سرویس MD82Exp.epf را در آن باز می کنیم.

رابط پردازش تنظیمات فراوانی ندارد. کاربر فقط باید انواع اشیاء ابرداده را که در توضیحات ساختار گنجانده نمی‌شوند، مشخص کند. در بیشتر موارد، این تنظیمات نیازی به تغییر ندارند، زیرا هیچ نکته خاصی در تخلیه حرکات با استفاده از رجیسترهای انباشتگی (به عنوان مثال) وجود ندارد.

درست تر است که حرکت را با نگه داشتن اسناد در گیرنده شکل دهید. تمام حرکات پس از انتقال توسط خود سند انجام می شود. دومین آرگومان در دفاع از تنظیمات پیش فرض کاهش حجم فایل با آپلود است.

برخی از اسناد (مخصوصاً در پیکربندی‌های استاندارد) حرکت‌هایی را در چندین ثبات ایجاد می‌کنند. بارگیری همه این موارد، فایل XML حاصل را بیش از حد بزرگ می کند. این ممکن است حمل و نقل و بارگیری بعدی را در پایه گیرنده پیچیده کند. هرچه حجم فایل داده بزرگتر باشد، رم بیشتری برای پردازش آن مورد نیاز خواهد بود. در طول تمرین، من این فرصت را داشتم که با فایل‌های آپلود بسیار بزرگ روبرو شوم. چنین فایل هایی به طور کامل از تجزیه و تحلیل با استفاده از ابزارهای استاندارد خودداری کردند.

بنابراین، ما تمام تنظیمات پیش فرض را رها می کنیم و توضیحات پیکربندی را در یک فایل آپلود می کنیم. یک روش مشابه را برای پایه دوم تکرار می کنیم.

سی دی را باز کرده و در منوی اصلی انتخاب کنید "Directories" -> "Configurations". دایرکتوری توضیحات ساختارهای تمام پیکربندی هایی را که می توان برای ایجاد تبدیل استفاده کرد را ذخیره می کند. توضیحات پیکربندی را یک بار بارگذاری می کنیم و سپس می توانیم چندین بار از آن برای ایجاد تبدیل های مختلف استفاده کنیم.

در پنجره دایرکتوری، روی دکمه “کلیک کنید اضافه کردن” و در پنجره ای که ظاهر می شود، فایلی را که پیکربندی را توصیف می کند انتخاب کنید. چک باکس "Load into a new configuration" را علامت بزنید و روی دکمه "Load" کلیک کنید. ما اقدامات مشابهی را با شرح ساختار پیکربندی دوم انجام می دهیم.

اکنون شما آماده ایجاد قوانین مبادله هستید. در منوی CD اصلی، "Directories" -> "Conversions" را انتخاب کنید. یک عنصر جدید اضافه کنید. در پنجره ایجاد یک تبدیل جدید، باید مشخص کنید: پیکربندی منبع (انتخاب UT) و پیکربندی مقصد («گیرنده» را انتخاب کنید). سپس تب Advanced را باز کرده و فیلدهای زیر را پر کنید:

  • نام فایل قوانین تبادل - قوانین تبادل ایجاد شده با این نام ذخیره می شود. شما می توانید نام فایل را در هر زمان تغییر دهید، اما بهتر است آن را اکنون تنظیم کنید. این باعث صرفه جویی در زمان در آینده می شود. من قوانین را برای نمونه آزمایشی نامگذاری کردم: "rules-ut-to-priemnik.xml".
  • نام - نام تبدیل. نام می تواند کاملاً هر چیزی باشد، من خودم را به "دمو" محدود کردم. UT به گیرنده.»

تمام است، روی "OK" کلیک کنید. بلافاصله پنجره ای جلوی ما ظاهر می شود که از ما می خواهد تمام قوانین را به صورت خودکار ایجاد کنیم. موافقت با چنین پیشنهاد وسوسه انگیزی به استاد دستور می دهد تا به طور خودکار شرح تنظیمات انتخاب شده را تجزیه و تحلیل کند و به طور مستقل قوانین مبادله را ایجاد کند.

بیایید فوراً "I's" را نقطه گذاری کنیم. جادوگر نمی تواند چیز جدی ایجاد کند. با این حال، این امکان را نباید کاهش داد. اگر نیاز به تبادل بین پیکربندی های یکسان باشد، خدمات یک متخصص بسیار مفید خواهد بود. برای مثال ما، حالت دستی ترجیح داده می شود.

بیایید نگاهی دقیق‌تر به پنجره «تنظیمات قوانین تبادل» بیندازیم. این رابط ممکن است کمی گیج کننده به نظر برسد - تعداد زیادی تب مملو از کنترل ها. در واقع، همه چیز چندان دشوار نیست؛ شما پس از چند ساعت کار با برنامه شروع به عادت به این جنون می کنید.

در این مرحله، ما به دو تب علاقه مندیم: "قوانین تبدیل شی" و "قوانین آپلود داده". ابتدا باید قوانین تطبیق را پیکربندی کنیم. مقایسه اشیاء با دو پیکربندی در مرحله دوم، اشیاء احتمالی را که برای آپلود در دسترس کاربر قرار می گیرند، تعیین کنید.

در نیمه دوم تب "قوانین تبدیل شی" یک پانل اضافی با دو تب وجود دارد: "تبدیل خواص" و " تبدیل مقادیر" اولی خصوصیات (جزئیات) شی انتخاب شده را انتخاب می کند و دومی برای کار با مقادیر از پیش تعریف شده (به عنوان مثال، عناصر دایرکتوری از پیش تعریف شده یا عناصر شمارش) ضروری است.

عالی، حالا بیایید قوانین تبدیل را برای دایرکتوری ها ایجاد کنیم. شما می توانید این عمل را به دو روش انجام دهید: از جادوگر همگام سازی شی (دکمه ") استفاده کنید یا برای هر شی به صورت دستی مکاتبات را اضافه کنید.

برای صرفه جویی در فضا از گزینه اول استفاده می کنیم. در پنجره جادوگر، علامت گروه را بردارید. مستندات” (ما فقط به دایرکتوری ها علاقه مندیم) و گروه را گسترش دهید ” دایرکتوری ها" ما با دقت فهرست را مرور می کنیم و به نام کتاب های مرجع که قابل مقایسه هستند نگاه می کنیم.

در مورد من، سه دایرکتوری از این قبیل وجود دارد: نامگذاری، سازمانها و انبارها. همچنین یک دایرکتوری به نام Clients وجود دارد که به همان هدف عمل می کند. طرف مقابل"از پیکربندی" UT" درست است، استاد به دلیل نام های مختلف نتوانست آنها را با هم مقایسه کند.

ما می توانیم این مشکل را خودمان حل کنیم. ما در پنجره پیدا می کنیم تطبیق شی" کتاب مرجع " مشتریان"، و در ستون "Source" دایرکتوری "Counterparties" را انتخاب کنید. سپس کادر موجود در ستون "Type" را علامت بزنید و روی دکمه "Ok" کلیک کنید.

جادوگر همگام سازی اشیاء به طور خودکار قوانینی را برای تبدیل خصوصیات همه اشیاء انتخاب شده ایجاد می کند. خواص با نام مقایسه خواهند شد و برای نشان دادن ما این کاملاً کافی است، ما موافقیم. سوال بعدی پیشنهادی برای ایجاد قوانین آپلود خواهد بود. ما هم با آن موافقت کنیم.

مبنای قوانین مبادله آماده است. ما اشیاء را برای همگام سازی انتخاب کردیم و قوانین تبدیل خواص و قوانین بارگذاری به طور خودکار ایجاد شد. بیایید قوانین تبادل را در یک فایل ذخیره کنیم، سپس "منبع" IB را باز کنیم (در مورد من UT است) و پردازش خدمات را در آن راه اندازی کنیم. V8Exchan82.epf.

اول از همه، در پنجره پردازش، قوانین تبادلی که ایجاد کردیم را انتخاب کنید. ما به سوال قوانین بارگذاری پاسخ مثبت می دهیم. پردازش قوانین مبادله را تجزیه و تحلیل می کند و درختی از اشیاء به همین نام را می سازد که برای بارگذاری در دسترس هستند. برای این درخت، می‌توانیم انواع انتخاب‌ها یا گره‌های تبادلی را تنظیم کنیم که با تغییر آن‌ها باید داده‌ها را انتخاب کنیم. ما می خواهیم کاملاً تمام داده ها را بارگیری کنیم، بنابراین نیازی به نصب فیلتر نیست.

پس از تکمیل فرآیند آپلود داده ها در یک فایل، به IB بروید. گیرنده" پردازش را نیز در آن باز می کنیم V8Exchan82.epf، فقط این بار به برگه "بارگیری داده ها" می رویم. فایل داده را انتخاب کنید و روی دکمه "دانلود" کلیک کنید. تمام، داده ها با موفقیت منتقل شدند.

مشکلات دنیای واقعی

اولین نسخه نمایشی ممکن است گمراه کننده باشد. همه چیز بسیار ساده و منطقی به نظر می رسد. در واقع، این صحیح نیست. در کار واقعی، مشکلاتی به وجود می‌آیند که حل آن‌ها با استفاده از ابزار بصری به تنهایی (بدون برنامه‌نویسی) دشوار یا کاملاً غیرممکن است.

برای اینکه از این فناوری ناامید نشوم، چندین مشکل واقعی را آماده کردم. حتما در محل کار با آنها برخورد خواهید کرد. آنها چندان پیش پا افتاده به نظر نمی رسند و باعث می شوند که از زاویه ای جدید به تبدیل داده ها نگاه کنید. نمونه های ارائه شده را با دقت در نظر بگیرید و در هنگام حل مشکلات واقعی از آنها به عنوان قطعه استفاده کنید.

وظیفه شماره 1. جزئیات از دست رفته را پر کنید

فرض کنید باید دایرکتوری را انتقال دهیم طرف مقابل" گیرنده یک فهرست مشابه "Clients" برای این منظور دارد. این کاملاً برای ذخیره سازی اطلاعات مناسب است، اما دارای تجهیزات سازمان"، که به شما امکان می دهد طرف مقابل را با تعلق به سازمان جدا کنید. به طور پیش فرض، همه طرف های مقابل باید متعلق به سازمان فعلی باشند (این را می توان از ثابتی به همین نام به دست آورد).

چندین راه حل برای مشکل وجود دارد. ما گزینه پر کردن جزئیات را در نظر خواهیم گرفت " سازمان"در پایگاه داده" گیرنده"، یعنی در زمان بارگذاری داده ها سازمان فعلی در یک ثابت ذخیره می شود، بنابراین، هیچ مانعی برای به دست آوردن این مقدار وجود ندارد. بیایید قانون تبدیل شی (از این پس PKO نامیده می شود) را باز کنیم. مشتریان” (روی شیء دوبار کلیک کنید) و در ویزارد تنظیم قوانین به قسمت “Event Handlers” بروید. در فهرست کنترل‌کننده‌ها، « بعد از دانلود”.

بیایید کد به دست آوردن سازمان فعلی و سپس اختصاص آن به جزئیات را شرح دهیم. در زمانی که کنترل کننده "After loading" فعال می شود، شی به طور کامل تشکیل می شود، اما هنوز در پایگاه داده نوشته نشده است. هیچ کس ما را از تغییر آن به صلاحدید خود منع نمی کند:

اگر NOT Object.ThisGroup سپس Object.Organization = Constants.CurrentOrganization.Get(); endIf;

قبل از پر کردن جزئیات " سازمان"لازم است مقدار مشخصه را بررسی کنید" این گروه" برای کتاب مرجع " مشتریان"ویژگی سلسله مراتبی تنظیم شده است، بنابراین بررسی گروه ضروری است. هر گونه جزئیات را به روشی مشابه پر کنید. حتماً راهنمای گزینه های دیگر کنترل کننده را بخوانید " AfterLoading" به عنوان مثال، در میان آنها پارامتر " امتناع" اگر مقدار "True" را به آن اختصاص دهید، شی در پایگاه داده نوشته نمی شود. بنابراین، محدود کردن اشیاء قابل نوشتن در زمان بارگذاری امکان پذیر می شود.

وظیفه شماره 2. جزئیات برای ثبت اطلاعات

در دایرکتوری ” طرف مقابل"پیکربندی های UT، جزئیات موجود" خریدار"و" ارائه دهنده" هر دو جزئیات از نوع " بولی” و برای تعیین نوع طرف مقابل استفاده می شوند. در IB " گیرنده"، در دایرکتوری " مشتریان"هیچ جزئیات مشابهی وجود ندارد، اما یک ثبت اطلاعات وجود دارد" انواع مشتریان" عملکرد مشابهی را انجام می دهد و می تواند چندین ویژگی را برای یک مشتری ذخیره کند. وظیفه ما این است که مقادیر جزئیات را به ورودی های جداگانه در ثبت اطلاعات منتقل کنیم.

متأسفانه، ابزارهای بصری به تنهایی نمی توانند در اینجا از عهده بروند. بیایید از کوچک شروع کنیم، یک نرم افزار جدید برای ثبت اطلاعات ایجاد کنیم. انواع مشتریان" چیزی را به عنوان منبع ذکر نکنید. از ایجاد خودکار قوانین آپلود خودداری کنید.

مرحله بعدی ایجاد قوانین آپلود است. به تب مناسب بروید و روی “ اضافه کردن" در پنجره افزودن قوانین آپلود، موارد زیر را پر کنید:

  • روش نمونه گیری. تغییر به "الگوریتم دلخواه"؛
  • قانون تبدیل ثبت اطلاعات "انواع مشتریان" را انتخاب کنید.
  • کد (نام) قانون. آن را به عنوان "تخلیه انواع مشتری" بنویسید.

اکنون باید کد بنویسید تا داده ها را برای آپلود انتخاب کنید. پارامتر " نمونه گیری داده ها" ما می توانیم مجموعه ای را با مجموعه داده های آماده شده در آن قرار دهیم. پارامتر " نمونه گیری داده ها” می تواند مقادیر مختلفی را به خود بگیرد - نتیجه پرس و جو، انتخاب، مجموعه مقادیر و غیره. ما آن را به عنوان جدولی از مقادیر با دو ستون مقداردهی اولیه می کنیم: نوع مشتری و مشتری.

در زیر کد مربوط به مدیریت رویداد آمده است. قبل از پردازش" این پارامتر را مقدار دهی اولیه می کند نمونه گیری داده ها” به دنبال پر کردن اطلاعات از دایرکتوری ” طرف مقابل" در اینجا باید به پر کردن ستون توجه کنید " نوع مشتری" در "UT" ویژگی های ما از نوع "Boolean" هستند و گیرنده یک شمارش است.

در این مرحله نمی توانیم آنها را به نوع مورد نیاز تبدیل کنیم (در UT نیست) بنابراین فعلا آنها را به صورت رشته ای می گذاریم. شما مجبور نیستید این کار را انجام دهید، اما من فوراً می خواهم نحوه ارسال به یک نوع گمشده در منبع را نشان دهم.

DataFetch = New ValueTable(); DataSelection.Columns.Add("Client"); DataSelection.Columns.Add("ClientType"); SelectingDataFromDirectory = Directories.Accounts.Select(); در حالی که SelectingDataFromDirectory.Next() حلقه اگر SelectingDataFromDirectory.ThisGroup سپس ادامه دهید. endIf; اگر انتخاب داده از Directory.Buyer سپس NewRow = Data Selection.Add(); NewRow.Client = DataFetchFromDirectory.Link; NewRow.ClientType = "مشتری"; endIf; اگر DataFetchFromDirectory.Supplier سپس NewRow = DataFetch.Add(); NewRow.Client = DataFetchFromDirectory.Link; NewString.ClientType = "تامین کننده"; endIf; چرخه پایان

بیایید قانون آپلود داده را ذخیره کرده و به برگه " برگردیم قوانین تبدیل شی" بیایید برای ثبت اطلاعات اضافه کنیم انواع مشتریان” قوانین تبدیل ملک: نوع مشتری و مشتری. ما منبع را خالی می گذاریم و در کنترل کننده رویداد "قبل از بارگیری" می نویسیم:

//برای ویژگی "Client" Value = Source.Client; //برای ویژگی "ClientType" If Source.Client = "Buyer" Then Expression = "Enumerations.ClientTypes.Buyer" ElseIf Source.Client = "Supplier" Then Expression = "Enumerations.ClientTypes.Supplier"; endIf;

در فهرست، جزئیات بر اساس نمونه داده انتخاب شده پر می شود. ما به سادگی مشتری را به عنوان یک پیوند ارسال می کنیم و نوع مشتری را در پارامتر " می نویسیم. اصطلاح" داده های این پارامتر در گیرنده تفسیر می شود و هنگام اجرا، prop با مقدار صحیح از شمارش پر می شود.

تمام است، قوانین مبادله آماده است. مثال در نظر گرفته شده کاملاً جهانی است. رویکرد مشابهی اغلب هنگام انتقال داده ها از پیکربندی های ایجاد شده در پلت فرم 7.7 استفاده می شود. نمونه بارز این انتقال جزئیات دوره ای است.

وظیفه شماره 3. ترفندهایی با قطعات میز

اغلب با کارهایی مواجه می شوید که نیاز به ارسال سطر از یک بخش جدول به چندین ردیف دارند. به عنوان مثال، در پیکربندی اولیه، خدمات و کالاها در یک قسمت جدولی ثبت می شوند و در گیرنده، ذخیره سازی این موجودیت ها تقسیم می شود. باز هم مشکل را نمی توان با وسایل بصری حل کرد. در اینجا راحت است که راه حل مشکل دوم را به عنوان پایه در نظر بگیریم.

ما یک قانون برای تخلیه داده ها ایجاد می کنیم، یک الگوریتم دلخواه را مشخص می کنیم و در کنترل کننده "قبل از بارگیری" درخواستی برای به دست آوردن داده ها از قسمت جدولی می نویسیم.

برای صرفه جویی در فضا، من کد (شما همیشه می توانید به منابع مراجعه کنید) درخواست را ارائه نمی دهم - هیچ چیز غیرعادی در آن وجود ندارد. ما از طریق انتخاب به دست آمده مرتب می کنیم و نتایج مرتب شده را در پارامتر از قبل آشنا قرار می دهیم. نمونه گیری داده ها" دوباره استفاده از جدول مقادیر به عنوان مجموعه راحت است:

DataFetch = New ValueTable(); //بخش دیگری از جدول در اینجا وجود خواهد داشت Data Selection.Columns.Add("محصولات"); //در اینجا یک بخش جدولی نیز وجود خواهد داشت Data Selection.Columns.Add("Services"); SelectionData.Columns.Add("پیوند");

وظیفه شماره 4. انتقال داده ها به یک عملیات

اگر یک سازمان از چندین سیستم حسابداری استفاده کند، دیر یا زود نیاز به انتقال داده ها با تولید بعدی تراکنش ها وجود خواهد داشت.

در پیکربندی " BP"یک سند جهانی وجود دارد" عمل” و برای تشکیل سیم های بیشتر ایده آل است. فقط یک مشکل وجود دارد - سند با حیله گری ساخته شده است و داده ها را نمی توان به این راحتی به آن منتقل کرد.

نمونه ای از چنین تبدیلی را در کد منبع مقاله خواهید دید. مقدار کد بسیار زیاد است، بنابراین انتشار آن در ارتباط با مقاله هیچ فایده ای ندارد. فقط بگویم که بارگذاری مجدد از یک الگوریتم دلخواه در قوانین بارگذاری داده استفاده می کند.

وظیفه شماره 5. همگام سازی داده ها در چندین جزئیات

ما قبلاً چندین نمونه را بررسی کرده ایم، اما هنوز در مورد همگام سازی اشیاء در حین مهاجرت صحبت نکرده ایم. بیایید تصور کنیم که ما نیاز به انتقال طرف مقابل داریم و برخی از آنها احتمالاً در پایگاه داده گیرنده هستند. چگونه می توان داده ها را انتقال داد و از ظاهر شدن موارد تکراری جلوگیری کرد؟ در این راستا، CD راه های مختلفی را برای همگام سازی اشیاء منتقل شده ارائه می دهد.

اولین مورد با شناسه منحصر به فرد است. بسیاری از اشیاء دارای یک شناسه منحصر به فرد هستند که منحصر به فرد بودن را در یک جدول تضمین می کند. به عنوان مثال، در دایرکتوری " طرف مقابلدو عنصر با شناسه های یکسان نمی توانند وجود داشته باشند. CD محاسباتی را برای این کار انجام می دهد و برای همه PCOهای ایجاد شده، جستجو بر اساس شناسه بلافاصله به طور پیش فرض فعال می شود. در هنگام ایجاد PCO باید به تصویر ذره بین در کنار نام جسم توجه می کردید.

همگام سازی با استفاده از یک شناسه منحصر به فرد یک روش قابل اعتماد است، اما همیشه مناسب نیست. هنگام ادغام دایرکتوری ها طرف مقابل” (از چندین سیستم مختلف) کمک زیادی نخواهد کرد.

در چنین مواردی، همگام سازی اشیاء بر اساس چندین معیار صحیح تر است. درست تر است که طرف مقابل را با INN، KPP، نام جستجو کنید یا جستجو را به چند مرحله تقسیم کنید.

تبدیل داده ها توسعه دهنده را در تعریف معیارهای جستجو محدود نمی کند. بیایید به یک مثال انتزاعی نگاه کنیم. فرض کنید ما نیاز به همگام سازی دایرکتوری ها داریم طرف مقابل” از پایگاه های اطلاعاتی مختلف. بیایید PKO را آماده کنیم و در تنظیمات قوانین تبدیل شی، علامت " اگر شیء گیرنده توسط شناسه یافت نشد، به جستجوی فیلدهای جستجو ادامه دهید" با این عمل، ما بلافاصله دو معیار جستجو را تعریف کردیم - توسط یک شناسه منحصر به فرد و فیلدهای سفارشی.

ما حق انتخاب رشته ها را خودمان داریم. با بررسی TIN، KPP، و Name، بلافاصله چندین معیار جستجو را نشان خواهیم داد. راحت؟ کاملاً، اما باز هم این کافی نیست. اگر بخواهیم معیارهای جستجو را تغییر دهیم چه؟ به عنوان مثال، ابتدا ترکیب TIN+KPP را جستجو می کنیم و اگر چیزی پیدا نکردیم، شروع به امتحان شانس خود با نام می کنیم.

چنین الگوریتمی کاملاً قابل پیاده سازی است. در کنترل کننده رویداد " فیلدهای جستجوما می توانیم حداکثر 10 معیار جستجو را مشخص کنیم و برای هر یک از آنها ترکیب فیلدهای جستجو را مشخص کنیم:

اگر SearchOptionNumber = 1، SearchPropertyNameString = "TIN, KPP"; در غیر این صورتIfSearchOptionNumber = 2 ThenSearchPropertyNameString = "Name"; endIf;

همیشه چندین راه حل وجود دارد

هر کاری چندین راه حل دارد و انتقال داده بین پیکربندی های مختلف از این قاعده مستثنی نیست. هر توسعه دهنده این حق را دارد که مسیر راه حل خود را انتخاب کند، اما اگر دائماً مجبور به توسعه انتقال داده های پیچیده هستید، من اکیداً توصیه می کنم به "" توجه کنید. ممکن است در ابتدا مجبور شوید منابع (زمان) را برای آموزش سرمایه گذاری کنید، اما آنها در اولین پروژه کم و بیش جدی بیشتر از آن سود خواهند برد.

به نظر من، شرکت 1C به طور ناعادلانه موضوع استفاده از تبدیل داده ها را نادیده می گیرد. در طول کل وجود این فناوری، تنها یک کتاب در مورد آن منتشر شد: "1C: Enterprise 8. تبدیل داده ها: تبادل بین راه حل های کاربردی". کتاب بسیار قدیمی است (2008)، اما هنوز هم توصیه می شود با آن آشنا شوید.

آگاهی از پلتفرم ها همچنان ضروری است

"یک ابزار جهانی است، اما اگر قصد دارید از آن برای ایجاد انتقال داده از پیکربندی های توسعه یافته برای پلت فرم 1C:Enterprise 7.7 استفاده کنید، باید زمانی را صرف آشنایی با زبان داخلی کنید. نحو و ایدئولوژی زبان بسیار متفاوت است، بنابراین باید زمانی را صرف یادگیری کنید. در غیر این صورت اصل به همان صورت باقی می ماند.