Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • U kontaktu sa
  • Razdvajanje podataka, mehanizam. Razdvajanje podataka u bsp Mehanizam odvajanja podataka 1s

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

Uređivač obrazaca se koristi za kreiranje i uređivanje obrazaca objekata aplikativnog rješenja. Obrasce objekata sistem koristi za vizuelno prikazivanje podataka o objektima tokom rada korisnika.

Bilo koji oblik je kombinacija tri komponente:

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

Editor obrasca direktno omogućava uređivanje dijaloga obrasca, njegovih atributa i poziva urednika tekstova i modula za uređivanje modula obrasca.

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

Uređivanje dijaloga obrasca

Uređivač obrazaca omogućava programeru da u potpunosti iskoristi širok spektar mogućnosti dijaloga. Navodimo glavne od ovih mogućnosti:

Paneli, stranice, oznake

Uređivač dijaloga omogućava programeru da postavi posebne kontrole na obrazac koje pomažu da se obrascu da sopstveni prepoznatljiv stil, da pristup podacima učini jednostavnim i razumljivim i da stane veliku količinu informacija u ograničeno područje.

Uređivač vam omogućava da postavite 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 Dodaci:

Programer ima mogućnost da podesi režim u kojem će se stranice pomerati unutar panela ili da koristi obeleživače za prebacivanje između stranica. Uređivač vam omogućava da definirate veliki broj različitih opcija za lokaciju i prikaz oznaka:

Na primjer, oznake se mogu postaviti vodoravno na vrhu:

Ili možete rasporediti oznake na lijevoj strani okomito:

Kontrole

Uređivač vam omogućava da postavite širok izbor kontrola na obrazac. Kontrole možete postaviti prevlačenjem ili korištenjem posebnog dijaloga za umetanje kontrola, koji vam omogućava 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 listi, što vam omogućava brzu navigaciju do željene kontrole:

Editor pruža mogućnost da odredi redosled kojim će korisnik zaobići kontrole obrasca prilikom unosa i uređivanja podataka. Moguće je postaviti automatski redoslijed prelaska ili ručno postaviti redoslijed prelaska u posebnoj listi kontrola, ili klikom direktno na obrazac:

Mreža, poravnanje

Editor forme ima velike mogućnosti za kontrolu postavljanja elemenata na formu. Konkretno, podržava rad sa mrežom rasporeda, kada su granice i veličine kontrola usklađene sa mrežom rasporeda koja se nalazi u obrascu. Programer ima mogućnost da promijeni razmak između mreže izgleda i na taj način postigne precizniju lokaciju kontrola:

Uređivač takođe podržava upotrebu linija za poravnanje, koje se koriste za olakšavanje poravnanja i relativne pozicije kontrola obrasca. Na primjer, na sljedećoj ilustraciji, linije poravnanja se koriste za pozicioniranje kontrola na stranici Napredno:

Programer ima mogućnost da postavi potreban broj horizontalnih ili vertikalnih linija za poravnanje na stranicu, kao i da koristi nevidljive linije poravnanja. Editor automatski kreira nevidljive linije poravnanja nakon što se dvije ili više kontrola poravnaju s bilo kojom od ivica. Na primjer, ako su dva polja iste veličine poravnata lijevo, tada će se stvoriti nevidljiva linija poravnanja duž desno poravnatih granica tih polja.

Poravnavanje komandi se takođe može obaviti korišćenjem posebnih markera koji pokazuju željeni smer pomeranja komandi. Ručice se pojavljuju kada su dvije kontrole u neposrednoj blizini jedna drugoj.

Plave ručke za poravnanje označavaju željeni smjer za pomicanje kontrole da bi se poravnala s jednom od susjednih granica kontrole:

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

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

Vezi

Uređivač obrasca vam omogućava da prilagodite ponašanje kontrola koje se nalaze u obrascu tako da se prilikom promjene veličine obrasca informacije prirodno percipiraju: jedan dio elemenata ostaje na svom mjestu, drugi dio se pomiče zajedno s granicama obrasca, a treći dio mijenja svoju veličinu u skladu sa promjenom veličine forme.

Da bi postavio takvo ponašanje elemenata obrasca, programer može opisati vezivanja - zavisnost položaja granica kontrola o položaju granica obrasca. Granica kontrole može biti usidrena ili na ivicu ili centar obrasca, ili na granicu ili centar druge kontrole.

