XML (universal birja) orqali savdo tarmog'ida filial (chakana savdo do'koni) bazasi bilan ayirboshlashni tashkil etish. Standart konfiguratsiyaga almashinuv rejasini qo'shish Taqsimlangan ma'lumotlar bazasi

1C 8.3 da almashinuv rejalari 1C 8 tizimida ma'lumotlarni sinxronlashni amalga oshirish uchun foydalaniladigan konfiguratsiya metama'lumotlar ob'ektidir.

Ayirboshlash rejasini katalog bilan solishtirish mumkin, bu erda elementlar axborot bazasi tugunlari hisoblanadi. Biroq, almashinuv rejalari bilan ishlashda ko'plab nuanslar mavjud, biz ularni quyida muhokama qilamiz.

Odatda, 1C-da almashinuv konfiguratsiya yordamida shakllantirilgan maxsus almashinuv qoidalaridan foydalangan holda quriladi.

Avval aytib o'tganimizdek, birja rejasi odatdagiga juda o'xshaydi va shuning uchun biz faqat birja o'rtasidagi asosiy farqlarni ko'rib chiqamiz.

Ayirboshlash rejasi bilan qanday ishlash kerak

Ayirboshlash rejasi ma'lumot va almashinuv rejasi elementlariga o'zgartirishlarni saqlashi mumkin, shuningdek, joriy xabarning raqami haqidagi ma'lumotlarni saqlashi mumkin. Umuman olganda, ish sxemasi quyidagicha:

  1. Biz ma'lumotlar bazasidagi ma'lumotlarni (kataloglar, hujjatlar va boshqalar) o'zgartiramiz - almashinuv rejasi o'zgarishlarni eslab qoladi. Avtomatik ro'yxatdan o'tish yoki dastur kodi bo'yicha (masalan, Exchange Plans.RegisterChanges usuli).
  2. Vaqti kelganda biz o'zgartirilgan elementlar ro'yxatini olamiz - ReadChanges() usuli va bu ma'lumotlarni yuklaymiz.
  3. Yuklash/yuklab olish paytida to'qnashuvlarning oldini olish uchun biz xabar raqamlarini almashinuv rejasiga muvofiq tekshiramiz. Agar ular mos kelmasa, biz ma'lumotlar almashinuvini bekor qilamiz, agar ular mos kelsa, biz o'zgarishlarni ro'yxatdan o'tkazamiz va xabar raqamini ko'paytiramiz.

1C da 267 ta video darslarni bepul oling:

Tarqalgan axborot bazasi

Agar ushbu bayroq sozlamalarda o'rnatilgan bo'lsa, unda bu almashinuv rejasi taqsimlangan axborot bazasi (RIB) hisoblanadi.

— xuddi shu 1C 8.3 konfiguratsiyasiga asoslangan geografik taqsimlangan tizim. Ma'lumotlar o'zgarishlariga qo'shimcha ravishda, RIB konfiguratsiya o'zgarishlarini ham uzatishi mumkin, bu juda qulay, masalan, konfiguratsiya relizini yangilashda.

Ayirboshlash rejasining tarkibi

Ishlab chiquvchi almashish uchun ob'ektlar to'plamini boshqaradigan sozlama:

Ayirboshlash rejasi 3 ta ob'ekt holatiga ega bo'lishi mumkin:

  1. Ayirboshlash rejasiga kiritilmagan- shunga ko'ra, bunday ob'ekt uchun siz ushbu almashinuv rejasiga muvofiq ma'lumotlar almashinuvini hech qanday tarzda sozlay olmaysiz.
  2. Avtomatik ro'yxatdan o'tishni rad etish- bu ma'lum bir tugun uchun o'zgarishlarni faqat biron bir shartga muvofiq dastur kodidan foydalangan holda ro'yxatdan o'tkazish kerakligini anglatadi, qoida tariqasida, . Exchange Plans.RegisterChanges() usuli qo'llaniladi.
  3. Avtomatik ro'yxatdan o'tishga ruxsat berish— agar ushbu katakcha belgilansa, elementga kiritilgan har qanday o'zgarishlar avtomatik ravishda almashinuv rejasiga kiritilgan o'zgarishlar ro'yxatida paydo bo'ladi.

Birja rejalari va 1C ishlashi

Birja rejalarini amalga oshirishning tizimli xususiyatlaridan kelib chiqqan holda, birja rejalariga muvofiq o'zgarishlarni yuklashni suiiste'mol qilish tavsiya etilmaydi. Haqiqat shundaki, o'zgarishlarni o'qish paytida barcha o'zgartirish jadvallari qulflanadi. Bular. Yukni tushirishda almashinuv rejasi yangi o'zgarishlarni qayd etishga ruxsat bermaydi va shuning uchun elementlarning o'zini - kataloglar, hujjatlar va boshqalarni bloklaydi.

Agar sizning tashkilotingizda 5 dan ortiq kishi ishlayotgan bo'lsa, unda siz 1C mahsulotlaridan foydalanasiz. Deyarli har doim tashkilotlar bir nechta 1C ma'lumotlar bazalarini o'rnatadilar, chunki ularning har biri ma'lum bir qator muammolarni hal qiladi. Masalan, kompaniya chakana savdo bilan shug'ullanadi va buxgalteriya hisobini yuritadi, bunday vaziyatda mijoz odatda UT (savdoni boshqarish) va BP (korxona hisobi) ni o'rnatadi. Hatto bir nechta xodimlari bo'lgan oddiy yakka tartibdagi tadbirkor ham shunday kompaniya sifatida harakat qilishi mumkin!

Nima uchun ma'lumotlar almashinuvini sozlashim kerak?

Keling, UT va BP bilan bog'liq vaziyatni ko'rib chiqaylik. Tasavvur qilaylik, hozir bizning birjamiz sozlanmagan, ikkala ma'lumotlar bazasida buxgalteriya operatsiyalarini aks ettirish uchun qanday harakatlarni bajarishimiz kerak? To'g'ri, avval biz UTda ma'lumotlarni to'ldiramiz, keyin esa xuddi shu ma'lumotlarni BPga kiritishimiz kerak bo'ladi, chunki biz, masalan, UT ga tovar qabulini kirita olmaymiz, lekin buni amalga oshira olmaymiz. BP.

