Łączenie zbiorów danych w systemie przechowywania. Konstruktor diagramu układu danych - zakładka łącząca zbiory danych 1s SKD warunek łączenia zbiorów danych


41
Niedawno sporządziłem raport z nieokreśloną liczbą kolumn. Nie chciałem majstrować przy kodzie, więc zdecydowałem się zrobić to na systemie kontroli dostępu. Nie było z tym problemu, trzeba było rozciągnąć wynik na dowolny układ (własny nagłówek +... 27
Mimo że studenci CDS natrafiają na ten temat pierwszego lub drugiego dnia, powinien on znaleźć się w sekcji FAQ. Prosty przykład programowego generowania raportu dotyczącego układu przy użyciu ustawień domyślnych. //Pobierz diagram z... 18
Podczas generowania raportów w systemie kontroli dostępu domyślnie rozwijane są wszystkie grupowania, jednak czasami konieczne jest wyświetlenie raportu ze zwiniętymi grupowaniami od razu po wygenerowaniu! Ten kod w module raportu pozwala zwinąć... 9
Przy opracowywaniu raportów wymagane jest, aby dla użytkownika z ograniczonymi uprawnieniami raport był generowany całkowicie bez sprawdzania uprawnień! Zwłaszcza jeśli skonfigurowano RLS. Można to zrobić na kilka sposobów: 1. Zainstaluj...

W tym przypadku pole Wymagane określa, czy pola użyte w źródle (ustawione na FAŁSZ) czy w miejscu docelowym (ustawione na TRUE) są włączone i na tej podstawie dodaje relację do układu.

Dla każdego zestawu danych możesz skonfigurować kontrolę hierarchii:

Opcję tę stosuje się w przypadku, gdy warunek selekcji pola ma zostać przetworzony w niestandardowy sposób. W polu można podać zbiór danych, z którego zostaną pobrane dane umożliwiające sprawdzenie, czy łącze należy do hierarchii o określonej wartości.

Pytanie 11.33 egzaminu 1C: Platform Professional. Czy dopuszczalne jest używanie wielu zestawów danych?

  1. Tylko w przypadku korzystania ze zbiorów danych - obiekt
  2. Tylko w przypadku korzystania ze zbiorów danych - zapytanie

Prawidłowa odpowiedź to pierwsza odpowiedź, jest ona akceptowalna w każdym przypadku.


Pytanie 11.10 egzaminu 1C: Platform Professional. Podczas definiowania relacji między dwoma zbiorami danych na diagramie składu danych

  1. Opcja połączenia (lewa, pełna) jest wybierana przez programistę
  2. Zawsze używane jest lewe połączenie pierwszego zestawu z drugim
  3. Zawsze używane jest lewe połączenie drugiego zestawu z pierwszym
  4. Stosowane jest lewe połączenie pierwszego zestawu z drugim, w niektórych przypadkach ustanawiane jest połączenie wewnętrzne

Prawidłowa odpowiedź jest czwarta. Zbiory danych łączone są wyłącznie za pomocą sprzężenia lewego lub wewnętrznego.

Pytanie 11.13 egzaminu 1C: Platform Professional. W jakich przypadkach należy skonfigurować sprawdzanie hierarchii w zakładce „Zbiory danych” w oknie projektanta diagramów układu

  1. Jeśli chcesz zabronić otrzymywania sum według własnej hierarchii, różniącej się od standardowej
  2. Jeśli chcesz pozwolić na uzyskiwanie sum według własnej hierarchii, innej niż standardowa
  3. Jeśli chcesz zabronić instalacji wyboru wpisu do grupy o własnej hierarchii, innej niż standardowa
  4. Jeśli chcesz zezwolić na włączenie selekcji do grupy o własnej hierarchii, innej niż standardowa

Prawidłowa odpowiedź to numer cztery, opis w poście.

Pytanie 11.16 egzaminu 1C: Platform Professional. Jakie rodzaje połączeń pomiędzy dwoma zbiorami danych można wdrożyć w systemie kompozycyjnym?

  1. Wszystko jak w języku zapytań: „Wszystko do wszystkich”, „W lewo”, „Prawo”, „Wewnętrzny” i „Pełny”
  2. Tylko „Wszyscy do wszystkich”, „Lewy”, „Prawy” i „Wewnętrzny”
  3. Tylko „Lewy” i „Wewnętrzny”
  4. Tylko „Wszyscy do wszystkich”, „W lewo” i „Wewnętrzne”
  5. Tylko „Lewy”, „Prawy”, „Wewnętrzny” i „Pełny”

Według wyniku testu prawidłowa odpowiedź to czwarta. Właściwie to trzecie jest prawidłowe.

Pytanie 11.17 egzaminu 1C: Platform Professional. Podczas konfigurowania relacji pomiędzy dwoma zbiorami danych zaznaczana jest flaga „Wymagana relacja”. W jakim przypadku działania użytkownika spowodują awarię połączenia?

  1. Połączenie danych z obu zestawów zostanie zrealizowane niezależnie od ustawień dokonanych przez użytkownika
  2. Na liście wybranych pól widoczne są tylko pola z lewego zestawu
  3. Na liście wybranych pól wskazane są tylko pola z odpowiedniego zestawu
  4. Na liście wybranych pól wskazane są tylko pola lewego zestawu, zaznaczone jest pole prawego zestawu
  5. Na liście wybranych pól wskazane są tylko pola prawego zestawu, zaznaczone jest pole lewego zestawu

Prawidłowa odpowiedź to druga, jeśli jest tylko jeden zestaw (i źródło), to nie ma co podłączać.

Pytanie 11.39 egzaminu 1C: Platform Professional. W jaki sposób dane zewnętrzne są przekazywane do zbioru – obiektu w systemie kompozycji danych?

  1. Za pomocą wbudowanego języka poprzez procesor składu danych
  2. Korzystanie z wbudowanego języka za pomocą kreatora układu
  3. Za pomocą wbudowanego języka poprzez procesor wyjściowy systemu składu danych

Prawidłowa odpowiedź to pierwsza, poprzez procesor.

System kompozycji danych może wykorzystywać wiele zestawów danych. I jest całkiem logiczne, że te zbiory danych powinny być w jakiś sposób ze sobą powiązane. Analogicznie do języka zapytań 1C, zestawy danych mogą być albo. W tym artykule porozmawiamy o połączenie zbiorów danych w systemie kontroli dostępu.

Na pierwszy rzut oka może nie być jasne, dlaczego trzeba utworzyć kilka zbiorów danych, a następnie je połączyć, skoro można po prostu połączyć tabele w ramach jednego zbioru danych. Jest ku temu co najmniej jeden powód – w przypadku korzystania z zewnętrznego zbioru danych. Jak wiadomo pisząc zapytanie o zbiór danych ACS nie możemy do niego przekazać np. . Chociaż w przypadku normalnego żądania odbywa się to po prostu. W przypadku korzystania z systemu kontroli dostępu jesteśmy zmuszeni przenieść do niego tabelę wartości w postaci pliku . Stąd potrzeba łączenia zbiorów danych. Od razu zaznaczę, że zestawy danych można łączyć tylko za pomocą POŁĄCZENIE LEWE. Dlatego w przeciwieństwie do tutaj nie zobaczysz checkboxów odpowiadających za rodzaj połączenia tabeli.

A teraz wyobraźmy sobie sytuację, na przykładzie której możemy rozważyć połączenie zbiorów danych w systemie kontroli dostępu. Załóżmy, że mamy katalog Dobra, które możemy otrzymać od różnych dostawców i chcemy wygenerować raport z cenami towarów według dostawców, aby wybrać dostawcę z najkorzystniejszą ceną. I weźmiemy ceny, które są aktualne w danym momencie, na przykład za pośrednictwem usług internetowych ze stron dostawców.

Odpowiednio dla towarów będziemy mieli zbiór danych uzyskany na podstawie zapytania, a dla cen będziemy mieli zbiór danych uzyskany ze źródła zewnętrznego.


Przejdźmy teraz do zakładki Relacje zbioru danych i dokonaj ustawień jak pokazano na rysunku.

Na zakładkę Ustawienia Najpierw utwórzmy podstawowy wynik szczegółowych rekordów


Niech będzie w naszym katalogu Dobra zawiera następujące wpisy

Uruchamiamy raport i widzimy następujący obraz

Oznacza to, że widzimy, że zbiory danych zostały ze sobą powiązane zgodnie ze wszystkimi regułami POŁĄCZENIE LEWE

Na zakładkę Relacje zbioru danych Istnieje możliwość określenia dodatkowych parametrów w odpowiednich polach. Ale są używane dość rzadko. Więcej szczegółów można znaleźć w dokumentacji technicznej oraz na dyskach ITS.

Czasami, aby uzyskać określony wynik układu, konieczne jest utworzenie powiązań pomiędzy zbiorami danych w systemie kontroli dostępu. O tym, kiedy jest to potrzebne i jak to zrobić, postaramy się porozmawiać w naszym artykule.

Schemat układu danych zaimplementowany w 1C obsługuje trzy typy źródeł danych (ryc. 1)

Źródła danych

Najbardziej oczywistym i często używanym przez programistów źródłem danych jest zapytanie.

Projektant zapytań zaimplementowany w wersji 8 1C jest bardzo wygodny i w większości przypadków można połączyć ze sobą kilka tabel i bezpośrednio w nim dokonać niezbędnych grup i selekcji.

W skomplikowanych przypadkach, gdy wymagane lub bardziej właściwe jest skorzystanie z wykonania jakiegoś kodu (na przykład załadowanie danych z pliku strony trzeciej) lub gdy nie jest możliwe użycie zapytania, dochodzi do źródła danych „Obiekt” ratunek. Dowolny kod wykonywany w module musi mieć na wyjściu określoną strukturę, do której system kontroli dostępu ma dostęp.

Trzecim źródłem danych jest „Unia”. W rzeczywistości źródło to można uznać za jeden z rodzajów komunikacji. Łączy (redukuje kilka tabel w jedną), bez dopasowywania, ale zbieżność niektórych pól. Oznacza to, że jeśli dwie łączone tabele mają odpowiednio 3 i 4 wiersze, wówczas powstałe źródło danych będzie miało 7 wierszy.

Sformułowanie problemu

Jako poligon doświadczalny wybierzemy bazę UPP w wersji 1.3.92.3, działającą w normalnym trybie aplikacji.

Postawiono nam następujące zadanie: korzystając wyłącznie z systemu kontroli dostępu, stworzyć raport, w którym wyświetli się tabela zakupionych pozycji z dokumentu, wraz z cenami pobranymi z pliku przesłanego przez kontrahenta.

Musimy więc:

  1. Weź tabelaryczną część dokumentu paragonu;
  2. Prześlij plik do źródła danych „Object”;
  3. Połącz te dwa źródła pewnym parametrem (w naszym przypadku będzie to kod);
  4. Wyświetl wynikową tabelę.

Proces wykonania

Przejdźmy przez wszystkie wymienione kroki:

  • Tworzymy zapytanie o część tabelaryczną dokumentu paragonu (rys. 2)

Ryc.2

  • Utwórz obiekt zbioru danych (ryc. 3);

Ryc.3

W tym miejscu należy zwrócić uwagę na „Nazwę obiektu zawierającego dane” – tę nazwę będziemy musieli podać w kodzie modułu raportowego.

  • Przechodzimy do modułu raportów i tam tworzymy procedurę „When Compizing Result” (ryc. 4);


Ryc.4

Nie będziemy opisywać procedury pozyskiwania danych z pliku zewnętrznego, zwrócimy uwagę na tę część kodu, która musi znajdować się w układzie, abyśmy mogli pozyskać dane dla „Data Set 2” (rys. 5).

Ryc.5

Ważny! Podczas tworzenia „Obiektu” w kodzie procedury podczas łączenia wartość parametru StandardProcessing musi mieć wartość False.

Przejdź do zakładki „Łącza zestawu danych”.

Łączenie zestawów

Przejdź do odpowiedniej zakładki diagramu (ryc. 6).

Widzimy część tabeli, która jest bardzo podobna do części tabeli znajdującej się w projektancie zapytań, z pewnymi wyjątkami. W przypadku zestawu źródła komunikacji i zestawu miejsca docelowego komunikacji nie można zaznaczyć pola wyboru „Wszystkie”, ale dodano kilka dodatkowych kolumn.

W relacjach zestawu danych można ustanowić jedynie relację podobną do lewego sprzężenia zewnętrznego konstruktora zapytań.

Przed utworzeniem połączenia zdecydujmy o przeznaczeniu kolumn:

  1. Źródło linku to pierwszy zbiór danych, z którego zostaną pobrane wszystkie dostępne wartości;
  2. Odbiornik komunikacyjny – zbiór danych, z którego zostaną wybrane wartości odpowiadające naszemu stanowi;
  3. Wyrażenie źródłowe – pole lub wyrażenie pierwszego zbioru danych, względem którego nastąpi porównanie;
  4. Wyrażenie docelowe jest polem lub wyrażeniem zestawu zależnego;
  5. Parametr – jeżeli w tym polu podasz nazwę parametru, to komunikacja z zestawem odbiorczym będzie prowadzona wyłącznie według wartości określonej w parametrze;
  6. Lista parametrów – określa możliwość wykorzystania listy wartości jako parametru;
  7. Warunek połączenia – podając tutaj wyrażenie za pomocą pól źródłowych, możesz utworzyć warunek, którego spełnienie będzie sygnałem do nawiązania połączenia;
  8. Wartość początkowa – pokazuje wartość początkową połączenia;
  9. Relacja obowiązkowa — określa, czy pola używane w źródle (ustawione na FALSE) lub docelowe (ustawione na TRUE) są włączone i na tej podstawie dodaje relację do układu.

Zatem:

  • Źródłem komunikacji będzie wynik naszej prośby;
  • Obiekt będzie pełnił rolę odbiornika;
  • Wyrażeniem źródłowym będzie „NomenclatureCode”;
  • Wyrażenie odbiorcy „Nomenklatura”;
  • Komunikacja będzie obowiązkowa (ryc. 7).

Gdybyśmy jako warunek połączenia podali nazwę jakiejś nomenklatury, rodzaj jej reprodukcji lub coś innego, moglibyśmy otrzymać dokładniejszą próbkę do naszego zadania. Efekt naszych działań widać na ryc. 8

Ryc.8

Nie znaleziono dopasowania dwóch dolnych wierszy raportu w pliku wyceny.

Schemat układu danych (1C SKD)- wygodny projektant do tworzenia złożonych raportów w oprogramowaniu 1C:Enterprise, które przyczyniają się do rozwoju i śledzenia automatyzacji produkcji, umożliwiając uczynienie ich tak elastycznymi i pięknymi, jak to tylko możliwe w minimalnym czasie. Dodatkową zaletą Data Composition Scheme (1C SKD) jest automatyczne generowanie kontrolowanej formy raportu, co w miarę dalszego rozwoju tego obszaru stanowi istotny czynnik przy wyborze sposobu opracowania raportu. Jednak ze względu na złożoność struktury Data Composition Scheme (1C SKD) i ogromną liczbę ustawień często prowadzi to do dłuższego opracowania raportu niż za pośrednictwem „projektanta formularzy wyjściowych”. Dlatego programista 1C musi zrozumieć wszystkie zawiłości schematu składu danych (1C DCS), aby jeszcze bardziej przyspieszyć czas tworzenia raportów.

Przyjrzyjmy się pierwszym trzem zakładkom schematu kompozycji danych (1C SKD) - zestawowi danych, połączeniom zestawów danych i polom obliczeniowym.

Zestaw danych w 1C SKD

Zestaw danych obejmuje możliwość utworzenia trzech obiektów - zapytania, obiektu i unii, przyjrzyjmy się bliżej każdemu z nich:

Jest to zwykłe zapytanie generowane za pomocą przycisku Konstruktor zapytań. Jeżeli ustawiona jest flaga Autouzupełniania, to wszystkie wybrane szczegóły zostaną automatycznie uwzględnione w polach zbioru danych. Istnieje także możliwość dostosowania sposobu wypełniania pól w żądaniu na zakładce Skład Danych, gdzie znajdują się trzy zakładki:

Tabele, tutaj wybiera się tabele, które będą brały udział w wygenerowaniu raportu, zazwyczaj wybierane są dane domyślne, gdyż w zakładce Tabele i Pola wybraliśmy już potrzebne nam dokumenty, katalogi, rejestry...

Pola, tutaj wybieramy te obiekty, które powinny zostać uwzględnione w raporcie, flaga dzieci wskazuje, czy dla obiektu będą dostępne elementy podrzędne, czy nie, logiczne jest, że dla danych łańcuchowych, numerycznych i podobnych nie będzie można ustawić flagę na True.

Warunki, tutaj wybieramy te obiekty, które można wykorzystać pod warunkami w systemie kontroli dostępu.

Część pracy jest wykonywana w schemacie kompozycji danych, a część jest wykonywana programowo; spójrzmy na prosty przykład:

Najpierw utworzymy diagram układu układu danych dokumentu i nazwiemy go SKD (na przykład: 1C SKD), w nim tworzymy obiekt zbioru danych, następnie wypełniamy pola, np. mamy dokument z tabelaryczną częścią towaru ze szczegółami - nomenklaturą, ilością i ceną.

Dodajmy trzy pola i wypełnijmy każdą kolumnę nazwą szczegółów, pozostałe kolumny zostaną wypełnione automatycznie:

Utwórzmy przycisk na formularzu dokumentu i opiszmy mechanizm działania w formularzach kontrolowanych:

&Na kliencie

Procedura Drukuj()

Nasz raport = PrintOnServer(); //wywołaj funkcję na serwerze

Nasz raport.Pokaż(); //wyświetl wygenerowany raport

Koniec procedury

&Na serwerze

Funkcja PrintOnServer()

DocumentObject = FormAttributeValue(“Obiekt”);

//część tabelaryczną Produkty umieszczamy w strukturze o nazwie ProduktySKD w ten sam sposób, w jaki wskazaliśmy w samym SKD nazwę obiektu zawierającego dane

DataSet = nowa struktura;

DataSet.Insert(“ProduktySKD”, DocumentObject.Products);

//otrzymujemy nasz układ i ustawiamy ustawienia domyślne, tak aby wszystkie ustawienia wyjściowe raportu zostały pobrane z naszego układu

OurLayout = DocumentObject.GetLayout(“SKD”);

Ustawienia = OurLayout.DefaultSettings;

//utwórz układ układu danych z naszymi ustawieniami

LayoutLinker = newDataLayoutLayoutLinker;

LayoutLayout = LayoutComposer.Execute(Nasz układ, Ustawienia);

//wykonać kompozycję danych z naszym zbiorem danych

DataCompositionProcessor = nowyDataCompositionProcessor;

DataCompositionProcessor.Initialize(LayoutLayout, DataSet);

//Tworzymy dokument arkusza kalkulacyjnego i wyświetlamy w nim nasz raport

ReportDocument = Nowy dokument tabelaryczny;

OutputProcessor = Nowy OutputProcessorDataCompositionResultInTabularDocument;

OutputProcessor.SetDocument(ReportDocument);

OutputProcessor.Output(DataCompositionProcessor);

Raport dokumentu zwrotnego;

Funkcja końcowa

Jeśli chcesz, możesz uzyskać obszary o dowolnym innym układzie i wyświetlić je również w tym raporcie, przykładowo mamy standardowy układ do generowania zlecenia płatniczego i nagłówek jest w nim bardzo dobrze utworzony, więc tak, aby nie zrobić niepotrzebna praca, po prostu najpierw dostaniemy układ, wyświetlimy nagłówek, następnie wygenerujemy i wyświetlimy nasz raport na temat systemu kontroli dostępu.

O zjednoczenie

Możemy w nim umieszczać nasze zapytania i obiekty, ale w przeciwieństwie do połączenia po prostu dodaje do siebie tabele, czyli jeśli połączymy dwie identyczne tabele, to wyjdzie nam jedna, a po połączeniu podwoi się, spójrzmy na prostym przykładzie:

Mamy tabele:

Po komunikacji otrzymamy:

A po połączeniu:

Przyjrzyjmy się teraz wypełnianiu kolumn w zbiorach danych (niektóre pominiemy, gdyż są powiązane z innymi zakładkami; powrócimy do nich w przyszłych artykułach):

- pole, podaj ogólną nazwę atrybutu;

­­- ścieżka, podaj nazwę danych, pod którymi będziemy się z nim kontaktować w systemie kontroli dostępu, np. w Obliczone pola;

- tytuł, wskaż nazwę atrybutu, który będzie wyświetlany w raporcie;

- ograniczenie pola, wskazać dostępność tego wymagania;

- ograniczenie szczegółów, wskazujemy dostępność elementów potomnych, ważne jest, aby w przypadku wskazania dostępności szczegółów, to samo pole było dostępne, być może ta mechanika zostanie zmieniona w przyszłych wydaniach;

- wyrażenie, za pomocą którego obliczana jest reprezentacja pola, jest wygodny w użyciu, gdy musimy trochę zmienić sposób wyświetlania szczegółów, na przykład potrzebujemy po nazwie nomenklatura został wyświetlony magazyn, gdzie się znajduje, następnie uzupełnij: Pozycja + „jest w magazynie” + Magazyn. Powtarzam, że dostęp do szczegółów odbywa się poprzez nazwę wskazaną w kolumnie ścieżka;

- porządkowanie wyrażeń, wygodny mechanizm ustawiania kolejności raportów, gdzie warunek można ustawić ręcznie, podobnie jak w poprzednim punkcie, jednak jak pokazuje praktyka, mechanizm ten często nie działa tak, jak byśmy chcieli, i radzę zastosować sortowanie standardowe;

- typ wartości, wskazuje typ wartości atrybutu; należy to wypełnić, jeśli korzystasz z poniższego pola;

- dostępne wartości, działa tylko wtedy, gdy jest pełny typ wartości, otwórz formularz wypełniania i w kolumnie Oznaczający wskazujemy element, który należy zmienić, w zależności od typu mogą to być obiekty predefiniowane lub numeryczne, np. detale mają proste wartości, w prezentacja Wskazujemy na co musimy zmienić, przykład typu Boolean:

- dekoracje– standardowe ustawienia formatu pola, podobne do ustawień w zarządzanych formularzach, pozwalają dokładniej i piękniej dostosować wyświetlanie niektórych szczegółów.

Połączenia zestawu danych w 1C SKD

Tutaj jest tylko zainstalowany opuścił dołączenie, na zasadzie podobnej do znajomości w prośbach, w źródło komunikacji określ główną tabelę dla połączenia, w odbiorca dodatkowy. W źródło wyrażenia I Odbiorca wyrażeń Wskazujemy szczegóły, według których będzie odbywać się komunikacja. Pozostałym kolumnom przyjrzymy się bardziej szczegółowo, gdy spojrzymy na zakładkę. Opcje. Jeśli nie ma dodatkowego połączenia z parametrami, zaleca się wykonanie połączenia w żądaniu, przyspieszy to raport.