Editor podržava širok izbor različitih tipova snimaka i može ih prikazati grafički:

Separatori

Razdjelnici su posebne kontrole koje se mogu koristiti za preraspodjelu prostora forme bez promjene njegove veličine. U režimu 1C:Enterprise, separator ima mogućnost da bude "uhvaćen" mišem i da se kreće unutar forme unutar svojih granica, uzimajući u obzir mogućnost postavljanja drugih kontrola i orijentaciju separatora:

Prilikom pomicanja razdjelnika, sve kontrole vezane za razdjelnik će promijeniti veličinu ili se pomicati prema postavljenim sidrima:

ActiveX

Uređivač vam omogućava da postavite ActiveX kontrole u formu, koju programer može prilagoditi i dalje upravljati njima koristeći ugrađene jezičke alate:

Uređivanje modula obrasca

Za uređivanje modula obrasca, konfigurator poziva urednika tekstova i modula. Ovaj uređivač pruža programeru širok izbor opcija za kreiranje i modificiranje teksta modula.

Uređivanje detalja obrasca

Atributi obrasca se uređuju na listi, što vam omogućava da kreirate nove atribute, promenite postojeće i izbrišete nepotrebne atribute:

Ako obrazac ima glavni atribut koji određuje ponašanje obrasca, različit od tipičnog, on je označen podebljanim slovima. Programer može postaviti kursor na željeni atribut i, koristeći naredbu menija, odmah otići na dijalog forme, na kontrolni element koji odgovara odabranom atributu.

Dodatne informacije

Možete se upoznati sa upotrebom uređivača obrazaca u realnom vremenu. Da biste to učinili, možete preuzeti demo video "Primjer razvoja trgovinskog mini-sistema", koji prikazuje proces razvoja trgovinskog mini-sistema pomoću ovog uređivača za kreiranje obrazaca dokumenata "Faktura", "Faktura" i obrazaca izvještaja " Analiza prodaje" i "Analiza prodaje po periodima.

Mehanizam dijeljenja podataka omogućava pohranjivanje podataka nekoliko nezavisnih organizacija u jednu infobazu.

Ovo postaje moguće zbog činjenice da se zajednički atributi konfiguracijskih objekata mogu koristiti ne samo kao "isti atribut koji imaju svi objekti", već i kao identifikator da podaci pripadaju jednom od nekoliko nezavisnih područja. Ovo se može objasniti sljedećim primjerom.

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

Istovremeno, svaki korisnik infobaze ima pristup svim podacima pohranjenim u ovoj bazi podataka, bez obzira na to koja je organizacija navedena, na primjer, u određenom dokumentu.

Sada navedite da će zajednički atribut "Organizacija" biti separator.

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

Sada, ulaskom u program, korisnik neće dobiti pristup svim informacijama koje se nalaze u infobazi, već samo podacima "njegovog" područja, u ovom slučaju dokumentima, imenicima itd. svoje organizacije.

Moguća je i druga varijanta korišćenja ovog mehanizma, kada u infobazi postoji više nezavisnih oblasti podataka i uz to postoje podaci koji su dostupni svim korisnicima programa. Na primjer, sadrže imenik banaka, koji je isti za sve organizacije.

U ovom slučaju, korisnik ima pristup "svom" području podataka i području podataka koji se ne dijele, što je zajedničko svim korisnicima.

Mehanizam dijeljenja podataka prilično je fleksibilan i univerzalan:

  • omogućava vam da koristite ne jedan, već nekoliko separatora;
  • postoje različiti načini korištenja zajedničkih podataka; razlikuju se po tome kako se postupa u situaciji kada vrijednost graničnika nije navedena;
  • upotreba zajedničkog atributa kao graničnika može se kontrolisati tokom rada programa iz ugrađenog jezika bez promjene konfiguracije; ovo se zove uslovna podela.

Pažnja! Evo probne verzije lekcije, čiji materijali možda nisu potpuni.

Prijavite se kao student

Prijavite se kao učenik da pristupite školskom sadržaju

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

Prilikom programiranja u 1C često morate prikazati (u istim izvještajima) vrijednosti ​​različitih tipova (nizovi, datumi, brojevi...). Svaka od vrijednosti ima različite reprezentacije.

Na primjer, isti datum "01/01/2005" može biti predstavljen kao niz kao:

  1. "01.01.2005"
  2. "1. januara 2005."
  3. "01.01.05"

