Kako postaviti pametne telefone i računala. Informativni portal
  • Dom
  • U kontaktu s
  • Razdvajanje podataka, mehanizam. Odvajanje podataka u bsp Mehanizam odvajanja podataka 1s

Razdvajanje podataka, mehanizam. Odvajanje podataka u bsp Mehanizam odvajanja podataka 1s

Uređivač obrazaca služi za izradu i uređivanje obrazaca objekata aplikacijskih rješenja. Sustav koristi oblike objekata za vizualni prikaz podataka o objektima dok korisnik radi.

Bilo koji oblik predstavlja kombinaciju tri komponente:

  • dijalog forme - prozor koji će biti prikazan na ekranu;
  • modul obrasca - program na ugrađenom jeziku odgovoran za rad s kontrolama obrasca i obradu događaja;
  • detalji obrasca - skup objekata koji pripadaju obrascu, čije podatke koristi u svom radu.

Sam uređivač obrasca omogućuje uređivanje dijaloga obrasca, njegovih detalja i poziva uređivač teksta i modula za uređivanje modula obrasca.

Prozor uređivača obrasca sadrži tri kartice koje omogućuju uređivanje sve tri komponente obrasca.

Uređivanje dijaloškog okvira obrasca

Uređivač obrazaca omogućuje razvojnom programeru da u potpunosti iskoristi prednosti širokog raspona dijaloških mogućnosti. Nabrojimo glavne:

Paneli, stranice, oznake

Uređivač dijaloškog okvira omogućuje razvojnom programeru postavljanje posebnih kontrola na obrazac koje pomažu obrascu dati vlastiti prepoznatljiv stil, čine pristup podacima jednostavnim i jasnim, a također uklapaju veliku količinu informacija u ograničeno područje.

Uređivač vam omogućuje postavljanje nekoliko panela na obrazac, od kojih svaki može sadržavati nekoliko stranica. Na primjer, obrazac dokumenta može sadržavati ploču s dvije stranice: Proizvodi i Dodatno:

Programer ima mogućnost postaviti način u kojem će se stranice pomicati unutar ploče ili koristiti oznake za prebacivanje između stranica. Uređivač vam omogućuje definiranje velikog broja različitih opcija za položaj i prikaz knjižnih oznaka:

Na primjer, oznake se mogu postaviti vodoravno na vrh:

Ili možete rasporediti oznake s lijeve strane okomito:

Kontrole

Editor vam omogućuje postavljanje velikog broja različitih kontrola na obrazac. Kontrole možete postaviti povlačenjem ili korištenjem posebnog dijaloga za umetanje kontrola, koji vam omogućuje da istovremeno postavite željena svojstva odabrane kontrole:

U slučaju kada obrazac sadrži veliki broj kontrola, programer može koristiti način prikaza kontrola na popisu, što vam omogućuje brzu navigaciju do željene kontrole:

Uređivač pruža mogućnost određivanja redoslijeda kojim će korisnik zaobići kontrole obrasca prilikom unosa i uređivanja podataka. Moguće je postaviti automatski redoslijed obilaženja ili ručno postaviti redoslijed obilaženja u posebnom popisu kontrola ili klikom miša direktno na obrazac:

Mreža, poravnanje

Form Editor ima velike mogućnosti za kontrolu postavljanja elemenata na obrazac. Konkretno, podržava raspored rešetki, gdje su granice i veličine kontrola usklađene s rešetkom izgleda koja se nalazi na obrascu. Programer ima priliku promijeniti visinu rešetke za označavanje i time postići precizniju lokaciju kontrola:

Uređivač također podržava korištenje linija poravnanja, koje služe za olakšavanje poravnanja i relativnog položaja kontrola obrasca. Na primjer, na sljedećoj ilustraciji, linije poravnanja koriste se za pozicioniranje kontrola na stranici Više:

Programer ima mogućnost postavljanja potrebnog broja vodoravnih ili okomitih linija za poravnanje na stranici, kao i korištenje nevidljivih linija za poravnanje. Uređivač automatski stvara nevidljive linije poravnanja nakon što su dvije ili više kontrola poravnate duž bilo koje granice. Na primjer, ako su dva polja iste veličine poravnata lijevo, stvorit će se nevidljiva linija poravnanja duž desno poravnatih granica tih polja.

