تبدیل داده 1c 3 مثال

تبدیل داده 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 "تبدیل داده" (CD). بیایید به نحوه عملکرد این مکانیسم نگاه کنیم و سعی کنیم قوانین تبادل بین دو پیکربندی معمولی را تنظیم کنیم:

  • حسابداری سازمانی (نسخه آزمایشی)، نسخه 3.0.30.
  • حقوق و دستمزد و مدیریت پرسنل (نسخه آزمایشی)، نسخه 3.0.25.

ابزار پیکربندی برای تنظیم قوانین مبادله، Data Conversion نسخه 2.1.82 خواهد بود. کار بر روی پلت فرم 8.3.9 انجام خواهد شد.

مهم است که توجه داشته باشید که تبدیل داده به شما امکان می دهد تبادل را نه تنها بین پایگاه های داده نسخه 8 برنامه، بلکه بین نسخه های 7 و 8 پلت فرم 1C نیز سازماندهی کنید.

دستیار شروع

پس از نصب پیکربندی «تبدیل داده» و راه‌اندازی آن، اولین پنجره‌ای که باز می‌شود، «دستیار راه‌اندازی» است (شکل 1).

می توانید دوباره آن را از منوی Operations->Processing یا از Help فراخوانی کنید، جایی که این پردازش به عنوان یک دستور جداگانه برجسته شده است.

از آنجایی که قصد استفاده نداریم قوانین استانداردانتقال، اما ما قصد داریم در پنجره بعدی مورد خود را ایجاد کنیم، مورد مناسب را از لیست انتخاب می کنیم (شکل 2).

شکل 2

علاوه بر ایجاد قوانین مبادله جدید، می توانیم:


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

فایل های ساختار فراداده

بسته پیکربندی Conversion شامل چندین مورد است درمان های خارجی، که به شما امکان می دهد ساختار ابرداده را در یک فایل xml آپلود کنید.

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

برای نسخه های مختلفپلتفرم ها، 1C پردازش تخلیه ساختار متفاوتی را اجرا کرده است:

  • MD77Exp.ert - به شما امکان می دهد ساختار پیکربندی هفت پایگاه داده را در یک فایل ذخیره کنید.
  • MD82EXP.epf - ساختار پایگاه داده های در حال اجرا بر روی پلتفرم های نسخه 8.0-8.2 را صادر می کند.
  • MD83EXP.epf – طراحی شده برای پلتفرم 8.3.

از آنجایی که در شرایط وظیفه ما، سازماندهی تبادل بین پایگاه های داده در حال اجرا در نسخه 8.3 ضروری است، از پردازش سوم استفاده خواهیم کرد (شکل 4).

شکل 4

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

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

برای این:


برای پایه دوم هم همین مراحل را تکرار می کنیم.

به دستیار خود برگردیم.

به کار با دستیار ادامه دهید

پس از افزودن دو پایگاه داده به فهرست، به نظر می رسد (شکل 6).

بیایید به کار با دستیار ادامه دهیم

در پنجره بعدی (شکل 7) باید پایه گیرنده و پایه منبع را انتخاب کنیم.

شکل 7

و اکنون به پنجره ای می رسیم که در آن از ما خواسته می شود تعیین کنیم مبادله ما بر اساس چه قوانین و مکاتباتی خواهد بود (شکل 8).

شکل 8

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

از آنجایی که می خواهیم قوانین خودمان را ایجاد کنیم، راه سوم را در پیش خواهیم گرفت.

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

سوئیچ را روی سومین مورد در لیست قرار دهید و روی دکمه "Run" کلیک کنید.

ما در جادوگر تنظیمات برای آیتم دایرکتوری "قوانین تبدیل شی" هستیم (شکل 9)

شکل 9

در پایگاه داده منبع، باید شی ای را انتخاب کنیم که داده های آن همگام شوند.

در پایگاه داده گیرنده جدولی وجود دارد که این داده ها در آن قرار می گیرند.

در مرحله بعدی باید در مورد پارامترهای بارگذاری تصمیم گیری کنیم:

  • از چه جزئیاتی برای جستجوی یک مسابقه استفاده می شود.
  • با عناصر موجود چه باید کرد.
  • آیا برای ایجاد عناصر از دست رفته.
  • نحوه برخورد با لینک ها؛
  • از چه قوانینی برای شماره گذاری عناصر جدید استفاده کنیم.