Agar siz standart ma'lumotlar almashinuvidan foydalanishga qaror qilsangiz ham (standart ma'lumotlar almashinuvini (1C sinxronizatsiyasini) sozlash), bu sizning ma'lumotlar bazasida sozlanishi mumkin degani emas. Masalan, siz ma'lumotlar bazasini uzoq vaqt davomida yangilamagan bo'lsangiz (standart almashinuvni ta'minlash uchun ma'lumotlar bazalaringiz yangilangan bo'lishi kerak) yoki siz bir ma'lumotlar bazasidan boshqasiga o'tkazmoqchi bo'lgan ob'ektlar bilan bog'liq muammolar paydo bo'ladi. o'zgartirilgan (bu holda standart almashinuv to'g'ri ishlamaydi), bularning barchasi ma'lumotlar bazasi platformasi versiyalari farq qilsa ham (7.7 - 8.3), keyin ma'lumotlar almashinuvi ham katta ehtimol bilan noldan o'zgartirilishi yoki ishlab chiqilishi kerak bo'ladi.

1C ma'lumotlar bazalari o'rtasida ma'lumotlar almashinuvidan kim foydalanishi kerak?

Agar quyidagi bayonotlar sizga tegishli bo'lsa, konfiguratsiyalaringiz o'rtasida almashinuvni sozlashingiz kerak:

  • Sizda bir nechta 1C ma'lumotlar bazasi mavjud
  • Ma'lumotni bir ma'lumotlar bazasidan ikkinchisiga va aksincha tez o'tkazishni talab qiladi
  • Avtomatik almashish yoki real vaqtda almashish kerak

1C konfiguratsiyalari o'rtasida ma'lumotlar almashinuvini ishlab chiqish va sozlash

To'g'ri ishlab chiqilgan ma'lumotlar almashinuvi sizga quyidagilarga imkon beradi:

  • Ob'ektlarni bir ma'lumotlar bazasidan boshqasiga tushirish va yuklash
  • 1C ning turli versiyalari o'rtasida almashish
  • Haqiqiy vaqtda ma'lumotlarni almashish
  • Xodimlarga ish haqi narxini sezilarli darajada kamaytiring, chunki endi ular ko'proq bo'sh vaqtga ega bo'lishadi
  • Vaqtingiz va byudjetingizni tejang

O'zgartirilgan UT va BP ma'lumotlar bazalari misolida ma'lumotlar almashinuvi qoidalarini ishlab chiqish

Bizda ikkita ma'lumotlar bazasi mavjud bo'lib, ularda "Tovar va xizmatlarni qabul qilish" hujjati o'zgartirildi, xususan, hujjatlar va jadval qismlariga yangi rekvizitlar qo'shildi, ba'zi standart rekvizitlar o'chirildi, buning natijasida standart ma'lumotlar almashinuvi amalga oshirildi. ishlamaydi. Biz yangi almashinuv qoidasini ishlab chiqdik va uni faylga yozdik.

Avtomatlashtirilgan boshqaruv tizimlari ko'p hollarda alohida ma'lumotlar bazalaridan iborat va ko'pincha geografik jihatdan taqsimlangan tuzilishga ega. Shu bilan birga, to'g'ri amalga oshirilgan ma'lumotlar almashinuvi bunday tizimlarning samarali ishlashi uchun zarur shartdir.

Birjaning dastlabki o'rnatilishi nafaqat dasturlash nuqtai nazaridan, balki 1C: Enterprise platformasidagi mahsulotlarda bo'lgani kabi, bir hil manbalar bilan ishlayotgan bo'lsak ham, maslahat berishni talab qilishi mumkin. Nima uchun 1C almashinuvini o'rnatish (yoki 1C 8.3 da ma'lumotlarni sinxronlashtirish) integratsiya loyihasining eng ko'p vaqt talab qiladigan va qimmat ishiga aylanishi mumkin, biz ushbu maqolada ko'rib chiqamiz.

1C muhitida ma'lumotlar almashinuvi sizga quyidagilarga imkon beradi:

  • Hujjatlarni ikki marta kiritishni bekor qilish;
  • Tegishli biznes jarayonlarini avtomatlashtirish;
  • Taqsimlangan bo'limlar o'rtasidagi o'zaro aloqani optimallashtirish;
  • Turli bo'limlar mutaxassislarining ishi bo'yicha ma'lumotlarni tezda yangilash;
  • Buxgalteriya hisobining har xil turlarini "farqlash".*

*Buxgalteriya hisobining bir turining ma'lumotlari boshqasidan sezilarli darajada farq qiladigan hollarda, ma'lumotlarning maxfiyligini ta'minlash va axborot oqimini "chegaralash" kerak. Masalan, 1C UT va 1C Buxgalteriya o'rtasidagi ma'lumotlar almashinuvi boshqaruv ma'lumotlarini tartibga soluvchi buxgalteriya ma'lumotlar bazasiga yuklashni talab qilmaydi, ya'ni. 1C da sinxronlash bu erda to'liq bo'lmaydi.

Agar biz birlamchi ma'lumotlar almashinuvini amalga oshirishning standart jarayonini tasavvur qilsak, uning ob'ektlaridan kamida bittasi 1C mahsuloti bo'lsa, biz quyidagi bosqichlarni ajratib ko'rsatishimiz mumkin:

  • Birja tarkibini muvofiqlashtirish;
  • Transportning ta'rifi (almashtirish protokollari);
  • Qoidalarni o'rnatish;
  • Rejalashtirish.

1C almashinuvi tarkibini aniqlash

Ayirboshlash ob'ektlarini "manba" va "qabul qiluvchi" ga bo'lish mumkin. Shu bilan birga, ular bir vaqtning o'zida ikkita rolni bajarishlari mumkin, bu ikki tomonlama almashinuv deb ataladi. Manba va maqsad tizimning ehtiyoji yoki funksionalligiga qarab mantiqiy ravishda aniqlanadi*.

*Masalan, “WA: Financier” – “1C:Enterprise” asosida ishlab chiqilgan moliyaviy hisobni yuritish va g‘aznachilik jarayonlarini boshqarish yechimini integratsiyalashganda, WiseAdvice mutaxassislari uni asosiy tizim sifatida tavsiya qiladilar. Bu qo'llash siyosati qoidalariga rioya qilish va shunga mos ravishda yechimning samaradorligini ta'minlash uchun nazorat vositalarining mavjudligi bilan bog'liq.

Keyinchalik, foydalanuvchilardan olingan va qayd etilgan talablar asosida almashish uchun ma'lumotlar ro'yxati tuziladi, ularning hajmi, almashish chastotasiga qo'yiladigan talablar aniqlanadi, xatolar bilan ishlash va istisno vaziyatlarni (to'qnashuvlar) hal qilish jarayoni belgilanadi.

