Tablica funkcji agregujących 1s SKD. SKD. Wyświetlanie informacji tabelarycznych w jednej komórce. Utwórz nowy raport

W tej krótkiej notatce chcę pokazać jak można podsumować wartości na różnych poziomach grupowania w raporcie wykorzystując system kompozycji danych.
Jak widać na obrazku, dopiero na poziomie grupowania „Grupy towarów” obliczany jest zasób „Zamówienie”, który pokazuje, ile należy zamówić dla bieżącej grupy towarów na podstawie określonych warunków:


Wartość tę można obliczyć jedynie dla ten poziom grupowania, ponieważ powyżej lub poniżej nie ma wartości do obliczenia. Przykładowo na poziomie ewidencji szczegółowej nie ma danych o maksymalnej ilości w grupie, gdyż dane te obowiązują tylko dla całej grupy, a nie dla poszczególnych jej elementów.

W związku z tym należy teraz obliczyć sumy dla powyższych grup („Magazyny”, „Typy magazynów”) i sumę ogólną.
Aby to zrobić, użyj funkcji Oblicz wyrażenie za pomocą tablicy grupowej:
OCEŃ WYRAŻENIE Z GRUPARRAY (EVALEXPRESSIONZ GRUPARRAY)
Składnia:
Oceń wyrażenie za pomocą tablicy grupowej (,)
Opis:
Funkcja zwraca tablicę, której każdy element zawiera wynik oceny wyrażenia do grupowania według określonego pola.
Kompozytor układu podczas generowania układu konwertuje parametry funkcji na pola układu kompozycji danych. Na przykład pole Konto zostanie przekonwertowane na DataSet.Account.
Konstruktor układu podczas generowania wyrażeń dla danych wyjściowych pola niestandardowego, którego wyrażenie zawiera tylko funkcję CalculateArrayWithGroupArray(), generuje wyrażenie wyjściowe w celu uporządkowania informacji wyjściowych. Na przykład dla niestandardowego pola z wyrażeniem:

CalculateExpressionWithGroupArray("Kwota (kwota obrotu)", "Kontrahent")
Kreator układu wygeneruje następujące wyrażenie jako wynik:

ConnectRows(Array(Order(CalculateExpressionWithGroupingValueTable("View(Sum(DataSet.AmountTurnover)),Sum(DataSet.AmountTurnover)","DataSet.Account"),"2")))

Opcje:

Typ: ciąg. Wyrażenie, które ma zostać ocenione. Ciąg, na przykład Amount(AmountTurnover).

Typ: ciąg. Wyrażenia pól grupujących – wyrażenia pól grupujących oddzielone przecinkami. Na przykład Wykonawca, Strona.

Typ: ciąg. Wyrażenie opisujące wybór zastosowany do rekordów szczegółowych. Wyrażenie nie obsługuje funkcji agregujących. Na przykład DeletionFlag = False.

Typ: ciąg. Wyrażenie opisujące wybór zastosowany do rekordów grupy. Na przykład Kwota(Kwota Obrotu) > &Parametr1.
Przykład:

Maximum(CalculateExpressionWithGroupArray("Kwota(Kwota Obrotu)", "Kontrahent"));

Szczegółowy opis składni funkcji można znaleźć pod adresem http://its.1c.ru/db/v837doc#bookmark:dev:TI000000582
Teraz do obliczeń powielamy pole „Zamówienie” z różnymi wartościami „Oblicz według…”, używając poniższych wyrażeń, zwróć uwagę, że na każdym wyższym poziomie stosowane są wartości poziomów poniżej zgrupowań .

W rezultacie otrzymujemy następującą konstrukcję:

Właściwe wykorzystanie schematu kompozycji danych (DCS) pozwala na:

  • znacząco skrócić czas potrzebny na opracowanie raportu;
  • pozbyć się potrzeby tworzenia kontrolowana forma edytor;
  • uzyskaj piękny efekt z możliwością dodatkowej personalizacji przez użytkownika.

Jednak nie wszyscy programiści wykorzystują w pełni możliwości programu, ponieważ nie wszystkie jego ustawienia są oczywiste i intuicyjne. W szczególności wiele osób wie, że w 1C SKD istnieją pola obliczeniowe, jednak nie do końca rozumieją zakres ich zastosowania i metody pracy z nimi.

Co to jest pole obliczeniowe

W większości przypadków źródłem danych na diagramie układu jest zapytanie. W zasadzie w samym zapytaniu można już stosować różne formuły, konstrukcje i wyrażenia. Powstaje logiczne pytanie, dlaczego potrzebujemy zduplikowanej funkcjonalności?

Faktem jest, że system kontroli dostępu to coś więcej niż tylko wyświetlenie wyniku zapytania, co doskonale widać na formularzu tworzenia diagramu (rys. 1).

Pola obliczeniowe pozwalają na wykonanie określonych działań na wygenerowanym zbiorze danych:

  • Wyprowadź tablicę danych otrzymanych przez żądanie do określonej komórki, łącząc kilka linii w jedną;
  • Uzyskaj dostęp do funkcji eksportu modułu ogólnego;
  • Wykonaj różne wyrażenia dostępne dla języka układu i użyj specjalnych funkcji EvaluateExpression.

Przejrzyjmy tę listę.

Tablica wartości w jednej komórce

Zasymulujmy sytuację, w której konieczne jest otrzymanie wszystkich numerów dokumentów paragonowych dla kontrahenta w osobnej komórce:


Dlatego w naszym schemacie utworzyliśmy dodatkowe pole obliczeniowe;


Jak widać na powyższym przykładzie, nie ma żadnych trudności z dodawaniem i przetwarzaniem pól wyliczanych. Użyliśmy dwóch funkcji: Array() i ConnectRows().

Kilka słów o tym ostatnim. Oprócz pierwszego parametru wskazującego identyfikator tablicy, wartości lub wartość, można w nim ustawić jeszcze dwa:

  1. Element Separator – wskazuje, jaki znak oddzieli jeden element tablicy lub jeden wiersz tabeli wartości od drugiego (w naszym przypadku pominęliśmy ten parametr i domyślnie przypisano podział wiersza);
  2. Separator kolumn – znak służący do oddzielania kolumn tabeli wartości (domyślnie używany jest średnik).

Dostęp do funkcji eksportu wspólnego modułu

Funkcje wspólnego modułu mogą pełnić rolę źródła danych do wypełnienia pola obliczeniowego.

Kilka ważnych punktów:

  • Funkcja musi być eksportowalna;
  • Jeżeli funkcja znajduje się we wspólnym module z ustawionym atrybutem „Globalny”, to wywołuje się ją bezpośrednio po nazwie, w przeciwnym razie funkcję należy wywołać zgodnie ze schematem „Nazwa modułu współdzielonego”. „Nazwa funkcji, która ma zostać wywołana.”

Jako przykład użycia weźmiemy to samo żądanie dokumentów paragonowych i wyświetlimy je w osobnej kolumnie. Nie będziemy opisywać samego żądania, przejdźmy od razu do pól obliczeniowych:


Widzimy zatem, że z systemu kontroli dostępu można zainicjować niemal każdy procesor danych, co znacznie rozszerza możliwości wykorzystania schematu.

Wyrażenia języka układu

Dość często w pracy programisty pojawia się sytuacja, gdy konieczne jest wyświetlenie wyniku dzielenia w polu ACS:

  1. Oblicz średni koszt przedmiotu;
  2. Wszelkiego rodzaju zainteresowania;
  3. Obliczenia średnich zarobków itp.

Aby uniknąć problemów, w takich przypadkach zaleca się wprowadzenie testu dzielenia przez 0 w polu obliczeniowym.

Można to zrobić za pomocą konstrukcji „Wybierz, kiedy….Wtedy… W przeciwnym razie… Koniec”.

Na koniec kilka słów o dość Nowa cecha ObliczWyrażenie(). Za jego pomocą można w szczególności obliczyć odchylenia kosztów pomiędzy bieżącą a poprzednią linią, saldo skumulowane itp.

Załóżmy, że możesz pobrać kwotę dokumentu z poprzedniego wiersza naszego żądania, podając wartość Oblicz wyrażenie („Kwota dokumentu”, „Poprzednia kwota”) w polu „Wyrażenie”.

Dzień dobry, drodzy czytelnicy naszego bloga! Dziś chcę Wam o tym opowiedzieć prawdziwy przykład, Jak
użyj funkcji ACS Array i JoinStrings. W artykule o

była mała wzmianka o tym, jak z nim pracować
na zakładkę
, zostało już również wyjaśnione jako
za pomocą zakładki „Zasoby”. Dziś ponownie zwrócimy na nie uwagę
zakładki w świetle naszego tematu.

Wygląd przykładowego raportu 1C przy użyciu dwóch Funkcje ACS Szyk I PołączRows Następny:

Opis problemu dotyczącego korzystania z funkcji ACS Array i JoinStrings

Zadanie: Musisz wstawić wszystkie numery sprzedaży jednego produktu do jednej komórki.

Coś w stylu: nomenklatura | ilość | 001, 002 itd. |

Wykorzystamy żądanie do rejestru akumulacji „Sprzedaż TMZ”.

WYBIERAĆ
Wdrożenie TMZ. Rejestrator. Numer,
Wdrożenie TMZ. Nomenklatura,
Wdrożenie TMZ. Rejestrator,
Wdrożenie TMZ. Ilość Obrót
Z
Rejestr akumulacji. Wdrożenie TMZ. Rewolucje
(, , Rejestrator, ) JAK Wdrożyć TMZ

Rejestr akumulacji „Realizacja TMZ” istnieje zarówno w konfiguracji Księgowość, jak i w konfiguracji Zarządzanie przedsiębiorstwem handlowym (UTP). Dowiedz się jak skonfigurować USP w elemencie katalogu „Nomenklatura”. Dlatego po pobraniu możesz uruchomić ten raport w obu konfiguracjach, aby sprawdzić jego funkcjonalność.

Realizacja zadania z wykorzystaniem funkcji SKD Array i ConnectRows


Do tworzenia wykorzystano te same kroki, ale z pewnymi dodatkami
.

Opis funkcji JoinStrings

DołączStringi

Służy do łączenia ciągów w jeden ciąg.

Składnia:

ConnectRows(wartość, separator pozycji, separator kolumny)

Opcje:

  1. Oznaczający— wyrażenia, które należy połączyć w jedną linię.
    Jeśli jest to tablica, wówczas elementy tablicy zostaną połączone w ciąg znaków.
    Jeśli jest to tabela wartości, wszystkie kolumny i wiersze tabeli zostaną połączone w wiersz;
  2. Separator elementów- ciąg zawierający tekst, który ma zostać użyty
    separator między elementami tablicy a wierszami tabeli wartości. Domyślnie – znak nowego wiersza;
  3. Separatory kolumn-ciąg zawierający tekst, który ma być użyty jako ogranicznik
    pomiędzy kolumnami tabeli wartości. Domyślny ";".

Zaloguj się do serwisu jako student

Zaloguj się jako uczeń, aby uzyskać dostęp do materiałów szkolnych

System składu danych 1C 8.3 dla początkujących: liczenie wyników (zasobów)

Celem tej lekcji będzie:

  • Napisz raport wyświetlający listę produktów (katalog żywności), ich kaloryczność i smak.
  • Grupuj produkty według koloru.
  • Dowiedz się więcej na temat podsumowań (zasobów) i pól obliczeniowych.

Utwórz nowy raport

Podobnie jak na poprzednich lekcjach otwieramy bazę danych” Garmażeria„w konfiguratorze i utwórz nowy raport poprzez menu” Plik"->"Nowy...":

Typ dokumentu - raport zewnętrzny:

W formularzu konfiguracji raportu wpisz nazwę „ Lekcja 3" i naciśnij przycisk " Otwórz diagram składu danych":

Pozostaw domyślną nazwę schematu i kliknij przycisk „ Gotowy":

Dodanie żądania poprzez konstruktor

Na karcie „ Zbiór danych" Kliknij zielony znak plus i wybierz „ Dodaj zbiór danych — zapytanie":

Zamiast ręcznie wpisywać tekst żądania, uruchamiamy go ponownie konstruktor zapytań:

Na „zakładce” Stoły„przeciągnij stół” Żywność" od pierwszej kolumny do drugiej:

Wybierz z tabeli „ Żywność"pola, o które poprosimy. Aby to zrobić przeciągnij i upuść pola" Nazwa", "Smak", "Kolor" I " Zawartość kalorii" z drugiej kolumny do trzeciej:

Okazało się tak:

Naciśnij przycisk " OK" - tekst żądania został wygenerowany automatycznie:

Tworzenie ustawień prezentacji raportu

Przejdź do zakładki” Ustawienia" i kliknij magiczna różdżka, zadzwonić projektant ustawień:

Wybierz typ raportu " Lista..." i naciśnij przycisk " Dalej":

Przeciągnij z lewej kolumny na prawo pola, które zostaną wyświetlone na liście i kliknij „ Dalej":

Przeciągnij z lewej kolumny do prawego pola „ Kolor" - to się stanie grupowanie linie w raporcie. Kliknij " OK":

A oto efekt pracy projektanta. Hierarchia naszego raportu:

  • raport jako całość
  • grupowanie „Kolor”
  • szczegółowe wpisy - linie z nazwami żywności

Zapisz raport (przycisk dyskietka) I bez zamykania Od razu otworzymy konfigurator w trybie użytkownika. Okazało się tak:

Zmiana kolejności kolumn

Ale zróbmy to zmieńmy kolejność kolumny (strzałki w górę i w dół), tak aby wyglądało to jak na poniższym rysunku:

Zapiszmy raport i otwórzmy go ponownie w trybie użytkownika:

Świetnie, tak jest dużo lepiej.

Podsumujmy zawartość kalorii

Byłoby miło podsumować zawartość kalorii w żywności według grup. Aby zobaczyć sumę kalorii wszystkich produktów, powiedzmy, białych lub żółtych. Lub sprawdź całkowitą zawartość kalorii wszystkich produktów w bazie danych.

W tym celu istnieje mechanizm obliczania zasobów.

Przejdź do zakładki” Zasoby„i przeciągnij pole” Zawartość kalorii„(podsumujemy to) od lewej kolumny do prawej.

W takim przypadku w polu wybierz wyrażenie z rozwijanej listy „ Ilość (kalorie)", ponieważ suma będzie sumą wszystkich elementów zawartych w sumie:

Zapisujemy i generujemy raport:

Mamy teraz wyniki dla każdej z grup i dla raportu jako całości.

Podsumujmy to (średnio) pod względem kalorii

Teraz pokażmy to w innej kolumnie przeciętny kaloryczność produktów według grup i w raporcie jako całości.

Nie można dotknąć istniejącej kolumny „Kaloria” - suma jest już w niej wyświetlona, ​​więc utwórzmy kolejne pole, co będzie dokładna kopia Pola „Kalorie”.

Aby stworzyć takie „wirtualne” pole, skorzystamy z mechanizmu pola obliczeniowe.

Przejdź do zakładki” Obliczone pola" i naciśnij zielony znak plus:

W kolumnie” Ścieżka danych„piszemy nazwę nowego pola ( bezproblemowo, bez przestrzeni). Niech się to nazywa” Średnia zawartość kalorii", oraz w kolumnie " Wyrażenie„piszemy nazwę istniejącego pola, na podstawie którego zostanie obliczone nowe pole. Tam piszemy” Zawartość kalorii„. Kolumna” Nagłówek" zostanie wypełnione automatycznie.

