1c tashqi ma'lumotlarning hujjatlari.

Kontaktlar / Google Play

topshirish

Golovna

Reliz 8.2.14.533 - platformaning 14-relizining ko'proq yoki kamroq barqaror versiyasi yaratilgan.

Biz uchun kuch mo'jizasini - "ma'lumotlarning tashqi kuchlarini" sinab ko'rish vaqti keldi.
Nima uchun bu imkoniyat bunday qiziqish uyg'otadi?
Agar siz 1C-da dasturlashtirgan va SQL-ni yomon biladigan odam bo'lsangiz va hech bo'lmaganda ishonchli biznes ilovalari uchun boshqa texnologik platformalarni ishlab chiqish arxitekturasi va tamoyillari bilan tanish bo'lishni istasangiz, men sizga nima o'xshashligini aytib beraman. 1C da eng ko'p.
Avvalo, so'rovlar konstruktori aloqa tuzilmalaridan ma'lumotlarni olish uchun so'rovlarni yozish uchun eng qulay va puxta o'ylangan mexanizm bo'lib, men buni bir muncha vaqtdan beri bilaman.
Va endi 1C bizga nafaqat 1C, balki boshqa jadvallar bilan ham vikorizatsiya qilish uchun shunday mo''jizaviy sovg'a berdi.

Butun eksa bir guruh qoshiq asal bilan to'ldiriladi. Birinchi narsalar:.

1) Sozlash va vikoristannya - "daf ​​bilan raqsga tushmasdan" mumkin emas

A) Ma'lumotlarning tashqi korpusini qo'shing - hech qanday murakkab narsa yo'q

G) Jadval va tafsilotlarni tanlang... hayratlanarli kuch - ularni darhol xohlaganingizcha o'zgartirishingiz mumkin (va tafsilotlari ham), bu holda ma'lumotlar maydonlarining nomlari hokimiyatga ko'rsatiladi.

H) Va endi siz ishga tushirasiz, so'rovlar konstruktorini oching - shunchaki jadvaldagi barcha yozuvlarni tanlang va OPA - bajarilishi.
Bu nima qo'rqoq?

Agar sizda qattiqlashtirilgan interfeys bo'lsa, xizmat menyusiga qarang va agar birinchi narsa ...
Men ushbu kodni ayniqsa vikoristav qilaman:
Parametrlar = ExternalData.DAX.OtrimatiGalniParametriZ'ednannya();
Parametrlar Autentifikatsiya standarti = rost;
Parameter.Im'ya Koristuvach = "sa";
Parameter.Password = "pas";

Parameters.RowZ'ednannya = "DRIVER=(SQL Server);SERVER=servet;UID=sa;PWD=;MA'lumotlar bazasi=ma'lumotlar bazasi";
Parameters.DBMS = "MSSQLServer";
ExternalData.DAX.SetOutsideParametersConnect(Parameters);

Tashqi DzherelaData.DAX.SetParametersZ'ednannyaKoristuvach(Im'yaKoristuvach(), Parameters);

ExternalData.DAX.SetSessionParameters(Parameters); ExternalData.DAX.SetSucce(); Ehtimol, ba'zi narsalar kerak emas, lekin u ishlaydi.

Vikonati kodi talab qilinadi
BIR MARTA

.
Shundan so'ng, ulanish odatiy hol bo'ladi ... tasavvuf, shubhasiz, kerak emas ...

2) Dzherela ma'lumotlari o'qish uchun kamroq

Shunday qilib, mo''jizalar sodir bo'lmaydi ... lekin ba'zida siz buni shunday xohlaysiz.

3) Bir vaqtning o'zida ichki ma'lumotlar uzatish moslamalari bilan MUVOFIQ MUMKIN EMAS

Men bu haqiqatga kamroq e'tibor beraman, joyida o'ldiradi

Qanday qilib shunday... nima uchun ular tekshirib ko'rishdi va allaqachon tasavvur qilishdi va lablarini yaladilar, xuddi biz bir vaqtning o'zida 1C dan ma'lumotlarimizni tezkor tarzda birlashtirgan holda - guruhda, javobga kiritilgan va bu erda emas.. .

Bilmaganlar uchun bu "Ma'lumotlar to'plamini ulash" yorlig'idagi ACS-da.

Siz ular bilan tez-tez aralashasizmi?

Qo'ldami?

Ehtimol, ular bizni tez-tez vikorizatsiya qilishga majburlamoqchidirlar.
U erda yagona o'q "Aqliy havola" va "Parametrli havola" ustunidir.
Har bir tipik konfiguratsiyada biz ularning vikoristonini qo'llashni bilmaymiz, hujjatlarda va Xrustalovada ham aniq emas.
"Aqliy aloqa" qanday ishlashini tushuntirishimni xohlaysizmi?
U erda qanday yozish kerak Requisite Dzherel = Revisit Priymach ishlamaydi.

Albatta, siz o'z fikringizni "Viraz" maydoniga kiritishingiz mumkin - ko'p hollarda u paydo bo'ladi ... shunchaki ketish oson emas.
Shu bilan birga, bu amr bu erda shunday tasvirlangan:

InitializeGereLoData() funktsiyasi
DateStart = ComponentNashtuvan.Nashtuvannya.ParametersData.Elements.Values;

DataCon = ComponentNashtuvan.Nalastuvannya.ParametriDanikh.Elementi.Value;
Yakscho DataCon > "20100101" Todi

DataCon = "20100101";
KinetsYakscho;

CN = Yangi kvalifikatsiya raqamlari (15.2);
KS = Yangi qator kvalifikatsiyasi (255);
ArrayNumber = Yangi massiv();
ArrayNumber.Addati(Type("Raqam"));

ArrayRow = Yangi massiv();
ArrayRow.Addati(Type("Qator"));
ArrayData = Yangi massiv();
ArrayData.Addati(Type("Sana"));
//Jadval buxgalteriya hisobi uchun saqlanadi

Tur raqami = Turlarning yangi tavsifi (massiv raqami, CN);

TypeRow = New DescriptionType(ArrayRow, KS);
TypeDate = New DescriptionType(ArrayData);
//SQL dan ma'lumotlarni yig'ish uchun jadval
TZ = Yangi jadval qiymati();
TK.Columns.Addati("Nomenklatura kodi", RowType);
TK.Columns.Addati("Qnty", TypeNumber);
TK.Columns.Add("Davr",Sana turi);
TZ.Index.Add("Davr");
//SQL ga ulanadi
Ulanish qatori = "Provayder=SQLOLEDB.1;Persist Security Info=True;User ID=sa;Pwd=;Ma’lumotlar manbai=;Use Protsed for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=;Foydalanish Ma'lumotlar uchun shifrlash=Yolg'on;Imkon bo'lganda ustunlarni taqqoslash bilan teg qo'ying=False;Boshlang'ich katalog=Hisobotlar";
Ulanish = Yangi COMObject("ADODB.Connection");
Buyruq = Yangi COMObject ("ADODB.Command");
RecordSet = Yangi COMObject("ADODB.RecordSet");
Sana = "";

Sinab ko'ring
Connection.Open (Qisqartma (Ulanish qatori));
Command.ActiveConnection = Ulanish;
Row.Qnty = RecordSet.Fields(RecordSet.Fields.Item(12).Name).Value;
Row.Period = RecordSet.Fields(RecordSet.Fields.Item(13).Name).Value;
RecordSet.MoveNext();
KínetsCycle;

Zapit = Yangi Zapit();
VrTable = Yangi menejer vaqt jadvali();
Request.InstallParameter("vrDataTable", TK);
Request.SetParameter("SanaStart",DateStart);
Request.InstallParameter("DataCon", DataCon);
Request.Text = "VIBRATI"
|
vrTableData.Nomenklatura kodi,
|
vrTableData.Qnty,
|
vrDataTable.Period
|JOYILASH TableMa'lumotlar
|Z
|
&vrTableDanih YAK vrTableDanih

