1s 8.3 jadvalga muvofiq tashqi ishlov berish. Universal tartibga solish vazifasi

Muntazam vazifani yaratish

Keling, "Qayta ishlashni amalga oshirish" muntazam topshirig'ini yarataylik.

Konfiguratsiyani yangilashda u avtomatik ravishda ishlamasligi uchun rejalashtirilgan vazifadan foydalanishni o'chirib qo'yamiz.

Oddiy vazifa ishga tushirilganda ishga tushadigan protsedura tayinlaymiz:RoutineTasks moduli.RoutineTaskExecutionProcessing.

Jarayonning o'zi quyidagicha ko'rinadi:

Protsedura RoutineTaskExecutionProcessing(Kalit) eksporti

RoutineTasks.PerformProcessingWithParameters(Key) parametrlari;

Jarayonning oxiri

Biz muntazam vazifalar uchun ma'lumotnoma yaratamiz

Bizning muntazam vazifamiz ko'plab fon jarayonlarini yaratishi mumkin - har bir ishlov berish uchun bittadan. 1C8 platformasidagi har bir vazifa kalitga ega. Ammo rejalashtirilgan ish usuli fon ishining kalitini bilmaydi, shuning uchun siz fon ishining parametrlaridan foydalanishingiz kerak. Natijada, biz ish konsolida fon ishni ko'rishimiz mumkin, ammo biz ushbu konsoldan fon ishini qo'lda yarata olmaymiz, chunki parametrlarga ega ish o'rinlari qo'lda yaratilmaydi.

"Rejalashtirilgan vazifalar parametrlari" ma'lumotnomasi :

Rekvizitlar :

· Ishga tushirishdan oldin kod- cheksiz qator - ishga tushirishdan oldin bajarilishi kerak bo'lgan 1C tilidagi kod.

· Konfiguratsiyadan ishlov berish - chiziq (100) - konfiguratsiyadan identifikatorni qayta ishlash

· Katalogdan ishlov berish - (100) - "Tashqi ishlov berish" katalog elementiga havola, agar konfiguratsiyada mavjud bo'lsa

· 1C ilovasi orqali bajaring - Boolean - alohida 1C ilovasi yaratiladi va unda odatiy vazifa ishga tushiriladi. Rejalashtirilgan ish bajarilayotgan serverda barcha dastur usullari mavjud bo'lmagan 8.1 uchun yaratilgan.

· Ishga tushirish kodi- - cheksiz qator - rejalashtirilgan vazifa ishga tushirilganda bajariladigan 1C tilidagi kod.

Keling, elementning shaklini yarataylik :

"Reg. yaratish" tugmasini bosish orqali. vazifa" kalit kodli muntazam vazifa dasturiy ravishda yaratiladi:

Protsedura BasicActionsFormCreateReglTask(tugma)

O'zgaruvchan ish;

Kalit = AbbrLP(Kod);

Vazifa = RoutineTasks.CreateRoutineTask("PerformProcessing");

Task.Name = Kalit;

Task.Key = Kalit;

Parametrlar = New Array();

Parameters.Add(Key);

Task.Parameters = Parametrlar;

Task.Write();

Jarayonning oxiri

Rejalashtirilgan vazifani boshlash

Biz yaratgan har bir muntazam vazifa kalitga ega:

Ushbu kalit "Oddiy vazifalar parametrlari" katalogidagi kodga mos keladi, u vazifani boshlashda qidirish uchun ishlatiladi. Agar katalog yozuvi topilmasa, vazifa bajarilmaydi.

Keyinchalik, agar kod berilgan bo'lsaIshga tushirishdan oldin kod keyin bu kod bajariladi. Keyingi, agar o'zgaruvchi bo'lsa Bajo keltiring noto'g'ri deb baholaydi, topshiriq bajarilmaydi. Tahlil uchun mavjud o'zgaruvchi Variantlar, bu erda topilgan katalog elementiga havola saqlanadi "Oddiy vazifalar parametrlari".

Tafsilotlarning tanlangan qiymatlariga qarab, 1C tilidagi kod ishlaydi yoki konfiguratsiyadan ishlov berish boshlanadi yoki standart "Tashqi ishlov berish" ma'lumotnomasidan ishlov berish boshlanadi.

1C81 uchun ijro yangi dasturda taqdim etilgan - shuning uchun siz faqat mijozda mavjud bo'lgan koddan, shu jumladan tashqi ishlov berishdan foydalanishingiz mumkin. Buni amalga oshirish uchun siz "1C ilovasini ishga tushirish" katagiga belgi qo'yishingiz kerak. Aks holda, rejalashtirilgan vazifa serverda bajariladi.

Men "Foydalanuvchi" maydoniga yangi yaratilgan muntazam topshiriq uchun foydalanuvchini o'rnatishni tavsiya qilaman, shunda vazifa ma'lum huquqlar ostida amalga oshiriladi. Men bunday foydalanuvchiga to'liq huquqlarni berishni tavsiya qilaman. Men foydalanuvchidan foydalanaman "robot».

Muntazam topshiriqlar jadvali muntazam topshiriq shaklidan "Jadval" giperhavolasi yordamida tuziladi. Siz “Oddiy vazifalar konsoli” ishlovidan foydalanishingiz mumkin.

Savol: Zup3-da qo'shimcha ishlov berishga kirishda muammo