Dodaliśmy nowe pole („ Średnia zawartość kalorii"), ale samo w sobie nie pojawi się w raporcie - albo trzeba zadzwonić ponownie projektant ustawień(„magiczna różdżka”) lub dodaj to pole ręcznie.

Zróbmy to drugi sposób. Aby to zrobić, przejdź do zakładki „ Ustawienia", wybierać " Raport"(w końcu chcemy dodać pole jako całość do raportu), wybierz zakładkę na dole" Wybrane pola„i przeciągnij pole” Średnia zawartość kalorii„od lewej kolumny do prawej:

Okazało się tak:

Zapisujemy i generujemy raport:

Pole się pojawiło i widzimy, że jego wartości są wartościami pola „Kaloria”. Świetnie!

W tym celu ponownie skorzystamy ze znanego nam już mechanizmu zasoby(zreasumowanie). Przejdź do zakładki” Zasoby„i przeciągnij pole” Średnia zawartość kalorii„od lewej kolumny do prawej:

Ponadto w kolumnie „ Wyrażenie"wybierać" Średnia (średnia kaloria)":

Zapisujemy i generujemy raport:

Widzimy, że dla grup, czyli dla każdego koloru i dla całego raportu, średnia wartość została obliczona całkowicie poprawnie. Ale są obecni dodatkowe wpisy dla poszczególnych produktów (nie grup), które chciałbym usunąć z raportu.

Czy wiesz, dlaczego się pojawiły (wartości nie według grup)? Ponieważ kiedy dodaliśmy pole „ Średnia zawartość kalorii„w ustawieniach raportu, w drugim kroku wybraliśmy cały raport i to nowe pole znalazło się w elemencie „ Szczegółowe dokumentacja".

Naprawmy błąd. W tym celu wróć do zakładki „ Ustawienia", wybierać " Szczegółowe wpisy" najpierw od góry (krok 2), a następnie " Szczegółowe wpisy„od dołu (krok 3), przejdź do zakładki” Wybrany pola" i w jego prawej kolumnie zobaczymy element " Automatyczny".

Element " Automatyczny" - to nie jest jedno pole. Jest to kilka pól, które wpadają tu automatycznie w oparciu o ustawienia wyższego poziomu.

Aby zobaczyć co to za pola kliknij element „ Automatyczny" Prawidłowy przycisk i wybierz „ Zwiększać":

Element " Automatyczny" rozszerzony o następujące pola:

A oto nasze pole” Średnia zawartość kalorii„który przyszedł tutaj z punktu” Raport", kiedy go tam zaciągnęliśmy. Po prostu usuńmy zaznacz pole obok tego pola, aby usunąć jego dane wyjściowe.

W świetle nadchodzącej wersji 8.2.14 postaram się opisać kilka nowych funkcji systemu kompozycji danych.

Otwórz diagram układu danych, najlepiej w raporcie zewnętrznym, aby ułatwić edycję.

Dodajemy zbiór danych typu zapytanie i piszemy ręcznie lub za pomocą projektanta zapytań proste zapytanie:

1. Skonfiguruj żądanie w systemie kontroli dostępu.

2. Skonfiguruj pola obliczeniowe w systemie kontroli dostępu

3. Skonfiguruj układ danych na karcie ustawień

4. Uruchom 1C Enterprise 8.2.14. Otwórz raport. Tworzymy, otrzymujemy.

Opis samych nowych funkcji:

1. Bieżąca data()

Zwraca datę systemową. Podczas tworzenia układu układu we wszystkich wyrażeniach występujących w układzie funkcja CurrentDate() jest zastępowana wartością bieżącej daty.

2. WYRAŻENIE OBLICZONE()

Składnia:

ObliczWyrażenie(,)

Opis:

Funkcja ma na celu ocenę wyrażenia w kontekście jakiegoś grupowania.

Funkcja uwzględnia wybór grup, ale nie uwzględnia selekcji hierarchicznych.

Funkcji nie można zastosować do grupowania przy wyborze grupy tego grupowania. Na przykład przy wyborze grupowania Nomenklatury nie można używać tego wyrażenia CalculateExpression("Suma(Suma obrotu)", "TotalTotal") > 1000. Ale takiego wyrażenia można użyć w selekcji hierarchicznej.

Jeżeli rekord końcowy poprzedza rekord początkowy, uznaje się, że nie ma rekordów umożliwiających obliczanie danych szczegółowych i obliczanie funkcji agregujących.

Przy obliczaniu wyrażeń przedziałowych dla sumy całkowitej (parametr Grouping ustawiony na GrandTotal) zakłada się, że nie ma rekordów do obliczania danych szczegółowych i obliczania funkcji agregujących.

Linker układu podczas generowania wyrażenia funkcyjnego Oblicz wyrażenie, jeśli wyrażenie porządkujące zawiera pola, których nie można użyć w grupowaniu, zastępuje funkcję Oblicz wyrażenie NA ZERO.

Opcje

Typ: Linia. Wyrażenie, które ma zostać ocenione.

Typ: Linia. Zawiera nazwę grupy, w kontekście której wyrażenie ma być oceniane. Jeśli używana jest nazwa grupy pusta linia, obliczenia zostaną wykonane w kontekście bieżącego grupowania. Jeżeli jako nazwę grupy zostanie użyty ciąg GeneralTotal, obliczenia zostaną wykonane w kontekście sumy całkowitej. W przeciwnym wypadku obliczenia zostaną wykonane w kontekście grupy nadrzędnej o tej samej nazwie.

Na przykład:

Suma(Sprzedaż.SumaObrót)/Oblicz("Suma(Sprzedaż.SumaObrót)", "Suma")

W w tym przykładzie wynikiem będzie stosunek sumy do pola Sprzedaż.KwotaObrót grupowanie rekordów do sumy tego samego pola w całym układzie;

Typ: Linia. Parametr może przyjmować następujące wartości:

· Łączna suma— wyrażenie zostanie obliczone dla wszystkich rekordów grupujących.

· Hierarchia— wyrażenie zostanie ocenione dla nadrzędnego rekordu hierarchicznego, jeśli taki istnieje, i dla całej grupy, jeśli nie ma nadrzędnego rekordu hierarchicznego.

· Grupowanie— wyrażenie zostanie ocenione dla bieżącego rekordu grupowania grupowego.

· GrupowanieNonResource— przy obliczaniu funkcji dla rekordu grupowego według zasobów wyrażenie zostanie obliczone dla pierwszego rekordu grupowego pierwotnego grupowania.

Podczas obliczania funkcji ObliczWyrażenie() ze znaczeniem GrupowanieNonResource dla rekordów grupowych, które nie są pogrupowane według zasobów, funkcja jest obliczana w taki sam sposób, jak zostałaby obliczona, gdyby wartość parametru była równa wartości Grupowanie.

Kreator układu kompozycji danych podczas generowania układu kompozycji danych podczas wyprowadzania do układu pola zasobu, za pomocą którego przeprowadzane jest grupowanie, umieszcza w układzie wyrażenie obliczane za pomocą funkcji ObliczWyrażenie() , wskazując parametr GrupowanieNonResource. W przypadku innych zasobów zwykłe wyrażenia zasobów są umieszczane w grupowaniu zasobów.

Typ: Linia. Wskazuje od jakiego rekordu powinien zaczynać się fragment, w którym należy obliczyć funkcje wyrażeń agregujących oraz z jakiego rekordu uzyskać wartości pól poza funkcjami agregującymi. Wartość może mieć jedną z następujących wartości:

· Pierwszy

· Ostatni (ostatni)

· Poprzedni

· Następny (Następny)

· Aktualny

· Wartość ograniczająca(Wartość granicy) Wartość ograniczająca

Typ: Linia. Wskazuje, do którego rekordu należy kontynuować fragment, w którym należy obliczyć funkcje agregujące wyrażenia. Wartość może mieć jedną z następujących wartości:

· Pierwszy. Konieczne jest uzyskanie pierwszego rekordu grupującego. Po słowie w nawiasie można podać wyrażenie, którego wynik zostanie użyty jako przesunięcie od początku grupowania. Wynikowa wartość musi być liczbą całkowitą większą od zera. Przykładowo First(3) - odebranie trzeciego rekordu z początku grupowania.

Jeżeli pierwszy rekord znajduje się poza grupą, uznaje się, że nie ma żadnych rekordów. Na przykład, jeśli istnieją 3 rekordy, a chcesz uzyskać First(4), wówczas przyjmuje się, że nie ma żadnych rekordów.

· Ostatni (ostatni). Musisz uzyskać ostatni rekord grupowania. Po słowie w nawiasie można podać wyrażenie, którego wynik zostanie użyty jako przesunięcie od końca grupowania. Wynikowa wartość musi być liczbą całkowitą większą od zera. Przykładowo Last(3) - odebranie trzeciego rekordu z końca grupy.

Jeśli ostatni zapis wykracza poza grupowanie, uznaje się, że nie istnieją żadne zapisy. Na przykład, jeśli istnieją 3 rekordy, a chcesz uzyskać Last(4), przyjmuje się, że nie ma żadnych rekordów.

· Poprzedni. Musisz uzyskać poprzedni rekord grupowania. Po słowie w nawiasie można określić wyrażenie, którego wynik zostanie użyty jako odsunięcie od bieżącego rekordu grupowania. Na przykład Poprzedni(2) - pobranie poprzedniego z poprzedniego rekordu.

Jeżeli poprzedni rekord wykracza poza grupowanie (przykładowo dla drugiego rekordu grupującego należy uzyskać Poprzedni(3)), wówczas uzyskiwany jest pierwszy rekord grupujący.

Podczas pobierania poprzedniego rekordu dla sumy grupującej uważa się, że uzyskano pierwszy rekord.

· Następny (Następny). Musisz zdobyć kolejny rekord grupowania. Po słowie w nawiasie można określić wyrażenie, którego wynik zostanie użyty jako przesunięcie w przód w stosunku do bieżącego rekordu grupowania. Na przykład Next(2) — uzyskanie następnego rekordu z następnego rekordu.

Jeżeli następny rekord wykracza poza zgrupowanie, uznaje się, że nie ma żadnych rekordów. Na przykład, jeśli istnieją 3 wpisy, a trzeci wpis otrzyma Next() , wówczas uważa się, że nie ma żadnych wpisów.

Kiedy otrzymany zostanie kolejny rekord dotyczący sumy grupowej, uznaje się, że nie ma żadnego rekordu.

· Aktualny. Musisz zdobyć aktualny zapis.

Podczas pobierania sumy grupującej uzyskiwany jest pierwszy rekord.

· Wartość ograniczająca(Wartość granicy). Konieczność uzyskania rekordu o określoną wartość. Po słowie Wartość ograniczająca w nawiasie należy wskazać wyrażenie od którego wartości chcemy rozpocząć fragment, pierwsze pole porządkujące.

Jako rekord zostanie zwrócony pierwszy rekord, którego wartość w polu porządkowania jest większa lub równa podanej wartości. Przykładowo, jeśli pole Okres jest używane jako pole porządkujące i ma wartości 01.01.2010, 02.01.2010, 03.01.2010, a chcesz uzyskać LimitingValue(DateTime(2010, 1, 15)), wówczas otrzymany zostanie zapis z datą 01.02.2010.

Typ: Linia. Wyświetla listę wyrażeń oddzielonych przecinkami, które opisują reguły porządkowania. Jeżeli nie określono, to kolejność odbywa się analogicznie jak w przypadku grupowania, dla którego oceniane jest wyrażenie. Po każdym wyrażeniu możesz określić słowo kluczowe Wiek(dla uporządkowania w kolejności rosnącej), Malejąco(w kolejności malejącej) i Automatyczne zamówienie(aby uporządkować pola referencyjne według pól, według których chcesz uporządkować odwoływany obiekt). Słowo Automatyczne zamówienie można używać tak samo jak ze słowem Wiek, więc ze słowem Malejąco.

Typ: Linia. Taki sam jak parametr Sortowanie. Służy do organizowania hierarchicznych rekordów. Jeśli nie określono, kreator układu generuje kolejność zgodnie z kolejnością określoną w parametrze Sortowanie.

Typ: Linia. Określa regułę ustalania poprzedniego lub następnego rekordu w przypadku, gdy istnieje kilka rekordów o tej samej wartości porządkowej:

· Osobno wskazuje, że sekwencja uporządkowanych rekordów jest używana do określenia poprzedniego i następnego rekordu. Domyślna wartość.

· Razem wskazuje, że poprzedni i następny rekord są ustalane na podstawie wartości wyrażeń porządkujących.

Na przykład, jeśli wynikowa sekwencja jest uporządkowana według daty:

data Pełne imię i nazwisko Oznaczający
1 01 stycznia 2001

Iwanow M.

10
2 02 stycznia 2001 Pietrow S. 20
3 03 stycznia 2001 Sidorow R. 30
4 04 stycznia 2001 Pietrow S. 40

Osobno, To:

§ poprzedni wpis do wpisu 3 będzie wpisem 2.

Aktualny, aktualny(odpowiednio parametry Początek I Koniec), to dla rekordu 2 fragment ten będzie się składał z jednego rekordu 2. Wyrażenie będzie równe 20.

Jeśli wartość parametru wynosi Razem, To:

§ poprzedni wpis do wpisu 3 będzie wpisem 1.

§ jeżeli fragment obliczeniowy zdefiniowany jest jako Aktualny, aktualny(odpowiednio parametry Początek I Koniec), to dla rekordu 2 fragment ten będzie składał się z rekordów 2 i 3. Wyrażenie CalculateExpression("Suma(Wartość)", Bieżąca, Bieżąca) będzie równa 50.

W przypadku określenia wartości parametru równej Razem, w parametrach Początek I Koniec nie można określić przesunięcia dla pozycji Pierwszy, ostatni, poprzedni, następny.

CalculateExpression("Suma(Suma obrotu)", "Pierwszy", "Bieżący")

Jeśli chcesz uzyskać wartość grupującą z poprzedniego wiersza, możesz użyć następującego wyrażenia:

ObliczWyrażenie("Stawka", "Poprzednia")

Lista nowy Funkcje:

Oblicz wyrażenie za pomocą tablicy grupowej(,) -

Funkcja zwraca tablicę, której każdy element zawiera wynik oceny wyrażenia do grupowania według określonego pola.

Oblicz wyrażenie z tabelą wartości grupy(,) -

Funkcja zwraca tabelę wartości, której każdy wiersz zawiera wynik oceny wyrażeń do grupowania według określonego pola

Wartość wypełniona() - Zwraca True, jeśli wartość różni się od wartości tego typu wartość domyślna inna niż NULL inna niż puste odwołanie inna niż Niezdefiniowana. Wartości logiczne są sprawdzane pod kątem wartości NULL. Łańcuchy są sprawdzane pod kątem braku znaków innych niż białe znaki

Format(, ) - Odbierz sformatowany ciąg przekazanej wartości. Ciąg formatujący jest ustawiony zgodnie z ciągiem formatującym systemu 1C:Enterprise.

Podciąg(, , ) — Ta funkcja służy do wyodrębniania podciągu z ciągu.

Długość linii() - Funkcja przeznaczona jest do określenia długości ciągu znaków. Parametr jest wyrażeniem łańcuchowym

Linia() - Jeśli jako parametr przekazywana jest tablica, funkcja zwraca ciąg znaków zawierający ciąg znaków reprezentujący wszystkie elementy tablicy, oddzielone znakami „;”. Jeżeli jako parametr zostanie przekazana tabela wartości, funkcja zwróci ciąg znaków zawierający reprezentacje łańcuchowe wszystkich wierszy tabeli wartości, przy czym reprezentacje komórek każdego wiersza zostaną oddzielone znakami „;”, a wiersze znakiem nowej linii postać. Jeśli ciąg znaków reprezentujący element jest pusty, zamiast jego reprezentacji wyświetlany jest ciąg znaków.