|DE
|
vrDataTable.Period >= &Boshlanish sanasi

|
Men DataTable.PeriodRequest.Viconati();

TZ = aniqlanmagan;

Zapit = Yangi Zapit;
Query.ManagerTimeHourTable = Vaqt jadvali;
Query.Text = "Bu erda virtual jadvalning bir qismi sifatida yozilgan";
Natija = Query.Viconati();

Burilish natijasi;

EndFunctions

Tashqi to'plam = InitializeDzhereloDanikh();

SetData = Yangi tuzilma();

DialData.Insert("SQLTable", ExternalDial);

  • Typovi Zviti.
  • Kod qatorlari ko'p emas va u standartga mos kelmaydi... bu orqali siz so'rovlar konstruktorining qo'shimcha funksiyasidan foydalanishingiz mumkin, ACSda esa faqat DATA COMPANY funksiyasini qo'shishingiz mumkin.

Ammo bu unchalik chiroyli ko'rinmaydi ... qiymatlar jadvalidagi xuddi shunday vizualizatsiya endi tafsilotlarning nomini buzmasdan kodni yozish va tekshirishni talab qiladi ... aks holda ular bizga 1C da bergan narsalar yarim bo'lib tuyuladi. tez-tez.

Men foyda olishning eng yaxshi usuli nima ekanligini hali tushunmadim.

  • Qarorlaringiz va ularni qabul qilishga sizni nima ilhomlantirgani haqida o'qish va yozishni davom eting.
  • [xabaringizni ko'rib chiqish uchun ro'yxatdan o'tishingiz kerak]
  • 1C tadbirkorlik rejimida ro'yxatlarda ular bilan savdo qiling.
    • Biroq, bu erda ma'lumotlarning bir qismi saqlanganida tez-tez vaziyat yuzaga keladi.

      Onlayn do'kon (tashqi MySQL/SQL ma'lumotlar bazasidan ma'lumotlarni saqlaydi)

      Boshqa asos.

      Boshqa ma'lumotlar bazalarida saqlanadigan ma'lumotlar bilan ishlash uchun maxsus mexanizmlarni ishlab chiqish kerak.

      1C ma'lumotlar protsessoriga biroz yangi qo'shimcha mavjud.

      Ma'lumotlar bazasi jadvaldan iborat.

      Biz ularni berilgan tashqi ma'lumotlarning o'rtasiga qo'shishimiz kerak.

      Sichqonchaning o'ng tugmachasini bosing va Jadval qo'shish-ni tanlang.

      Avval siz ulanish qatorini ko'rsatishingiz kerak.

      Siz uni qo'lda kiritishingiz mumkin yoki "..." tugmasini bosib shakllantirishingiz mumkin.

      Bizning maxsus vibratorimiz "SQL Server" drayveri nima

      SQL ga ulanish uchun asosiy parametrlarni eslab qoling.

      Server nomini kiritish yoki roʻyxatdan tanlash mumkin.

      1C SQL bilan ulanishni yaratadi va ro'yxatdan ma'lum bir ma'lumotlar bazasini tanlang.

      Shundan so'ng, 1C ushbu ma'lumotlar bazasidagi jadvallar ro'yxatini va ularning ustunlarini ko'rsatadi.

      • Kerakli jadvallarni belgilash orqali ularni tanlashingiz kerak.
      • Jadvallar va ustunlar qo'shiladi.
      • Ismlar masofaviy ma'lumotlar bazasida ko'rsatilgandek bo'ladi.

      1C da siz í̈x nomini o'zgartirishingiz mumkin (hokimiyatdan).

      Stolga qo'shilgan o'q dumbasi:

      Qo'shilgan ustunning aksi:

      1C platformasi tashqi jadval bilan 1C Advisers bilan ishlash kabi ishlashi uchun siz jadval uchun qo'shimcha parametrlarni belgilashingiz mumkin:

      Kalit maydonida - satrning noyob identifikatsiyasini ta'minlash uchun ustunlardan birini kiriting;

      Agar bir qator qatorlarning o'ziga xosligi ta'minlansa, bu usul ishlamaydi (Kod maydoniga o'xshash)

      "Manifestatsiya maydoni" maydoniga - eng qisqa qatorni ta'minlaydigan ustunlardan birini kiriting (Ism maydoniga o'xshash)

      Quvvat jadvalining ma'lumotlar turiga - Ob'ekt ma'lumotlarini kiriting.

      2. Peresklyad

      Masofaviy ma'lumotlar bazasi bilan ulanish avtomatik ravishda amalga oshirilmaydi.

      Ulanish uchun standart menyuni tanlashingiz kerak.
      Standart menyuda tashqi ma'lumotlar fayllarini boshqarish uchun maxsus buyruq mavjud bo'lib, u ulanish parametrlarini (1C Enterprise rejimiga xos) belgilash va ulanishlarni amalga oshirish imkonini beradi.

      Avval ma'lumotlar bazasiga ulanish uchun parametrlarni o'rnatishingiz kerak.
      Agar siz konfiguratorda sozlashlarni amalga oshirgan bo'lsangiz, bu ulanish qatorini ko'rsatishga olib keladi.
      ParametersPassword.Password = "parol";
      Ulanish parametrlari.Ulanish qatori = “konfiguratordan ulanish qatori”;
      Ulanish parametrlari. DBMS = "MSSQLServer";

      ExternalGerelaData.ImageGerelaConfigurator.InstallOtherParametersConnection(ParametersConnection);
      ExternalDirectoryData.NameDerelaConfigurator.SetParametersSettingKoristuvach(NameKoristuvach(), Parameters);
      ExternalGerelaData.ImageGerelaConfigurator.SetSessionParameters(Parameters);
      ExternalGerelaData.Im'yaGerelaConfigurator.InstallSpec();

      Birlamchi tibbiy yordam ko'rsatuvchi provayder yordamida ma'lumotlar bazasidan ma'lumotlarni yuklab olishingiz mumkin.

      Matn misoli OurZovnishnyJerel tashqi qurilmasi va ExternalJerel jadvali uchun yozilgan:
      VIBRAT
      Tashqi Gerel jadvali. Maydon nomi
      Z

      Tashqi DzhereloMa'lumotlar. Bizning tashqi Dzherelimiz. Jadval. Tashqi Dzherelo jadvali"

      Zovnyshne dzherelo ma'lumotlar 1C - Excel fayli bilan ishlash

      Keling, boshqa variantni sinab ko'raylik - Excel faylidan tashqi 1C ma'lumotlar fayli orqali ishlash.

      Eng oddiy Excel fayli yaratilishi mumkin.

      Dodamo tashqi dzherelo, juda Excel fayl deb ataladi.

      Hozirgacha "Sheet1$" jadvalini qo'shing.

      Agar siz uni ahamiyatsiz deb belgilasangiz, qo'shilgan "$" belgisi bilan Excel belgisidan foydalaning.

      • SQL-dan chiqishda ustunlar qo'shing.
      • Siz ularni qo'lda qo'shishingiz mumkin.

      Qo'shilgan ustun turlarining xilma-xilligiga e'tibor berish muhimdir, aks holda siz keyinroq "Ma'lumotlar turi xilma-xilligi" opsiyasini olib tashlashingiz mumkin.

      • Ustun uchun ma'lumotlar maydonida 1C nomlari va nomlarini ko'rsatishingiz kerak.
        Excel uchun maxsus xususiyat mavjud ("Juda kam parametrlar. 3 talab qiladi" shakliga tuzatish):
      • Agar Excel jadvalining birinchi qatorida turli xil ustun nomlari bo'lsa, siz shunchaki ustun nomlarini ko'rsatishingiz kerak, masalan, "Kod".
        Aks holda, "Sheet1$.Code" jadval nomlaridan tashqari nomlarni yoki "HDR = NO;" parametrlarini qo'shishda ko'rsatishingiz kerak.
        Excel fayli uchun ulanish parametrlari quyidagicha ko'rinadi:

XLSX fayllari (Office 2007 versiyasi)

Drayv=(Microsoft Excel drayveri (*.xls, *.xlsx, *.xlsm, *.xlsb));DBQ=D:\FileExcel.xlsx;

XLS fayllari (ilgari)

Tashqi qurilmalarni sozlash tizimning teri turi uchun individualdir.

Ale, qoida tariqasida, o'rnatishning yashirin qismi, ammo ulanish qatorini o'rnatishdir:

1C dan 267 ta video darslarni bepul tomosha qiling:

Vazifalarni ulash tartibi to'g'ri bo'lsa, tizim ma'lumotlar bazasidan kerakli jadvalni tanlashni taklif qiladi.

Natijada, biz tayyor jadvalni olamiz, unda siz kalit maydonini (noyob maydon) va taqdimot maydonini (yozuv 1C da ko'rsatilgandek) kiritishingiz mumkin: 1C 8.3 da tashqi ma'lumotlar manbalarining Vikoristannya

Tashqi 1C ma'lumotlar fayllari boshqa ma'lumotlar bazasi jadvallari kabi tanlanishi mumkin.

Agar ko'rsatilmagan bo'lsa, platforma avtomatik ravishda ushbu shaklni yaratadi.

  • Ilovalarda tashqi qurilmalardan ma'lumotlarni almashtirish ham mumkin. Platformaning 8.3.5.1068 (va undan keyingi) versiyasi endi 1C dasturiy ta'minotidan foydalangan holda tashqi qurilmalardan ma'lumotlarni qo'shish, o'zgartirish va o'chirish imkoniyatiga ega.. Ushbu imkoniyatning ilovalari ushbu maqolada keltirilgan. Tashqi qurilmalarda yozishni amalga oshirish uchun 1C kompaniyasi tashqi qurilmalarning ma'lumotlar jadvallari va maydonlariga yangi vakolatlarni qo'shdi:
  • Butun stol uchun - quvvat Platformaning 8.3.5.1068 (va undan keyingi) versiyasi endi 1C dasturiy ta'minotidan foydalangan holda tashqi qurilmalardan ma'lumotlarni qo'shish, o'zgartirish va o'chirish imkoniyatiga ega., TilkiReadingі TilkiReading = Haqiqat:
    • Ushbu imkoniyatning ilovalari ushbu maqolada keltirilgan. ushbu jadvaldagi ma'lumotlarni o'zgartirish mumkin emasligini anglatadi;
    • Jadvalning quyidagi maydonlari uchun - quvvat AllowNull Zapovennya ahamiyati;
    • TilkiReading = Haqiqat bu maydon ma'lumotlarini o'zgartirish mumkin emasligini anglatadi;

AllowNull = rost

  • Ushbu imkoniyatning ilovalari ushbu maqolada keltirilgan. bu maydon qiymatni o'z ichiga olishi mumkinligini anglatadi
  • Ushbu imkoniyatning ilovalari ushbu maqolada keltirilgan. NULL Ushbu maydonning standart qiymatini joylashtiring (xuddi shunday). Quvvatni shu tarzda (jadvalni qo'lda tasvirlashda) yoki platformani (dizayner tomonidan jadvalni yaratishda) yaratishingiz mumkin.
  • Jadvalning quyidagi maydonlari uchun - quvvat Masalan, displey (ko'rinish), vizualizatsiyaga ega bo'lgan jadval (funktsiya natijasi) va boshqalar uchun qo'shing. Jadvallardagi ma'lumotlarni o'zgartirib bo'lmaydi;;
  • TilkiReading = Haqiqat avtomatik ravishda o'rnatiladigan maydonlarni belgilang ( AVTO ORTALASH).

), hisoblangan maydonlar va shunga o'xshashlar.

  • Bunday maydonlardagi ma'lumotlarni o'zgartirib bo'lmaydi; oldingi maqolada aytib o'tilganidek, asosiy va sokin bo'lganlardan tashqari barcha maydonlar uchun o'rnatiladi
  • NULL EMAS Agar tashqi qurilmada maydonning standart qiymati bo'lsa, har safar maydonlarni kiriting (qiymat SUVAT

Yuklab olingan til yordamida yoki interaktiv tarzda tashqi qurilmalardan maʼlumotlarni qoʻshishingiz, oʻzgartirishingiz va oʻchirishingiz mumkin. Film yaratishda quyidagi jadval menejeri usullaridan foydalaniladi:і CreateDialRecords()- ob'ektiv bo'lmagan jadvallar uchun; Yangi usulі Ob'ekt yaratish().

Qo'shimcha sovg'alar

Keyingi qurilmaga ma'lumot qo'shsangiz, ob'ekt (yoki yozuvlar to'plami) yaratasiz, maydon qiymatlarini o'rnatasiz va yozib olasiz.

Bunday holda, bilishga arziydigan o'ziga xos xususiyatlar mavjud. Ushbu imkoniyatning ilovalari ushbu maqolada keltirilgan. Masalan, siz qaysi maydon qiymatlarini belgilashga harakat qilsangiz , rahm-shafqat ko'rasiz. Va virusning ma'lumotlar bazasiga o'rta yo'l bilan kirish bilan INSERT Bunday maydonlar o'tkazib yuboriladi.

  • Boshqa maydonlar siz ularga bergan qiymatlar bilan to'ldiriladi. Shuning uchun bu muhim
  • Null Shuning uchun bu muhim
Va maydonlarga aniq ma'no berish kerak.

id Yangi usul(AllowNull = rost); nomi mFeature = ExternalData.IM.Table.shop_feature.CreateObject(); , rahm-shafqat ko'rasiz. mCharacteristic.id = Kod; mCharacteristic.name = Ism;.

mCharacteristic.Write(); , rahm-shafqat ko'rasiz. Vikonanny operatori keling, manbadan qo'ng'iroqlar hajmi bo'ladigan nuqtaga kelaylik Yozib olishdan oldin nomi, keyin jismoniy yozuv tashqi qurilma jadvaliga qo'shiladi ( mCharacteristic.name = Ism;).

), keyin quyidagi namuna oluvchiga bosish bo'ladi

Eslatmalar Tashqi qurilmalar jadvalining kalit maydoni bilan buni amalga oshirishingiz mumkin..

Agar kalit maydonini tahrirlash mumkin bo'lmasa, yozishdan oldin uning qiymatini qo'lda o'rnatishingiz kerak.

Agar kalit maydonini o'zgartirish bloklangan bo'lsa, platforma avtomatik ravishda kalitni o'chiradi chi bezpredno píslya.і Siz qo'shimcha usul yordamida ushbu jarayonda ishtirok etishingiz mumkin.

InstallPositionNew()

jismoniy yozib olishdan oldin (quyidagi kitobda ) yoki to'g'ridan-to'g'ri jismoniy yozuvdan so'ng (ostidagi kitobda.

Ma'lumotlarning o'zgarishi

Ma'lumotlarni o'zgartirganda, jadvaldagi barcha maydonlarning qiymatlari yangilanadi

TilkiReading = Bema'nilik MCharacteristic = Zovníshni Dzherela Danikh. IM. Jadvallar. shop_xususiyati.:

  • Tranzaksiyani chop etish();
  • CommitTransaction();
  • SkasuvatiTransaction().

Bloklash

  • Avtomatik;
  • Kerovaniy;
  • Avtomatik sinov.

shuningdek, tashqi tananing stolining kuchi Tranzaksiya izolyatsiyasi:

Bundan tashqari, siz mustaqil ravishda usul uchun blokirovka darajasini belgilashingiz mumkin Tranzaksiyani chop etish().

Standart maqolani dumba bilan to'ldirish) Agar u bir soatdan ko'proq bo'lsa, men ko'proq dumba qo'shaman.

Smartfonlar va planshetlar butun dunyoda keng tarqalgan.