qo'shimcha ishlov berishni yaratdi va uni ish haqi bo'limiga joylashtirdi. Kadrlar bo'yicha yuqori lavozimli xodimning huquqlariga ega foydalanuvchi buxgalterni ishga tushira olmaydi, unda "kirish huquqlari etarli emas" deb aytiladi. Qo'shimcha ishlov berish uchun ruxsatlarni qanday o'rnatish kerak?

Ish haqi va xodimlarni boshqarish, 3.0 nashri (3.0.24.115) ()
Mualliflik huquqi © MChJ "1C", 2007-2014. Barcha huquqlar himoyalangan
()

Javob:

Savol: Jadval bo'yicha qo'shimcha ishlov berish


Hammaga salom. Men endigina dasturlashni o'rganyapman, shuning uchun noto'g'ri savollar berganim uchun meni ko'p qoralamang. 1C Chakana savdo 2.2.5.27 Tugmani bosganingizda fayldan ma'lumotlarni ma'lumotlar registriga yuklaydigan tashqi ishlov berish yaratildi. Har bir narsa qo'lda yaxshi ishlaydi, ammo endi vazifa bu ishlov berish jadval bo'yicha va shaklni ochmasdan boshlanishiga ishonch hosil qilishdir. Ya'ni fonda shunday ishlaydiki.
Qayta ishlash "Qo'shimcha hisobotlar va ishlov berish" shaklida ulanadi

Form modulidagi kod

Function InformationOnExternalProcessing() ExportRegistrationParameters = Yangi tuzilma; Registration Parameters.Insert("Ko'rish", "Qo'shimcha ishlov berish"); Registration Parameters.Insert("Ism", "Yuklash balanslari (PCService(C))"); Registration Parameters.Insert("Versiya", "1.0"); Registratsiya Parametrlari.Insert("Xavfsiz rejim", False); Registration Parameters.Insert("Ma'lumot", "Yuklash qolgan"); Registration Parameters.Insert("BSPVersion", "2.3.2.33"); Buyruqlar jadvali = GetCommandTable(); AddCommand(Buyruqlar jadvali, "Yuklash balanslari (PCService(C))", "1", "OpenForm", Rost,""); AddCommand(Buyruqlar jadvali, "Yuklash balanslari (PCService(C))", "2", "CallServerMethod", True,""); TeamId = "2"; Registratsiya Parametrlari.Insert("Buyruqlar", Buyruqlar jadvali); ReturnRegistrationParameters; EndFunction Function GetTableCommands() Buyruqlar = NewValueTable; Commands.Columns.Add("Ko'rish", NewTypeDescription("Qatr")); Commands.Columns.Add("Identifikator", New TypeDescription("String")); Commands.Columns.Add("Usage", New TypeDescription("Satr")); Commands.Columns.Add("ShowAlert", NewTypeDescription("Mantiqiy")); Commands.Columns.Add("Modifier", New TypeDescription("Satr")); Qaytish jamoasi; EndFunction protsedurasi AddCommand(Buyruqlar jadvali, Ko‘rish, Identifikator, Foydalanish, ShowAlert = False, Modifikator = "") NewCommand = CommandTable.Add(); NewCommand.View = Ko'rish; NewCommand.Identifier = Identifikator; NewCommand.Use = Foydalanish; NewCommand.ShowAlert = ShowAlert; NewCommand.Modifier = Modifikator; Protseduraning tugashi & Server protsedurasida Buyruqni bajarish (Buyruq identifikatori, tayinlash ob'ektlari) Eksport qilish protsedurasining oxiri