Sve su to string reprezentacije iste vrijednosti. za čije se formiranje u 1C koristi posebna funkcija Format.

Korištenje funkcije Format u 1C

Onemogućite grupisanje cifara

Pretpostavimo da želimo ispisati broj 10000.

ako napišemo:

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

U gornjem primjeru, niz formata "NG=0" ima parametar NG i vrijednost 0. Ova kombinacija razgrupira cifre broja. I kao što vidite, sada je prikazano 10000.

Uklanjanje vodećih nula

Uobičajen je zadatak i ispisivanje vodećih nula prije cifre. Na primjer, recimo da želite prikazati broj 5 sa početnom nulom, odnosno u obliku "05":

Izvještaj(Format(5, "FH=2; FH=") ) ; // izlazi 05

Hajde da raščlanimo niz formata "FZ=2; HVN=". Sastoji se od dva niza formata odvojenih tačkom i zarezom. Analizirajmo svaku od njih posebno.

Red "CHT=2" postavlja ukupan broj prikazanih decimalnih mjesta za cijeli broj i razlomak. Dakle, ukupan broj pozicija koje će broj zauzeti prilikom izlaza će biti jednak 2.

Niz "HVN=", kao što slijedi iz pomoći, ukazuje na funkciju formatiranja da ako broj ne dostigne deklariranu dužinu po dužini (kao u našem slučaju, jer smo naveli 2 pozicije, a 5 zauzima samo jednu), tada treba koristiti vodeće nule. Posebnost ovog formatnog niza je da ima samo ime parametra i znak jednakosti, ali nema vrijednost. Čitate probnu verziju lekcije, nalaze se pune lekcije.

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

Promijenite decimalni separator

Pretpostavimo da trebamo prikazati razlomke sa zvjezdicom za razdvajanje umjesto tačke. Odnosno, tako da se 25.46 prikazuje kao "25 * 46":

Niz formata je DF parametar i dddd vrijednost, koja označava funkciju Format izbacite dugu predstavu dana u sedmici (zapazite koliko "d" sadrži).

Mjesečno predstavljanje datuma

Opis mjeseca po datumu je prikazan na sljedeći način:

Izvještaj(Format("20050101" , "DF=MMMM" ) ) ; // štampa januar

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

Uradite test

Pokreni test

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

2. Formatirajte string mijenjajući decimalni i cijeli broj separatora u ^

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

4. Da bi funkcija Format vratila "10000" umjesto 10,000, poslužit će niz formata

5. Funkcija Format vraća vrijednost tipa

Relativno nova funkcionalna karakteristika 1C, vezana za tehnologije oblaka. Nakon pojave funkcionalnosti, kompanija 1C je finalizirala BSP. Ista poboljšanja su uključena u standardne konfiguracije zasnovane na BSP-u, na primjer, UNF i UT11.

Bilo je potrebno organizovati prijem opštih izveštaja iz više filijala sa istim konfiguracijama. Odlučio sam da isprobam razvoje iz BSP-a u oblasti razdvajanja podataka. Ideja je bila učitavanje podataka svake grane u vlastito područje podataka i generiranje izvještaja za sva područja odjednom. Moram odmah 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.

Obrada je priložena uz članak, što skrivenu funkcionalnost operacija sa područjima podataka dovodi u poseban oblik.

Postoje dva računovodstvena graničnika u BSP-u: Područje glavnih podataka i Područje podataka pomoćnih podataka. Ostaje misterija zašto se ova 2 graničnika odnose na iste parametre sesije: DataAreaValue, DataAreaUsage.

Uključivanje mehanizma

Ako je vaša samonapisana konfiguracija zasnovana na BSP-u, tada, najvjerovatnije, prije nego što je uključite, morate implementirati misterioznu biblioteku "1C: Biblioteka uslužne tehnologije". Čudno je da čak ni Google ne zna za takav 1C proizvod. I u tipičnim konfiguracijama, ne postoji procedura CheckAbility za korištenje ConfigurationInServiceModel u modulu WorkInServiceModel. Najvjerovatnije možete pronaći dijelove koji nedostaju iz ove biblioteke u tipičnim konfiguracijama napravljenim na bazi BSP-a. Konkretno, jedan od podsistema se zove StandardSubsystems > RunInServiceModel > UploadUploadData.