Poravnanje kontrola također se može izvršiti pomoću posebnih oznaka koje označavaju željeni smjer kretanja kontrola. Markeri se pojavljuju kada su dvije kontrole u neposrednoj blizini jedna drugoj.

Plave ručice za poravnanje označavaju željeni smjer kretanja kontrole kako bi se ona poravnala s jednom od granica susjedne kontrole:

Crvene ručke za poravnanje označavaju željeni smjer pomicanja kontrole kada se preklapa s drugom kontrolom:

Također treba reći da uređivač podržava operacije poravnavanja, promjene veličine i sređivanja za grupu kontrola:

Vezovi

Uređivač obrazaca omogućuje vam da prilagodite ponašanje kontrola koje se nalaze u obrascu, tako da se prilikom promjene veličine obrasca osigurava prirodna percepcija informacija: jedan dio elemenata ostaje na mjestu, drugi dio se pomiče zajedno s granice forme, a treći dio mijenja svoju veličinu u skladu s promjenom veličine forme.

Kako bi specificirao ovo ponašanje elemenata obrasca, programer može opisati vezanja - ovisnost položaja obruba kontrola o položaju obruba obrasca. Granica kontrole može se pričvrstiti na granicu ili središte obrasca ili na granicu ili središte druge kontrole.

Uređivač podržava veliki izbor različitih vrsta vezanja i može ih prikazati grafički:

Separatori

Razdjelnici su posebne kontrole koje vam omogućuju preraspodjelu prostora obrasca bez promjene njegove veličine. U 1C:Enterprise modu, separator ima mogućnost da se "zgrabi" mišem i pomiče unutar obrasca unutar njegovih granica, uzimajući u obzir mogućnost lokacije drugih kontrola i orijentaciju separatora:

Kada premjestite razdjelnik, sve kontrole povezane s razdjelnikom promijenit će veličinu ili se pomaknuti prema postavljenim sidrištima:

ActiveX

Uređivač vam omogućuje postavljanje ActiveX kontrola na obrazac, koje programer može konfigurirati i naknadno njima upravljati pomoću ugrađenog jezika:

Uređivanje modula obrasca

Za uređivanje modula obrasca, konfigurator poziva uređivač teksta i modula. Ovaj uređivač pruža razvojnom programeru širok izbor opcija za stvaranje i mijenjanje teksta modula.

Uređivanje detalja obrasca

Uređivanje detalja obrasca vrši se na popisu koji vam omogućuje kreiranje novih detalja, promjenu postojećih detalja i brisanje nepotrebnih detalja:

Ako obrazac ima glavni atribut koji određuje ponašanje obrasca koji se razlikuje od standardnog, označen je masnim slovima. Programer može postaviti kursor na željeni atribut i pomoću naredbe izbornika odmah otići u dijaloški okvir obrasca, do kontrolnog elementa koji odgovara odabranom atributu.

dodatne informacije

Možete se upoznati s upotrebom uređivača obrazaca u stvarnom vremenu. Da biste to učinili, možete preuzeti demo video "Primjer razvoja trgovačkog mini-sustava", koji prikazuje proces razvoja trgovačkog mini-sustava pomoću ovog uređivača za izradu obrazaca dokumenata "Prijemna faktura", "Troškovna faktura" i izvješće obrasci "Analiza prodaje" i "Analiza prodaje po razdobljima."

Mehanizam dijeljenja podataka omogućuje pohranjivanje podataka iz nekoliko neovisnih organizacija u jednu informacijsku bazu.

To postaje moguće zahvaljujući činjenici da se opći detalji konfiguracijskih objekata mogu koristiti ne samo kao "isto svojstvo koje imaju svi objekti", već i kao identifikator da podaci pripadaju jednom od nekoliko neovisnih područja. To se može objasniti na sljedećem primjeru.

Recimo da u konfiguraciji postoji opći atribut "Organizacija". To znači (pojednostavljeno) da će svaki imenik, dokument ili drugi konfiguracijski objekt također imati atribut "Organizacija".

Štoviše, svaki korisnik informacijske baze ima pristup svim podacima pohranjenim u ovoj bazi podataka, bez obzira na to koja je organizacija navedena, na primjer, u određenom dokumentu.

Sada naznačimo da će opći atribut "Organizacija" služiti kao separator.