“Formani ochish” ishga tushirish varianti bilan bajarish tugmasini bosganingizda, forma ochiladi va dastur darhol bajariladi (u darhol bajariladi, chunki "When CreatedOnServer" hodisalarida formada asosiy kod ko'rsatilgan. dastur bajariladi)
"Call ServerMethod" ishga tushirish opsiyasi bilan "Bajarish" tugmasini bosganingizda, u hech qanday xatolikka yo'l qo'ymaydi, ammo natija yo'q.
Men nima noto'g'ri qilyapman??

Javob:

Men hamma narsani chekdim. Bu erda men formani ochmasdan bajarilishini xohlagan kodni nusxalashim kerak edi

Savol: Chakana savdo 2.2 jadvalga muvofiq qo'shimcha ishlov berishni ishga tushirish


Salom. Chakana savdo 2.2, qo'shimcha ishlov berish yoqilgan va rejalashtirilgan bajarish o'rnatilgan. Men bajarilishini - Qo'llab-quvvatlash va texnik xizmat ko'rsatish - muntazam vazifalar orqali kuzataman, mening vazifam jadvalga muvofiq ishlaydi yoki ishlashni to'xtatadi, bir muncha vaqt u jadvalga muvofiq ishlaydi va o'z-o'zidan ishlashni to'xtatadi. Bu ishlov berishning o'zi emas, chunki u xato qilmaydi, lekin vazifa oddiygina boshlamaydi. Keyin u o'z-o'zidan normal ishlay boshlaydi. Muntazam ishning boshlanishiga nima ta'sir qilishi mumkin?
Men turli jadvallarni o'rnatishga harakat qildim, lekin u ishlamadi.

Javob:

Muammo platformani barcha kompyuterlarga qayta o'rnatish orqali hal qilindi

Savol: Qo'shimcha ishlov berish


Hammaga xayrli kun.
Kompaniyamizni boshqarish, 1.6 (1.6.12.4) versiyasi

Ayting-chi, konfiguratorga tegmasdan quyi tizimga qo'shimcha ishlov berish mumkinmi?
Bular. Menga ishlov berish qo'shimcha ishlov berish orqali emas, balki tashqi hisobot sifatida darhol quyi tizimlar ro'yxatida chaqirilishi kerak.

Javob:

Kengaytmada hisobot yarating, kerakli (mavjud) quyi tizimni kengaytmaga qo'shing, "kengaytirilgan" quyi tizimda yaratilgan hisobotga havola qiling.

Savol: BSP yordamida qo'shimcha ishlov berishda veb-xizmatlardan foydalanish


Hayrli kun!
Yangi ma'lumotlar bazasining veb-xizmatiga kirish uchun qo'shimcha ishlov berishni yaratish kerak. Qayta ishlash, albatta, xavfsiz rejimda, ammo "standart quyi tizimlar kutubxonasining xavfsiz rejim kengaytmasidan (fayllar, Internet-resurslar va boshqalar bilan ishlash qobiliyati) ro'yxatdan o'tgan maxsus dasturiy interfeys orqali foydalanishga ruxsat beriladi. qo'shimcha hisobot berish/qayta ishlash uchun zarur bo'lgan ruxsatnomalar. Biroq, BSP ning joriy versiyasida buni qanday sozlashni topa olmayapman. yordam bering, iltimos, ma'lumotlar bazasining yangi versiyasi: Enterprise Accounting, nashr 3 .0 (3 .0 .59 .45) BSP 2 .4 .5 .31

Javob: oO

Savol: Muayyan qayta ishlashni boshlashda ZUP ishdan chiqadi, nima qilishim kerak?


Ishdan bo'shatish asosida kiritilgan hisob-kitob hujjatlarini yangilaydigan qo'shimcha mavjud. Ushbu qayta ishlash boshlanganda, dastur hech qanday xabarsiz ahmoqona yopiladi. Men tuzatuvchida hech narsa ko'rmayapman. 1 ta hujjat tuzilgan sinov sanasida u o'tadi. Yana nima qilishim kerak? Men sinovdan o'tdim va hech qanday xatolik yo'qdek tuyuldi.

Javob: ajoyib, lekin sikl nima uchun kerak edi? Agar sizda biron bir yozuv bo'lsa, unda yozing, bilmayman, jurnalga yoki boshqa narsaga, yo'q, keyin o'zgartiring yoki hech narsa qilmang

Savol: Qo'shimcha ishlov berishning rejalashtirilgan vazifasi


Alfa-Auto konfiguratsiyasi: Avtosalon + Avtoservis + Avto ehtiyot qismlar CORP. 6-nashr.
Yaratilgan tashqi ishlov berish. Men uni qo'shimcha ishlov berish sifatida uladim.
Rejalashtirilgan bajarilishini sozlang. Ammo bu xato bilan boshlanmaydi:
RoutineTasksOverridden.WhenDefiningRegularTaskSettings() protsedurasida sozlamalar yo'qligi sababli "Qo'shimcha ishlov berishni ishga tushirish" muntazam topshirig'ini bajarib bo'lmaydi. Tizim administratoringizga murojaat qiling!
Qayta ishlash yoki bazani o'rnatishda nima noto'g'ri ekanligini kim menga ayta oladi.

Javob:() Shunday qilib, siz RoutineTasksOverridden.WhenDefiningSettingsofRoutineTasks() da nima borligini ko'rasiz.
BSPda bu protsedura odatda bo'sh. Alpha-da biror narsa yaxshilangan bo'lishi mumkin.

Savol: Tashqi ishlov berishni avtomatik boshlash


Hammaga xayrli kun. Iltimos, aziz 1C dasturchilari, ushbu muammoni hal qilishga yordam bering.
Tashqi ishlov berish mavjud, unda ikkita tugma mavjud, "Ishga tushirish" va "Yuborish". "Ishga tushirish" tugmachasini bosganingizda, jadval qismi to'ldiriladi.
"Yuborish" tugmasini bosganingizda, jadval bo'limidagi ma'lumotlar va biriktirilgan fayl bilan elektron pochta xabari yuboriladi.

Savol: Ushbu ishlov berishni har kuni avtomatik ravishda amalga oshirish mumkinmi? BULAR. masalan: har kuni ertalab soat 08:00 da "Ishga tushirish" va "Yuborish" tugmalari protsedurasi ishga tushirildimi? Server bazasi. Men har qanday yordam va har qanday variantdan xursand bo'laman.

Javob:() Va ushbu ishga tushirish opsiyasi bilan 1C jarayoni qayta ishlashdan keyin yopiladimi? yoki uni ShutdownSystem(False) orqali qayta ishlashni to'xtatish kerakmi?

Xayrli tong, menga ishlov berish jadvaliga muvofiq ishlaydigan skriptni ayting, aniqrog'i muammo shundaki, sizga 1s 77 dan boshlanadigan skript (paket fayli) kerak, lekin tekshirgandan so'ng, agar normal ishga tushirish muvaffaqiyatsiz bo'lsa, u eksklyuziv bo'ladi. qayta indekslash bilan. Va tercihen tashqi ishlov berishning ochilishi bilan. Bu avtomatik yuklash uchun kerak, lekin jo'natish vaqtlari hamma joyda boshqacha o'rnatiladi. va asosan tunda.

Javob: har qanday ncron xstarter rejalashtiruvchisi

2017-12-19T18:29:06+00:00

Yangilash uchun talab qilinmaydi rejalashtirilgan operatsiyalarni ishga tushirish uchun har doim ochiq bo'ling yoki xizmat sifatida ishlating.

Rejalashtirilgan ishga tushirish "Vazifalarni rejalashtiruvchi" deb nomlangan standart Windows mexanizmi orqali ishlaydi.

Va foydalanuvchi jadval sozlamalarini o'rnatganda ...

Yangilovchi avtomatik ravishda rejalashtiruvchida kerakli vazifalarni yaratadi:

Nimani unutmasligingiz kerak

Foydalanuvchi tanlovi

Shuni unutmasligimiz kerakki, biz belgilagan foydalanuvchi rejalashtirilgan operatsiyalarni bajarishi uchun...

"To'plamli ish sifatida kirish" uchun tizim huquqlariga ega bo'lishi kerak.

Foydalanuvchining kerakli huquqlarga ega ekanligini qanday tekshirish mumkin?

Eng oson variant - rejalashtiruvchida yaratilgan vazifani o'ng tugmasini bosing va "Ishga tushirish" ni tanlang:

Agar vazifa bajarilgandan so'ng, uni ishga tushirish natijasi muvaffaqiyatli bo'lsa ...

Agar bunday bo'lmasa, biz tizim ma'muriga murojaat qilamiz, shunda u xavfsizlik siyosatida u (bizning foydalanuvchimiz yoki uning guruhi) bandida " Ommaviy ish sifatida tizimga kirish", shuningdek," bandidan chiqarib tashlangan Ommaviy ish sifatida kirishni rad etish".

Bo'sh bo'lmagan parolga ega bo'lishi kerak. Bu Windows xavfsizlik talabidir. Agar siz ushbu aniq cheklovga duch kelsangiz, unda eng to'g'ri echim bo'ladi:

  • yoki joriy foydalanuvchiga parol tayinlang, uning ostida siz yangilovchini jadval bo'yicha ishga tushirmoqchisiz
  • yoki tizimda yangilash jadvalida ro'yxatdan o'tiladigan parol bilan alohida foydalanuvchi yarating

Xo'sh, ushbu cheklovning eng oddiy (lekin xavfsizlik nuqtai nazaridan noto'g'ri) yechimi mahalliy kompyuter xavfsizligi siyosatida "Faqat konsolga kirish paytida bo'sh parollardan foydalanishga ruxsat berish" opsiyasini o'chirib qo'yishdir.

Bazalarni tanlash

Bundan tashqari, rejalashtirilgan operatsiyalarda faqat jadvalda ishtirok etadigan ma'lumotlar bazalari ro'yxatida tanlangan ma'lumotlar bazalari ishtirok etishini unutmasligimiz kerak:

Bunday holda, tasdiq belgisi umumiy ro'yxatdagi bazaning yonida bo'lishi muhim emas:

Ushbu tasdiqlash qutilari (umumiy ro'yxatda) faqat operatsiyalarni qo'lda boshlash uchun mo'ljallangan va rejalashtirilgan ishga tushirishga hech qanday ta'sir qilmaydi.

Ishga tushirish tartibi

Va nihoyat, yana bir aniq bo'lmagan nuqta. Rejalashtirilgan vazifani bajarayotganda, yangilovchi birinchi navbatda boshqa rejalashtirilgan vazifa ishlayotganligini tekshiradi. Va agar u bajarilsa, u birinchi navbatda uning tugashini kutadi va shundan keyingina yangisini amalga oshiradi.

Bu shuni anglatadiki, agar biz, masalan, arxivlashni soat 22:00 da amalga oshirish uchun sozlashimiz kerak bo'lsa va ma'lumotlar bazalari u tugagandan so'ng darhol yangilanishi kerak bo'lsa, arxivlashning boshlanish vaqtini 22:00 va yangilash uchun belgilash kifoya. , masalan, 22-01.

Agar sizga murakkabroq jadval kerak bo'lsa-chi?

Agar bizga ma'lum kunlarda ma'lum bir vaqtda muntazam ishga tushirish kerak bo'lmasa-chi? Agar biz, aytaylik, har yarim soatda soat 5 da yoki shunga o'xshash narsalarni boshlamoqchi bo'lsak-chi?

Bunday holda, biz vazifalarni rejalashtiruvchining to'liq quvvatidan foydalanishimiz kerak.

Birinchidan, biz yangilovchi orqali jadvalni o'rnatamiz, bu rejalashtiruvchida ma'lum bir jadval sozlanishini ko'rsatadi:

Va shundan keyingina Windows Scheduler-da yangilovchi tomonidan yaratilgan vazifalarning xususiyatlarini oching:

Va tegishli yorliqlarda biz yuragimiz xohlagan hamma narsani sozlaymiz:

Ma'lumotlar bazasini ba'zi rejalashtirilgan operatsiyalardan qanday chiqarish mumkin

Faraz qilaylik, bizda yangilash va arxivlash uchun tuzilgan jadval mavjud:

Shu bilan birga, biz bitta ma'lumotlar bazasi rejalashtirilgan arxivlashda ishtirok etishini xohlaymiz, lekin rejalashtirilgan yangilanishda qatnashmasligimiz kerak.

Bunga qanday erishish mumkin - axir, bizda jadvalda ishtirok etadigan bazalarning bir xil ro'yxati bor:

Va buni qilish juda oson.

Rejalashtirilgan yangilanishlardan chiqarib tashlamoqchi bo'lgan ma'lumotlar bazasi xususiyatlariga o'ting va oynaning pastki qismida "Ba'zi operatsiyalarni istisno qilish ..." bandini toping:

Unga bosing va ushbu ma'lumotlar bazasini yangilashni rejalashtirilgan ishga tushirishdan istisno qiling:

Bu shunday ko'rinishi kerak:

Boshqa parametrlar bilan jadval bo'yicha ishlash mumkinmi?

Vazifalarni rejalashtiruvchidagi vazifa ma'lum buyruq qatori parametrlari bilan yangilovchini muntazam ishga tushirish ekanligiga alohida e'tibor qaratmoqchiman:

Va yangilovchi buyruq qatori orqali ishga tushirish uchun ko'plab parametrlarga ega.

Ulardan foydalanib, siz avtomatlashtirishni yanada nozik va ehtiyojlaringizga qarab sozlashingiz mumkin. Faqat allaqachon yaratilgan yangilash vazifasidagi buyruq qatori parametrlarini o'zgartirmang - aks holda rejalashtirilgan ishga tushirish sozlamalarini yangilashda ularni dastlabki holatga qaytaradi. Buning o'rniga, yaratilgan vazifani rejalashtiruvchiga nusxa ko'chiring (o'z nomiga ega bo'lishi uchun) va uni o'zgartiring.

Barcha yangilovchi buyruq qatori kalitlari haqida.

Yangilash moslamasi jadvalga muvofiq ishga tushirilganligini qanday aniqlash mumkin

Jadval tuzilganga o'xshaydi, lekin nimadir noto'g'ri ketmoqda.

Va biz o'sha kechada yangilovchi ishga tushirilganiga amin emasmiz.

Avvalo, men sizning e'tiboringizni yangilashning asosiy oynasidagi rejalashtirilgan operatsiyalar holati ko'rsatiladigan maydonga qaratmoqchiman:

Bu erda biz mos keladigani necha kun oldin ishga tushirilganini ko'ramiz. rejalashtirilgan operatsiya; qancha ma'lumotlar bazalari ishtirok etgan va xatolar mavjudmi. Bundan tashqari, agar biz ushbu havolalarni sichqonchaning chap tugmasi bilan bossak, tegishli hisobot ochiladi.

Toʻliq yangilovchi hisobot jurnaliga ham oʻtishimiz mumkin...

Va vazifalar bajarilganligini tekshiring.

Ammo dastur ishga tushganmi yoki yo'qligini aniqlash va uning ishlamay qolishi yoki to'satdan tugatilishi sabablarini tushunishning eng ishonchli usuli bu Windows Scheduler-dagi barcha vazifalar jurnalini yoqishdir. Odatiy bo'lib, u o'chirilgan va muammoli vaziyatlarni har doim aniqlab olishingiz uchun uni yoqishni maslahat beraman.

Windows Scheduler jurnalini yoqish uchun "Reja bo'yicha ishga tushirish" muloqot oynasiga o'ting va "Windows Schedulerni ochish" tugmasini bosing:

Buni Windows boshqaruv panelidan ham amalga oshirish mumkin (Ma'muriyat bo'limi).

Bu erda biz "Barcha vazifalar jurnalini yoqish" bandini topamiz va bosing:

Tayyor! Endi biz har qanday vazifaning tarixini rejalashtiruvchida ko'rishimiz mumkin.

Masalan, yangilash vazifalaridan birini ajratib ko'rsatamiz:

Yangilash vazifalarini bajarish uchun bulutli monitoring tizimini qanday sozlash kerak

Endi men sizga vaziyatdan o'zingizni sug'urta qilish usuli haqida gapirib beraman - "oh, bizning ma'lumotlar bazalarimiz bir hafta davomida arxivlanmagan (yangilangan, sinovdan o'tkazilmagan.)".

Agar biz arxivlashni jadval bo'yicha boshlash uchun sozlagan bo'lsak va keyin:

  • boshqa server ma'muri bizning hisob qaydnomamizdan rejalashtiruvchidan arxivlashni boshlash huquqini olib qo'ydi va bu holda yangilovchi hatto bizga elektron pochta orqali bildirishnoma yubora olmaydi, chunki buning uchun u ishga tushishi kerak, lekin qilish huquqi yo'q. shunday...
  • yoki boshqa xatolar yuz berdi va yangilovchi bizga xato xabarini yuborishi uchun serverda Internet yo'q...
  • yoki biz o'zimiz xato qilib yangilovchida rejalashtirilgan arxivlashni o'chirib qo'ydik...
  • nima bo'lishi mumkinligini hech qachon bilmaysiz ...

Siz qilishingiz kerak bo'lgan yagona narsa, elektron pochta orqali xato xabarnomalarini o'rnatishdan tashqari, bizning yangilovchimiz ishga tushirilishini kuzatish uchun bulut tizimini o'rnatishdir. Bu nima va u qanday ishlaydi?

Bu, mening fikrimcha, Healthchecks.io deb nomlangan mutlaqo ajoyib narsa. Bu bolalarning ham pullik rejalari bor, lekin ularning bepul rejasi biz uchun yaxshi.

Fikr quyidagicha. Biz ularning veb-saytida ro'yxatdan o'tamiz va shaxsiy hisobimizda biz quyidagilarni aytishimiz mumkin:

  • Hey, HealthChecks, menga noyob URL (Internet-resurs manzili) bering.
  • HealthChecks, agar falon vaqt davomida bu manzilni hech kim taqillatmasa (so'ramasa), bu haqda menga falon elektron pochta orqali xabar bering.

Keyin biz ushbu manzilni yangilovchida ko'rsatamiz va u buni, masalan, har bir rejalashtirilgan arxivlash oxirida so'raydi. Va agar biror nuqtada u to'satdan ishga tushishni to'xtatsa yoki ishlamay qolsa, HealthChecks xizmati bu haqda bizga xabar beradi. Bizning serverimiz yonib ketsa ham, u o'g'irlanadi va mayda bo'laklarga bo'linadi..., bu haqda HealthChecks'dan birinchi bo'lib bilib olamiz.

Menimcha, bu ajoyib fikr. Agar shunday deb o'ylamasangiz, bu narsaning ma'nosini to'liq tushunmaganga o'xshaysiz - iltimos, mening noqulay matnimni qayta o'qing.

Men alohida aytib o'taman Ta'riflangan monitoring tizimi xatolar to'g'risida elektron pochta xabarlarini bekor qilmaydi, balki vaziyatni to'liq nazorat qilish uchun yangilovchida sozlanishi kerak bo'lgan elektron pochta xabarlarini to'ldiradi.

HealthChecks-ni yangilovchi bilan sozlashning eng oddiy stsenariysi

Keling, nomli serverda kundalik arxivlashni o'rnatamiz DataServer kompaniyaga tegishli "Romashka" MChJ:

Va agar yangilovchi to'satdan arxivlash ishini to'xtatsa yoki bunday ishga tushirish anormal tarzda tugasa, HealthChecks bizga xabar berishini xohlaymiz.

3. Bildirishnomalarni olmoqchi bo'lgan elektron pochta manzili bilan ro'yxatdan o'ting.

3. "Tekshiruvlar" bo'limiga o'ting va katta yashil "Chek qo'shish" tugmasini bosing.

5. Ushbu chek nomini OOO "Romashka" (DataServer, arxivlash) ga o'zgartiramiz. Buni tekshirish aynan nima bilan bog'liqligini tushunishimiz uchun qilish kerak (Romashka MChJ kompaniyasidagi DataServer nomli serverda arxivlash):

6. Tekshirish muddatini belgilang (arxivlash kuniga bir marta boshlanishi kerak, arxivlash jarayonining o'zi 12 soatgacha davom etishi mumkin):

Ikkinchi slayder (inoyat) aniq muddatning ruxsat etilgan oshib ketishi, ya'ni arxivlash jarayoni davom etishi mumkin bo'lgan vaqt.

Men qo'shimcha 12 soatlik chegarani (inoyat) ataylab ko'rsatdim, chunki yangilovchi o'z ishining oxirida monitoring tizimiga so'rov yuboradi va tugatish vaqti turli shartlarga qarab farq qilishi mumkin.

Misol uchun, agar biz yangilanishni soat 22:00 da boshlashni rejalashtirsak, bugun bu yangilanish 23:00 da tugashi mumkin, ertaga esa (ko'plab yangi yangilanishlar chiqdi) u ertalab soat 4 gacha davom etadi.

Shunday qilib, HealthChecks-dan noto'g'ri ijobiy natijalarni oldini olish uchun qo'shimcha 12 soatlik marj.

Davrni belgilash natijasi quyidagicha bo'ladi:

7. Lekin siz ko'rib turganingizdek, oxirgi Ping maydoni bo'sh (Hech qachon). Arxivlash vaqtida ushbu manzilga yangilovchi tomonidan kirishi sababli u yangilanadi. Va agar 1 kun va 12 soatdan ko'proq vaqt davomida hech qanday so'rov bo'lmasa, HealthChecks signal beradi va bizga elektron pochta orqali xabar beradi.

Ushbu maqolada biz 1C 8.3 da boshqariladigan dastur rejimida tashqi ishlov berishni yaratish bo'yicha bosqichma-bosqich ko'rsatmalarni ko'rib chiqamiz, shunga ko'ra biz boshqariladigan shakllardan foydalanamiz. Va eng muhimi, biz uni 2.0 va undan keyingi standart quyi tizimlar kutubxonasida qurilgan 1C konfiguratsiyasini "tashqi ishlov berish" mexanizmiga qanday ulashni o'rganamiz.

Vazifa quyidagilardan iborat bo'ladi: "Item" katalogida guruh harakatini amalga oshiradigan eng oddiy tashqi ishlov berishni yaratish, ya'ni belgilangan elementlar guruhi uchun tanlangan QQS stavkasini o'rnatish.

Buning uchun biz darhol dasturda kerakli sozlamalarni o'rnatamiz (biz 1C 8.3 konfiguratsiyasini ko'rib chiqamiz: boshqariladigan shakllarda "Korxona hisobi 3.0").

Ushbu katakchani belgilash bizga tashqi ishlov berishdan foydalanish imkoniyatini beradi.

Misol yordamida 1C 8.3 da yangi tashqi ishlov berishni yaratish

Endi konfiguratorga o'tamiz. "Fayl" menyusida "Yangi ..." ni tanlang. Yaratiladigan fayl turini tanlash oynasi ochiladi. "Tashqi ishlov berish" ni tanlang:

Yangi tashqi ishlov berish oynasi ochiladi. Keling, darhol unga nom beraylik. Bu ishlov berishni diskka saqlashda taklif qilinadi:

Keling, yangi boshqariladigan ishlov berish shaklini qo'shamiz. Biz shuni ko'rsatamizki, bu qayta ishlash shakli va u asosiysi:

Shaklda ikkita ma'lumotga ega bo'lamiz:

  • Nomenklatura guruhi - "Nomenklatura" katalogiga havola;
  • SelectVATRate - QQS stavkasini o'tkazish uchun havola.

Yuqori o'ng oynadagi "Xususiyatlar" ustunida tafsilotlarni yaratamiz. Ularni sichqoncha bilan yuqori chap oynaga torting. Yangi tafsilotlar darhol quyidagi shaklda paydo bo'lishi kerak.

Tafsilotlar tartibini "yuqoriga" - "pastga" strelkalari yordamida o'zgartirish mumkin:

1C da 267 ta video darslarni bepul oling:

Faqatgina "O'rnatish" tugmasini qo'shish qoladi. Boshqariladigan shakllarda siz formaga shunchaki tugma qo‘sha olmaysiz. Agar siz uni forma elementlari tuzilishiga qo'shsangiz ham, u formaning o'zida ko'rinmaydi. Tugma u bajaradigan buyruq bilan bog'lanishi kerak. "Buyruqlar" yorlig'iga o'ting va "QQS stavkasini o'rnatish" buyrug'ini qo'shing. Buyruqning xususiyatlarida harakat yarating. "Mijozda" buyruqlar ishlovchisini tanlang. Buyruqni formaga oddiygina shakl elementlari bo'lgan bo'limga sudrab borish orqali ham qo'shish mumkin.

Form modulida bir xil nomdagi protsedura yaratiladi. Unda biz serverdagi protsedurani chaqiramiz:

&OnClient

QQS stavkasini belgilash tartibi (buyruq)

SetVATRateOnServer();

Jarayonning oxiri

Serverdagi protsedurada biz kichik so'rov va QQS stavkasini belgilash bilan bog'liq harakatlar yozamiz:

&Serverda

SetVATRateOnServer() protsedurasi

So'rov = Yangi so'rov;
So'rov.Matn =
"TANLANG
| Nomenklatura. Havola
|FROM
| Katalog.Nomenklatura AS Nomenklaturasi
|QAYERDA
| Nomenklatura.IERARXIYADAGI havola (&Nomenklatura guruhi)
| VA EMAS Nomenklatura.MarkDeletion
| VA Nomenklatura EMAS Bu guruhdir”;

Request.SetParameter("Elementlar guruhi", Elementlar guruhi);
ResRequest = Request.Execute();
SelectRecordDet = ResRequest.Select();

SelectRecordDet.Next() tsikli paytida

Urinish
SprNomObject.Write();
Istisno
Hisobot("Obyektni yozishda xatolik """ + SprNomObject + """!
|» + DescriptionError());
EndAttempt;

EndCycle;

Jarayonning oxiri

Biz "Forma" yorlig'iga qaytamiz, shaklga tugma qo'shamiz va uni buyruq bilan bog'laymiz:

Shunday qilib, bizning qayta ishlashimiz foydalanishga tayyor. Uni chaqirish uchun "1C Enterprise" rejimida siz "Fayl" - "Ochish" menyusiga o'tishingiz va yaratilgan faylni tanlashingiz kerak.

Biroq, ushbu rejimda ishlash disk raskadrovka ishlovi uchun qulay, lekin foydalanuvchi uchun to'liq mos kelmaydi. Foydalanuvchilar hamma narsani "barmoq uchida", ya'ni ma'lumotlar bazasida bo'lishga odatlangan.

"Qo'shimcha hisobotlar va qayta ishlash" bo'limi aynan shu maqsadda.

Lekin u yerga ishlovimizni qo'shish uchun avvalo unga tavsif berishimiz va dasturga uning xususiyatlarini aytib berishimiz kerak.

"Tashqi qayta ishlash haqida ma'lumot" funktsiyasining tavsifi

Men ushbu funktsiyaning mazmuniga misol keltiraman. U eksport qilinadigan va shunga mos ravishda ishlov berish modulida joylashgan bo'lishi kerak:

Funktsiya InformationOnExternalProcessing() eksporti

DataForReg = Yangi tuzilma();
DataForReg.Insert("Ism", "QQS stavkasini belgilash");
DataForReg.Insert("Xavfsiz rejim", rost);
DataForReg.Insert("Versiya", "ver.: 1.001");
DataForReg.Insert("Ma'lumot", "Nomenklatura ma'lumotnomasida QQS stavkasini belgilash uchun ishlov berish");
DataForReg.Insert("Ko'rish", "Qo'shimcha ishlov berish");

Buyruqlar jadvali = NewValueTable;
TabZnCommands.Columns.Add("Identifikator");
TabZnCommands.Columns.Add("Foydalanish");
TabZnCommands.Columns.Add("Ko'rish");

NewRow = TabZnCommands.Add();
NewString.Identifier = "Ochiq ishlov berish";
NewRow.Use = "Ochiq shakl";
NewRow.View = "Ochiq ishlov berish";
DataForReg.Insert("Buyruqlar", TabZnCommands);

DataForReg-ni qaytarish;

EndFunction

Ro'yxatga olish ma'lumotlari strukturasining qaysi sohalaridan foydalanish kerakligini yaxshiroq tushunish uchun "Qo'shimcha hisobotlar va ishlov berish" katalogining tafsilotlarini ko'rib chiqaylik:

Ko'rib turganingizdek, hamma narsa juda oddiy. Faqat bitta atribut mos kelmaydi: "Ishga tushirish opsiyasi" - "Foydalanish". Agar biz umumiy modullardan birining kodini ko'rib chiqsak, ushbu maydonlarning bir to'plami qanday paydo bo'lishini ko'ramiz:

Strukturaning qaysi maydonlari talab qilinishini aniqlash uchun avval uni tavsiflay olmaysiz, shunchaki bo'sh joy yarating va keyin tuzatuvchidan foydalaning. Agar siz qayta ishlashni ro'yxatdan o'tkazayotganda modullarni kuzatib boradigan bo'lsangiz, qaysi maydonlar zarur va qaysi biri kerak emasligi darhol aniq bo'ladi.

1C 8.3 da tashqi ishlov berishni ulash

Ko'pincha, 1C bilan ishlashda vaqt o'tishi bilan muntazam ravishda takrorlanadigan va asosiy ishdan chalg'itadigan shunga o'xshash operatsiyalarni bajarish kerak. Bu turli xil yuklab olish va tushirish, tashqi tahlil uchun ba'zi ma'lumotlarni yaratish va hokazo bo'lishi mumkin. Ushbu operatsiyalarni avtomatlashtirish va ularni unutishning juda oddiy usuli bor, vaqti-vaqti bilan nazorat qilish uchun elektron pochta orqali jurnal fayllarini qabul qilish.

Agar sizda ushbu operatsiyalar tashqi protsessorlar tomonidan yozilgan bo'lsa, juda yaxshi, muammo yo'q; agar bunday bo'lmasa, hamma narsani yarating va u erga ko'chiring. Keyinchalik, uning funksionalligini tekshirish uchun men bularning barchasini qo'lda rejimda sinab ko'rishni maslahat beraman va keyin, agar hamma narsa kerakli tarzda ishlayotgan bo'lsa, asosiy ishlov berish kodini qayta yozing, shunda tashqi ishlov berish yuklanganda, bajarish tugmachasini bosmasdan avtomatik ravishda ishga tushadi. kabi. Eng oddiy narsa kodni protseduraga o'tkazishdir OnOpen().

Keyingi qadam, biz yaratgan tashqi ishlovni amalga oshirgandan so'ng dasturni avtomatik ravishda yopishdir va u allaqachon biz uchun ishlaydi. Buning uchun protsedurada OnOpen() Oxirida biz quyidagi buyruqni kiritamiz: O'chirish tizimi (noto'g'ri); bu holda parametr Imkoniyatni so'rang biz yopilganda qo'shimcha tizim savollari uchun turli xil variantlarni o'chirish uchun "Yolg'on" qiymatini o'tkazamiz va shu bilan ushbu tashqi ishlov berish tugagandan so'ng 1C ni shartsiz o'chirishni boshlaymiz. Ishonch hosil qilish uchun biz dasturni qayta ishga tushiramiz va qayta ishlashni amalga oshiramiz va u ishlaganiga va dastur o'zini yopib qo'yganiga ishonch hosil qilamiz.

“C:\Program Files (x86)\1cv8\8.3.5.xxxx\bin\1cv8.exe” ENTERPRISE /DisableStartupMessages /FC:\ma’lumotlar bazasiga yo‘l /N”UserName” /P”Foydalanuvchi paroli” /Bajarish:\ qayta ishlashga yo'l\self-processing.epf

Keling, shifrlaymiz:

1. "C:\Program Files (x86)\1cv8\8.3.5.xxxx\bin\1cv8.exe" ENTERPRISE - bu holda 1C dvigatelining o'zi 8.3, yo'lni o'zingiz tekshiring, u versiyaga qarab farq qiladi va Dvigatel, shu jumladan, oxirgisini yangilagandan keyin uni tahrirlashni unutmang.

2. /DisableStartupMessages - tizim ishga tushganda barcha xabarlarni o'chirib qo'ying.

4. /N"UserName" /P"UserPassword" - mos ravishda /N foydalanuvchi nomi, shuningdek darhol bo'sh joy va /P parolsiz.

5. /Execute from:\path to processing\self-processing.epf - /Execute bizning qayta ishlashimizni boshlaydi, yo'l va nom ushbu kalitdan keyin bo'lishi kerak.

Hammasi shunday, faqat cmd faylimizni vazifa rejalashtiruvchisiga qo'shish qoladi: avtozapusk1c.cmd, uni ishga tushirish jadvalini ko'rsatgan holda.

Tashqi ishlov berish ishini kuzatish uchun men u uchun alohida foydalanuvchi yaratishni tavsiya etaman, shuningdek, qayta ishlashning o'zi elektron pochtangizga vaqti-vaqti bilan yuboriladigan jurnal faylini yaratishi ham maqbuldir.

Ushbu oddiy vositalar kundalik ishlarni avtomatlashtirishga yordam beradi, sizga omad tilaymiz!