Caracteristici ale raportării (1Cv8). Constructor schemă compoziție date - fila setări formular de selecție parametri de editare CCD

În proiectantul de interogări, atunci când este apelat dintr-un formular de personalizare a sursei de date, pentru o schemă de compoziție a datelor. Există o filă „caracteristici”, a cărei utilizare nu este descrisă în mod clar în documentație. În acest articol voi încerca să explic cum și pentru ce caracteristici sunt utilizate în ACS.

În proiectantul de interogări, atunci când este apelat dintr-un formular de personalizare a sursei de date, pentru o schemă de compoziție a datelor. Există o filă „caracteristici”, a cărei utilizare nu este descrisă în mod clar în documentație. În acest articol voi încerca să explic cum și pentru ce caracteristici sunt utilizate în ACS. V configurații tipice se utilizează în mod activ mecanismul proprietăților și valorilor proprietăților, care este disponibil pentru aproape orice obiect. Primitiv, în cărțile de referință, acest mecanism a fost implementat în configurații 7.7. Acum acest mecanism este implementat folosind o diagramă a tipurilor de caracteristici și un registru de informații, dar ideea rămâne aceeași. Când am întâmpinat nevoia de a utiliza acest mecanism pentru prima dată, în schema ACS, m-am luptat foarte mult timp, am organizat interogări imbricate, le-am atașat la eșantionul principal și am nedumerit cum să iau în considerare posibilitatea apariției unor noi tipuri de proprietăți care nu erau disponibile în momentul elaborării raportului. Întregul mecanism al proprietăților, fiind simplu și logic din punctul de vedere al utilizatorului, nu s-a împrumutat niciunei prelucrări normale până nu am descoperit fila „Caracteristici”. Tabelul din filă este foarte capricios, fie veți introduce corect întreaga linie, fie refuzați să introduceți linia cu totul, sistemul nu vă va permite să părăsiți linia incomplet completată pentru mai târziu. Deci, să trecem la detalii. Prima coloană: Tip - aici selectăm tipul obiectului la care vor fi legate caracteristicile, de exemplu „ReferenceReference.Nomenclature” Aceasta înseamnă că acum pentru toate obiectele de tipul specificat va fi posibil să se obțină valori ale proprietății. Apoi, în următoarea coloană View Source, trebuie să setăm parametrii sursei tipurilor de proprietăți. Opțiunile sunt tabel și interogare, de ce aveți nevoie de opțiunea de interogare, vă voi spune mai târziu, acum vom selecta elementul de tabel. În coloana Tipuri de caracteristici, trebuie să selectăm tabelul infobazei, care stochează tipurile de caracteristici necesare, în exemplul nostru va fi „Tipuri de caractere.ProprietățiObiecte”. În plus, valorile disponibile pentru selectare în coloanele Câmp cheie, câmp nume și câmp tip valoare depind direct de câmpurile din tabelul pe care l-am selectat. În câmpul Cheie, selectăm Link, în câmpul Nume - Reprezentare (este utilizatorul care îl va vedea ca numele atributului) și, respectiv, în câmpul Tip, ValueType. Acum să trecem la sursa valorilor. Sursa valorilor va fi registrul de informații „ObjectPropertyValues”, așa că selectăm tabelul din coloana ValueSource și „DataRegister.ObjectPropertyValues” în coloana Valori caracteristice. În coloanele Obiect, Proprietate, Valoare, selectați câmpurile de înregistrare corespunzătoare Obiect, Proprietate, Valoare. S-ar părea că asta este tot. Intrăm în setările schemei, adăugăm o grupare după mărfuri și adăugăm o grupare subordonată acesteia, să spunem după mărci, avem o astfel de proprietate. Extindem lista atributelor grupării Nomenclatură și ... nu vedem nicio proprietate acolo: Faptul este că suntem în configurator, de unde nu există acces la date. Cum realizați setarea dorită? Cel mai convenabil mod de a face acest lucru este să utilizați consola de compoziție a datelor, cea de pe discul ITS sau cea inclusă în subsistemul „Instrumente pentru dezvoltatori”. Alternativ, puteți deschide pur și simplu o personalizare a raportului în modul Enterprise. Deci, să deschidem aceeași setare, dar în modul de întreprindere: După cum puteți vedea, am adăugat noi „Cerințe”, în timp ce ...

Marcajul repetă dialogul personalizat „Setări” disponibil pentru personalizarea parametrilor raportului de către utilizator.

Completarea setărilor din această filă servește la personalizarea raportului implicit în modul definit de utilizator al raportului.
Fereastra pentru configurarea unui raport este disponibilă în modul utilizator al raportului, în timp ce diferența față de configurarea ACS în configurator este că puteți utiliza valorile datelor nedefinite din baza de date.
Fereastra de setări constă din fereastra principală, unde sunt afișate listele de grupări, tabele și diagrame și un set de file în care sunt stabiliți parametrii de setare pentru obiectele specificate în secțiunea de grupări. În ce setări sunt editate acest moment putem indica făcând clic pe butonul cu inscripția despre obiectul pe care îl edităm:

Eventual editați Setari generale pentru întregul raport și făcând clic pe butonul corespunzător, puteți edita setările exclusiv pentru obiectul selectat: element de grupare, tabele, diagrame.

Fila Parametri de date
În această filă, sunt setate valorile parametrilor de date. Lista parametrilor de date disponibili este definită în fila „Parametri” a schemei ACS; aici sunt setate numai valorile parametrilor definite de utilizator. Mai mult decât atât, sunt disponibili doar acei parametri pentru care a fost debifată caseta de selectare „Restricția disponibilității” în schema ACS.


Există mai multe coloane în tabel:
1. „Utilizare” - cu o bifă, utilizatorul specifică să utilizeze sau nu acest parametru pentru a genera un raport.
2. „Parametru” - numele parametrului
3. "Valoarea parametrului" - valoarea parametrului sau o indicație de unde poate fi recuperată valoarea parametrului. De exemplu, dacă resetați valoarea curentă făcând clic pe „X”, apoi făcând clic pe butonul „T” se va deschide alegerea tipului de parametru în caseta de dialog:

Sursa poate fi orice valoare de tip simplu String, Date, Number, Boolean sau o referință la un obiect din baza de date. Și, de asemenea, sursa pentru acest parametru poate fi valoarea unui alt parametru, pentru aceasta trebuie să selectați valoarea „Câmp de compoziție a datelor” și să selectați câmpul necesar din lista de parametri.
Pentru dată, puteți atribui valori automate pentru înlocuire: „Începutul acestei zile”, „Începutul acestei săptămâni” etc.

Fila Câmpuri selectate
În această filă, definiți câmpurile, cu excepția grupărilor, care vor fi afișate în raport. Fila conține două liste cu câmpuri disponibile și câmpuri selectate. În plus față de câmpurile definite în seturile de date, sunt disponibili parametrii și câmpurile de sistem „Număr după comandă”, „Număr după comandăInGrupare”, „Nivel”, „NivelGrupare”, precum și câmpuri personalizate definite în fila „Câmpuri personalizate” pentru ieșire.

Puteți transfera câmpuri apasare dubla la numele din fereastra din stânga sau folosind un buton special din bara de comenzi. Puteți adăuga următoarele elemente „Câmp nou”, „ Un grup nou"," Autofield nou ". „Câmp nou” - adaugă un element în care puteți selecta un câmp din lista de câmpuri disponibilă. „Grup nou” - puteți grupa mai multe câmpuri sub o singură rubrică. „Autofield nou” - este folosit pentru a indica faptul că câmpurile afișate pentru grupări vor fi selectate din setările de grupare de la nivelul superior. De exemplu, după ce am definit un număr de câmpuri de resurse pentru întregul raport, am specificat un nou autocâmp pentru grupări. Puteți șterge elemente folosind butonul Ștergere, deplasați-vă în jurul poziției folosind butoanele de navigare. Bifând casetele de selectare, puteți ajusta vizibilitatea câmpurilor din raport.
După definirea unui set de câmpuri, putem edita câmpurile din listă, trebuie să intrați în modul de editare a câmpului, faceți clic pe butonul de selectare și selectați câmpul dorit din listă.

Pentru resurse, sunt disponibile pentru selecție rafinamente pentru calcularea variabilei: „% în grup” - este utilizat pentru a calcula cota valorii resursei pentru întreaga grupare din grup, adică ca rezultat, în grup după totalitatea valorilor resurselor, vor fi 100%; „% Total” - procentul total, indiferent de grup, pentru toate valorile resursei.
Pentru câmpuri de tip obiect, carte de referință, document etc. este posibil să specificați detaliile obiectului în câmpurile selectate.

Fila de selecție
În această filă, definiți selecțiile care afectează rezultatul raportului.


La fel ca fila Câmpuri selectate, există două ferestre, în stânga sunt toate disponibile Câmpuri ACS pentru selecție în selecție, în elementele și valorile potrivite care afectează selecția. De asemenea, puteți adăuga un element nou sau un grup de elemente apăsând tasta Adăugare. Puteți șterge elemente folosind butonul Ștergere, deplasați-vă în jurul poziției folosind săgețile de deplasare. Setând casetele de selectare, puteți ajusta activitatea unei anumite selecții din raport. După ce faceți clic pe butonul „Apreciați” din lista de elemente de selecție, se adaugă detalii suplimentare despre selecție: „Mod de afișare” și „Prezentare”.

După adăugarea unui nou element în lista de selecții, următoarele câmpuri sunt disponibile pentru editare:
„Valoare stângă” - câmp ACS sau un câmp de tip simplu („Număr”, „Șir”, „Data”, „Boolean”), pe care se aplică selecția
„Tipul de comparație” - o listă de posibile condiții de selecție: „Egal”, „Nu egal”, „În listă”, „În grupul din listă”, „În grup”, „Nu în listă”, „ Nu se află în grup din listă "," Nu este în grup "," Conține "," Nu conține "," Umplut "," Nu este completat "
„Valoarea dreaptă” - valoarea de selecție, corespunde valorii câmpului „Valoarea stângă”. Dacă „Tipul de comparație” este „În listă”, „În grupul din listă”, „Nu este în listă”, „Nu este în grupul din listă”, atunci este disponibilă o listă de valori pentru instalare
„Mod de afișare” - două opțiuni posibile ” Acces rapid„Și„ Normal ”. Dacă este setat „Acces rapid”, atunci, dacă este posibil, valorile pentru selecție sunt afișate sub formă de listă derulantă, acest lucru este valabil mai ales pentru cărțile de referință mici, enumerările sau tipurile de caracteristici. „Normal” - modul implicit de afișare a valorilor pentru obiecte sub forma unui formular de selecție sau a unei liste.
„Vizualizare” - o reprezentare textuală a selecției într-un mod redus (dacă nu se face clic pe butonul „Detalii”), precum și o vizualizare de selecție la afișarea unui raport.
Puteți adăuga grupuri la selecții - care servesc la combinarea mai multor selecții, conform oricărui criteriu „ȘI”, „SAU”, „NU”.


De exemplu, trebuie să combinați mai multe condiții folosind operatorul AND. Pentru a face acest lucru, adăugați „Grupul I” la selecție și listați condițiile din acest grup. Îmbricarea grupurilor este permisă, cu ajutorul căreia puteți crea condiții complexe. În plus față de „Grup ȘI”, „Grup SAU” și „Grup nu” sunt disponibile. În mod implicit, doar o listă de condiții de selecție nu aparține nici unui grup, este conectată între ele folosind operatorul „ȘI”.

Fila de sortare
Această filă conține câmpurile prin care se efectuează sortarea.


Adăugarea câmpurilor în această filă este similară cu modul în care se face în fila „Câmpuri selectate”. Singurul parametru specificat în câmpurile de sortare selectate este direcția de sortare.

Fila „Aspect condiționat”
În fila „Proiectare condiționată”, indicăm câmpurile, condițiile de selecție și condițiile de proiectare care vor fi aplicate atunci când câmpurile sunt afișate în raport.


„Domeniu de aplicare” - o listă de câmpuri care sunt afectate de aspectul condiționat.

„Selecție” - condiții de selecție în care este valabilă înregistrarea condiționată

Condițiile de selecție sunt specificate în același mod ca în fila „Selecție” din fereastra principală de setări de aspect.
„Aspect condiționat” - când completați acest câmp, este afișată o fereastră cu o gamă de opțiuni de proiectare posibile pentru câmpurile specificate.

Lista posibilelor opțiuni de proiectare:
Culoare fundal - Definește culoarea fundalului în celule
Culoare text - Definește culoarea textului din celule
Culoare în diagramă - Specifică culoarea liniilor dintr-o diagramă
Culoare chenar - Culoare linie chenar
Stil de margine - Tipuri de linie de margine
Stânga - Stânga margine stângă
Stil de margine de sus-sus
Stilul de margine dreapta - dreapta
Stilul marginii de jos în jos
Font - Tip font, grosime, înclinare etc.
Indentare - Numărul de caractere de indentare
Indentare automată - Numărul de caractere de indentare aplicate în grupări
Poziție orizontală - Poziția orizontală a textului din celulă
Poziție verticală - Poziția verticală a textului din celulă
Plasare - Plasarea textului care nu se încadrează în celulă
Orientarea textului - Orientarea textului în grade (de exemplu, 90-rotație perpendiculară)
Format - Formatează șirul sens
Evidențiați negativ - Un steag pentru a evidenția valorile negative
Lățime minimă - Lățimea minimă a celulei în puncte
Înălțime minimă - Înălțimea minimă a celulei
Înălțime maximă - Înălțime maximă
Text - Textul care este afișat în locul valorii

Fila Câmpuri personalizate
În această filă, puteți specifica câmpuri și formule personalizate prin care vor fi calculate câmpurile.


Când faceți clic pe adăugarea unui câmp, se va deschide o alegere a tipului unui câmp personalizat: „Selecție câmp nou”, „Expresie câmp nou”.
„Câmp de selecție” - apare un dialog pentru construirea unui nou câmp de selecție. Acest câmp va prelua valorile specificate în funcție de condițiile de selecție specificate în tabelul „Variante”.

„Câmp de expresie” - utilizat atunci când, fără a schimba schema de aspect, introduceți câmpurile calculate. De exemplu, schema indică resursele „Cantitate” și „Sumă”. În modul utilizator, dorim să calculăm prețul. Pentru a face acest lucru, inserăm formula în câmpul de proiectare a expresiei:

Expresiile din interogări pot fi utilizate în câmpuri personalizate.
De asemenea, ar trebui să utilizați funcțiile agregate SUM (..), NUMBER (), MINIMUM (..), MAXIMUM (..) pentru a indica totalurile din expresie.

Fila Alte setări
În fila Alte setări, definiți setările care afectează locația grupărilor, câmpurilor de selecție, resurselor etc.

Aspect aspect Aspecte definite predefinite ale aspectului
Poziția totalurilor Acest parametru afectează poziția totalurilor.
Locația câmpurilor de grupare
Localizarea facțiunilor
Amplasarea cerințelor
Locația resurselor
Poziționarea totalelor mari pe orizontală
Poziționarea totalelor mari pe verticală
Tipul de antet de câmp
Tipul graficului
Valoarea de bază
Omiteți valoarea de bază
Alcătuirea semnăturilor
Mod de alunecare
Afișați tabelul de date
Valoare maximă
Valoare minimă
Borduri
Gradient
Font
Culoare de fundal
Stil de linie
Plasarea unei legende
Barele graficului de măsurare
Afișați titlul
Titlu
Parametrii de date de ieșire
Afișați selecția

Fereastra de setări de grupare


Setările schemei de compoziție a datelor pot conține o structură care include elemente de setări disponibile.
Aceste elemente sunt:
grupare;
masa;
diagramă;
raport imbricat.

Următoarele setări sunt disponibile pentru grupare:
Steagul de utilizare a grupării - dacă este setat - gruparea este utilizată la conectare;
Gruparea câmpurilor - un set de câmpuri prin care se efectuează gruparea. Fiecare câmp de grupare al sistemului de compoziție a datelor are următoarele proprietăți:
- Steagul de utilizare a câmpului - dacă este setat - este utilizat câmpul;
- Câmp de grupare - calea către datele câmpului prin care se efectuează gruparea;
- Tip de grupare - tip de grupare (Ierarhie, numai Ierarhie, Elemente);
- Tipul adăugării - necesitatea de a adăuga date în perioadă;
- Data de începere - data de începere a perioadei. Poate conține o valoare constantă sau o valoare este un câmp;
- Data de încheiere - data de încheiere a perioadei. Poate conține o valoare constantă sau o valoare este un câmp;

La gruparea după un câmp de perioadă, un câmp de perioadă părinte, care nu este o perioadă suplimentară, se adaugă automat la grupare, dacă grupările părinte nu au fost grupate după acest câmp de perioadă părinte.
De exemplu, dacă gruparea este realizată de câmpul Recorder, atunci câmpul PeriodSecond va fi adăugat automat la grupare.
În acest caz, este interzisă crearea grupărilor după cerințele câmpurilor perioadei.

Buna drag cititor! Mai avem o lecție despre elementele de bază ale sistemului de layout. V-ați familiarizat cu funcțiile limbajului de expresie ACS, ați văzut particularitățile sistemului de aspect și ați aflat și setările de bază ale câmpurilor de aspect. Acum vom analiza câteva materiale noi. Merge!

Setări suplimentare pentru câmpurile ACS.

Speaker "Tipul valorii" vă permite să specificați tipul de date pentru câmpul de aspect. De ce să specificați tipul, de exemplu, pentru câmpul „Nomenclatură”, dacă știți deja ce tip este? Acest lucru este necesar dacă câmpul de aspect tip compozit... Puteți selecta un anumit tip, apoi atunci când selectați acest câmp, valorile de acest tip vor fi selectate.

Speaker „Valori disponibile” vă permite să specificați valorile disponibile pentru selecție și să restrângeți selecția utilizatorului la anumite cadre.

Speaker "Înregistrare" vă permite să setați aspectul unui câmp de aspect fără a utiliza machete. Puteți specifica culoarea fontului, culoarea chenarului, orientarea textului etc.

Speaker Opțiuni de editare vă permite să specificați modul de editare a câmpului de aspect. De exemplu, puteți specifica alegere rapida elemente din lista din selecție. În mod implicit, un câmp de aspect moștenește toate opțiunile de editare din obiectul metadate.

Câmpuri calculate

În fila „Câmpuri calculate” din compoziția datelor, puteți crea propriile câmpuri calculate.

De ce aveți nevoie de câmpuri calculate atunci când le puteți crea la nivelul interogării? Nu toate câmpurile pot fi descrise folosind o interogare. Dacă trebuie să compuneți un câmp complex din diferite seturi de date, de exemplu, din tipurile de interogare și obiect, atunci nu puteți face fără câmpuri calculate. Nu puteți adăuga un câmp de compoziție a datelor dacă sursa de date este o interogare și este completată automat, iar folosind câmpuri calculate puteți adăuga câte câmpuri doriți.

În coloana câmpului calculat „Expresie” trebuie să scrieți o expresie arbitrară care utilizează câmpurile de compoziție a datelor, referindu-se la calea acestora (coloana „Calea” din fila „Seturi de date”). Fie puteți utiliza funcțiile de transformare matematică, fie vă puteți referi la funcții module comune... De exemplu, să notăm numele câmpului calculat „Abaterea” în coloana „Calea datelor” și următoarele în câmpul „Expresie”.

Întrebare: SKD, Cum se deschide parametrul forma dorită alegere?


O zi buna! Există un raport despre ACS, acesta conține parametrul Brand - tipul Directory.Nomenclature. Cum poate fi invocată o anumită formă de selecție pentru acest parametru? Am încercat-o în ACS, în fila „Parametri”, m-am ridicat la parametrul dorit - faceți dublu clic pe coloana „Editare parametri” - puneți o bifă în caseta „Formular de selecție” și scrieți valoarea Referință. Nomenclatură Forma. Când rulați raportul, formularul de selecție este încă utilizat în mod prestabilit, nu cel specificat în „Formularul de selecție”. Configurare UT, forme convenționale. Spune-mi, pzhl, unde, ce se întâmplă?

Răspuns: Expresie cheie Formulare regulate, treceți la gestionat

Întrebare: Selectați o valoare din formularul de selecție


O zi buna!

O aplicație obișnuită.

Există un document. Are mai multe atribute ale tipului de referință, de exemplu, "DirectoryLink.Banks", cu valoarea "Bank1".

Este necesar sub forma de selecție a cărții de referință „Bănci”, SELECȚIONEAZĂ programatic elementul „Banca1”, adică tastați selectați din nou această valoare „Bank1”.

Până acum am făcut următoarele:
Procedură MakeSelectionInSelectionForm (Link)
DirectorySelectionForm = Directories.Banks.GetSelectionForm (, Link); // obțineți formularul pentru alegerea directorului Bănci prin parametrul trecut Link
// setați selecția în acest formular de selecție, conform link-ului meu din recuzită
ReferenceSelectionForm.Selection.Ref.Usage = Adevărat;
ReferenceSelectionForm.Selection.Link.Value = link;
DirectorySelectionForm.FormElements.ReferenceList.HierarchicalView = False;
DirectorySelectionForm.Open ();
// aici este codul care simulează apăsarea butonului Select, cum ????
Sfârșitul procedurii

Ajutați cine a dat peste sau aveți idei.

Mulțumiri.

Răspuns:

Am făcut-o așa:

Procedură ExecuteSelectionInSelectionForm (Link, rec) // parametrul „link” este o referință de valoare pe formularul documentului; „râuri” - elementul actual al formularului, adică. caseta de selectie
DirectorySelectionForm = Directories.Banks.GetSelectionForm (, Rec, Link);
DirectorySelectionForm.FormElements.ReferenceList.HierarchicalView = False;
OpenForm (DirectorySelectionForm, râuri);

Dacă DirectorySelectionForm.Opened () Atunci
DirectorySelectionForm.Activate ();
EndIf;

DirectorySelectionForm.CurrentElement.CurrentString = link;
ElementSelect = DirectorySelectionForm.CurrentElement.CurrentString;

Dacă SelectEl = nedefinit sau NU valoarea este completată (SelectEl) atunci
Raport ("Valoare" + Link + "nu a fost găsit în formularul pentru alegerea unui director");
in caz contrar
DirectorySelectionForm.NotifySelection (selectare e-mail);
EndIf;

Sfârșitul procedurii

Întrebare: butonul „Selectați” din formularul de selecție sau cum să apăsați butonul „Selectați”


O zi buna!

O aplicație obișnuită.

Ce gânduri trebuie să faceți clic pe butonul „Selectați” din formularul de selectare a documentului / directorului?

Nu ofer să fac clic pe mouse și COM să facă automatizarea.

Lista de dorințe: simulează apăsarea butonului „Selectare” din formularul de selecție.

Răspuns: Se pare că a rezolvat problema ... câteva teste.

Adăugat după 17 minute
Până în prezent funcționează astfel:

1C
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Procedură Face SelectionInSelectionForm (Ref, Rec) // parametrul „link” este o legătură de valoare din formularul documentului; „râuri” - elementul actual al formularului, adică. caseta de selectie DirectorySelectionForm = Directoare. Bănci. GetFormaChoice (, Rec, Link); DirectorySelectionForm. Elemente ale Formei. Lista de referinte. HierarchicalView = False; OpenForm (DirectorySelectionForm, râuri); Dacă DirectorySelectionForm. Opened () Apoi DirectorySelectionForm. Activati ​​(); EndIf; DirectorySelectionForm. CurrentItem. CurrentString = link; E-Choice = DirectorySelectionForm. CurrentItem. CurentString; dacă SelectEl = nedefinit sau NU valoarea este completată (SelectEl) atunci Raport („Valoare” + Link + "nu a fost găsit în formularul de selectare a directorului"); în caz contrar, DirectorySelectionForm. Notificați despre Choice (ChoiceEl); EndIf; Sfârșitul procedurii

Întrebare: De ce nu mai este selectată valoarea din formularul de selecție?


Există un câmp de tipul de referință DocumentLink.PaymentOutput pe formularul documentului. Când selectați, se deschide un formular pentru selectarea unui ordin de plată efectuat. După selectarea unei valori, aceasta nu este înlocuită în formularul selectat. M-am gândit la început la procesarea selecției pentru procesarea standard și progerul a uitat să înregistreze procesarea selecției. Dar totul este tipic acolo. Deschiderea formularului nu este programatică, pe câmpul în care aleg să nu conduc evenimente. Ce ar putea fi?
--- Unirea mesaje, 2 ianuarie 2018 ---

O altă aplicație pe formulare obișnuite. Formularul de selecție este ușor de gestionat și se deschide dintr-o fereastră obișnuită. Dacă reveniți la forma obișnuită de selecție, atunci totul este în regulă.

Răspuns:

În general, mi-am dat seama. A fost util să vedem ce vine de la SelectedValue în procesarea selecției. S-a dovedit a fi o matrice. Urcat în formularele de selecție, sa dovedit că există o alegere multiplă. L-am dat jos și a funcționat.

Întrebare: Ajutor, vă rugăm să cereți selecția sub forma alegerii unui director


Când aleg programar o contrapartidă, transfer primele caractere ale numelui în formularul de selecție. Cum se activează programat primul element, care are aceleași prime caractere.

Răspuns:

elektron a spus:

Când aleg programar o contrapartidă, transfer primele caractere ale numelui în formularul de selecție. Cum se activează programat primul element, care are aceleași prime caractere.

Faceți clic pentru a extinde ...

S-a rezolvat. A creat o tastatură virtuală pe formularul de selecție al cărții de referință „Contractori”.
Când apăsați orice tastă, codul este declanșat
Rezultatul căutării după atribut = TekSpr.FindByDesign (N, fals);
FormElements.DirectoryList.CurrentString = PropertySearchResult;
unde H este o variabilă care conține valoarea cheii

Întrebare: Formular de selecție cu selecție pentru o listă de valori


Buna ziua. Avem nevoie de ajutorul dvs. pentru rezolvarea unei probleme simple.

Konfa ZUP 2 .5 .113 .1 Există un raport extern, raportul are atributul „lista de baze”, tipul este o listă de valori.
Există un formular de raport. În formularul de raport, câmpul „listă de introducere a bazelor”, ValueType = „ListValues” și typeListValues ​​= „ReferenceLink.Value of ObjectsProperties”.

Cum se deschide un formular de selecție cu o selecție de către proprietarul unei proprietăți?

Multumesc anticipat!

Răspuns:În fila Parametri, există o coloană Editarea parametrilor. acolo puteți încerca să personalizați legăturile dintre parametrii de selecție sau parametrul de selecție

Întrebare: Deschideți programul formularul de selecție a documentului 1c 8.3


Cum se deschide programat formularul de selecție a documentului 1c 8.3 și se salvează valoarea selectată într-o variabilă?

Google a oferit câteva soluții crocante, aș vrea să știu cum să o fac bine.

Răspuns:+ () PM are, de asemenea, o astfel de metodă magică - descărcare.

Secțiune tabelară
Sarcină
Sintaxă:

Descarca(<Таблица>)
Opțiuni:

<Таблица>(obligatoriu) Tipul: ValueTable.
Tabelul valorilor de unde este încărcată secțiunea tabelară. Coloanele tabelelor sunt combinate după nume.
Descriere:

Încarcă o secțiune tabelară dintr-un tabel de valori. În acest caz, toate șirurile anterioare ale secțiunii tabulare sunt șterse. La încărcare, valorile din coloanele secțiunii tabulare sunt umplute cu valori din coloanele tabelului de valori cu aceleași nume.

Disponibilitate:

Server, Fat Client, Conexiune exterioară.
Notă:

Metoda poate fi utilizată numai dacă secțiunea tabelară este obținută dintr-o proprietate obiect. Dacă secțiunea tabelară este obținută dintr-o proprietate de referință (sau selecție), atunci utilizarea acestei metode va provoca o eroare de execuție.
Exemplu:

Composition.Load (Tabel de compoziție);

Întrebare: Trecerea parametrilor la formularul de selecție.


Cer indicii.
Din documentul „Vânzările de bunuri și servicii” se numește forma de selecție prin contract (ERP). Confa este corectat, îl compar cu unul tipic. În ProcessingCreationOnServer din formularul de selecție, mă uit în opțiunile debugger.Selecție. Pur și simplu nu înțeleg cum se formează lista de selecție - nu există un apel explicit al acestui formular cu parametri, există doar un singur element de selecție în proprietatea "SelectionParametersLinks" și există deja mai multe în Parameters.Selection. Poate cineva să-mi spună unde să caut.

Caracteristici de creare a rapoartelor în 1C v8 în modul client gros

Cum să alegi o opțiune?

  • Plasați butonul „Selectare opțiune” pe panoul de raport
  • Plasați câmpul „OnDate” pe formular

Cod simplu: ProcedureFormSelectOptions (Button) layout = GetLayout ("MainDataCompositionSchema"); spVariants = Lista nouă de valori; Pentru fiecare opțiune din Layout.OptionsSettings Cycle spVariants.Add (option.Settings, option.Presentation); Sfârșitul ciclului;

choice = spVariants.SelectItem (); Dacă Alegere = Nedefinit, atunci Reveniți; EndIf;

Setări Composer.LoadSettings (selection.Value);

Form (); Sfârșitul procedurii

Procedură OnDateWhenChanging (Element) Generate (); Sfârșitul procedurii

Procedură Generate () FormElements.Result.Clear (); SettingsComposer.Settings.DataParameters.SetParameterValue ("Perioada", la data); BuildResult (Form Elements.Result); Sfârșitul procedurii

Procedură deschisă () OnDate = CurrentDate (); Form (); Sfârșitul procedurii

Caracteristici de creare a rapoartelor prin ACS

Generarea unui raport pas cu pas

  1. Creați un raport în nodul Rapoarte
  2. Creați un aspect într-un raport, al cărui tip este Schema de compoziție a datelor
  3. Setați în proprietățile raportului: schema principală de compunere a datelor = Aspect creat
  4. În proprietățile raportului, setați subsistemul căruia îi aparține (raportul din Enterprise va fi afișat în panoul de navigare superior)
  5. Creați o cerere în Aspect (element: Adăugați set de date - Cerere)
  6. În fila Parametri din Aspect, debifați toate liniile din coloana Restricție acces - adică toți parametrii vor fi disponibili pentru editare de către utilizator
  7. În fila Setări a Aspectului, în fereastra în care este afișat nodul Raport, creați o nouă grupare fără a specifica câmpul de grupare - va fi creată o linie detaliată
  8. În fila Setări din Aspect, în fereastra unde se afișează set suplimentar marcaje, selectați suplimentar. fila Parametri - marcați toți parametrii cu o bifă și pe fiecare parametru faceți clic pe Proprietățile elementului de setări personalizate, se va deschide fereastra de setări a parametrilor, unde trebuie să bifați caseta - Includeți parametrul în setările personalizate
  9. În fila Setări a Aspectului, în fereastra unde este afișat un set suplimentar de file, selectați suplimentar. Fila SelectedFields - acolo trebuie să adăugați coloane care vor fi afișate în raport
  10. Rulați Enterprise, deschideți raportul, setați valorile parametrilor, generați (verificați dacă este selectată opțiunea principală pentru generarea raportului)

Cum se adaugă un parametru care nu poate fi modificat de utilizator?

De exemplu, trebuie să setăm parametrul de interogare „Infobase”

  • Sub forma aspectului, în fila Parametri, debifați caseta de selectare „Includeți în câmpurile disponibile” și „Restricții de accesibilitate” pentru parametrul necesar
  • Sub forma aspectului aspectului, în fila Setări din sub-fila (de mai jos) Parametri, debifați parametrul necesar, deschideți proprietățile (butonul cu o cheie), în acest formular:
    • Debifați „Includeți în setările utilizatorului”
    • Modul de editare setat la „Indisponibil”


  • În modulul formularului de raport, în gestionarul de evenimente „OnVariantLoadOnServer” (puteți, de asemenea, OnOpening, dar NU WhenCreateAtServer, deoarece acesta este executat ÎNAINTE de încărcarea setărilor raportului și setările vor fi suprascrise) setați programatic parametrul:

Procedura & AtServer la încărcarea opțiunii OnServer (Setări)

// Setarea parametrului Settings = Report.ConfigurationComposer.Settings; Settings.DataParameters.SetParameterValue ("InformationBase", Report.InformationBase); Sfârșitul procedurii

Cum pot seta opțiuni pentru un raport?

  • Sub forma unui șablon de aspect din fila Setări din câmpul din stânga, puteți crea variantele necesare ale raportului

Cum se setează grupări?

  • Sub forma aspectului aspectului din fila Setări din câmpul din dreapta sus, puteți crea grupările necesare

Cum se afișează programat un raport?

În modulul formular:

& Pe procedura clientului Generați raportul Executați ()

ThisForm.ComposeResult ();

Sfârșitul procedurii

Cum testez un raport?

Trebuie să faceți:

  • Pentru a forma o situație într-un test de client - cel mai convenabil mod este prin intermediul tabelului de situații
  • obțineți forma raportului - formular = GetForm ("Report.Processes.Form.Report Form");
  • Descarca opțiunea dorită raport - setați parametrul de extensie a formularului de raport „OptionKey” (numele setării din șablonul de compunere a datelor)
  • încărcați setările de raport necesare -? pentru a completa parametrul extensiei formularului de raport „UserSettings” (tip „UserDataCompositionSettings”) nu a funcționat așa, totul este complicat, vezi mai jos.
  • formular deschis - formular. Open ()
  • executați formarea - form.ComposeResult ();
  • verificați conținutul document foaie de calcul forma.Rezultatul - ar fi frumos să aveți funcții de comparație cu referința mxl
  • formă închisă - formă.Închidere (); - sau poate nu trebuie să-l deschideți, trebuie să verificați

Vezi si

  • descriere: Meniu Ajutor / Asistent de sintaxă / fila Cuprins / Obiecte interfețe aplicații gestionate / Extensii forma gestionată/ Extensie de formular gestionat pentru raport / Parametri de formular

Cum pot încărca setările de raport necesare?

Documentația descrie că există un astfel de parametru pentru extinderea formularului de raport „UserSettings” de tip „UserDataCompositionSettings”, dar există o structură de obiect foarte complexă, nu a fost posibilă utilizarea acestuia.

O schemă cu adevărat funcțională:

1. Creați parametri în raport

  • Perioada de tip Perioada standard
  • Selectarea tipului ListValues ​​(ar fi mai bine să aveți o structură, dar nu se află în lista tipurilor de parametri, precum și un tip arbitrar)

2. Treceți parametrii necesari la procedura GetForm:

period = New StandardPeriod; period.Variant = VariantStandardPeriod.ArbitenaryPeriod; period.StartDate = currentDate; period.EndDate = mâine'sDate;

selection = Noua lista de valori; selection.Add (Testing.GetObject (stSituation, "BP1"), "BusinessProcess");

stParameters = Nouă structură ("Variant Key, Period, Selection", "Main", period, selection); // OpenFormModally ("Report.Process Movement.Form.ReportForm", stParameters); form = GetForm ("Report.Process Movement.Form.Report Form", stParameters);

3. În gestionarele de evenimente ale formularului, setați parametrii

Funcția & OnServer cnGet (listă, vizualizare) Export pentru fiecare articol Din listă Buclă listă Dacă item.View = view Apoi Returnează item.Value; EndIf; Sfârșitul ciclului; Rambursare Nedefinit; EndFunction

& OnServer Procedure SetValueUserSettings (Settings, Name, Value) Pentru fiecare element din Settings.Elements Loop IfTypeValue (element) = Type ("DataCompositionSettingsParameterValue") Then If String (element.Parameter) = Nume Then element.Value = Value; item.Usage = Adevărat; EndIf; EndIf; Sfârșitul ciclului; Sfârșitul procedurii

Procedură & OnServer SetValueCustomSelection (Setări, Nume, Valoare) pentru fiecare articol din Setting.Elements Loop IfTypeVal (item) = Type ("DataCompositionFlection") Apoi pentru fiecare selecție din Item.Elements Loop If Row (pick.LeftValue) = Nume Apoi Filtru .RightValue = Valoare; selection.Use = Adevărat; EndIf; Sfârșitul ciclului; EndIf; Sfârșitul ciclului; Sfârșitul procedurii

Procedura & AtServer la încărcarea opțiunii OnServer (Setări)

CurrentVariantName = PresentCurrentVariant;

Setări = Report.ConfigurationComposer.Settings; Settings.DataParameters.SetParameterValue ("InformationBase", Report.InformationBase);

Sfârșitul procedurii

& AtServer Procedură la încărcarea utilizatorului SettingsOnServer (Settings) Settings = Report.Configuration Composer.UserSettings;

<>"00010101" Apoi Settings = Report.ConfigurationComposer.UserSettings; SetUserSettingValue (Setări, „Perioadă”, Parametri.Periodă); EndIf;

ssBusinessProcess = spGet (Parameters.Selection, "BusinessProcess"); Dacă ssBusinessProcess<>Nedefinit Apoi SetCustomSelectionValue (Setări, „BusinessProcess”, ssBusinessProcess); EndIf;

Sfârșitul procedurii

Note:

  • Există parametri de date, adică ceea ce este setat în parametrii de solicitare ACS
  • Unele dintre ele sunt alocate în setarea variantei în UserSettings (în proprietățile parametrului există un semn „Includeți în setările utilizatorului”
  • Chiar dacă, la încărcarea pe server, valorile necesare sunt încărcate în parametrii de date, atunci se deschide un formular în care sunt încărcate automat setările salvate ultima dată. Aceste setări, atunci când generează un raport, „întrerup” setările de date
  • În handlerul WhenLoadingUserSettingsOn Server, obiectul Setări transmis este o copie setări reale, deci pentru a modifica setările care vor apărea pe formular, trebuie să completați obiectul Raport.

Cum se fac mai mulți parametri de interogare (listă) în ACS?

În cerere, trebuie să utilizați expresia „În (& ParameterName)”(consultați expresiile booleene în limbajul de interogare 1Cv8)

În configurarea aspectului circuitului ACS în fila „Parametri”, pentru acest parametru, bifați în coloana „Lista valorilor disponibile”. În acest caz, atunci când alegeți parametru SKD emite un formular de editare a listei în care puteți adăuga orice valoare de parametru.

Cum se fac parametrii cererii dezactivate în ACS?

Într-o solicitare ACS, trebuie să utilizați construcții înconjurate de acolade "{}" .

Dacă există o bifă în formularul de raport (panou instalare rapida) este eliminat din parametrul corespunzător, apoi această construcție este eliminată din cerere.

Pentru mai multe detalii vezi Extinderea limbajului de interogare pentru sistemul de compunere a datelor (1Cv8)

Cum se face un raport cu un spread pe coloane?

Pentru a face acest lucru, în configurarea variantei de raport (editarea aspectului compoziției datelor, fila „Setări”, câmpul din dreapta sus), trebuie să adăugați „Tabel” ca primă grupare.

După aceea, ramurile „Rânduri” și „Coloane” apar în nodul „Tabel”, unde sunt adăugate grupările necesare.

Cum se personalizează formatul de ieșire al câmpurilor?

În editorul de șabloane de compunere a datelor, în fila „Seturi de date”, în zona din dreapta sus există o listă de câmpuri de raport.

Există două posibilități:

  1. Personalizați valoarea coloanei „Vizualizați expresia”
    • aici puteți introduce o expresie de limbă care produce șirul dorit
    • nu funcționează cu câmpuri de resurse
  2. Personalizați valoarea coloanei „Aspect”
    • în proiectare există o proprietate "Format" - aceasta este o valoare similară cu parametrul funcției de limbă "Format", puteți seta vizualizarea dorită
    • conversia de tip nu se poate face aici

Expresiile de calcul pot fi specificate pentru câmpurile de resurse (fila Resurse) - de exemplu,

Suma (timpul) / 3600.0

pentru a converti de la secunde la ore.

Precizia necesară poate fi setată prin câmpul „Proiectare” din fila „Seturi de date”.

Specificul setării parametrilor sistemului de compoziție a datelor

Există și necesită o prelucrare diferită a cel puțin TREI tipuri de parametri:

Parametrii de date

Parametrii de date sunt definiți în cererea ACS (sursa de date).

Parametrii de date sunt trecuți la interogarea sursei de date și determină datele de recuperat.

Obiectul SettingsComposer are o proprietate specială pentru lucrul cu parametrii de date Setări Composer.Settings.Data Parameters

Poate fi setat apelând formularul

Setări = Report.ConfigurationComposer.Settings; Settings.DataParameters.SetParameterValue ("InformationBase", Report.InformationBase);

Selecţie

Selecțiile sunt suprapuse asupra datelor primite după preluarea dintr-o sursă de date.

Obiectul SettingsComposer are o proprietate specială pentru lucrul cu selecții Preferințe Selecția preferințelor compozitorului.

De exemplu: Setări = Report.ConfigurationComposer.Settings; Settings.DataParameters.SetParameterValue ("InformationBase", Report.InformationBase);

Pentru fiecare element din Parameters.Selection CycleSelectionElement = Settings.Selection.Elements.Add (Type ("DataCompositionFeedbackElement")); SelectionElement.ComparisonType = DataCompositionComparisonType.Equal; SelectionItem.LeftValue = NewDataCompositionField (element.View); SelectionItem.RightValue = element.Value; Sfârșitul ciclului;

Setari personalizate

Preferințele utilizatorului definesc datele pe care utilizatorul le poate personaliza pe formular.

Setările personalizate pot fi afișate pe formular într-un tabel special și pot fi apelate prin butonul „Setări” și din meniul „Toate acțiunile”.

Setari personalizate conectat cu parametri de date și selecții într-un mod destul de complicat, această conexiune poate fi configurată vizual, dar este cumva foarte incomod să lucrezi cu ei programatic.

Până în prezent, nu s-a găsit nimic mai bun cum să setăm valorile unei colecții existente după index, care de la sine poate să se oprească la schimbarea aspectului ACS în editorul vizual.

În plus, dacă un parametru de date este declarat definit de utilizator, atunci instalarea software-ului parametrul de date (vezi mai sus) nu este suficient, valoarea restaurată setare personalizataîntrerupe setarea parametrului de date. Prin urmare, pentru astfel de parametri, nu are sens să setați parametru de date, trebuie să instalați imediat setare personalizata.

Un loc convenabil pentru setarea valorilor necesare este gestionarul de evenimente „OnLoadingUserSettingsOnServer” al extensiei formularului de raport.

Procedură & OnServer la încărcarea setărilor utilizatorului OnServer (Setări)

Dacă Parametri.Periodă.Data de sfârșit<>"00010101" Apoi Setări = Report.ConfigurationComposer.UserSettings; Settings.Elements.Value = Parametri.Periodă; EndIf;

Sfârșitul procedurii

Utilizarea unei surse de date obiect

Pentru a utiliza un set de date de tip obiect, trebuie să treceți sursă externă metoda datelor Inițializați obiectul Procesor de compoziție a datelor.

DataDecryption = Nedefinit;

Layout Composer = New DataComposition Layout Composer; LayoutComposer = LayoutComposer.Run (DataCompositionSchema, SettingsComposer.Settings, DecodeData);

Procesor de compoziție = nou procesor de compunere a datelor; LayoutProcessor.Initialize (LayoutDetails, Structură nouă („Date”, GetExternalSourceData ()), DecryptionData);

Este atașat un exemplu simplu (pentru ca exemplul să funcționeze, trebuie să aveți cărțile de referință „Contractori” și „Contractele contractanților”).