و پارامترهای آپلود.

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

در پایان باید قوانین ایجاد شده را روی دیسک آپلود کنیم (شکل 10).

شکل 10

تبادل اطلاعات

ما تبادل داده های بیشتری را با استفاده از پردازش V8Exchan83.epf انجام خواهیم داد (شکل 11) که در بسته تحویل نیز موجود است. استفاده از تبادل داده استاندارد، که بخشی از پیکربندی یا پردازش خودکار است، هنگام استفاده از قوانین ایجاد شده در CD، ممکن است منجر به وقوع یک موقعیت استثنایی شود.

شکل 11

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

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

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

همچنین می توان داده ها را با استفاده از . در بسیاری از تنظیمات 1C 8.3 وجود دارد عملکرد معمولیبرای تنظیم همگام سازی داده ها بین پیکربندی های مختلف و ادغام یکپارچه با جریان سند 1C.

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

می توانید این پردازش را بر روی دیسک ITS یا با استفاده از پیوندهای زیر دانلود کنید:

جهانی است و برای هر پیکربندی مناسب است.

بیایید مثالی از تخلیه فهرست نامگذاری از یک پایگاه اطلاعاتی 1C 8.3 Accounting 3.0 به پایگاه دیگر را در نظر بگیریم. یک پیش نیاز انتخاب توسط والدین (گروه) "نجاری".

بارگذاری داده ها از 1C به XML

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

پردازش آپلود و دانلود را باز کنید داده های XML(Ctrl+O).

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

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

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

ستون "تخلیه در صورت لزوم" نشان می دهد که آیا بارگیری مجدد ضروری است یا خیر این شی، اگر با ویژگی دایرکتوری که در حال بارگذاری مجدد آن هستیم ارجاع داده شود. به عنوان مثال، موقعیت موردی که بارگیری می کنید دارای یک واحد اندازه گیری است که در پایگاه داده هدف وجود ندارد. اگر پرچم ستون "در صورت لزوم آپلود" در مقابل کتاب مرجع با واحدهای اندازه گیری علامت زده شود، موقعیت جدیدی ایجاد می شود. در غیر این صورت، مقدار مشخصه “<Объект не найден>" و شناسه منحصر به فرد آن.

در یک مورد ساده بدون انتخاب، تنظیمات اضافه بار مورد به این شکل خواهد بود.

که در در این مثالشما باید فقط مواردی را انتخاب کنید که در پوشه "Woodworking" قرار دارند.

پردازش مشابه برای 8.2 به شما این امکان را می دهد که انتخاب هایی را برای هر شیء پیکربندی به شکلی مناسب تنظیم کنید. در 8.3 متاسفانه چنین قابلیتی وجود ندارد. یکی از راه های خروج در این وضعیت، انتخاب موارد ضروری در برگه "اشیاء اضافی برای تخلیه" است.

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

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

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

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

بارگیری دایرکتوری از XML

پس از دانلود موفقیت آمیز داده ها از پیکربندی منبع در یک فایل XML، پایگاه داده مقصد را باز کنید. ساختار اشیاء و جزئیات آنها باید با یکدیگر مطابقت داشته باشند. در این مورد، انتقال بین دو پیکربندی استاندارد 1C انجام می شود: حسابداری 3.0.

باز کردن پردازش در پایگاه داده گیرنده. این پردازشهم برای آپلود و هم برای دانلود داده استفاده می شود. به برگه «دانلود» بروید و مسیر فایل XML را که داده‌ها قبلاً در آن دانلود شده‌اند، مشخص کنید. پس از آن، بر روی دکمه "دانلود داده ها" کلیک کنید.

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

فهرست "نامگذاری" در پایگاه داده دریافت کننده پر نشده است. اکنون دارای پنج عنصر است: سه موقعیت نامگذاری و دو گروه.

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

مشکل انتقال داده (ما صرفاً در مورد محصولات شرکت 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 استفاده کنید، باید برای آشنایی با زبان داخلی وقت بگذارید. نحو و ایدئولوژی زبان بسیار متفاوت است، بنابراین باید زمانی را صرف یادگیری کنید. در غیر این صورت اصل به همان صورت باقی می ماند.