Xuddi shu bosqichda, mavjud tizimlar parkiga va korxona tuzilishiga qarab, birja formati belgilanadi:

Tarqalgan axborot bazasi

  • RIB bir xil 1C ma'lumotlar bazasi konfiguratsiyalari o'rtasida almashishni nazarda tutadi, har bir almashinuv juftligi uchun aniq "master-slave" boshqaruv tuzilmasi. Texnologik platformaning elementi sifatida RIB, ma'lumotlarga qo'shimcha ravishda, ma'lumotlar bazasining konfiguratsiya o'zgarishlari va ma'muriy ma'lumotlarini uzatishi mumkin (lekin faqat masterdan qulga).

1C da universal ma'lumotlar almashinuvi

  • 1C: Enterprise platformasidagi konfiguratsiyalar bilan ham, uchinchi tomon tizimlari bilan ham 1C ma'lumotlar bazalari almashinuvini sozlash imkonini beruvchi mexanizm. Ayirboshlash "Almashtirish rejalari" ga muvofiq ma'lumotlarni universal xml formatiga o'tkazish orqali amalga oshiriladi.

EnterpriseData

  • Har qanday avtomatlashtirish tizimlari bilan 1C: Enterprise platformasida yaratilgan mahsulotlar o'rtasida xml formatida ma'lumotlar almashinuvini amalga oshirish uchun mo'ljallangan 1C-ning so'nggi ishlanmasi. EnterpriseData-dan foydalanish almashinuv bilan bog'liq o'zgarishlarni soddalashtiradi. Ilgari, tizimga yangi konfiguratsiya kiritilganda, u uchun ham, mavjud tizimlar uchun ham ma'lumotlarni import qilish va eksport qilish mexanizmini joriy qilish kerak edi. Endi EnterpriseData-ni qo'llab-quvvatlaydigan tizimlar hech qanday o'zgartirishga muhtoj emas, faqat bitta kirish-chiqish nuqtasiga ega.

Transportning ta'rifi (almashinuv protokollari)

1C: Enterprise 8 platformasidagi tizim uchun umumiy qabul qilingan universal standartlardan (xml, matn fayllari, Excel, ADO ulanishi va boshqalar) foydalangan holda har qanday axborot resurslari bilan almashishni tashkil qilish uchun keng imkoniyatlar taqdim etiladi. Shuning uchun, ma'lumotlar almashinuvi uchun transportni aniqlashda siz uchinchi tomon tizimining ma'lumotlar bazasi imkoniyatlariga tayanishingiz kerak.

Kataloglarni sinxronlashtirish

Kataloglarni samarali sinxronlashtirishning asosiy printsipi - bitta kirish nuqtasi mavjudligi. Ammo, agar biz tarixan turli qoidalarga muvofiq to'ldirilgan kataloglar bilan ishlash haqida gapiradigan bo'lsak, almashinuvni "umumiy maxraj" ga etkazish uchun sinxronizatsiya maydonlarini aniq belgilash kerak.

