Imprimare (Ctrl+P)

Acest articol conține o descriere a unor elemente ale administrării sistemului 1C:Enterprise care sunt tipice pentru versiunea client-server a sistemului care rulează Microsoft SQL Server 2012:

Crearea unei copii de rezervă în versiunea client-server

Administrare cluster de servere

Utilitarul de administrare consolă sau cluster 1cv8 servers.msc este un plug-in MMC (Microsoft Management Console) și poate fi utilizat pe computere care au software. Implicit este instalat în folderul C:\Program Files (x86)\1cv8\common

Utilitar de administrare a clusterelor concepute pentru a rezolva următoarele probleme:

  • crearea, modificarea și ștergerea clusterelor de servere;
  • modificarea clusterelor existente: crearea, modificarea parametrilor și ștergerea serverelor de lucru, atribuirea cerințelor de funcționalitate serverelor de lucru;
  • setarea nivelului de toleranță la erori ale clusterului;
  • reglare manuală a sarcinii pe serverele individuale de lucru;
  • gestionarea listelor de administratori ai serverelor centrale de cluster și a listelor de administratori de cluster;
  • monitorizarea conexiunilor utilizatorilor la baze de informații și conexiuni de servicii;
  • deconectarea utilizatorilor de la baza de informatii;
  • monitorizarea blocărilor de obiecte 1C:Enterprise 8 și a conexiunii clientului;
  • analiza operațională a blocărilor tranzacțiilor din sistemul de management al bazei de date;
  • gestionarea blocării conexiunilor utilizatorilor la baza de informații;
  • gestionarea blocării sarcinilor de rutină.

În acest articol voi lua în considerare doar înregistrarea unei noi baze de informații

Înregistrarea unei noi baze de informații

Pentru a înregistra o nouă bază de informații folosind utilitarul de administrare a clusterului de servere, selectați serverul central necesar, clusterul necesar înregistrat pe acest server, ramura Infobaze din arborele serverelor centrale și executați comanda meniului contextual Creare – Infobase sau o comandă similară în meniul principal al utilitarului.

Ca rezultat al executării comenzii, pe ecran va apărea dialogul cu proprietățile bazei de informații.

Parametrii bazei de informații sunt echivalente cu parametrii unei noi baze de informații create folosind fereastra de lansare 1C:Enterprise.

Tip SGBD: Microsoft SQL Server.

Server de baze de date: numele serverului. Poate fi specificat prin numele computerului (dacă pe computer este instalată o instanță de server) sau numele unei anumite instanțe (dacă sunt instalate mai multe instanțe). De exemplu, Server/instanță. Dacă serverul 1C:Enterprise și Microsoft SQL Server sunt localizate pe același computer și Native Client (clientul nativ) este instalat pentru Microsoft SQL Server, atunci este posibil să utilizați protocolul SHARED MEMORY pentru a comunica între servere. Pentru a face acest lucru, trebuie să specificați prefixul lpc: înainte de numele Microsoft SQL Server. În acest caz, numele serverului DBMS va arăta astfel: lpc:Server/instance

Numele bazei de date: Primul caracter al numelui bazei de date poate fi o literă din alfabetul latin, precum și caracterul „_”. Caracterele ulterioare pot fi litere ale alfabetului latin, numere, precum și simbolurile „_”, „$”. Lungimea numelui este limitată la 63 de caractere. Nu sunt permise spații în nume. Numele nu poate fi un cuvânt rezervat în limbajul de interogare al serverului de baze de date. Următoarele caractere nu pot fi folosite în numele bazei de date: "<», «>"", "#", "%", """, "(", ")", "[", "]", "|", "\", "^", "`", precum și caractere cu coduri de la 0 la 31 și 127

Utilizator baze de date: numele utilizatorului serverului bazei de date în numele căruia va fi accesată baza de date. Este esențial ca utilizatorul specificat să fie fie administratorul serverului bazei de date (sa), fie proprietarul bazei de date (dacă aceasta există deja) pentru a modifica liber structura bazei de date selectate în viitor. În ultimul caz, acest utilizator trebuie să aibă acces de citire la baza de date master și acces complet la baza de date tempdb. În plus față de cele de mai sus, utilizatorul specificat trebuie să fie membru al rolului de server fix processadmin sau sysadmin.

Parolă de utilizator: parola utilizatorului în numele căruia va fi accesată baza de date.

Compensarea datei– 0 sau 2000. Acest parametru determină numărul de ani care vor fi adăugați la datele când sunt salvate în baza de date Microsoft SQL Server și scăzuți când sunt preluați. Prezența acestui parametru este determinată de particularitățile stocării datelor în Microsoft SQL Server. Tipul DATETIME utilizat în Microsoft SQL Server vă permite să stocați date în intervalul de la 1 ianuarie 1753 până la 31 decembrie 9999. Și dacă, atunci când lucrați cu o bază de informații, poate fi necesar să stocați date care preced limita inferioară a acestui interval, atunci 2000 ar trebui să fie selectat ca valoare a parametrului. Dacă astfel de date nu vor fi întâlnite, atunci poate fi selectat 0 data offset. După crearea bazei de informații, valoarea acestui parametru Nu pot fi modificate.

ATENŢIE! Dacă în soluție de aplicare se folosesc registre de acumulare sau registre contabile, atunci în câmpul Data offset trebuie să setați valoarea 2000. Dacă la crearea bazei de date a fost introdusă o valoare 0 în acest câmp, atunci ar trebui să încărcați baza de informații într-un fișier, re- creați baza de date indicând valoarea 2000 în câmpul Date offset și descărcați baza de informații

ATENŢIE! Numele bazei de informații trebuie să fie unice în cadrul aceluiași cluster. La înregistrarea unei noi baze de date, sistemul verifică dacă există o bază de date cu același nume pe serverul de baze de date specificat. Dacă baza de date există, se va stabili o conexiune la aceasta. Dacă baza de date existentă conține deja date din baza de informații 1C:Enterprise, atunci se va stabili o conexiune cu baza de informații deja existentă. Și dacă baza de date nu conține date de bază de date, atunci o nouă bază de date 1C:Enterprise va fi inițializată în ea.

Eroare la efectuarea unei operații cu baza de informații

La conectarea la o bază de date SQL, pot apărea diverse erori de creare sau conectare. De exemplu, dacă apare următoarea eroare:

În acest caz, a existat o încercare de a crea o bază de informații și serverul de întreprindere nu a putut stabili o conexiune la Microsoft SQL Server. Trebuie verificat:

  • Parametrii de autentificare a utilizatorului (Nume, parola și drepturi pentru crearea unei baze de date);
  • Numele bazei de date respectă convențiile de denumire;
  • Numele serverului de baze de date este setat corect?
  • Se potrivește cu tipul de autentificare al utilizatorului. Poate că utilizatorul este conectat sub numele de utilizator al serverului SQL, iar tipul de autentificare a utilizatorului greșit este setat în setările SQL.

După ce noua platformă 1C versiunea 8.3.5 a fost lansată și configurația 1C: Accounting 8.3 (versiunea 3.0) a devenit mai funcțională, dezvoltatorii au continuat să lucreze la îmbunătățirea nu numai a funcționalității utilizatorului, ci și a celei administrative și, prin urmare, în cel mai recent În versiunile programului, au apărut modificări în blocul de administrare a sistemului și a utilizatorilor.

În acest articol ne vom uita la principalele modificări din blocul de administrare care vizează creșterea eficienței lucrului cu soluția software.

Organizarea secțiunilor meniului de administrare

Să trecem la secțiunea „Administrare”. În ea, obiectele sunt aranjate în grupuri:

  • Setările programului
  • Serviciu
  • informație

Setul și compoziția fiecărui grup pot diferi pentru utilizatori diferiți, deoarece interfața „Taxi” poate fi configurată cu ușurință, iar livrarea inițială a configurației conține doar acele elemente de meniu care sunt furnizate implicit. A adauga Pozitie noua, trebuie să faceți clic pe butonul „Setări de navigare” din secțiunea „Administrare”, acesta se află în colțul din dreapta sus (sub bara de instrumente).

Grupul „Setări program” conține subgrupul „Suport și întreținere”, care include toate mecanismele principale menite să monitorizeze starea programului, să facă backup și restaurare, să actualizeze versiunile și să optimizeze performanța


Sistemul conține și noi rapoarte pentru administrarea programului. Lista acestor rapoarte poate fi deschisă făcând clic pe linia „Rapoarte administrator” din blocul „Rapoarte și procesare”

În fața ta se va deschide o fereastră cu o listă de rapoarte principale menite să analizeze activitatea utilizatorului și să monitorizeze jurnalul în care sunt înregistrate acțiunile utilizatorului


Jurnalul conține intrări critice care ar putea duce la erori în sistem. Pentru a le vizualiza, va trebui să generați un raport „Control jurnal”


Pentru a monitoriza activitatea utilizatorului în ceea ce privește munca lor cu obiectele de sistem, va trebui să generați un raport „Analiza activității utilizatorului”

Backup și restaurare

Printre „inovațiile” de administrare în „1C: Contabilitate 8.3”, merită remarcată capacitatea de a restaura copiile de sistem și setările de backup. Le puteți accesa prin grupul „Suport și întreținere”, unde aceste setări sunt situate în blocul „backup și restaurare”

Acum, pe lângă faptul că puteți verifica direct din modul utilizator pentru utilizatorii activi, puteți salva și date.

În acest caz, puteți configura lansarea unui program de salvare a bazei de date. Acest parametru se află în meniul „Setări de rezervă”, unde putem specifica valorile necesare

Evaluarea performanței

Pentru a analiza și a evalua performanța sistemului, va trebui să bifați caseta de lângă „Evaluarea performanței” în secțiunea de asistență și întreținere, apoi să mergem la setările de calcul al metricilor

Așadar, ne-am familiarizat cu principalele modificări care au fost implementate în blocul de administrare a sistemului 1C:Accounting 8.3 (versiunea 3.0) bazat pe interfața Taxi.

Sistemul automatizat 1C Enterprise vă permite să efectuați management, comerț, contabilitate și să primiți rapoartele necesare. Există două tipuri de operare a programului:

  • Fișier - 1C este instalat pe un singur computer, niciun manager nu poate lucra cu baze de date. Această opțiune este potrivită pentru companiile mici cu o cifră de afaceri mică.
  • Versiune client. Când lucrați cu 1C, este implicat un sistem de utilizatori, bazele de date sunt situate pe un computer, la care sunt conectate toate celelalte. Opțiunea de lucru are o arhitectură pe trei niveluri, constând dintr-o aplicație client, un server 1C Enterprise și baze de date în format MS SQL Server sau PostgreSQL. În acest caz, administrarea serverului 1C este utilizată pentru a asigura configurarea corectă.

Consola de administrare a serverului 1C:functii principale

Serverul 1C nu are o interfață încorporată pentru administrare, deci se folosește consola. Este inclus în pachetul de livrare standard al versiunii corespunzătoare a 1C Enterprise. Acest utilitar standard este instalat pe fiecare calculator local, în timp ce bazele de date pot fi localizate aici sau pe un server la distanță.

Folosind consola pentru administrarea serverului 1C Enterprise, puteți rezolva următoarele sarcini:

  • Faceți modificări în funcționarea serverului, creați altele noi, ștergeți cele inutile. Ele pot găzdui baze de date și pot defini interacțiuni între diferiți utilizatori.
  • Creați administratori. Aceștia sunt utilizatori care au drepturi de acces pentru a face modificări la servere. Fiecare administrator poate administra doar serverul alocat. Dacă nu adăugați un singur administrator, orice utilizator înregistrat poate administra serverul 1C.
  • Crearea fluxurilor de lucru cluster 1C. Adăugarea de procese de lucru vă permite să influențați performanța unui anumit utilizator din sistem. În proprietăți puteți seta valoarea maximă a performanței (până la 1000). Sesiunile începute sunt atașate procesului cu performanță maximă. Sistematic, sistemul analizează și redistribuie în mod independent aceste valori pentru optimizare.
  • Crearea bazelor de date în 1C Enterprise. Puteți seta posibilitatea ca utilizatorii să se conecteze la acesta sau să îi permiteți să funcționeze numai local.
  • Încheierea forțată a ședințelor. Uneori, un mesaj de server vă informează că lucrările sunt deja în curs de desfășurare sub numele de utilizator specificat. Sistemul nu încheie întotdeauna acest proces de unul singur, așa că administrarea vă permite să încheiați forțat sesiunea pentru orice utilizator.

Cum să începi să lucrezi în 1C?

Aplicația client 1C Enterprise este o platformă goală. Pentru ca acesta să înceapă să funcționeze, trebuie să efectuați mai mulți pași secvențiali:

  • Consola este instalată. Permite administrarea ulterioară a serverelor 1C.
  • Crearea unui server central. Apoi, pe baza acestuia, puteți crea structuri care îi raportează. Pentru a face acest lucru, utilizați meniul contextual pentru a introduce numele, protocolul utilizat și numărul portului utilizat pentru comunicare.
  • Crearea unui cluster. În acest caz, meniul contextual va ajuta și el. Este necesar să completați informațiile solicitate (numele clusterului, computerul utilizat, portul de conectare, care nu se potrivește neapărat cu portul specificat mai devreme).
  • Crearea unei baze de date cu informații. În ramura corespunzătoare, trebuie să utilizați și meniul contextual. Acolo sunt introduși parametrii necesari (nume, descriere, tip de conexiune, locație, tip DBMS, nume de utilizator și parolă). După confirmarea corectitudinii datelor introduse, se creează baza de date. Acum puteți introduce datele necesare în el.

La prima vedere, administrarea 1C Enterprise este un proces simplu, dar fără setările corecte, sistemul nu va funcționa corect, utilizatorul nu își va putea folosi capacitățile la maximum. Sunt posibile și probleme tehnice suplimentare.

Administrarede către profesioniști: principalele avantaje

Versiunea client a 1C este folosită de mijlocii și Afaceri mari, care trebuie conectate în sistem unificat toate computerele, inclusiv cele de la distanță unități structurale. Acest lucru vă permite să luați decizii de management, primi rapoarte consolidate, ține contabilitatea generală.

Joaca un rol important setarea corectă si intretinerea constanta a platformei, crearea de utilizatori, clustere, administratori, efectuarea de modificari la bazele de date. Pentru a face acest lucru trebuie să aveți un anumit personal de specialiști. Pentru a face acest lucru, puteți angaja noi angajați, puteți instrui în mod constant oamenii existenți sau puteți externaliza serviciul. Fiecare companie decide singură care metodă este potrivită în condiții specifice de operare.

Administrarea platformei 1C efectuată specialisti profesionisti, are o serie de avantaje:

  • Configurarea corectă a sistemului, care vă permite să garantați funcționarea adecvată a 1C, fără defecțiuni tehnice.
  • Modificări constante și monitorizare a securității. Activitățile companiei sunt dinamice, își propune sistem automatizat noi sarcini pentru luarea deciziilor manageriale și strategice.
  • Instalarea de noi module, distribuirea corectă a drepturilor de acces, crearea de subsisteme. Mai ales important pentru companii mari cu sucursale și unități la distanță.
  • Monitorizarea încărcării sistemului, distribuirea sarcinii pe diferite computere server.

1C funcționează cu diferite locații ale componentelor arhitecturale, acestea pot fi localizate pe același computer sau pe diferite computere. Pentru a asigura o protecție maximă, se recomandă ca fiecare element să fie amplasat pe computere diferite.

  • Tutorial

Disclaimer


Acest articol exprimă opinia personală a autorului, viziunea sa asupra lumii, drumul său și toate acestea nu pretind a fi absolut corecte și obiective. Autorul nu poartă nicio responsabilitate pentru consecințele utilizării acestor informații, el speră doar că aceste informații vor ajuta să ușureze viața cuiva.


Prefaţă


La început am vrut doar să scriu un scurt articol despre modul în care am distribuit bazele de date între servicii, dar pe măsură ce am aprofundat acest proces, am adăugat tot felul de lucruri diferite (servicii de monitorizare, apoi monitorizarea utilizatorilor în interiorul 1C, apoi am adăugat Zabbix, și în cele din urmă a ajuns la CI /CD pe baza 1C). Drept urmare, înțeleg că îngrădirea acestui articol într-un singur articol ar fi prea mult - am decis să-l împart în mai multe. Ei bine, numele este inspirat din seria de articole „rețele pentru cei mici”, care mi-au adus multe momente plăcute și la care mă refer pe toți cei care „dorește să învețe rețele”. Deci iată-ne!


Când recunoști o problemă, înseamnă că ești deja vindecat pe jumătate (c) un psihiatru pe care îl cunosc


În acest articol vreau să împărtășesc experiența mea în administrarea unui număr mare de sisteme 1C în sectorul corporativ. Bazele de date sunt toate diferite, există dezvoltare, există teste, totul este la fel ca al tuturor. Dar pur și simplu sunt destul de multe. Și totul a fost în regulă, dar la un moment dat a devenit extrem de dificil și riscant să efectuezi niște lucrări de administrare.


Ce dificultăți am avut:

  1. O bază de date înghețată a dus la o repornire a serviciului, ceea ce a însemnat că oamenii nevinovați (utilizatorii altor baze de date) au avut de suferit.
  2. Era greu de înțeles cine este „eroul zilei” astăzi - care bază a ocupat toate resursele
  3. Actualizarea versiunilor - actualizarea uneia a presupus o actualizare automată a tuturor bazelor de date de pe acest serviciu
  4. Conectarea manuală a bazelor de date la utilizatori, modificări manuale în cazul mutărilor
  5. Monitorizarea
    Și abia acum înțeleg că acesta a fost doar vârful aisbergului...

Actul unu, acțiunea zero

O mică distragere a atenției către postulatele de bază, a căror realizare a venit cu mult sânge și durere.

  1. Versiunile vechi de 1C (până la 8.3.11+) au o performanță redusă atunci când lucrează într-un mediu virtualizat. (Sursa - Gilev și teste proprii)
  2. Există un cluster, dar totul este extrem de dificil cu el. Poate că va fi finalizat mai târziu, dar deocamdată este în mare parte pentru spectacol. (sursă - propria experiență)
  3. La alegerea unui procesor uita-te doar la frecventa. Un procesor cu 6 nuclee la 3,4 GHz va rupe în bucăți un procesor cu 20 de nuclee la 2 GHz. Problema este că 1C nu știe absolut nimic despre calculul paralel. În esență, funcționează așa - avem un anumit număr de lucrători pentru fiecare serviciu, aceștia sunt împrăștiați pe procesoare, iar dacă într-un lucrător utilizatorul rulează un fel de raport greu, atunci va fi încărcat în sistem un singur nucleu de procesor. Exact cel pe care rulează muncitorul cu sarcina de rulare... Pentru baza de date, de altfel, situația este exact inversă. (sursa - Gilev, experienta proprie, experienta colegilor)
  4. Nu utilizați jurnalele în formatul „nou” (înregistrare în SQLLite) - veți constata foarte repede că performanța acestei soluții este chiar mai slabă decât versiunea fișierului. (Sursa - experienta proprie, experienta colegilor).
    Conform sfaturilor din comentarii, există o opțiune de a transfera jurnalele într-o instanță separată.
    In 8.3.12 au promis busteni normale!!!
  5. 1C chiar nu-i place IPv6. Pe toate serverele cu 1C, este mai bine să reduceți imediat prioritatea IPv6 la minimum. (Sursa - Gilev, experiență personală)
  6. Utilizați carduri de rețea virtuală E1000 pentru serverele virtuale. În rest, există o problemă de performanță (Sursa - Gilev, dar acest lucru nu a fost confirmat din propria mea experiență, deși nu am testat-o ​​în mod special)
  7. Menținerea bazelor de date oferă o creștere bună a performanței, în special recalcularea periodică a totalurilor, precum și menținerea indicilor SQL (Sursa - experiență proprie, Gilev)
  8. Găsirea motivelor căderii 1C este asemănătoare cu a mânca un cactus nedecojit. Cu adevărat poți afla ceva doar prin durere, umilire și suferință. (Sursa - experienta proprie)
  9. Nu există o singură imagine oficială pentru niciun hypervisor. Tac în general despre Docker. (Sursa - site-ul 1C)
  10. Licența software pentru server este legată de - surpriză, surpriză - numărul de serie al procesorului (și de asemenea un număr imens parametrii serverului). În era virtualizării omniprezente, mișcarea este uimitoare. Permiteți-mi să vă explic - am activat serverul, ne-am mutat pe un alt nod, am repornit mașina - 1C nu va porni. Descoperiți noul cod de activare. (Sursa - experiență personală, vorbăreț suport tehnic 1C =))
  11. 1C este un sistem contabil, nu un sistem de raportare. Dacă doriți o mulțime de rapoarte normale, îndrăznețe și rapid, duceți-le dincolo de domeniul de aplicare al 1C. (Sursa - experienta proprie)
  12. 1C are două avantaje incontestabile datorită cărora va înflori mult timp:
    • costul produsului/dezvoltatorilor
    • viteza de dezvoltare
      si din pacate pentru afaceri rusești sunt prima prioritate. Și adesea singurul lucru la care se uită. (Sursa - realitate tristă)
  13. Nu utilizați niciodată o partajare de fișiere ca loc pentru stocarea configurațiilor 1C. Doar serviciu. Altfel, jurând din partea dezvoltării despre cei căzuți, Dumnezeu știe când depozitul va deveni partenerul tău constant în viață. (Sursa - experienta proprie, experienta colegilor)

Primul act, primul act

Primul sceneta scurta din viața corporativă


Pe scenă - Administrator (A), programator 1C (P1S) și reprezentant de afaceri (PB)
PB - Programul nostru rulează încet!
Și - totul este bine în sistemul meu!
P1S - Am scris totul corect, totul funcționează rapid pe computerul meu!
PB (timid și confuz) - dar i-a luat mult timp...
Și P1S la unison - totul este în regulă la noi, problema este de partea ta!


Problemele apar întotdeauna la momentul nepotrivit (c) (filozof de 5 ani)


Și apoi într-o dimineață frumoasă și însorită (de fapt era o noapte adâncă de iarnă) ne-am dat seama că mâine trebuie să lansăm o nouă bază. Mâine vine acea zi minunată, care a fost deja descrisă de multe ori de mii de autori și numele ei este legiune! Uf, scuze, m-am lăsat luat. Numele acestei zile era termenul limită. Este ora unu dimineața, mâine ar trebui să fie lansată o nouă bază de date pe 200 de computere." Nicio problemă, avem toate computerele din domeniu! Acum să creăm rapid un script de autentificare și gata!" ai putea crede. Și vei avea dreptate - ne-am gândit la același lucru. Și au făcut-o. Numai că, așa cum se întâmplă de obicei, ne-am ars din cauza fleacurilor - am scris %filename% în scriptul de conectare. băţ iar un coleg a postat %filename%. cmd.


Ei bine, desigur, dimineața biroul de asistență a alergat să facă totul manual și mi-a fost foarte rușine de un astfel de eșec stupid. Mi-am cerut scuze băieților cu un tort.


Dar ideea de a automatiza acest proces mi-a rămas foarte ferm în cap și chiar a început să apară un plan de implementare.


Ca urmare, am ajuns la următoarea ideologie:

  • Totul este distribuit prin AD - grupuri precum 1cbases-%platform version%-%base name% sunt create și utilizatorii care au nevoie de o bază de date sunt adăugați acolo folosind helpdest.
    • un grup - o bază
    • 1cbases este un prefix prin care este convenabil să cauți grupuri
    • versiunea platformei 81, 82 și 83 (lansarea nu este importantă)
    • numele bazei de date corespunde numelui fișierului cu setările
  • este alocată o partajare comună de fișiere în care toate fișierele sunt așezate cu setări pentru conectarea la baze de date (o bază de date - un fișier)
  • când computerul este blocat, se apelează un script care citește grupurile de utilizatori și, pe baza acestora, adaugă utilizatorilor bazele de date 1C necesare

Cum am făcut-o:

  1. Prin politicile de grup, o nouă sarcină este adăugată la planificator (sarcina planificatorului este să atribuie utilizatorului calea către fișierul de conexiune la baza de date):
    • rulează ca utilizator
    • eveniment - deblocare computer
    • acțiune - lansați scriptul nostru
  2. Creăm grupurile necesare în AD și le umplem cu utilizatori
  3. Creăm fișierele necesare pentru a lansa 1C în sine. Voi intra în puțin mai multe detalii aici. Inițial, am chinuit mult timp internetul cu solicitările noastre și am găsit o descriere completă a structurii fișierelor *.v8i. Dar apoi s-a găsit o modalitate mai simplă și mai ingenioasă.
    • lansează 1C
    • stabilirea unei conexiuni la baza de date
    • verifica daca totul functioneaza
    • faceți clic dreapta pe numele bazei de date și selectați „Salvați linkul în fișier”


Cod script:

#Primul pas este să creați un loc pentru jurnale dacă (Calea de testare „$env:HOMEDRIVE\!script_report\add_1c_bases_report.txt”) ( Eliminați elementul „$env:HOMEDRIVE\!script_report\add_1c_bases_report.txt” -Force - ErrorAction SilentlyContinue ) Nou-Element „$env:HOMEDRIVE\!script_report\add_1c_bases_report.txt” -Fișier ItemType -Force -ErrorAction SilentlyContinue; Adaugă conținut -Valoare ("Data ultimei rulări: " + (Get-Date -Format F)) - Calea "$env:HOMEDRIVE\!script_report\add_1c_bases_report.txt"; if ((gwmi Win32_OperatingSystem | select Caption, CSDVersion) -notlike "*server*") # interzice lansarea pe server OS ( Add-Content -Value " sistem de operare recunoscut ca client" -Calea "C:\!script_report\add_1c_bases_report.txt"; if (!(Test-Path "$env:APPDATA\1C\1CEstart\ibases.v8i")) #dacă acest fișier nu există 1C extrage date din lista de baze de date 8.1 și ignoră lista de baze de date 8.2 ( New-Item "$env:APPDATA\1C\1CEstart\ibases.v8i" -ItemType fișier -Force; # Creați acest fișier dacă nu există Add-Content - Valoarea „Fișier $env:APPDATA\1C\1CEstart\ibases.v8i nu a fost găsit, l-a creat" -Path "C:\!script_report\add_1c_bases_report.txt"; } if (Test-Path "$env:APPDATA\1C\1CEstart\1CEStart.cfg") { Remove-Item "$env:APPDATA\1C\1CEstart\1CEStart.cfg" -Force #-ErrorAction SilentlyContinue #удаление старого конфигурационного файла для 8.1 } New-Item "$env:APPDATA\1C\1CEstart\1CEStart.cfg" -ItemType file -Force #создание нового конфигурационного файла для 8.2 $GroupList = ("samaccountname=$($env:USERNAME)").Findone().Properties.memberof -replace "^CN=([^,]+).+$","$1" # Создание списка групп пользователя foreach ($Group in $GroupList) # генерация списка !} baze de date comune pe baza numelui grupului ( if ($Group.Length -gt 6) # Verificarea lungimii numelui grupului ( If ($Group.Substring(0,7) -eq "1cbases")) # calcularea grupului care indică 1C bază ( Comutare ($Group .Substring(8,2)) # selectați platforma 8.1 sau 8.2 ( „81” (Adăugați conținut „$env:APPDATA\1C\1Cv81\ibases.v8l" -Valoare ("\\gold585. int\TechFiles\CommonBases\ " + $Group.Substring(11) +".v8i")) # Creați o linie dintr-un fișier cu o listă de baze de date comune pentru 8.1 "82" (Add-Content "$env:APPDATA\ 1C\1CEstart\1CEStart.cfg" -Value ("CommonInfoBases=\\gold585.int\TechFiles\CommonBases\" + $Group.Substring(11) +".v8i")) # Creați o linie dintr-un fișier cu o listă de baze comune pentru 8.2 „83” (Add-Content „$ env:APPDATA\1C\1CEstart\1CEStart.cfg” -Valoare („CommonInfoBases=\\gold585.int\TechFiles\CommonBases\” + $Group.Substring(11) ) +".v8i")) # Creați o linie dintr-un fișier cu o listă de baze comune pentru 8.3) Add-Content -Value ("Utilizatorul aparține $Group") -Calea "C:\!script_report\add_1c_bases_report.txt" ; Add-Content -Value ("Valoare adăugată: CommonInfoBases=\\gold585. int\TechFiles\CommonBases\" + $Group.Substring(11) +".v8i") -Calea "C:\!script_report\add_1c_bases_report.txt "; ) ) ) ) else ( Add-Content -Value "Sistemul de operare este recunoscut ca server" -Path "C:\!script_report\add_1c_bases_report.txt"; }!}


Ce am primit:

  1. Adăugarea bazelor de date nu a mai fost o bătaie de cap - doar ați făcut un grup, ați adăugat un fișier cu setări - apoi totul s-a întâmplat automat
  2. Am putea transfera cu ușurință bazele de date oriunde prin simpla schimbare a configurației din fișier cu setările pentru conectarea la baza de date (după cum a arătat practica, este foarte convenabil)
  3. Serviciu de asistență pantofi salvati

Actul unu, actul doi

A doua scurtă scenă din viața corporativă


Pe scenă - Administrator (A), programator 1C (P1C), conversație după plecarea reprezentantului afacerii
A - Tu acest 1C - $#%dar!!! Câte probleme de arhitectură și nivel de dezvoltatori pot fi rezolvate cu hardware!
P1S - da, acestea sunt serverele dvs. #$@dar! Totul funcționează bine în baza mea de date locală de fișiere! Configurați-vă ferma ca de obicei acum!
Litiganții părăsesc scena cu o erupție de acuzații reciproce, cortina cade, luminile se sting.


Și din partea asta nu e mai bine... (c) Eeyore trist de ziua lui


Imaginează-ți doar - stai pe un scaun confortabil, într-o mână o ceașcă de ceai delicios, în cealaltă o chiflă plină de căldură și prospețime de la delicateserul celui mai apropiat magazin, în afara ferestrei se simte un miros plăcut de primăvară. Și acesta, desigur, este cel mai bun moment pentru a suna cu o problemă! Colegul - Baikonur, avem %@pa!


Eu - după cum am înțeles, am trecut deja cu succes de etapa Houston cu probleme?
Colegul - da. Baza de date %base name% este înghețată, nu răspunde deloc, TOP-urile sunt deja rupte și aruncate. M-au sunat deja de 3 ori. Trebuie să reporniți serviciul.
I - există și o grămadă de baze de date pe acest serviciu!!!
Colege - da, de aceea a doua jumătate a TOP-urilor pleacă și se grăbește ca acestea să fie oprite...


Până la urmă, desigur, totul a fost convenit și repornit, dar sedimentul a rămas.


Ideologie:

  1. Într-un mediu de produs, trebuie să respectăm regula - o bază - un serviciu, distribuit pe porturi
  2. Serviciile trebuie lansate exclusiv din conturi de domeniu. Un serviciu - un cont. Acest lucru este convenabil pentru distribuirea drepturilor la mingi, accesul la școli etc. De asemenea, dacă aveți implementat RBAC, atunci puteți vedea foarte rapid unde are acces o anumită instanță 1C
  3. Jurnalele trebuie mutate pe un disc separat și compresia ar trebui să fie activată pentru aceste foldere (atunci când sunt împărțite pe zile, acest lucru economisește mult spațiu și accelerează (ușor) căutarea prin jurnale)
  4. Fiecare serviciu primește un alias în DNS pentru a decupla dezvoltarea de serverul ip și/sau dns (în acest caz, dezvoltării nu îi pasă deloc de locul în care se află de fapt serverul - fizică, o mașină virtuală într-un cloud privat sau chiar și într-un cloud public)
  5. Alocam 500 de porturi pentru fiecare serviciu pentru conexiunile utilizatorilor (soluția noastră internă)

Cum am făcut-o (pentru un server nou. Pentru un server existent, unii dintre pași nu sunt relevanți):

  1. Se creează conturi pentru fiecare serviciu
  2. Pe mașina în care vor lucra, li se acordă drepturi de „a rula ca serviciu”
  3. Instalați MS Office, neapărat cu activare prin cheia MAK
  4. Instalați sqlncli - un utilitar din setul MS SQL Native Client. Pe acest moment nu a apărut peste 2012
  5. Folderul C:\Windows\SysWOW64\config\systemprofile\Desktop este creat - altfel există probleme cu încărcarea în Word/Excel
  6. Pentru Windows 2016 și 1C 8.1 trebuie să copiați versiune veche dll (În folderul C:\Program Files\Common Files\System\Ole DB, trebuie să înlocuiți două fișiere sqloledb.dll și sqloledb.rll preluate de pe serverele vechi)
  7. Sunt instalate drivere ODBC suplimentare dacă trebuie să vă conectați la MySQL/PostgreSQL

Configurarea unui folder pentru serviciu și jurnale:

  1. Un folder este creat pe un disc separat numit în format 1C Server%basename% (în cazul standard, acest lucru este făcut de serviciul însuși, deoarece are o cale către jurnalele în setările de lansare)
  2. Dacă datele dintr-un alt director (alt serviciu, alt server) sunt transferate în directorul unui serviciu nou creat, atunci este necesar să înlocuiți proprietarii (în caz contrar serviciul nu va avea acces la aceștia) și să înlocuiți proprietarul subcontainerelor.
  3. Proprietarul folderului este făcut Cont Servicii

Descrierea configurației serviciului

@echo off chcp 1251 setarea setului de codificare base=%base_name% numele bazei de date fără spații în engleză – pentru directorul cu jurnalele set dsce=%base name% numele bazei cu spații în engleză – pentru numele serviciului set dscr=%Numele bazei de date% numele bazei de date în limba rusă – pentru reprezentarea setului de servicii sver=8.3 versiunea scurtă – pentru numele și reprezentarea setului de servicii fver=1cv8\8.3.9.2170 parte a căii către versiune a platformei 1C avem nevoie de set port=8040 control port set regp=8041 main port set rnge=8060 :8491 interval de porturi pentru setul de servicii name="1C:Enterprise %sver% Server Agent (x86-64) %dsce% " nume de serviciu (pentru registry) similar cu cele standard, este adăugat doar numele de bază pentru unicitatea numelor setate bpth=\" C:\Program Files\%fver%\bin\ragent.exe\" -srvc -agent calea către fișierul executabil pentru pornirea serviciului set logs=D:\1C_Server_%base% director pentru loguri set user="%login%@% domain_name%" acest format vă permite să utilizați login-uri mai lungi de 20 de caractere; specificat oriunde în timpul creării, deoarece atunci mai trebuie să-l specificați din nou, abia atunci utilizatorul va avea drepturi de a începe serviciile; set view="1C:Enterprise Server Agent %sver% (x86-64) %dscr%" reprezentarea serviciului în snap-in sc create %name% binPath= "%bpth% -regport %regp% -port %port % -range %rnge % -d \"%logs%\"" type= "own" start= "auto" error= "severe" depend= "Tcpip/Dnscache/lanmanworkstation/lanmanserver" obj= %user%DisplayName= % vezi% aici: tip = „propriu” – tip de serviciu, ce sunt acolo, caută-te start= „auto” – eroare de pornire automată= „sever” – nu-mi amintesc ce înseamnă, dar setează valoarea corectă a cheii din registry ErrorControl = 2 depend= "Tcpip/Dnscache/lanmanworkstation /lanmanserver" – dependențe (indicate în a patra filă, neconfigurate manual) sc descriere %name% %view% setează vizualizarea în snap-in, nu este specificat imediat după crearea sc eșec %name% reset= 0 acțiuni= „repornire/0” setare la fila de recuperare – repornire în toate cazurile, după 0 minute; resetarea contorului după 0 zile Același fără comentarii: @echo off chcp 1251 set base=%base_name% set dsce=%base name% set dscr=%Base name% set sver=8.3 set fver=1cv8\8.3.9.2170 set port = 8040 set regp=8041 set rnge=8060:8491 set name="1C:Enterprise %sver% Server Agent (x86-64) %dsce%" set bpth=\"C:\Program Files\%fver%\bin\ ragent .exe\" -srvc -agent set logs=D:\1C_Server_%base% set user="%login%@domain.company" set view="1C:Enterprise Server Agent %sver% (x86-64) %dscr % " sc create %name% binPath= "%bpth% -regport %regp% -port %port% -range %rnge% -d \"%logs%\"" tip= "proprie" start= "auto" eroare= " sever" dependent= "Tcpip/Dnscache/lanmanworkstation/lanmanserver" obj= %user% DisplayName= %view% sc descriere %name% %view% sc failure %name% reset= 0 actions= "repornire/0"


  1. Pentru a vă asigura că serviciile nu conțin crocasibra
    • în cmd introduceți comanda chcp 1251
    • fișierul trebuie salvat în codificare ANSI
  2. Asigurați-vă că verificați absența cheilor duplicate în linia de pornire - serviciul nu va începe cu ele!!!
  3. Pentru a șterge un serviciu, puteți folosi comanda - sc delete „Numele specificat în variabila nume”
  4. Adăugați porturile utilizate de 1C la permisiunile din firewall
  5. Aveți nevoie doar de o cheie fizică pe server - toate serviciile vor fi activate de acesta

După ce am realizat toate activitățile, am ajuns în sfârșit la:

  1. Bazele de date pot fi reîncărcate în siguranță, fără a atinge alte baze de date
  2. Puteți găsi întotdeauna un „erou” - o bază care consumă toate resursele
  3. Orice lucru cu baza de date se referă doar la o singură bază de date specifică

În următoarele articole am de gând să vă spun (dacă oamenilor le place acest articol):

  • cum am transferat autorizarea în MSSQL către kerberos și, în general, am optimizat accesul
  • cum am făcut monitorizarea serviciului - cine a luat câte resurse
  • cum am făcut ca monitorizarea în cadrul serviciului 1C să identifice blocajele utilizatorilor mai rapid decât apelează ei
  • cum am încercat să implementăm CI pentru 1C și ce a rezultat din el

UPD. Am adăugat ceva în comentarii

Etichete: Adăugați etichete