Mehanizam dijeljenja podataka je omogućen postavljanjem konstante UseSplitByDataArea. Može se podesiti preko stavke menija Sve funkcije.

Kreiranje korisnika regije podataka

Ova stavka nije obavezna ako koristite unos obrasca u područje podataka. Korisnici se kreiraju u konfiguratorskom modu. Jedan korisnik sa administrativnim pravima mora imati sve nepostavljene separatore podataka na kartici Odvajanje podataka. Za druge korisnike, na kartici Odvajanje podataka, mora se postaviti separator Glavni podaci područja podataka. Ovaj separator mora biti eksplicitno naveden u komandnoj liniji prilikom pokretanja 1C.

Pokrenite 1C s parametrom komandne linije

Ova stavka nije potrebna ako koristite prijavu na područje podataka putem obrasca za prijavu.

1C se može odmah pokrenuti u načinu dijeljenja podataka. Opcija /Z komandne linije je obezbeđena. Na primjer, parametar "/Z-,+1" označava da je 1C pokrenut sa vrijednošću glavnih podataka područja podataka jednakom 1, separator pomoćni podaci područja podataka nije postavljen.

Metoda je vrlo nepouzdana. Prilikom pokretanja, pojavljuje se greška u proceduri WorkInServiceModel. WhenCheckingEnableSecureDataSharingMode. Nisam našao ništa bolje od komentarisanja ove procedure. Postupkom se provjerava da li korisnik ima pravo mijenjati trenutnu oblast podataka, da li su mu prava ograničena i da li utiče na sigurnost.

Dalje, pri pokretanju postoji nekoliko grešaka među njima: „Razdvojenim korisnicima se ne može dodijeliti uloga administratora sistema“, „Razdvojenim korisnicima se ne može dodijeliti uloga pokretanja debelog klijenta“.

Korisnik nije pronađen u direktoriju korisnika - problem se nije mogao riješiti. U tradicionalnom scenariju, Korisnik se registruje pri prvoj prijavi. Pretpostavljam da se prilikom razdvajanja podataka kreiraju Korisnici preko druge 1C Fresh aplikacije.

Popunite registar informacija o području podataka

Za svako područje potrebno je popuniti unos u registar podataka o području podataka, dodijelivši brojeve područjima i status "Korišćeno". Obrade mogu provjeriti unose u ovaj registar prije početka izvršavanja.

Ulazak u područje podataka

Administracija - Usluga - Ulazak u područje podataka (CommonForm.EnteringData oblast)

Omogućava korisniku da promijeni trenutno područje podataka. Prijava na područje je moguća u ime korisnika koji je pokrenut bez navođenja razgraničenja. Kada se područje podataka promijeni, ono provjerava njegov status u registru informacija o području podataka.

Učitavanje podataka iz područja

Trenutna oblast se učitava preko CommonForma. Uploading Data. Prije korištenja, morate se prijaviti na željeno područje podataka. Obrazac se ne prikazuje u korisničkom interfejsu u odjeljku Administracija.

Podaci se serijaliziraju konfiguracijom u XML format i pakuju u ZIP. Odnosno, arhiviranje se ne odvija pomoću 1C konfiguratora, kao tradicionalno istovar.

Učitajte podatke na područje

GeneralCommand.LoadDataToRegion

Da biste se pojavili u Administrativnoj usluzi, morate postaviti vidljivost kroz konfigurator kao dio podsistema za postavljanje i administraciju.

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

zaključci

Nije uspjelo pokretanje sistema postavljanjem graničnika na komandnoj liniji. Sistem je odbio da radi zbog neregistrovanog korisnika u imeniku Korisnici. Nije bilo moguće doći do direktorija iz razloga što sistem ne dozvoljava korisnicima s administrativnim pravima. Mislim da ovaj scenario predviđa obaveznu vezu sa 1CFresh.

Iskustva sa ulaskom u različite prostore, istovarom i utovarom su bila uspješna. Pokušaj da se dobiju sve organizacije za sve regije podataka nije uspio. Greška: "Ne može se koristiti tabela bez navođenja svih graničnika s nezavisnom upotrebom zajedničkih podataka." Izvještaj radi na jednom području, ako uđete u bilo koje područje.

Problem je ostao nejasan, kako učitati podatke iz baze podataka bez separatora u određeno područje podataka druge baze podataka.