*Ushbu bosqichda ma'lumotlar manbai tomonida ma'lumotnoma ma'lumotlarini normallashtirish bo'yicha ishlarni bajarish kerak bo'lishi mumkin. Kataloglarning holatiga va ularning hajmiga qarab, elementlarni taqqoslash, tanib olish, xatolar va dublikatlarni aniqlash, shuningdek etishmayotgan maydonlarni to'ldirish va sinxronizatsiya maydonlarini belgilash jarayoni barcha mutaxassislar guruhining ishini talab qilishi mumkin. integratorning bir qismi (ma'lumotni normallashtirishning asosiy texnikasi egasi) va mijoz tomonidan.

Qoidalarni o'rnatish

Qabul qiluvchilarda manba tizimlaridan ma'lumotlarni ko'rsatish qobiliyati to'g'ri belgilangan almashinuv qoidalariga bog'liq. Xml formatida taqdim etilgan qoidalar manba-qabul qiluvchi ob'ektlarning asosiy detallarining muvofiqligini tartibga soladi. 1C: Ma'lumotlarni aylantirish yechimi bir martalik va doimiy almashinuvni amalga oshirish qoidalarini yaratishni avtomatlashtirish uchun mo'ljallangan.

Ayirboshlash rejasi davomida ma'lumotlar yo'qolmasligini kafolatlaydi. Bu 1C: Enterprise platformasidagi har qanday konfiguratsiyaning ajralmas qismi bo'lib, u 1C almashinuv jarayonini to'liq tavsiflaydi: ma'lumotlar tarkibi ("aniqlash" tafsilotlari bo'lgan hujjatlar) va tugunlar (qabul qiluvchi-uzatuvchi ma'lumotlar bazalari), shuningdek, RIB-ni faollashtirish. tanlangan almashinuv yo'nalishlari.

Birja rejasiga kiritilgan ma'lumotlarning har qanday o'zgarishi qayd etiladi va "o'zgartirilgan" belgisini oladi. O'zgartirilgan ma'lumotlar qabul qiluvchi-uzatuvchi tugunlarda bir-biriga mos kelmaguncha, belgi qayta o'rnatilmaydi va tizim ikkala tugunga nazorat xabarlarini yuboradi. Ma'lumotlarni yuklaganingizdan va ikkala tizimda ularning to'liq muvofiqligini tasdiqlaganingizdan so'ng, belgi qayta o'rnatiladi.

1C da almashinuv jadvali

Muntazam almashinuvni avtomatlashtirish uchun ma'lumotlarni yuklash chastotasi o'rnatiladi. Ayirboshlash chastotasi ehtiyoj va texnik imkoniyatlarga bog'liq. Shuningdek, 1C: Enterprise platformasidagi konfiguratsiyalar voqea sodir bo'lganda ma'lumotlar almashinuvini sozlash imkonini beradi.

Birjani amalga oshirishning standart jarayonini ko'rib chiqib, turli bosqichlarda yaxshilanishlarni talab qiladigan omillarga e'tibor qarataylik:

  • Nostandart, yuqori darajada o'zgartirilgan ma'lumotlar bazasi konfiguratsiyasi;
  • 1C: Enterprise platformasining turli versiyalari;
  • Uzoq vaqt davomida yangilanmagan konfiguratsiya versiyalari;
  • Ilgari o'zgartirilgan ayirboshlash ob'ektlari;
  • Nostandart almashinuv qoidalariga ehtiyoj;
  • Mavjud ma'lumotnomalardagi tafsilotlarning juda boshqacha to'plami va tarkibi.

Hatto birlamchi ma'lumotlar almashinuvini amalga oshirish bo'yicha standart harakatlar ham mutaxassis bilimlarini talab qilganligi sababli, ularni 1C mutaxassislari ishtirokida bajarish tavsiya etiladi. Faqat yuqorida tavsiflangan barcha amallarni bajarganingizdan so'ng, konfiguratsiyada almashinuvni o'rnatishga o'tishingiz kerak. Keling, 1C: UPP va 1C: Retail misolida ma'lumotlar bazalarining integratsiyasini ko'rib chiqaylik (1C: UT bilan almashish xuddi shu sxema bo'yicha o'rnatiladi). Bundan tashqari, standart sinxronizatsiyaga SCP - SCP almashinuvi kiradi, bu eng yirik sanoat korxonalarida keng ko'lamli avtomatlashtirish tizimlari uchun xosdir.

"Xizmat" pastki menyusida "Platformadagi mahsulotlar bilan ma'lumotlar almashinuvi ..." ni tanlang ("Chakana savdo" bilan to'g'ridan-to'g'ri almashinuvni tanlash ko'pincha MAQOMOTI ob'ektlari darajasida xatolarga olib keladi). "Ushbu xususiyat mavjud emas" xizmat xabariga e'tibor bering.


Ushbu muammoni hal qilish uchun siz "Aloqalarni sozlash" ni tanlashingiz kerak.


...va katakchani belgilang. Keyinchalik, xato xabariga e'tibor bermang.


Ma'lumotlarni sinxronlashtirish sozlamalarida "Chakana savdo" bilan almashinuvni yaratish ... ni tanlang.



Mahalliy yoki tarmoq katalogi orqali ulanish sozlamalarini sozlashdan oldin, diskda katalog uchun bo'sh joy mavjudligiga ishonch hosil qilishingiz kerak. Garchi, qoida tariqasida, u 30-50 MB dan ko'p joy egallamasa ham, istisno hollarda u 600 MB gacha talab qilishi mumkin. Siz to'g'ridan-to'g'ri konfiguratordan kerakli katalogni yaratishingiz mumkin.



Tarmoq katalogi orqali ulanishda biz "Keyingi" tugmasini bosish orqali FTP manzili va elektron pochta orqali ulanishni sozlash taklifini e'tiborsiz qoldiramiz.


Sozlamalarda biz qo'lda prefikslarni kiritamiz - ma'lumotlar bazalarining belgilari (odatda BP, UPP, RO), qoidalar va ma'lumotlarni yuklashning boshlanish sanasini o'rnatamiz. Hujjatlarning nomida ular yaratilgan ma'lumotlar bazasini ko'rsatish uchun prefiks ko'rsatiladi. Agar yuklash qoidalari tahrir qilinmasa, ma'lumotlar barcha mavjud parametrlarga muvofiq sukut bo'yicha yuklanadi.



Bizning harakatlarimizni takrorlamaslik uchun biz "Chakana savdo" uchun almashinuv sozlamalari faylini yaratamiz. Sinxronizatsiyani o'rnatganingizdan so'ng darhol ma'lumotlarni yuborishingiz kerak bo'lsa, katakchani belgilang.


Ayirboshlash jarayonini avtomatlashtirish uchun siz jadvalni o'rnatishingiz kerak.


"Chakana savdo" menyusi.


Qutini belgilang va "Sinxronizatsiya" ni tanlang.


Ishlab chiqarish korxonasini boshqarishni tanlash orqali "teskari" sozlashni amalga oshiramiz.




UPP da yaratilgan sozlamalar faylini yuklang.


Biz belgi qo'yamiz, tizim avtomatik ravishda manzilni oladi.





Biz UPPda bo'lgani kabi harakat qilamiz.









Tekshirish ma'lumotlarini taqqoslash (Ma'lumotlarni qo'lda taqqoslash tayyorgarlik bosqichida amalga oshirilishi tavsiya etiladi, chunki bu ish almashinuvni amalga oshirish jarayonida eng ko'p mehnat talab qiladigan ish bo'lishi mumkin). Taqqoslash oynasi sichqonchani ikki marta bosish orqali ochiladi.



Sinxronizatsiyada xatolik yuzaga kelsa, "Tafsilotlar ..." "Hech qachon ..." bilan almashtiriladi.


"Tafsilotlar ..." birjadagi yangilangan ma'lumotlar bilan jurnalni ochadi.


Tayyor.


Kalit so'zlar: taqsimlangan, URDB, XML, ro'yxatga olish, tugun, tugun, avtomatik ro'yxatga olish, boshlang'ich, tasvir, POP3, SMTP, MailMessage, periferik, markaziy, replikatsiya, almashinuv

Rad etish va foydalanish shartlari

Ushbu maqolada tasodifan eslatib o'tilgan barcha savdo belgilari tegishli egalariga tegishli.
Ushbu maqola Creative Commons Attribution-Share Alike 3.0 Unported License ostida chop etilgan.
http://creativecommons.org/licenses/by-sa/3.0/

Darhol shuni ta'kidlashim kerakki, quyida aytilganlarning barchasi 8.0.7.36 va undan yuqori platformalarning chiqarilishiga tegishli.

1-qadam: almashinuv rejasini tuzing

Biz konfiguratsiyada almashinuv rejasini yaratamiz. Keling, uni, masalan, "DistributedBase" deb ataymiz. Majburiy
Ayirboshlash rejasining xususiyatlarida "Taqsimlangan ma'lumotlar bazasi" katagiga belgi qo'ying.

Qaysi ob'ektlar almashinuvga kiritilishini aniqlash uchun "Boshqa" yorlig'ida "Kompozitsiya" tugmasini bosing. tomonidan
Odatiy bo'lib, siz barcha ob'ektlarni yoqishingiz mumkin ("Amallar" - "Hammasini yoqish"). Muhim nuqta - bu parametr
"Avtomatik ro'yxatga olish". Umuman olganda, u barcha ob'ektlar uchun yoqilgan bo'lishi kerak.

Eslatma: konfiguratsiyaga yangi ob'ektlar qo'shilganda ular almashinuv rejasiga kiritilmaydi. Bular. keyin
Ob'ektni qo'shish uchun u almashinuv rejasiga qo'shilishi kerak.

Agar ba'zi ob'ektlar almashinuvda ishtirok etmasligini istasangiz, ularni ro'yxatdan chiqarib tashlang
almashinuv rejasi. Ammo keyin referent yaxlitligini nazorat qilish butunlay sizning vijdoningizda qoladi. Agar, uchun
masalan, ma'lum bir hujjat almashinuv rejasiga kiritilmagan, lekin u harakatni amalga oshiradigan reestr kiritilgan;
u holda qabul qiluvchi ma'lumotlar bazasida qayd qiluvchi hujjatsiz registr harakatlarini qabul qilish juda mumkin, bu
Qabul qilaman, bu yaxshi emas.

Aslida, bu harakatlar RDBning "qo'lda" rejimida ishlashi uchun etarli. Buning uchun biz ishga tushiramiz
Korxona, bizning almashinuv rejamizni "Operatsiyalar" menyusi orqali oching. Ayirboshlash nuqtai nazaridan u doimo mavjud
"nuqta bilan" oldindan belgilangan tugun. Bu joriy tugunning tavsifi. Uni ochish va to'ldirish kerak. Bizning
Bunday holda, "Kod" va "Ism" maydonlari mavjud bo'ladi. Keling, tugunimizga "AA" kodini tayinlaymiz va uni chaqiramiz
"Markaziy". Keling, birja rejasiga bitta tugun qo'shamiz. Keling, unga "BB" kodini belgilaymiz va uni "Periferik" deb nomlaymiz.

Endi biz periferik bazaning tasvirini yaratishimiz mumkin. Bu "Boshlang'ich yaratish" tugmasini bosish orqali amalga oshiriladi
image". Periferik baza tugunlar ro'yxatida tanlanishi kerak. Ma'lumotlar bazasi tasviri tayyor axborot xavfsizligi shaklida yaratilgan.
katalogda yoki 1C: Enterprise serverida. (7.7 dan farqli o'laroq, axborot xavfsizligi tasviri fayl sifatida yaratilgan
tushirish). Keyin yaratilgan ma'lumotlar bazasini 1CV8.1CD faylini shunchaki nusxalash orqali kerakli joyga ko'chirish mumkin.
(fayl versiyasi uchun) yoki ma'lumotlarni yuklash va yuklab olish orqali Konfigurator orqali.

Agar siz periferik axborot xavfsizligi tizimida almashinuv rejasini ochsangiz, siz tugunning "nuqta bilan" ekanligini ko'rasiz, ya'ni. joriy
"Periferik" tugun tugunga aylandi va "Markaziy" tugunning belgisi qizil rangga aylandi, ya'ni. tugun
"Markaziy" joriyga nisbatan asosiy tugundir.

"Qo'lda" rejimda almashish "O'zgarishlarni yozish" va "O'qish" tugmalari yordamida amalga oshirilishi mumkin
o'zgarishlar". Birinchi holda, sizdan o'zgartirishlar yoziladigan faylni tanlashingiz so'raladi, ikkinchisida
- o'zgarishlar o'qiladigan fayl. Almashtirish xml formatida amalga oshiriladi. O'zgarishlar qayd etiladi
tanlangan tugun.

2-qadam: O'zgarishlarni XML fayliga yuklang va elektron pochta orqali yuboring

Shunday qilib, biz almashinuv rejasini yaratdik, periferik axborot xavfsizligi tizimini yaratdik va hatto ular o'rtasida ma'lumotlarni uzatishni o'rgandik
asoslar. Endi bizning vazifamiz ma'lumotlar bazalarini elektron pochta orqali almashishni o'rgatishdir.

Biz almashinuv rejasiga ikkita ma'lumotni qo'shamiz: "string" tipidagi elektron pochta manzili va "Execute Exchange" turi
"boolean". Elektron pochta manzilida biz tugunning elektron pochta manzilini saqlaymiz, ya'ni. biz bo'ladigan manzil
almashinuv xabarlarini yuborish. Props ExecuteExchange avtomatik o'chirishni tezda o'chirish uchun kerak
xabarlarni yuborish-yuborish.

Keling, elektron pochta bilan ishlash tartibini universal qilaylik, ya'ni. imkon yarataylik
ikkala MAPIdan foydalanish (elektron pochta mijozi orqali yuborish-qabul qilish, masalan, MS Outlook) va
SMTP/POP3 serverlariga to'g'ridan-to'g'ri kirish.

Konfiguratsiyaga bir nechta konstantalarni qo'shamiz:

Umumiy shaklda biz ushbu doimiylarning qiymatlarini tahrirlashni ta'minlaymiz.

Keling, umumiy modul qo'shamiz, uni "rbDistributedBase" deb nomlaymiz. Unda biz yozamiz:

Protsedura rbSendExchangeMessages() Export UseSMTP = Constants.UseSMTPExchange.Receive(); //Avval biz Pochta ob'ektini yaratamiz, u sozlamalarga qarab InternetMail turiga ega bo'ladi, //agar serverlarga to'g'ridan-to'g'ri kirish ishlatilsa yoki MAPI ishlatilsa Mail. Agar SMTP dan foydalansangiz //InternetMail tipidagi ob'ekt uchun pochta profilini yarating va to'ldiring. MailProfile = Yangi InternetMailProfile; MailProfile.SMTPServerAddress = Constants.SMTPExchangeServerAddress.Get(); MailProfile.SMTPort = Constants.SMTPExchangeServerPort.Receive(); MailProfile.SMTPUser = Constants.SMTPExchangeServerUser.Receive(); MailProfile.SMTP Password = Constants.SMTPExchangeUserPassword.Receive(); MailProfile.WaitTime = Constants.ServerWaitTime.Get(); Pochta = Yangi InternetMail(); Mail.Connect(MailProfile); Istisno hisoboti(" ALMA: Pochta profiliga ulanishda xatolik yuz berdi! Ayirboshlash amalga oshmadi!" + ErrorDescription(), MessageStatus.VeryImportant); Qaytish; EndAttempt; Aks holda Pochta = Yangi pochta(); Urinish Mail.Connect(); Istisno hisoboti("" + ErrorDescription(), MessageStatus.VeryImportant); Qaytish; EndAttempt; EndIf ; //Keyin, almashinuv rejasidan joriyidan tashqari barcha tugunlarni tanlang, //bular Perform Exchange atributiga ega. SelectionNodes = ExchangePlans.DistributedBase.Select(); While SelectNodes.Next() sikl bo'lmasa SelectNodes.PerformExchange keyin davom eting; endIf; Agar SelectionNodes.Link = ExchangePlans.DistributedBase.ThisNode() bo'lsa, Davom eting; endIf; Elektron manzil = AbbrLP(SelectionNodes.ElectronicAddress); Agar EmailAddress = "" Agar Davom eting; endIf; //XMLRecord va MessageRecord ob'ektlaridan foydalanib, biz o'zgarishlarni yozamiz //xml faylidagi tanlangan tugun uchun. Tugun = SelectionNodes.Link; XMLRecord = NewXMLRecord(); MessageFileName = TemporaryFileDirectory() + "Message_" + AbbreviatedLP(ExchangePlans.DistributedBase.ThisNode().Code) + "_ " + QisqartirilganLP(Node.Code) + ".xml "; EntryXML.OpenFile(MessageFileName); MessageRecord = ExchangePlans.CreateMessageRecord(); MessageRecord.StartRecord(XMLRecord, Node); ExchangePlans.WriteChanges(WriteMessage); WriteMessage.FinishRecord(); WriteXML.Close(); //Keyin biz yangi harf yaratamiz, natijada olingan xml faylni unga biriktiramiz va //tugun elektron pochta manzilida ko'rsatilgan manzilga yuboring. Fayl = Yangi fayl (MessageFileName); Xabar mavzusi = "1C:Exchange" + Abbr.LP(ExchangePlans.DistributedBase.ThisNode().Code) + "_" + Abbr.LP(Node.Code); Agar UseSMTP bo'lsa, MailMessage = Yangi InternetMailMessage; MailMessage.Subject = MessageSubject; MailMessage.Attachments.Add(MessageFileName, File.Name); MailMessage.Recipients.Add(EmailAddress); Mail.Send(MailMessage); Else MailMessage = yangi MailMessage; MailMessage.Subject = MessageSubject; MailMessage.Attachments.Add(MessageFileName); MailMessage.Recipients.Add(EmailAddress); Mail.Send(MailMessage, False); endIf; Agar Constants.OutputExchangeMessages.Get() bo'lsa, hisobot (" EXCHANGE: tugun uchun xabar almashish" + Node.Name + " yuborildi! ", MessageStatus.Information); EndIf; DeleteFiles(MessageFileName); EndCycle; Mail.Disconnect(); EndProcedure

Men interfeysga qo'shimcha panel qo'shishni maslahat beraman, uning tugmalaridan birida siz qo'ng'iroq qilishingiz mumkin
protseduralar. Endi faqat Korxonani ishga tushirish, periferik axborot xavfsizligi elektron pochta manzilini sozlash qoladi,
"Almashtirish" katagiga belgi qo'ying, paneldagi protsedura tugmasini bosing va pochtani qabul qilish uchun ishga tushiring
belgilangan elektron pochta manzillar. Siz "1C: Exchange AA_BB" mavzusidagi xat va unga biriktirilgan faylni olishingiz kerak
"Message_AA_BB.xml".

Shunday qilib, ishning yarmi tugadi: biz G8-ga RDB almashinuv xabarlarini elektron pochta orqali yuborishni o'rgatganmiz
pochta.

Qadam 3. Yangilanishlarni elektron pochta orqali oling va ularni axborot xavfsizligiga yozib oling

Endi teskari jarayonni bajaramiz: elektron pochta orqali yangilanishlarni qabul qilish va ularni axborot xavfsizligiga yozib olish.

Seans parametrlariga mantiqiy turdagi "Tarqatilgan ma'lumotlar bazasi almashinuvi davom etmoqda" parametrini qo'shing. Men buni quyida tushuntiraman
tayinlash.

rbDistributedBase umumiy moduliga quyidagi protsedurani qo'shamiz:

Protsedura rbGetExchangeMessages() Export UseSMTP = Constants.UseSMTPExchange.Receive(); //xuddi rbSendExchangeMessages() protsedurasida bo'lgani kabi, avval ob'ekt yarating Pochta Agar SMTP dan foydalansangiz, MailProfile = Yangi InternetMailProfile; MailProfile.POP3ServerAddress = Constants.POP3ExchangeServerAddress.Get(); MailProfile.POP3Port = Constants.POP3ExchangeServerPort.Get(); MailProfile.User = Constants.POP3ExchangeServerUser.Get(); MailProfile.Password = Constants.UserPasswordPOP3Exchange.Receive(); MailProfile.WaitTime = Constants.ServerWaitTime.Get(); Pochta = Yangi InternetMail(); Mail.Connect(MailProfile); Istisno hisoboti(" ALMA: Pochta profiliga ulanishda xatolik yuz berdi! |Almashtirish amalga oshmadi!", MessageStatus.VeryImportant); Qaytish; EndAttempt; Aks holda, Mail = New Mail(); Attempt Mail.Connect(); Istisno hisoboti(" ALMA: Foydalanuvchining elektron pochta profiliga ulanishda xatolik yuz berdi! |Almashtirish amalga oshmadi!", MessageStatus.VeryImportant); Qaytish; EndAttempt; EndIf; MessageArray = Yangi massiv; Agar UseSMTP Unda AllMessages = Mail.Select(False); Boshqa AllMessages = Mail.Select(False, False); EndIf; //Barcha harflar orasidan “1C:Exchange” mavzusiga ega harflarni tanlang. //Kichik, ammo muhim eslatma: //biz "1C:Exchange" mavzusidagi barcha qabul qilingan xatlar mo'ljallangan deb hisoblaymiz //aynan joriy tugun uchun, //bular. almashish nuqtai nazaridan turli tugunlar TURLI elektron pochta manzillariga ega. Barcha xabarlardan kelgan har bir xabar uchun If Leo (Xabar. Mavzu, 8 )<>"1C: Exchange" Keyin davom eting; endIf; TryMessageArray.Add(Xabar); // Elektron pochta ilovasini diskka saqlang. //Biz hozircha qo'shimchani sinchkovlik bilan tekshirishni sahna ortida qoldiramiz. Attachment = Message.Attachments; MessageFileName = TemporaryFileDirectory() + Attachment.Name; ExchangeData = Attachment.Data; ExchangeData.Write(MessageFileName); //XMLReader va MessageReader ob'ektlaridan foydalanib, biz ma'lumotlarni o'qiymiz // saqlangan fayldan yangilanishlar. Axborot xavfsizligidagi yangilanishlarni yozib olishdan oldin //Distributed Database Exchange in Progress seans parametrini True qilib belgilang. //Keyin biz axborot xavfsizligidagi o'zgarishlarni o'qiymiz: Exchange Plans.ReadChanges(ReadMessage). //Shu bilan birga, biz xabarlarni massivda saqlaymiz, shunda keyin ularni bir vaqtning o'zida o'chirib tashlashimiz mumkin. ReadXML = yangi ReadXML(); ReadXML.OpenFile(MessageFileName); MessageReader = ExchangePlans.CreateMessageReader(); ReadMessage.StartReading(ReadingXML); SessionParameters.DistributedBaseExchange davom etmoqda = Rost; ExchangePlans.ReadChanges(ReadMessage); ReadMessage.FinishReading(); ReadXML.Close(); Agar Constants.OutputExchangeMessages.Get() bo'lsa, hisobot (" ALMA: Ma'lumotlarni almashish qabul qilinadi",MessageStatus.Information); EndIf; Istisno hisoboti(" EXCHANGE: almashinuv ma'lumotlarini olishda xatolik yuz berdi:" + ErrorDescription(), MessageStatus.VeryImportant); EndAttempt; //Almashtirish ma'lumotlarini o'qib bo'lgach, qayting //DistributedBase Exchange davom etayotgan seans parametri False ga o'rnatiladi. SessionParameters.DistributedBaseExchange davom etmoqda = False; Fayllarni o'chirishga urinish (MessageFileName); Istisno // agar u ishlamasa, yaxshi EndAttempt; EndCycle; Agar siz SMTP dan foydalansangiz, Mail.DeleteMessages(MessageArray); endIf; Mail.Disconnect(); Jarayonning oxiri

Endi Distributed Database Exchange In Progress seansi parametri nima uchun kerakligi haqida.
Gap shundaki, ExchangePlans.ReadChanges() usuli yordamida ma'lumotlarni o'qiyotganda qo'ng'iroq amalga oshiriladi
o'zgartirilgan/qo'shilgan ob'ektlarning BeforeWrite() hodisasi uchun ishlov beruvchi protseduralari. Va agar yozish paytida
ishlov beruvchi protsedurasidagi har qanday ob'ekt uchun Rad etish parametri True ga o'rnatiladi, keyin
ExchangePlans.ReadChanges() ni bajarayotganda istisno yuzaga keladi va shunga mos ravishda almashinuv
ijro etilmaydi. DistributedBase Exchange In Progress seansi parametrining qiymati bo'lishi mumkin
Bunday vaziyatni oldini olish uchun ishlov beruvchi protseduralarida tahlil qilinadi.
12-nashrning chiqarilishi bilan (garchi men versiyalar haqida noto'g'ri bo'lishim mumkin), bu usulning dolzarbligi biroz bo'ladi.
deprecatedA, chunki ob'ektlar endi xususiyatga ega Almashtirish imkoniyatlari, kimdan, o‘ziga xos. Bu xususiyat qachon rost bo'lsa, o'rnatiladi
almashish rejasi orqali ma'lumotlarni saqlash.

Endi panelimizdagi interfeysga biz qo'ng'iroqni osib qo'yadigan yana bir tugmani qo'shamiz
protseduralar. Keling, Enterprise-ni ishga tushiramiz va zavqlanamiz.
Deyarli hamma narsa bajarildi, faqat bir oz qoldi: protseduralarimiz avtomatik ravishda bajarilishi uchun.
Qadam 4. Avtomatik almashinuvni sozlash

Demak, hikoyamiz maqsadiga deyarli yaqinlashdik. Faqat bir qadam qoldi: ishga tushirish
almashinuv jarayonlarini avtomatik ravishda amalga oshirish. Qani boshladik.

Number(5,0) tipidagi DistributedBase Autoexchange Interval konstantasini qo'shamiz.

Keling, foydalanuvchi sozlamalariga Perform Distributed Database Exchange parametrini qo'shamiz. Konfiguratsiya uchun
"Savdoni boshqarish" quyidagicha amalga oshiriladi:

* "Foydalanuvchi sozlamalari" xarakteristikalari rejasiga biz oldindan belgilanganini qo'shamiz
xarakteristikasi Boolean tipidagi taqsimlangan ma'lumotlar bazalari almashinuvini amalga oshirish.
* "Foydalanuvchilar" katalog elementi ko'rinishida biz ushbu parametrga o'zgartirish kiritamiz (bu kabi
shakl modulida, boshqa parametrlarga o'xshash tarzda amalga oshirilishi mumkin).

Protsedurani rbDistributedBase moduliga qo'shing:

Protsedura rbPerformExchange(user) Eksport Agar npGetDefaultValue(foydalanuvchi, "") keyin rbGetExchangeMessages(); rbSendExchangeMessages(); endIf; Jarayonning oxiri

dastur moduliga:

Protsedura CheckConnectionAutoExchange() eksport qilish, agar npGetDefaultValue(chCurrentUser, " Tarqalgan ma'lumotlar bazalari almashinuvini amalga oshirish") Va Constants.DistributedBaseAutoExchangeInterval.Get() > 0 Keyin ConnectWaitHandler(" Autoexchange-ni ishga tushiring", Constants.DistributedBaseAutoExchangeInterval.Get()); Aks holda, DisableWaitHandler(" Autoexchange-ni ishga tushiring"); EndIf; EndProcedure Protsedura ExecuteAutoExchange() eksport rbExchange(glCurrentUser); DisableWaitHandler(" Autoexchange-ni ishga tushiring"); Agar npGetDefaultValue(chCurrentUser, " Tarqalgan ma'lumotlar bazalari almashinuvini amalga oshirish") Va Constants.DistributedBaseAutoExchangeInterval.Get() > 0 Keyin ConnectWaitHandler(" Autoexchange-ni ishga tushiring", Constants.DistributedBaseAutoExchangeInterval.Get()); EndIf; EndProcedure Protsedura DisableAutoExchange() Export DisableWaitHandler(" Autoexchange-ni ishga tushiring"); EndProcedure

Ilova modulining WhenSystemStart() protsedurasiga quyidagi qatorlarni qo'shing:

(tijorat uskunasini ulagandan keyin)
...
SessionParameters.DistributedBaseExchange davom etmoqda = False; CheckAutoExchangeConnection();

Jarayonni boshqarish uchun panelimizga yana ikkita tugma qo'shamiz: bittasiga protsedura qo'shing
CheckConnectAutoExchange(), boshqa tomondan - DisableAutoExchange()

Biz korxonani ishga tushiramiz, foydalanuvchi xususiyatlarini va avtomatik almashish oralig'ini sozlaymiz va tamom!

Endi, ushbu eng ko'p sozlangan foydalanuvchi ostidagi ma'lumotlar bazasiga kirishda ishlov beruvchi ishga tushiriladi
ExecuteAutoExchange() kutilmoqda. Tabiiyki, siz periferik ma'lumotlar bazasida foydalanuvchini ham sozlashingiz kerak
almashish uchun.

Yana bir kichik, ammo muhim eslatma:

Biz yaratgan barcha go'zallikda bitta muammo bor: konfiguratsiyani o'zgartirish. Da
Periferik baza konfiguratsiya o'zgarishlarini o'z ichiga olgan xabarni olganda, u
qabul qilinadi, lekin istisno sodir bo'ladi. Bunday holda, o'zgartirilgan konfiguratsiya bo'ladi
yuklangan. Ma'lumotlar bazasi konfiguratsiyasini yangilash uchun siz barcha foydalanuvchilarni chiqarib tashlashingiz kerak, o'ting
konfigurator va ma'lumotlar bazasi konfiguratsiyasini yangilang (buni amalga oshirishdan oldin ma'lumotlarni yuklash yaxshidir). TO
Afsuski, bu zaruriy yovuzlikdir. Qisqa bat faylini yozish orqali hayotingizni biroz osonlashtirasiz
shunga o'xshash narsa:

1cv8.exe CONFIG /F<путь к ИБ>/N<Пользователь>/P<Пароль>/UpdateIBCfg

Va yana bir eslatma:

Afsuski, xml fayllari ixcham emas, lekin, xayriyatki, ular mukammal siqilgan. Mumkin
xabarlarni jo'natish va qabul qilish tartiblari, fayllarni qadoqlash va ochish. COLOR="#666666">Buni tashqi arxivator yoki VK yordamida amalga oshirish mumkin, masalan, Wheel.AddIn
(http://1c.proclub.ru/modules/mydownloads/personal.php?cid=81&lid=2714) .
10-nashr chiqishi bilan oldingi taklif biroz eskirgan, chunki platforma
ZIP algoritmidan foydalangan holda o'rnatilgan fayllarni siqish vositalari mavjud edi. Bular. endi fayllarni siqish mumkin
VK dan foydalanmasdan.

Sizga maqola yoqdimi? Do'stlaringizga ulashing: