Internet Windows Android
Kengaytiring

8.3 ma'lumotlarini qayta ishlashda oldindan belgilangan element etishmayapti. Oldindan belgilangan narsalarni sozlash

Dastlab belgilangan elementlar bilan dasturiy ishlash g'oyasining o'zi, mening fikrimcha, juda to'g'ri. Ishlashda e'tiborga olish kerak bo'lgan ba'zi bir nuanslar mavjud.

Birinchidan, siz o'zingiz uchun konfiguratsiyada oldindan belgilangan elementlar va infobase (IB) da oldindan belgilangan elementlar mavjudligini aniq tushunishingiz kerak. Texnik jihatdan oldindan aniqlangan IB elementlari - bu "PredefinedDataName" atributi qaysi oldindan belgilangan konfiguratsiya elementiga mos kelishini ko'rsatadigan lug'atlarning eng keng tarqalgan elementlari. Ular oddiy elementlardan farq qilmaydi. Shunga ko'ra, har qanday oddiy IB elementi oldindan belgilangan, har qanday oldindan belgilangan oddiy bo'lishi mumkin. Buning uchun rekvizitlarga kerakli qiymatni kiritish kifoya. "Oldindan belgilangan ma'lumotlarName".

Vaqti-vaqti bilan ushbu xususiyat ishlab chiquvchi taqdim etgan qiymat emas. Natijada, 1C ishida xatolar yuzaga keladi. Ishda printsipial ravishda imkonsiz bo'lgan tanqidiydan tortib tanqidiygacha, unda algoritmlarning mantig'i buziladi.

Uni shartli ravishda ajratish mumkin uch xil xato:
1. "Ma'lumotlarda oldindan belgilangan element etishmayapti";

3. Indikatsiya noto‘g‘ri oldindan belgilangan element;

1. "Ma'lumotlarda oldindan belgilangan element yo'q" - o IB ma'lumotlarida konfiguratsiyada tasvirlangan oldindan belgilangan elementning yo'qligi.

Bu disk raskadrovka va tuzatish uchun eng oson xato turi. Uning soddaligi shundaki, platforma ushbu holat to'g'risida "Ma'lumotlarda oldindan belgilangan element etishmayapti" haqida etarli darajada to'g'ri xabar beradi va uni qanday tuzatish kerakligi aniq.

"Kataloglar. ContactInformation.EmailContactPerson" kodidagi yo'qolgan elementga kirishda xabar ko'rsatiladi

"VALUE (Directory. ContactInformation.EmailContactPerson)." So'rovidagi elementga kirishda quyidagi xabar ko'rsatiladi:

Ushbu xato, agar konfiguratsiyada element tavsiflangan bo'lsa, lekin ma'lumotlar bazasida element u bilan bog'liq bo'lmasa paydo bo'ladi.

Avvalo, ushbu vaziyat har doim ham noto'g'ri emasligiga aniqlik kiritamiz. Ko'pgina foydalanuvchilar uchun ishlatilmasligi mumkin bo'lgan ba'zi bir dastur mantiqlarida oldindan aniqlangan ma'lumotlardan foydalanish mumkin. Bunday holda, konfiguratsiyaning barcha foydalanuvchilari uchun ma'lumotnomani chalkashtirib yubormaslik uchun, konfiguratsiyadagi oldindan belgilangan elementlarni aniqlash mantiqan to'g'ri keladi, lekin ularni barcha axborot xavfsizligi tizimlarida yaratmaslik kerak, lekin faqat ushbu ma'lumot xavfsizligi tizimlari uchun qaysi kerakli konfiguratsiya mantig'idan foydalaniladi. Bunday holda, dasturchi ma'lumotnoma uchun "Oldindan aniqlangan ma'lumotlarni yangilamang" xususiyatini ko'rsatishi va modulning ishlashiga kirishda elementlarni dasturiy ravishda yaratishi mumkin. Yoki foydalanuvchiga modulning oldindan belgilangan elementlarini o'zi ega bo'lgan odatiy elementlarga mustaqil ravishda bog'lab qo'yish imkoniyatini berish.

Bundan tashqari ishlatilmaydi avtomatik yaratish RIB rejimida ishlashda oldindan belgilangan elementlar. Yangi elementlar markaziy bazadan uzatilishi kerak va turli xil foydalanuvchi interfeyslari bo'lgan tugunlarda yaratilmasligi kerak.

O'sha. ba'zida bunday narsaning mavjudligidan ko'ra, mos kelmaydigan narsaga murojaat qilish xato.

Siz nima uchun element yaratilmaganligini tahlil qilishingiz kerak. Ehtimol, uni dasturning ba'zi bir rejimi bajarilganda yaratish kerak. Masalan, RIBda almashinuvni amalga oshirgandan so'ng. Yoki u tasodifan o'chirilgan bo'lishi mumkin.

Agar mantiq oldindan belgilangan elementlarni avtomatik ravishda emas, balki alohida rejimda to'ldirishni nazarda tutgan bo'lsa, unda qo'ng'iroqni ism bilan ishlatishdan oldin " Kataloglar.Informatsiya turlari.EmailContactPerson"istisnoga yo'l qo'ymaslik uchun element allaqachon ma'lumotlar bazasida ekanligini tekshirish tavsiya etiladi. Agar element yo'q bo'lsa, u holda foydalanuvchini bu haqda xabardor qiling va elementni to'ldirish uchun qanday rejimni bajarishi kerakligini tushuntiring. Bunday tekshiruv uchun ma'lumotlar bo'yicha so'rov o'tkazishingiz mumkin.

So'rov = Yangi so'rov; Request.Text = "SELECT | Aloqa ma'lumotlarining turlari.Link | FROM | Katalog. Aloqa ma'lumotlarining turlari kabi aloqa ma'lumotlarining turlari | QAYERDA | Aloqa ma'lumotlarining turlari. Oldindan belgilangan ma'lumotlar nomi =" " EmailContactPerson"" "; ElementNoNo.VD = Request.Run (). Bo'sh ();

Agar bu hali ham ma'lumotlar bazasidagi ma'lumotlar xato bo'lsa, unda IB elementining oldindan belgilangan elementiga bog'lanish kerak. O'sha. ushbu nom bilan dastur kodi axborot xavfsizligining qaysi elementiga murojaat qilishi kerakligini tizimga tushuntirish kerak. Texnik jihatdan majburiylik - bu faqat xususiyatdagi oldindan belgilangan element nomini ko'rsatishdir "Oldindan belgilangan ma'lumotlarName"IB elementi. Uni o'rnatish uchun kodni ishga tushirish kifoya:

2. "Oldindan belgilangan element noyob emas" - h advoi oldindan belgilangan elementlar:

Ushbu holat bir nechta IB elementlari oldindan belgilangan element bilan bog'lanishidan iborat. Bunday holda, oldindan belgilangan nomga murojaat qilganda, element tasodifiy tanlanadi. Bu holat har doim noto'g'ri. Uning qiyinligi shundaki, platforma bu haqda hech qanday aloqada emas. Faqat algoritmlar noto'g'ri ishlay boshlaydi.

Takrorlangan elementni tahrir qilayotganda ramka faqat "Oldindan belgilangan element noyob emas" xatosi haqida xabar beradi.

Hech kim elementni tahrirlashi kerak bo'lmaguncha, hech kim xato haqida bilmaydi.

Bunday dublikatlar yaratilishi mumkin, masalan, ma'lumotnoma uchun RIB ishlatilsa va oldindan belgilangan ma'lumotlar uchun xususiyatlarda "Avtomatik yangilash" rejimi ko'rsatilgan bo'lsa. Bunday holda, almashinuv amalga oshirilganda, konfiguratsiya yangilanganida oldindan aniqlangan ma'lumotlarning bitta nusxasi yaratiladi. Xuddi shu nom bilan oldindan belgilangan buyumlarning ikkinchi nusxasi almashinuv paytida markaziy ma'lumotlar bazasidan o'tkaziladi.

Bundan tashqari, ushbu nusxalar turli xil ma'lumotlar xavfsizligi elementlari turli ma'lumotlar bazalarida oldindan belgilangan elementlarga mos keladigan bo'lsa, konfiguratsiyalar o'rtasida almashinuvni qayta ishlashni qo'llashda paydo bo'ladi. Bunday holda, oldindan aniqlangan ma'lumotlarning bitta nusxasi ma'lumotlar bazasida allaqachon mavjud, ikkinchisi boshqa UID bilan ma'lumotlarni yuklashda keladi. Agar siz ma'lumotlar uzatishni amalga oshirayotgan bo'lsangiz, ma'lumotlar bazasining qaysi elementlari asosiy deb hisoblanishini hal qilishingiz va ularni bo'ysunuvchi ma'lumotlar bazasida ishlatishingiz kerak. Bo'ysunuvchi bazada eski elementlardan foydalanishni asosiy tayanch elementlari bilan almashtirish zarur.

Ma'lumotlar bazasidagi bunday xatolar quyidagi shaklda aniqlanishi mumkin:

Aloqa ma'lumotlarining turlarini tanlang .PredefinedData nomi, Miqdor (turli xil aloqa ma'lumotlari. Havolasi) Katalogdan oldindan belgilangan raqam sifatida. Aloqa ma'lumotlarining turlari kabi aloqa ma'lumotlarining turlari.

Ushbu so'rovda bir nechta IB elementlari bilan bog'liq bo'lgan oldindan belgilangan elementlarning ro'yxati qaytariladi.

Agar shunday elementlar mavjud bo'lsa, ulardan biri uchun oldindan aniqlangan bilan aloqani olib tashlash kerak. O'sha. ushbu nomdan foydalanganda dastur kodi qaysi IS elementiga murojaat qilishi kerakligini tizim uchun aniq belgilash kerak. Buning uchun kodni ishga tushirish kifoya.

3. Oldindan belgilangan elementning yaroqsiz ko'rsatkichi.

Xato, oldindan belgilangan element dastur mantig'i bilan ta'minlangan noto'g'ri elementga mos kelishida. Bunday xatolarni aniqlash eng qiyin. Dastlabki ikki turdan farqli o'laroq, ushbu xatolar uchun konfiguratsiyani avtomatik ravishda tekshirib bo'lmaydi. Ularni faqat ish mantig'ini tahlil qilish orqali aniqlash mumkin. Agar shubhangiz bo'lsa, to'g'ri element ishlatilganligini tekshirishingiz mumkin.

Buning uchun faqat buyruqlardan birini bajaring.

// Kerakli oldindan belgilangan hisobotga bog'langan IB elementining ta'rifi (Directories.Type of ContactInformation.EmailContactPerson) // Tanlangan hisobot bog'langan oldindan belgilangan elementni aniqlang (ReferenceOnItem.Name of PredefinedData)

Agar bunday xatolar topilsa, eski element bilan noto'g'ri havolani olib tashlash va yangi element bilan havolani qo'shish kerak. Opcode dastlabki ikki turdagi xatolarni tuzatish kodiga o'xshaydi.

Xo'sh, qachon xatolar haqida qisqacha dasturiy ish yoki konfigurator rejimida:

"Oldindan belgilangan element tegishli emas<Имя справочника>" - oldindan belgilab qo'yilgan elementni nomga mos kelmaydigan nom bilan yozishga urinishda xatolik yuzaga keladi.

"Oldindan aniqlanmagan ob'ektlar subconto tipidagi yozuvlarni oldindan belgilab qo'yishi mumkin emas" - oldindan belgilab qo'yilgan schyotlar rejasini aniqlanmagan qilishga urinishda xatolik yuz beradi. Xatolarni bartaraf etish uchun subpudrat elementining har bir satri uchun "Oldindan belgilangan" bayroqchasini olib tashlash kerak.

"Oldindan aniqlanmagan ob'ektlarda etakchi hisob-kitob turlari bo'yicha oldindan belgilangan yozuvlar bo'lishi mumkin emas"- hisoblash turlari jadvalining oldindan aniqlangan elementini aniqlanmagan qilishga urinayotganda xatolik yuz beradi. Xatolarni bartaraf etish uchun elementlarni hisoblashning etakchi turidagi har bir satr uchun "Oldindan belgilangan" bayroqni tozalash kerak.

"Oldindan belgilangan buyumlar noyob emas"- yangilash paytida konfiguratorda xatolik yuz beradi axborot bazasi 8.3.4 moslik rejimisiz konfiguratsiyani chiqarishda. Yangilashdan oldin dublikatlarni tekshirish va ularni yo'q qilish kerak.

"Oldindan belgilangan element nomi noyob emas" - platformada yangilashda konfiguratsiyada bir xil nomdagi bir nechta elementlar mavjud bo'lsa, xato yuzaga keladi8.3.6.2332 va undan keyingi versiyalar. Konfiguratsiyadagi takroriy nusxalarni yo'q qilish kerak.

Oldindan belgilangan ma'lumotlar bilan ishlash uchun men qayta ishlashni tavsiya etaman. U har qanday harakatlarni oldindan aniqlangan ma'lumotlar bilan qanday amalga oshirishni biladi, shuningdek konfiguratsiyani birinchi bo'lib barcha axborot xavfsizligi ob'ektlarida (ma'lumotnomalar, hisob qaydnomalari, PVX) dastlabki ikki turdagi (takrorlanadigan va etishmayotgan elementlar) xatolar mavjudligini tekshirishi mumkin. , PVR).

Xayrli kun.

Bugun biz 8.3 platformasida oldindan aniqlangan elementlarga oid yangilik haqida gaplashamiz.

Kirish

Eslatib o'taman, avvalroq, amalda, men oldindan aniqlangan nomini bilish uchun ma'lumotnomaning elementiga qarashni xohlagan edim. Masalan, siz oldindan belgilangan ikkita pudratchini yaratdingiz va ularni IPSidorov va OOOMeteor deb nomladingiz. Va ularga qandaydir mantiq tikdilar.

Hammasi disk raskadrovka qilingan va ishlaganida, bu vazifa aksincha qo'yilganligi va MChJ uchun yakka tartibdagi tadbirkor uchun mantiq kerakligi va yakka tartibdagi tadbirkor uchun MChJning mantiqi zarur bo'lganligi aniqlandi. "Muammo yo'q", deymiz va korporativ rejimda biz buyumlarning nomini o'zgartiramiz. Kodga kirish ancha qiyin. Bir yil o'tadi va sizga yangi vazifa qo'yiladi: IP Sidorov uchun yana bir mantiqni o'rnatish. Siz konfiguratorga kirasiz, mantiqni yozasiz, tekshirishni boshlaysiz va hech narsa ishlamaydi, chunki IPSidorov konfiguratorida va korxonada - "Meteor" MChJ. Miya singan va men bu tirgakni yo'q qilmoqchiman. Eng sodda va intuitiv - bu oldindan belgilangan element nomini ro'yxat shaklida chiqarish. Mana bu pistirma, siz 8.2 da oldindan belgilangan nomni faqat usul bilan olishingiz mumkin. Va usulning o'ziga xos noqulayligi bor, uni so'rovda olish mumkin emas. O'sha. birinchi noqulaylik - katalogga murojaat qilib oldindan belgilangan nomini olish.

Ikkinchi noqulaylik, agar bizda allaqachon katalog elementi bo'lsa va biz uni oldindan belgilashimiz kerak bo'lsa. Biz oldindan belgilangan elementni yaratamiz va katalogga ikkita elementni olamiz. Bittasi oldindan belgilab qo'yilgan, ikkinchisi ishlaydi, bu bizning barcha hujjatlarimizga havola qilinadi. Havolalarni almashtirish, albatta, yordam beradi, ammo ma'lumotlar bazasi katta bo'lsa, bu qiyin.

Endi ish bo'yicha

Birinchisi, ma'lumotnomada endi "Oldindan belgilangan ma'lumotlarni yangilash" xususiyati mavjud.

Ushbu maydon bizga nima beradi? Agar u "Avtomatik ravishda yangilanmasin" deb o'rnatilgan bo'lsa, oldindan belgilangan elementni qo'shib, biz uni darhol ma'lumotnomada ko'rmaymiz. O'sha. metadata ma'lumotlarga hech qanday aloqasi yo'q. Agar u katalogda yaratilmagan bo'lsa, unda katalog menejeri orqali uning nomi bilan murojaat qilish sintaksis xatosiga olib keladi.

Juda qiziq, lekin nima uchun? Qanday qilib ma'lumotnomada element yaratamiz? Va xohlaganingizdek, siz yaratishingiz mumkin yoki uni mavjud bilan bog'lashingiz mumkin. Endi qidiruv "PredefinedDataName" atributiga ega. Biz odatdagidek katalog elementini "Reference.Contractors.CreateElement ()" orqali yaratamiz va uning "PredefinedDataName" atributini oldindan belgilangan element nomiga teng ravishda to'ldiramiz. Yoki, agar element allaqachon mavjud bo'lsa, biz uning ob'ektini olamiz va undagi "PredefinedDataName" ni yana to'ldiramiz. Hammasi.

Va nihoyat bir oz sirop

Ushbu yangi rekvizitlar nafaqat o'qish / yozish, balki so'rovlarda ham mavjud. Shunday qilib, siz so'rovlarda unga shart qo'yishingiz mumkin, oldindan belgilab qo'yilganligini yoki yo'qligini aniqlang.

E'tiboringiz uchun tashakkur.

Oldindan belgilangan qiymatlar bilan ishlash uchun oddiy ishlov berish.

IB elementlarini konfiguratsiyada oldindan belgilangan elementlar bilan moslashtirishga imkon beradi.

Ikki nusxadagi (bir nechta IB elementlari oldindan belgilangan elementga bog'langan - xato) va etishmayotgan elementlar (IB elementlari bilan bog'liq bo'lmagan oldindan belgilangan elementlar - xato) mavjudligini umumiy konfiguratsiyani tekshirishga imkon beradi. Bunday elementlar almashinuv yoki nosozliklar paytida paydo bo'lishi va konfiguratsiyadagi xatolarga olib kelishi mumkin.

Siz shunchaki joriy qiymatlarni ko'rishingiz mumkin, kerakli o'zgarishlarni kiritishingiz mumkin.

Ish tartibi:

1. Biz qayta ishlashni boshlaymiz.

2. Biz turini tanlaymiz (ma'lumotnoma, hisob qaydnomasi, PVX, PVR).

3. Biz tanlangan turdagi katalogni o'zi tanlaymiz.

4. IBda mavjud bo'lgan va konfiguratsiyada tasvirlangan barcha oldindan belgilangan elementlar ishlov berishning jadval qismida paydo bo'ladi.

Agar ma'lumotlar bazasida bir oldindan aniqlangan xususiyatga bog'langan bir nechta elementlar mavjud bo'lsa yoki konfiguratsiyada tasvirlangan ba'zi elementlarga IB elementlari berilmagan bo'lsa, ma'lumotnomani tanlaganingizda tizim bu haqda sizga xabar beradi. Takrorlangan va etishmayotgan narsalar ro'yxatning yuqori qismida ko'rinadi va to'q sariq rangda ta'kidlangan.

5. Kerakli oldindan belgilangan elementlar uchun yangi qiymatlarni o'rnatdik.

Bunday holda, chiziqlar qizil bilan belgilanadi, buning uchun oldindan belgilangan element konfiguratsiyadan yo'qoladi. Oldindan belgilangan element o'zgaradigan ko'k chiziqlar, oldindan belgilangan element paydo bo'lgan yashil chiziqlar.
Da katta raqam Sichqoncha bilan barcha keraksiz chiziqlarni tanlash va barcha "Unmatch" tugmachasi bilan bekor qilish havolalarini ko'rsatish qulay (1.3.1 versiyadan beri)

6. Qayta tayinlashni "Elementlarni qayta tayinlashni amalga oshirish" tugmachasini bosish orqali amalga oshiramiz.

Ikki nusxasini tekshirish(Xato "Oldindan belgilangan element noyob emas"):

"Dublikatlarni tekshirish" tugmachasini bosganingizda, ishlov berish barcha kataloglarni, hisobvaraqlar jadvallarini, PVX va PVRni tekshiradi va takrorlanadigan elementlar sonini ko'rsatadigan elementlari takrorlangan jadvallar ro'yxatini namoyish etadi.

Shundan so'ng, xatolar aniqlangan ob'ektlarni alohida tekshirish kerak.

Tekshirish o'tkazib yuborildi(Xato "Ma'lumotlarda oldindan belgilangan element yo'q"):

"Yo'qolganlarni tekshirish" tugmachasini bosganingizda, ishlov berish barcha ma'lumotnomalarni, hisob qaydnomalarini, PVX va PVRni tekshiradi va IB ma'lumotlari bilan bog'liq bo'lmagan oldindan belgilangan elementlarning ro'yxatini ko'rsatadi.

Foydalanish uchun 8.3.3 yoki undan yuqori platformani talab qiladi.

Ko'p tomonlama, har qanday konfiguratsiya bilan ishlatilishi mumkin.

Tilni aniqlang Afrikaans Albanian Arabic Armaniston Ozarbayjon Bask Bengal Belarusiya Bulgarian Catalan Chinese (Simp) Chinese (Trad) Croatian Czech Danish Dutch English English Esperanto Estonian Filipino Finnish Frantsiya Galician Gruzian Greek Greek Gujarati Haitian Creole Hebrew Hebrew Hindi Hungarian Icelandic Indonesian Irish Italyan Japanese Yaponcha Kannada Korean Lao Latin Latvian Litva Makedoniya Malay Malta Norvegiya Fors Polsha Portugaliya Ruminiya Rossiya Serbiya Slovak Slovencha Ispan Suahili Shvetsiya Tamil Telugu Tayland Turkiya Ukrain Urdu Vetnam Uels Yiddish Afrikaans alban arabcha armancha ozarbayjon baskcha bengalcha belaruscha bolgarcha katalancha xitoycha (sodda) xitoycha (Trad) xorvatcha chexiyalik daniyalik gollandcha inglizcha esperanto estoniyalik filippincha fincha fransuzcha galisiancha gruzincha nemischa gujarati gaiti kreol ibroniycha hindcha vendriyalik islandiyalik indoneziyalik irlandcha italyancha yaponcha kannada koreyscha Lao Lotin Latviya litvacha makedoncha Malay Malta Norvegiya Fors Polshasi Portugaliyalik Ruminiya Serbiyalik Slovak Slovencha Ispancha Suahili Shvetsiya Tamil Telugu Tayland Turkiya Ukrain Urdu Vetnamlik Uels Yiddish