Bilo bi zanimljivo saznati o lukavoj ideji autora BSP-a o općim parametrima sesije za dva separatora, ako je poziv sa parametrima: "/Z-,+1", "/Z+1,+1 " i "/Z+1,-" .

1. Preambula.

Pojavila se potreba za organizovanjem računovodstva za dvije organizacije u jednoj IB. Situacija nije jedinstvena, ali se dogodilo da je naš vrlo netipičan UPP od 250 GB radio prilično sporo, pa smo umjesto RLS-a odlučili isprobati razdvajanje podataka. Što je to opisano je, na primjer, ili. Ukratko, ako RLS uslovljava SQL upite, onda je graničnik podataka dodatna kolona u tabelama na nivou DBMS-a, pri čemu bi mehanizam razgraničenja trebao biti brži od RLS-a.

Dakle, u bazi podataka u kojoj je vođena evidencija za OOO br. 1, potrebno je preneti podatke iz posebne baze podataka OOO br. 2 i organizovati zajednički rad. Baš kao na slici:

Obični smrtnici rade samo sa svojim DOO, a šef računovodstva ponekad pogleda podatke o dva pravna lica. U režimu pristupa za oba LLC preduzeća možete samo čitati podatke, tako da glavni računovođa mora biti u mogućnosti da interaktivno prelazi između režima "čitaj sve" / "piši samo za jednu organizaciju" i odabire LLC (tj. postaviti vrijednost zajednički atribut) za izvođenje, na primjer, obračuna troškova.

2. Implementacija

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

Napravili smo zajednički atribut Organisation Separator tipa "broj", složili smo se sa predlogom za kreiranje parametara sesije, popunili sastav atributa (uključuje nekoliko imenika, sve dokumente, akumulacije, računovodstvene i obračunske registre). Razdvajanje podataka - "Nezavisno i zajednički". Vrijednost parametra sesije se postavlja iz zadanih korisničkih postavki u proceduri SetSessionParameters u modulu sesije:

Organizacija = UserManagement.GetDefaultValue(glCurrentUser,"MainOrganization");
SessionParameters.OrgDelimiterValue = Organization.DelimiterValue;

U sučelju glavnog računovođe napravili su obrazac s mogućnošću prebacivanja između organizacija i omogućavanja / onemogućavanja načina razdvajanja:

Sa onemogućenim podjelom, kada SessionParameters.OrganizationSeparatorUse = False, platforma odbija pisati dokumente, izbacujući greške poput "SDBL Error: očekivani izraz (pos=12)", tako da ne možete dozvoliti korisniku da piše dokumente u ovoj opciji. Radi pouzdanosti, kreirali smo pretplate na događaj "Prije snimanja" za objekte koji su dio zajedničkog atributa:

Ako je SessionParameters.OrgDelimiterUse = False Onda
#Ako klijent onda
Upozorenje("Ne mogu pisati jer je deljenje podataka onemogućeno!");
#EndIf
Odbijanje = istina;
EndIf;

Naš akcioni plan je bio sljedeći: pripremamo konfiguraciju prijemnika IB br. 1, upisujemo vrijednosti zajedničkog atributa = 1, učitavamo podatke iz IB br. 2, nakon učitavanja za sve objekte sa praznim (jednakim 0) vrijednost separatora, postavite separator organizacije = 2.

Konfiguracija je pripremljena, postavilo se pitanje, kako podesiti vrijednost općeg atributa za dokumente i njihovo kretanje u zatvorenim periodima, i to brzo i bez rizika da će brojevi na bilansu proletjeti? Kroz objektni model 1C nemoguće je napisati separator odvojeno od objekta, pa sam morao raskinuti ugovor o licenci da bih izašao i napisao upit za MS SQL. Budući da postoji mnogo objekata u zajedničkom atributu, a još više tablica u jagodicama za ove objekte, napisali smo obradu koja generira upit za SQL (za svaki objekt metapodataka koji je dio separatora napisali smo "ažuriraj" + DB_name + ".dbo._" + TableName + " set _" + Polje GeneralAttribute + " = 1";)

Vrijednost je postavljena, neki od podataka su prebačeni iz IB br. 2 i počelo je testiranje.

Rezultat je bio razočaravajući. Prvo, problemi sa računovodstvenim registrom. Kada je odvajanje omogućeno, analitika nije vidljiva:

To je zbog činjenice da je računovodstveni registar na nivou DBMS pohranjen kao nekoliko tabela, a nisu sve tabele imale vrijednost zajedničkog atributa (za pregled strukture korištena je obrada).