Tada će (pojednostavljeno) u informacijskoj bazi biti kreirano nekoliko neovisnih područja podataka, od kojih će svako pohranjivati ​​podatke samo za jednu određenu organizaciju:

Sada, prilikom ulaska u program, korisnik neće imati pristup svim informacijama koje se nalaze u informacijskoj bazi, već samo podacima “njegovog” područja, u ovom slučaju dokumentima, literaturi i sl. svoje organizacije.

Druga mogućnost korištenja ovog mehanizma je moguća, kada u informacijskoj bazi postoji nekoliko neovisnih područja podataka, a uz to postoje i podaci koji su dostupni svim korisnicima programa. Na primjer, sadrže imenik banaka, koji je isti za sve organizacije.

U tom slučaju korisnik ima pristup "svom" podatkovnom području i nepodijeljenom podatkovnom području, koje je zajedničko svim korisnicima.

Mehanizam dijeljenja podataka prilično je fleksibilan i univerzalan:

  • omogućuje vam korištenje ne jednog, već nekoliko separatora;
  • postoje različiti načini korištenja zajedničkih podataka; razlikuju se u načinu na koji se rješava situacija kada vrijednost graničnika nije navedena;
  • upotreba zajedničkog atributa kao separatora može se kontrolirati tijekom rada programa iz ugrađenog jezika bez mijenjanja konfiguracije; to se zove uvjetna podjela.

Pažnja! Ovo je uvodna verzija lekcije, čiji materijali mogu biti nepotpuni.

Prijavite se na stranicu kao student

Prijavite se kao student za pristup školskim materijalima

Interni programski jezik 1C 8.3 za programere početnike: format u 1C

Prilikom programiranja u 1C često morate prikazati (u istim izvješćima) vrijednosti različitih vrsta (nizovi, datumi, brojevi...). Svaka od vrijednosti ima različite prikaze.

Na primjer, isti datum "01/01/2005" može se predstaviti kao niz kao:

  1. "01.01.2005"
  2. "1. siječnja 2005."
  3. "01.01.05"

Sve su to reprezentacije nizova iste vrijednosti, d Za čije se formiranje koristi posebna funkcija u 1C Format.

Korištenje funkcije Format u 1C

Onemogući grupiranje znamenki

Recimo da trebamo ispisati broj 10000.

Ako napišemo:

Niz formata općenito se sastoji od dva dijela odvojena znakom jednakosti. Lijevo od jednakosti je naziv parametra koji se postavlja (pogledajte u pomoći ili primjerima), a desno je vrijednost ovog parametra.

U gornjem primjeru, niz formata "HH=0" ima HH parametar i vrijednost 0. Ova kombinacija poništava grupiranje znamenki broja. I, kao što vidite, 10000 je sada izlaz.

Izlaz vodeće nule

Drugi uobičajeni zadatak je ispisivanje vodećih nula prije znamenke. Na primjer, recimo da želite prikazati broj 5 s početnom nulom, to jest u obliku "05":

Izvješće(Format(5, "CHZ=2; CHVN=" ) ) ; // ispisuje 05

Pogledajmo niz formata "CC=2; CHVN=". Sastoji se od dva niza formata odvojena točkom i zarezom. Pogledajmo svaki od njih zasebno.

Redak "CC=2" navodi ukupan broj decimalnih mjesta prikazanih za cijeli i razlomački dio. Dakle, ukupan broj pozicija koje će broj zauzeti tijekom izlaza bit će jednak 2.

Redak "ChVN=", kao što slijedi iz pomoći, označava funkciji format da ako broj ne dosegne deklariranu duljinu (kao u našem slučaju, jer smo naveli 2 pozicije, a 5 zauzima samo jednu), tada vodeći treba koristiti nule. Posebnost ovog niza formata je da ima samo naziv parametra i znak jednakosti, ali nema vrijednost. Čitate probnu verziju lekcije, dostupne su cijele lekcije.

Kombinacija dva niza formata daje rezultat koji nam je potreban, "05", umjesto "5".

Promjena razdjelnika između cijelog i razlomka

Pretpostavimo da trebamo prikazati razlomke odvojene zvjezdicom umjesto točkom. To jest, tako da se 25,46 ispisuje kao "25*46":

Niz formata je DF parametar i vrijednost dddd, koja označava funkcije Format ispišite dugi prikaz dana u tjednu (primijetite koliko "d" sadrži).

Prikaz datuma i mjeseca

Opis mjeseca po datumu prikazuje se na sljedeći način:

Izvješće(Format("20050101" , "DF=MMMM" ) ) ; // ispisat će siječanj

Niz formata ima isti DF parametar kao u prethodnom slučaju. Ali značenje je drugačije. Sada je jednako MMMM.

Riješite test

Započni test

1. Format("19050505", "DF=MMMM") će se vratiti

2. Formatirajte niz mijenjajući razlomak i cijeli broj u ^

3. Kako bi funkcija Format vratila "00005" umjesto 5, prikladan je niz formata

4. Kako bi funkcija Format vratila "10 000" umjesto 10 000, prikladan je niz formata

5. Funkcija Format vraća vrijednost tipa

Relativno nova funkcionalna značajka 1C, klasificirana kao tehnologija oblaka. Nakon što se pojavila funkcionalnost, tvrtka 1C modificirala je BSP. Ista poboljšanja uključena su u standardne konfiguracije temeljene na BSP-u, na primjer, UNF i UT11.

Bilo je potrebno organizirati primanje općih izvješća iz nekoliko podružnica s istim konfiguracijama. Odlučio sam isprobati razvoj BSP-a u području odvajanja podataka. Ideja je bila učitati podatke svake podružnice u vlastito područje podataka i generirati izvješća za sva područja odjednom. Odmah ću reći da problem još nije bilo moguće riješiti, ali sam pokušaj rješavanja otkrio je probleme i sumnjivu funkcionalnost u BSP-u.

U prilogu članka nalazi se obrada koja na posebnom obrascu prikazuje skrivene funkcionalnosti operacija s podatkovnim područjima.

BSP nudi dva računovodstvena separatora: glavne podatke područja podataka i pomoćne podatke područja podataka. Ostaje misterija zašto se ova 2 graničnika odnose na iste parametre sesije: DataAreaValue, DataAreaUse.

Uključivanje mehanizma

Ako se vaša samostalno napisana konfiguracija temelji na BSP-u, tada najvjerojatnije, prije nego što ga uključite, trebate implementirati tajanstvenu biblioteku "1C: Knjižnica servisne tehnologije". Čudno je da čak ni Google ne zna za takav 1C proizvod. A u tipičnim konfiguracijama, postupak Provjera mogućnosti korištenja konfiguracije u servisnom modelu u modulu Work In Service Model ne postoji. Dijelove koji nedostaju iz ove biblioteke najvjerojatnije možete pronaći u standardnim konfiguracijama napravljenim na temelju BSP-a. Konkretno, jedan od podsustava se zove StandardSubsystems > WorkInServiceModel > UploadLoadData.

Mehanizam odvajanja podataka omogućen je postavljanjem konstante Use Separation By Data Areas. Može se postaviti preko stavke izbornika Sve funkcije.

Stvaranje korisnika podatkovne regije

Ova stavka nije potrebna ako koristite obrazac za unos podatkovnog područja. Korisnici se kreiraju u načinu rada konfiguratora. Jedan korisnik s administratorskim pravima mora imati sve nepostavljene razdjelnike podataka na kartici Razdvajanje podataka. Za ostale korisnike, separator Data Area mora biti postavljen na Basic Data na kartici Data Separation. Ovaj separator mora biti izričito naveden u naredbenom retku prilikom pokretanja 1C.

Pokretanje 1C s parametrom naredbenog retka

Ova stavka nije potrebna ako koristite obrazac za prijavu za ulazak u područje podataka.

1C se može odmah pokrenuti u načinu rada za odvajanje podataka. Omogućena je opcija /Z naredbenog retka. Na primjer, parametar "/Z-,+1" označava da je 1C pokrenut s glavnom vrijednošću podataka područja podataka jednakom 1, pomoćni separator podataka područja podataka nije postavljen.

Metoda je vrlo nepouzdana. Prilikom pokretanja dolazi do greške u proceduri WorkInServiceModel. Prilikom odabira za omogućavanje načina sigurnog dijeljenja podataka. Nisam mogao pronaći ništa bolje nego komentirati ovaj postupak. Postupkom se provjerava ima li korisnik pravo mijenjati trenutno područje podataka, jesu li njegova prava ograničena i imaju li sigurnosne implikacije.

Zatim se nakon pokretanja pojavljuje nekoliko pogrešaka, uključujući: "Odvojenim korisnicima ne može se dodijeliti uloga administratora sustava", "Odvojenim korisnicima ne može se dodijeliti uloga Pokretanje debelog klijenta."

Korisnik nije pronađen u imeniku korisnika - problem se nije mogao riješiti. U tradicionalnom scenariju, Korisnik se registrira nakon prve prijave. Sumnjam da se prilikom dijeljenja podataka Korisnici stvaraju putem druge 1C Fresh aplikacije.

Ispunite registar podataka Područja podataka

Za svako područje potrebno je ispuniti unos u informacijskom registru područja podataka, dodijeliti brojeve područjima i status „U upotrebi“. Procesi mogu provjeriti ima li unosa u ovom registru prije početka izvršenja.

Ulazak u područje podataka

Administracija - Usluga - Prijava u područje podataka (GeneralForm.LoginDataArea)

Omogućuje korisniku promjenu trenutnog podatkovnog područja. Prijava u područje moguća je kao korisnik koji radi bez navođenja graničnika. Prilikom promjene podatkovnog područja provjerava njegov status u informacijskom registru podatkovnog područja.

Prijenos podataka iz područja

Trenutačno područje istovaruje se kroz GeneralForm. Prijenos podataka. Prije korištenja morate se prijaviti u željeno podatkovno područje. Obrazac se ne prikazuje u korisničkom sučelju u odjeljku Administracija.

Podaci se konfiguracijom serijaliziraju u XML format i pakiraju u ZIP. Odnosno, arhiviranje se ne odvija pomoću 1C konfiguratora, poput tradicionalnog učitavanja.

Učitaj podatke u područje

GeneralCommand.LoadDataArea

Za pojavljivanje u Administraciji-Servisu potrebno je postaviti vidljivost kroz Konfigurator u sklopu podsustava Postavke i administracija.

Podaci se učitavaju u odabrano područje. Prije toga moraju se preuzeti u XML formatu.

zaključke

Sustav se nije mogao pokrenuti navođenjem graničnika u naredbenom retku. Sustav je odbio raditi zbog neprijavljenog korisnika u imeniku korisnika. Do imenika nije bilo moguće doći jer sustav ne dopušta korisnike s administratorskim pravima. Mislim da ovaj scenarij zahtijeva obaveznu vezu s 1CFreshom.

Eksperimenti s ulaskom u različita područja, područja istovara i utovara bili su uspješni. Pokušaj dovršetka zahtjeva za dobivanje svih organizacija za sva područja podataka nije uspio. Pogreška: "Ne možete koristiti tablicu bez navođenja svih graničnika uz neovisnu upotrebu zajedničkih podataka." Izvješće radi za jedno područje ako unesete bilo koje područje.

Problem koji ostaje nejasan je kako istovariti podatke iz baze podataka bez graničnika u određeno područje podataka druge baze podataka.

Bilo bi zanimljivo znati za lukavu ideju autora BSP-a u vezi s općim parametrima sesije za dva separatora, ako je poziv s parametrima: “/Z-,+1”, “/Z+1,+1 ” i “/Z+1,-” .

1.Preambula.

Pojavila se potreba organiziranja računovodstva za dvije organizacije u jednom sustavu informacijske sigurnosti. Situacija nije jedinstvena, ali dogodilo se da je naš vrlo neobičan USB disk od 250 gigabajta radio prilično sporo, pa smo umjesto RLS-a odlučili isprobati razdvajanje podataka. Opisano je što je to, na primjer, ili. Ukratko, ako RLS dodaje uvjete SQL upitima, onda je separator podataka dodatni stupac u tablicama na razini DBMS-a, zbog čega bi mehanizam separatora trebao raditi brže od RLS-a.

Dakle, u bazu podataka u kojoj se vodila evidencija za DOO br. 1 potrebno je prenijeti podatke iz zasebne baze DOO br. 2 i organizirati zajednički rad. Baš kao na slici:

Obični smrtnici rade samo sa svojim LLC preduzećem, a glavni računovođa ponekad gleda podatke za dvije pravne osobe. U načinu pristupa obaju LLC društava možete samo čitati podatke, tako da bi glavni računovođa trebao moći interaktivno mijenjati način rada "čitaj sve"/"upisi samo jednu organizaciju" i odabrati LLC (tj. postaviti vrijednost uobičajeni detalji) za izvođenje, na primjer, izračuna troškova.

2. Provedba

Platforma 8.2.19.90, bez načina kompatibilnosti. DBMS - MSSQL Server 2008 R2 Standard.

Stvorili smo opći atribut OrganisationSeparator tipa "broj", složili se s prijedlogom za stvaranje parametara sesije, ispunili sastav detalja (uključeno nekoliko direktorija, svi dokumenti, akumulacijski, računovodstveni i obračunski registri). Razdvajanje podataka - "Neovisno i zajedničko". Vrijednost parametra sesije postavlja se iz standardnih korisničkih postavki u proceduri SettingSessionParameters u modulu sesije:

Organizacija = UserManagement.GetDefaultValue(chCurrentUser,"PrimaryOrganization");
SessionParameters.OrganizationSeparatorValue = Organizacija.SeparatorValue;

U sučelju glavnog računovođe napravili su obrazac s mogućnošću prebacivanja između organizacija i uključivanja/isključivanja načina odvajanja:

Kada je odvajanje onemogućeno, kada je SessionParameters.OrganizationSeparatorUsage = False, platforma odbija pisati dokumente, ruši se s pogreškama kao što je "SDBL greška: očekivani izraz (pos=12)", tako da ne možete dopustiti korisniku da piše dokumente u ovoj opciji. Radi pouzdanosti stvorili smo pretplate na događaj "Prije snimanja" za objekte koji su dio općeg atributa:

IfSessionParameters.OrganizationSeparatorUsage = False Zatim
#If Client Onda
Upozorenje("Ne mogu pisati jer je dijeljenje podataka onemogućeno!");
#Završi ako
Odbiti = Istina;
završi ako;

Naš akcijski plan je bio sljedeći: pripremiti konfiguraciju prijemnika IS br. 1, postaviti vrijednosti općeg atributa = 1, učitati podatke iz IS br. 2, nakon učitavanja, za sve objekte s praznim (jednako 0 ) vrijednost separatora, postavite OrganisationSeparator = 2.

Konfiguracija je pripremljena, postavilo se pitanje: kako postaviti vrijednost općih detalja za dokumente i njihovo kretanje u zatvorenim razdobljima, brzo i bez rizika da će brojevi u bilanci letjeti? Nemoguće je napisati separator odvojeno od objekta kroz 1C objektni model, pa sam morao prekršiti licencni ugovor da izađem i napišem upit za MS SQL. Budući da postoji mnogo objekata u općem atributu, a postoji još više tablica u tablici za te objekte, napisali smo obradu koja generira upit za SQL (za svaki objekt metapodataka uključen u separator, napisali smo "ažuriranje" + DB_Name + ".dbo._" + TableName + "set _" + FieldGeneralAttributes + "= 1";)

Unijeli smo vrijednost, prenijeli dio podataka iz IS br. 2 i započeli testiranje.

Rezultat je bio razočaravajući. Prvo, problemi s knjigovodstvenim registrom. Kada je odvajanje omogućeno, analitičar nije vidljiv:

To je zbog činjenice da je knjigovodstveni registar na razini DBMS-a pohranjen kao više tablica, a nisu sve tablice imale unesenu vrijednost općeg atributa (procesiranje je korišteno za pregled strukture).


U redu, unesimo vrijednost separatora koristeći MS SQL, pa ćemo vidjeti analitiku. Izvješća više ne rade. Ispostavilo se da postoje problemi s upitima prema virtualnim tablicama knjigovodstvenog registra „Promet” i „PrometDtKt”:

(Fld27033 je samo opći atribut u tablici računovodstvenog registra)

Separator je instaliran u svim tablicama, to je vidljivo na razini DBMS-a, nije jasno koja bi greška mogla biti. Implementiramo standardni prazan SCP, napravimo gore opisane konfiguracijske promjene, unesemo nekoliko dokumenata (u ovoj opciji platforma sama unosi vrijednost separatora u sve tablice računovodstvenih registara), ali greške se reproduciraju. Loše je, ali isključujemo računovodstvene registre iz općih podataka i nastavljamo s testiranjem.

Nadalje, pokazalo se da je mehanizam pomaka registara za izračun prestao raditi. Planove nismo razdvajali po vrstama obračuna, problem pokušavamo tražiti u tablicama registra obračuna i u preračunima. Provjeravamo, unosimo vrijednost glavnih detalja, radimo T&I - bezuspješno.

Usput dijagnosticiramo problem prilikom upisa informacija iz obrasca popisa u nezavisne registre. U tom slučaju podaci se snimaju i mogu se vidjeti nakon ponovnog pokretanja. Problem se također reproducira na testnoj bazi:


Informacijske registre nije bilo moguće “popraviti” manipulacijom SQL-om (vrijednost separatora u svim tablicama je postavljena), pa smo ih jednostavno isključili iz općih atributa. Nakon nekoliko dana eksperimentiranja, pokušaji vraćanja funkcionalnosti preemptiona također su se pokazali neuspješnima.

U ovom trenutku odlučujemo isključiti odvajanje podataka i koristiti RLS. Prilikom postavljanja particije na "ne koristi", nailazimo na pogreške "Microsoft OLE DB Provider forSQL Server: CREATE UNIQUE INDEX prekinut jer je pronađen duplikat ključa za indeks...". Odnosno, nije se tako lako vratiti u stanje prije diobe. Problem s indeksima tablica pretvorbe, postavkama za pohranjivanje zbrojeva i dr. Činjenica je da tablice pohranjuju identične retke, koji se razlikuju samo u vrijednosti općeg atributa. Kada izbrišete zajednički atribut, pojavljuju se nejedinstveni zapisi. Morat ćete izbrisati nepotrebne zapise izravno u MS SQL-u, otprilike ovako (za tablicu pretvorbe):

Koristite bazu;
ALTER TABLE_CRgRecalc1399
DODAJ id INT IDENTITET(1,1);
IĆI
IZBRIŠI FROM_CRgRecalc1399
GDJE id< (SELECT MAX(id)
IZ _CRgRecalc1399 KAO T1
WHERE _CRgRecalc1399._RecorderTRef = T1._RecorderTRef i
_CRgRecalc1399.[_RecorderRRef] = T1.[_RecorderRRef] i
_CRgRecalc1399.[_CalcKindRRef] = T1.[_CalcKindRRef] i
_CRgRecalc1399.[_Fld1400RRef] = T1.[_Fld1400RRef] i
_CRgRecalc1399.[_Fld1401RRef] = T1.[_Fld1401RRef] i
_CRgRecalc1399.[_Fld1402RRef] = T1.[_Fld1402RRef]
);
IĆI
ALTER TABLE_CRgRecalc1399
DROP COLUMN id;

I tek nakon čišćenja nekoliko desetaka tablica moguće je isključiti odvajanje podataka. Nakon isključivanja odvajanja nema problema.

3. Zaključci.

Postojao je tračak nade da su problemi riješeni u 8.3. Nismo bili previše lijeni, provjerili smo to na 8.3.4.482 (s onemogućenim načinom kompatibilnosti). Pogledali smo gotovo standardnu ​​upravljačku jedinicu, s promjenama u konfiguraciji samo za opće detalje. Na ovoj testnoj bazi odvajanje je bilo omogućeno prije unosa informacija, tj. platforma je morala ispravno upisati vrijednost separatora u sve tablice; sami nisu ništa upisali izravno u MS SQL.

Proizlaziti:

    Reproducira se problem s upitima prema virtualnim tablicama "Promet" i "PrometDtKt".

    Reproducira se problem s represijom.

    Reproducira se problem upisa u neovisne registre informacija.

    Problem s isključivanjem odvajanja je taj što ga se ne možete riješiti jednim pritiskom na gumb!

Stoga nismo bili u mogućnosti zamijeniti RLS novim mehanizmom. Ovaj je mehanizam očito zamišljen za usluge u oblaku, a u slučaju korištenja zajedničkih podataka "neovisno", možda će podjela funkcionirati, ali trebamo zajedničke matične podatke. Samo trebamo pričekati da 1C ispravi pogreške, ili još bolje, implementira standardni mehanizam za odvajanje po organizaciji u standardnim konfiguracijama.

Najbolji članci na temu