Pa, zapisujemo vrijednost separatora kroz MS SQL, vidimo analitiku. Sada izvještaji ne rade. Ispostavilo se da postoje problemi s upitima na virtuelne tablice računovodstvenog registra "Promet" i "TurnoversDtKt":

(Fld27033 je samo uobičajen atribut u tabeli računovodstvenog registra)

U svim tabelama je postavljen separator, vidi se na nivou DBMS, šta bi mogla biti greška, nije jasno. Mi postavljamo tipičan prazan SCP, vršimo gore opisane promjene u konfiguraciji, unosimo nekoliko dokumenata (u ovoj opciji sama platforma postavlja vrijednost separatora u svim tablicama računovodstvenih registara), ali greške se reproduciraju. Loše je, ali računovodstvene registre izuzimamo iz opštih rekvizita, nastavljamo testiranje.

Nadalje, ispostavilo se da je mehanizam pomaka za računske registre prestao raditi. Nismo izdvajali planove za vrste obračuna, pokušavamo da tražimo problem u tabelama obračunskog registra i u preračunama. Provjeravamo, unosimo vrijednost glavnog atributa, radimo T&I - bezuspješno.

Usput dijagnosticiramo problem prilikom upisivanja informacija u nezavisne registre iz obrasca liste. U ovom slučaju podaci se snimaju, mogu se vidjeti nakon ponovnog pokretanja. Problem se reprodukuje na testnoj bazi:


Informacijski registri nisu mogli biti "popravljeni" manipulacijom SQL-om (vrijednost separatora je postavljena u svim tabelama), pa su jednostavno isključeni iz općeg atributa. Nakon nekoliko dana eksperimentiranja, pokušaji vraćanja radne sposobnosti deplasmana također su neuspješni.

U ovom trenutku odlučujemo da isključimo dijeljenje podataka i da i dalje koristimo RLS. Prilikom postavljanja split na "ne koristiti", nailazimo na greš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 rastave. Problem sa indeksima tabela ponovnog izračunavanja, postavkama za pohranjivanje ukupnih iznosa i drugim. Činjenica je da tabele pohranjuju identične redove koji se razlikuju samo po vrijednosti zajedničkog atributa. Prilikom brisanja zajedničkog atributa pojavljuju se nejedinstveni unosi. Nepotrebne zapise ćete morati obrisati direktno u MS SQL-u, otprilike ovako (za tabelu ponovnog izračunavanja):

usebase;
ALTER TABLE_CRgRecalc1399
DODAJ ID INT IDENTITETA(1,1);
GO
IZBRIŠI FROM_CRgRecalc1399
WHERE id< (SELECT MAX(id)
OD _CRgRecalc1399 AS T1
GDJE _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]
);
GO
ALTER TABLE_CRgRecalc1399
DROP COLUMN id;

I tek nakon čišćenja nekoliko desetina tabela, moguće je isključiti particioniranje podataka. Nakon isključivanja odvajanja, nema problema.

3. Zaključci.

Postojala je nada da su 8,3 problema riješeni. Nismo bili previše lijeni, provjerili smo na 8.3.4.482 (sa onemogućenim načinom kompatibilnosti). Pogledali smo gotovo tipičan SCP-shke, sa promjenama u konfiguraciji samo za opće rekvizite. Na ovoj test bazi je podjela omogućena prije unosa informacija, tj. platforma je morala ispravno upisati vrijednost separatora u sve tabele, oni nisu sami pisali ništa direktno u MS SQL.

rezultat:

    Reproduciran je problem sa upitima virtuelnim tabelama "Promet" i "TurnoversDtKt".

    Problem prevencije je ponovljiv.

    Reproducira se problem upisivanja u nezavisne registre informacija.

    Problem sa isključivanjem razdvajanja - neće ga se riješiti jednim klikom na dugme!

Dakle, nismo uspjeli zamijeniti RLS novim mehanizmom. Ovaj mehanizam je zamišljen, očigledno, za usluge u oblaku, au slučaju korištenja zajedničkih podataka "nezavisno", možda će razdvajanje funkcionirati, ali nam je potreban zajednički NSI. Ostaje čekati da 1C ispravi greške, a još bolje, implementira tipičan mehanizam za podjelu po organizacijama u standardnim konfiguracijama.

Top Related Articles