Język wyrażeń systemu kompozycji danych (1Cv8). Prosty przykład użycia niestandardowych pól w raporcie dotyczącym niestandardowych pól skd 1s 8 skd

Aby podejmować terminowe i prawidłowe decyzje zarządcze, każda organizacja potrzebuje aktualnych informacji o dostępności towaru w magazynach, jego koszcie, sprzedaży. Organizacje handlowe pracują z dużą liczbą towarów i kontrahentów, a to wymaga dobrego skonfigurowania rachunkowości analitycznej i szybkiego uzyskania wymaganych informacji z jej danych. W artykule omówiono podstawowe metody pracy ze standardowymi raportami w standardowym rozwiązaniu „1C: Trade Management 8” (wersja 11), zbudowanym w oparciu o system składu danych oraz przedstawiono przydatne praktyczne rekomendacje, które będą przydatne zarówno dla początkujących użytkowników, jak i tych, którzy przeszli na nową edycję z poprzednich edycji.

Weźmy na przykład raport

  • Analiza dostępności towaru;

Ustawienie.

W kolumnie Typ porównania Nomenklatura

  • Równa się
  • Nie równe
  • Katalogowany
  • Nie na liście
  • W grupie Nomenklatura;
  • Nie w grupie Nomenklatura;
  • W grupie z listy Nomenklatura;
  • Nie w grupie z listy Nomenklatura.

Oznaczający

„Szybkie wybory”

W miarę rozwoju platformy 1C:Enterprise 8 i pojawienia się nowej wersji 8.2 raporty w systemach stają się coraz bardziej elastyczne, a użytkownicy mają coraz większe możliwości dostosowania ich do swoich wymagań bez pomocy programistów.

Nowe możliwości zapewniane przez system składu danych (ACS) pozwalają poczuć korzyści płynące z możliwości 1C:Enterprise 8 podczas tworzenia raportów jak nigdy dotąd. I pomimo tego, że interfejs raportowania przeszedł istotne zmiany (w porównaniu do edycji 10.3 konfiguracji Trade Management, zwanej dalej UT), ustawienia raportów są w dalszym ciągu dostępne dla przeciętnego użytkownika. Przyjrzyjmy się kilku podstawowym sposobom pracy z nimi.

Pierwszą rzeczą, na którą możesz zwrócić uwagę, są szybkie wybory. Umożliwiają wyświetlenie danych w raporcie według określonych wartości pól raportu zgodnie z życzeniem użytkownika.

Weźmy na przykład raport Analiza dostępności towarów w UT. Od razu zauważamy, że cała demonstracja możliwości raportów w UT 11 odbędzie się na przykładzie dwóch raportów:

  • Analiza dostępności towaru;
  • Przychody i koszty sprzedaży.

Wyboru według niektórych pól można dokonać bezpośrednio w formularzu raportu lub klikając przycisk Ustawienie.

W kolumnie Typ porównania Użytkownik może wybrać różne warunki porównania. Na przykład dla pola Nomenklatura Możesz wybierać spośród następujących typów porównań:

  • Równa się- raport zostanie zbudowany tylko dla wybranej pozycji nomenklatury;
  • Nie równe- raport zostanie zbudowany dla całego zakresu, z wyjątkiem wybranej pozycji;
  • Katalogowany- raport zostanie zbudowany według wykazu pozycji nomenklatury;
  • Nie na liście- raport zostanie zbudowany dla całego asortymentu z wyjątkiem wybranych pozycji;
  • W grupie- raport zostanie zbudowany na całej nomenklaturze znajdującej się w wybranym folderze katalogu Nomenklatura;
  • Nie w grupie- raport zostanie zbudowany na całej nomenklaturze, za wyjątkiem pozycji znajdujących się w wybranym folderze katalogu Nomenklatura;
  • W grupie z listy- podobnie do porównania Na liście jako wartości listy wybierane są tylko foldery w katalogu Nomenklatura;
  • Nie w grupie z listy- podobne do porównania Nie na liście, jako wartości listy wybrane są tylko foldery w katalogu Nomenklatura.

Checkbox (zaznaczenie) znajdujący się po lewej stronie pola wyboru oznacza, że ​​selekcja przez to pole jest „włączona”, czyli jest uwzględniana w raporcie.

Niezaznaczone pola nie są brane pod uwagę nawet jeśli dla tych pól zostały wybrane określone wartości.

W zależności od wybranego typu porównania w kolumnie Oznaczający wskazany jest określony element lub folder (grupa) katalogu lub lista elementów lub folderów.

Szybkie selekcje są dostępne we wszystkich rozwiązaniach opartych na platformie 1C:Enterprise 8.

Przykład prostej zmiany ustawień raportu

Aby wyświetlić/zmienić ustawienia raportu należy przejść do menu Wszystkie akcje - Zmień opcję.

Przed nami otwiera się okno ustawień wybranej opcji raportu.

Struktura raportu wyświetlana jest w górnej części okna. W rzeczywistości jest to wizualne przedstawienie grupowania wierszy i kolumn raportu, czyli w jakiej kolejności dane analityczne będą wyświetlane w raporcie w wierszach i kolumnach.

W dolnej części okna wyświetlane są te, które dotyczą raportu jako całości (jeżeli w strukturze raportu wybrany został najwyższy poziom). Raport), lub do określonego grupowania wierszy lub kolumn raportu (jeśli grupowanie zostało wybrane na niższym poziomie), ustawień wyświetlania informacji i projektowania pól.

Przykład 1

Krok 1. Musimy usunąć grupowanie według cech pozycji, pozostawiając jedynie grupowanie według pozycji. W tym celu w górnej części okna ustawień raportu kliknij pole Nazewnictwo, charakterystyka. W dolnej części okna przejdź do zakładki Zgrupowania.

Wybierz pole Charakterystyka i kliknij przycisk Usuwać panel poleceń.

Zatwierdź zmiany w ustawieniach raportu klikając na przycisk Zakończ edycję w lewym dolnym rogu ekranu.

Krok 2 Po usunięciu cechy naszym zadaniem, zgodnie z warunkami z przykładu, będzie dodanie grupy cenowej. Zgodnie ze znaczeniem, grupowanie to powinno przebiegać na poziomie niższym niż grupowanie według zapasów, ale na poziomie wyższym niż grupowanie według pozycji. Dlatego w strukturze raportu wybieramy grupowanie Magazyn.

Klikając na nią prawym przyciskiem myszy, w menu kontekstowym wybierz polecenie Nowe grupowanie.

W otwartym oknie edycji pola grupującego wybierz Nazewnictwo.Grupa cenowa.

Klikając przycisk OK, zobaczymy, że do raportu zostało dodane nowe grupowanie, podporządkowane grupowaniu Magazyn.

Wybierzmy teraz grupowanie według pozycji i nie zwalniając prawego przycisku myszy, przeciągnijmy je wewnątrz (czyli poniżej) grupowania według grup cenowych. Otrzymamy strukturę pokazaną na rysunku 1. Wynik konfiguracji raportu pokazano na rysunku 2.

Ryż. 1. Wynikowa struktura raportu

Ryż. 2. Wynik dostosowania raportu

Praca z polami niestandardowymi

Przyjrzyjmy się teraz bliżej nowym opcjom raportowania w programie 1C: Trade Management 8.

W formie edycji struktury i ustawień naszego raportu zwróć uwagę na zakładkę Pola niestandardowe.

Wcześniej dodaliśmy do raportu pola, których lista została wcześniej zdefiniowana przez programistę. Za pomocą tej zakładki możemy stworzyć własne pola, których potrzebujemy - wybór pola Lub Wyrażenie polowe.

Przykład 2

Dostosujmy raport „Historia sprzedaży” (wersja raportu „Przychody i koszty sprzedaży”). Przedstawmy dane o sprzedaży w kontekście partnerów i nomenklatury. Załóżmy, że nasza firma zajmuje się sprzedażą towarów w Moskwie i regionach. Tym samym każdy klient w bazie danych należy do określonego regionu geograficznego (podpora "Rejon biznesowy" w katalogu "Partnerzy"). Dane o sprzedaży z łatwością możemy pogrupować w raporcie według regionów, ale co, jeśli interesują nas bardziej zagregowane statystyki, w szczególności odpowiedź na pytanie „Ile towarów sprzedano w Moskwie, a ile we wszystkich pozostałych regionach razem wziętych”? Tutaj z pomocą przychodzą pola niestandardowe.

Krok 1. Otwórzmy raport. Przejdźmy do formularza ustawień struktury raportu ( Wszystkie akcje -> Zmień wariant). Usuńmy po kolei wszystkie grupowania utworzone wcześniej w raporcie - w tym celu zaznacz każdą z nich i kliknij przycisk Usuwać z paska poleceń lub użyj klawisza DEL.

Podobnie jak w poprzednim przykładzie dodajmy do raportu grupowanie według partnera, a następnie według produktu. Wiemy już jak to zrobić, więc nie zajmie to dużo czasu.

Krok 2 Utwórzmy nowe pole niestandardowe. Otwórzmy zakładkę Pola niestandardowe i uruchom polecenie Dodaj -> Nowe pole-wybierz.

Nazwijmy nasze nowe pole - Region ogólnie.

Kliknijmy przycisk Dodać. W nowej linii kliknij przycisk w kolumnie Wybór. W wyświetlonym formularzu edycji wyboru dodaj wybór według pola Partner.Rejon biznesowy. Wybierz rodzaj porównania Równa się, oznaczający - Moskwa.

Kliknijmy przycisk OK, po czym powrócimy do okna edycji niestandardowego pola. Następnie kliknij przycisk w kolumnie Oznaczający i na wyświetlonej liście wyboru typu danych wybierz Linia i zapisz jako wartość Moskwa.

Powtórzmy operację. Dodajmy kolejny wiersz do tabeli. Tym razem do wyboru pola Partner.Rejon biznesowy wybierz rodzaj porównania Nie równe.

Wracając do okna edycji pola niestandardowego, w kolumnie Oznaczający pisać Inne regiony(Patrz rys. 3).

Ryż. 3. Niestandardowa edycja pól

Kliknijmy przycisk OK. Nasze nowe pole jest już gotowe.

Krok 3 Dodajmy nasze nowe pole do struktury raportu. Podkreślenie najwyższego poziomu Raport w strukturze, dodaj nowe grupowanie. W rekwizytach Pole wybierać Region ogólnie.

Przeciągnij myszką grupowanie według partnera i jego podrzędne grupowanie według asortymentu do nowo utworzonego grupowania.

Wygenerujmy raport i spójrzmy na wynik (pokazany na ryc. 4).

Ryż. 4. Wynik wygenerowania raportu

Selekcja i sortowanie

Wróćmy do okna edycji struktury i ustawień raportu i zwróćmy uwagę na zakładki Wybór I Sortowanie.

Jeżeli w strukturze raportu wybrany jest element główny ( Raport), wówczas ustawienia dokonane na tych zakładkach będą dotyczyły całego raportu jako całości. Jeżeli wybrane zostanie jakieś grupowanie raportów, to ustawienia będą dotyczyły tylko jego.

Przykład 3

W rezultacie raport Historia sprzedaży tylko te implementacje zostaną dodane tam, gdzie określony jest menedżer Iwanow Iwan Fiodorowicz.

Przykład 4

Zapisz wprowadzone zmiany

Jeśli zmienisz strukturę raportu, zawsze możesz go zapisać za pomocą polecenia Wszystkie akcje -> Zapisz wariant.

W formie zapisania wariantu za pomocą przełącznika można dokonać wyboru Zapisz w istniejącym wariancie raportu(zamiast jednej z już dostępnych opcji), lub Zapisz nową wersję raportu.

Szczegółowo rozważyliśmy ustawienia raportów realizowanych w oparciu o ACS. Przyjrzyjmy się teraz bardziej subtelnym i szczegółowym ustawieniom opcji raportów. Okno „zaawansowanych” ustawień wariantu raportu wywołuje się poleceniem „Więcej” – „Inny” – „Zmień wariant raportu”.

Okno zmiany wariantu raportu podzielone jest na dwie części:

1. Struktura raportu.

2. Ustawienia raportu.


Sekcja struktury wariantu raportu przypomina zakładkę „Struktura” w standardowych ustawieniach raportu. Cel i konfigurację zgrupowań omówiono szczegółowo w części 1 artykułu.

Tabela struktury wariantu raportu, oprócz kolumny z grupowaniami, zawiera kilka dodatkowych kolumn:

Sekcja ustawień wariantów raportu daje użytkownikowi szerokie możliwości skonfigurowania raportu pod swoje potrzeby. Prawie całkowicie pokrywa się to ze standardowymi ustawieniami raportów omówionymi w części 1. Przyjrzyjmy się wszystkim zakładkom tej sekcji i zwróćmy uwagę na różnice.

Sekcja ustawień składa się z następujących zakładek:

1. Opcje. Zawiera parametry ACS dostępne dla użytkownika.

Parametr ACS - pewna wartość używana do uzyskania danych raportu. Może to być wartość warunku dla selekcji lub walidacji danych, a także wartość pomocnicza.


Tabela parametrów prezentowana jest w formacie „Parametr” - „Wartość”. W razie potrzeby możesz zmienić wartości parametrów. Kliknięcie przycisku „Właściwości elementu ustawień użytkownika” powoduje otwarcie ustawień użytkownika elementu.


W tym oknie możesz wybrać, czy element będzie uwzględniany w ustawieniach użytkownika (czyli widoczny dla użytkownika podczas tworzenia raportu), ustawić sposób prezentacji elementu oraz tryb edycji (szybki dostęp w nagłówku raportu, normalny w raporcie ustawienia i niedostępne).

Właściwości elementu ustawień niestandardowych zawierają także pola grupujące, marginesy, zaznaczenia i elementy stylizacji warunkowej.

2. Pola niestandardowe. Zawiera pola, które sam użytkownik tworzy na podstawie danych wybranych przez raport.


Użytkownik może dodać dwa rodzaje pól:

  • Nowe pole wyboru...
  • Nowe pole wyrażenia...

Pola wyboru umożliwiają obliczenie wartości na podstawie określonego warunku. Okno edycji pola selekcji zawiera tytuł pola oraz tabelę, w której określa się selekcję, wartość i prezentację pola. Wybór jest warunkiem, w zależności od tego, która żądana wartość zostanie zastąpiona.


Na przykład obliczmy szacunkową liczbę sprzedaży. Zakładamy, że jeśli sprzeda się mniej niż 10 jednostek towaru, sprzeda się niewiele, a jeśli więcej niż 10 jednostek, sprzeda się dużo. W tym celu ustawimy 2 wartości pola obliczeniowego: pierwsza będzie z wyborem „Liczba produktów mniejsza lub równa „10”, druga z wyborem „Liczba produktów większa niż „10” „”.

Pola wyrażeń umożliwiają obliczenie wartości przy użyciu dowolnych algorytmów. Mogą korzystać z funkcji języka zapytań i wbudowanego języka programowania 1C. Okno edycji pola wyrażeń zawiera dwa pola przeznaczone do wyrażeń rekordów szczegółowych i zbiorczych. Rekordy podsumowujące to grupowania konfigurowane w obszarze „Struktura raportu”, muszą wykorzystywać funkcje agregujące („Suma”, „Minimum”, „Maksimum”, „Ilość”).

Na przykład obliczmy średni procent rabatu. Średni procent rabatu obliczany jest według wzoru: [Kwota sprzedaży bez rabatu] - [Kwota sprzedaży z rabatem] / [Kwota sprzedaży bez rabatu]. Trzeba pamiętać, że wielkość sprzedaży bez rabatu może wynosić zero, dlatego do sprawdzenia używamy operatora SELECT. Otrzymujemy następujące wyrażenia:

· Szczegółowe wpisy:

Wybór

Gdy [Suma sprzedaży bez rabatu] = 0

Następnie 0

Inaczej [Sprzedaż bez rabatu] - [Sprzedaż z rabatem] / [Sprzedaż bez rabatu]

Koniec

· Dla wpisów podsumowujących:

Wybór

Gdy Kwota([Kwota sprzedaży bez rabatu]) = 0

Następnie 0

W przeciwnym razie Kwota([Kwota sprzedaży bez rabatu]) - Kwota([Kwota sprzedaży z rabatem]) / Kwota([Kwota sprzedaży bez rabatu])

Koniec

Jak wspomniano wcześniej, przy wyrażeniu sumy rekordów używamy funkcji agregującej „Suma”.

3. Zgrupowane pola. Zawiera pola, według których będzie grupowany wynik wariantu raportu. Pola grupujące konfiguruje się osobno dla każdego z grupowań, ale można ustawić wspólne pola grupujące dla wariantu raportu, jeśli w drzewie struktury wybierzesz korzeń „Raport”. Możesz dodać pole z wyniku raportu, pole niestandardowe lub wybrać pole automatyczne, wówczas system automatycznie wybierze pola. Zakładka ta umożliwia także zmianę kolejności grupowanych pól.


4. Pola. Zawiera pola, które zostaną wyświetlone w wyniku wariantu raportu. Pola konfiguruje się osobno dla każdej z grup, przy czym można ustawić pola wspólne dla wariantu raportu wybierając w drzewie struktury korzeń „Raport”. Możesz dodać pole z wyniku raportu, pole niestandardowe lub wybrać pole automatyczne, wówczas system automatycznie wybierze pola. Zakładka ta umożliwia także zmianę kolejności pól.

Pola można grupować, aby logicznie wyróżnić dowolną część raportu lub ustawić określony układ kolumn. Podczas dodawania grupy aktywna staje się kolumna „Lokalizacja”, w której możesz wybrać jedną z opcji lokalizacji:

  • Auto - system automatycznie porządkuje pola;
  • Poziomo - pola ułożone są poziomo;
  • Pionowo - pola ułożone są pionowo;
  • W osobnej kolumnie - pola znajdują się w różnych kolumnach;
  • Razem - pola ułożone są w jednej kolumnie.


5. Wybór. Zawiera filtry użyte w wariancie raportu. Konfigurowanie filtrów zostało szczegółowo omówione w części 1 tego artykułu. Filtry konfiguruje się osobno dla każdej z grup, przy czym filtry ogólne można ustawić dla wariantu raportu wybierając w drzewie struktury korzeń „Raport”.


6. Sortowanie. Zawiera pola sortowania używane w wariancie raportu. Konfigurowanie pól sortowania zostało szczegółowo omówione w części 1 tego artykułu. Sortowanie konfiguruje się osobno dla każdego z grup, ale można ustawić wspólne pola sortowania dla wariantu raportu, jeśli w drzewie struktury wybierzesz korzeń „Raport”.


7. Projekt warunkowy. Zawiera warunkowe elementy projektu użyte w wariancie raportu. Konfigurowanie formatowania warunkowego zostało szczegółowo omówione w części 1 tego artykułu. Projektowanie warunkowe konfiguruje się osobno dla każdej z grup, ale można ustawić wspólne elementy projektowania warunkowego dla wariantu raportu, jeśli w drzewie struktury wybierzesz korzeń „Raport”.


8. Dodatkowe ustawienia. Zawiera dodatkowe ustawienia projektu raportu. Pozwalają wybrać ogólny wygląd raportu, lokalizację pól, grupowania, atrybutów, zasobów, sum, ustawić ustawienia wykresu, kontrolować wyświetlanie tytułu, parametrów i selekcji, określić położenie zasobów oraz naprawić nagłówek i kolumny zgrupowań wariantu raportu.


Podsumowując, pragnę zaznaczyć, że ustawienia raportu można nie tylko zapisać jako wariant raportu, ale także wgrać do pliku (menu „Więcej” – „Zapisz ustawienia”). Aby pobrać, wybierz „Wczytaj ustawienia” i wybierz zapisany plik. Dzięki temu możemy przenosić ustawienia wariantów raportów pomiędzy różnymi bazami danych posiadającymi tę samą konfigurację.


Na tej podstawie możemy podsumować, że użytkownik może nie tylko dostosować raport do swoich potrzeb, ale także zapisać swoje ustawienia i wykorzystać je w przyszłości, jeśli zajdzie taka potrzeba.

Raport otrzymuje saldo towarów w magazynach w różnych sekcjach (charakterystyka, seria, jednostki miary itp.). Aby nie komplikować przykładu, pozostawimy jedynie grupowanie według pozycji i wyświetlanie jedynie salda końcowego na dzień raportu. Ostateczna tabela pokaże salda zapasów według pozycji w magazynach.

Ale wtedy użytkownik powiedział, że musi dodać dwa dodatkowe pola:

  1. Powiadomienie o ilości. Jeżeli ilość jest mniejsza lub równa 5, wówczas pojawia się alert „Niewystarczający”. Jeśli liczba jest większa niż 5, a następnie mniejsza lub równa 10, alert ma status „Normalny”. Jeśli ilość jest większa niż 10, wówczas pojawia się „Nadmiar”.
  2. Wzór na obliczenie salda końcowego. W dodatkowej kolumnie użytkownik chce zobaczyć, jakie działania wykonał program, aby uzyskać wartość salda końcowego. Czyli formuła „Saldo początkowe + Obrót = Saldo końcowe”, gdzie zostaną podstawione odpowiednie wartości.

Oczywiście programista mógłby tu zainterweniować i zmienić żądanie schematu składu danych oraz ustawienia raportu, ale zadanie wykonamy w trybie użytkownika bez zmiany raportu w trybie konfiguratora.

Dodatkowe pola

Zacznijmy więc. Przejdźmy do ustawień opcji raportu:

Przed nami otworzy się projektant konfiguracji opcji raportu ACS. Tworzenie ich zacznijmy od przejścia do zakładki „Pola niestandardowe”.

Na zrzucie ekranu widać już dwa utworzone pola niestandardowe, których funkcjonalność została opisana powyżej. Rozważ ustawienia dla każdego z nich. Zacznijmy od pola Alert.

W setupie musimy ustawić tytuł pola, który będzie wyświetlany w raporcie, a także ustawić wyrażenia służące do generowania wartości w polu rekordów szczegółowych oraz w sumach dla tego pola. Ponieważ nie ma potrzeby pokazywania alertu w sumach, napiszemy wyrażenie tylko dla rekordów szczegółowych.

Składnia wyrażeń jest podobna do języka zapytań 1C:Enterprise. Istnieją pewne różnice, ale nie będziemy ich szczegółowo omawiać w tym artykule. W wyrażeniu zastosowano operator wyboru:

"Wybór, kiedy wtedy inaczej się skończy”,

podobny do operatora w języku zapytań. Pola w niestandardowych wyrażeniach pól są określone przez ich reprezentację. Aby platforma zrozumiała, że ​​wprowadzony widok oznacza określone pole, nazwa widoku jest ujęta w nawiasy kwadratowe „”. Jeśli reprezentacja pola składa się z jednego słowa, nawiasy kwadratowe są opcjonalne. W powyższym przykładzie odwołujemy się do pola „Saldo końcowe”.

Podobnie dokonuje się ustawień pola „Wzór na wyliczenie salda końcowego”:


Tutaj należy wspomnieć o kilku niuansach:

  1. Formułę w komórce możemy wyświetlić jedynie w postaci ciągu znaków. Dlatego wszystkie wartości liczbowe konwertujemy na ciąg znaków za pomocą metody „String()” języka wyrażeń ACS, która konwertuje dowolną wartość na ciąg znaków. Następnie wykonujemy łączenie ciągów.
  2. Aby pole było wyświetlane w podsumowaniach raportu, dodajmy podobną formułę do wyrażenia rekordów sumy. Wystarczy dodać funkcje agregujące „SUM()” dla każdej wartości zgodnie z sumami.

Wszystko gotowe do wykorzystania pól w raporcie!

Konfigurowanie i generowanie raportu

Do pól wyjściowych raportu zostanie dodane pole „Wzór na obliczenie salda końcowego”:

Do szczegółowych zapisów pozycji zostanie dodane wyrażenie „Alarm”. W tym celu należy dodać pole wyrażenia „Alert” do grupy „Nomenklatura”. Następnie struktura raportu przyjmie następującą postać:

Konfiguracja raportu została zakończona. W razie potrzeby dodane ustawienia można zapisać do ponownego wykorzystania. Wygenerujmy raport:

Jak widać pola zostały dodane do raportu zgodnie z warunkami zadania. Jednocześnie nie było konieczności modyfikowania raportu w trybie konfiguratora. To jest główna zaleta pól niestandardowych! Użytkownik przeszkolony w ich obsłudze może za ich pomocą samodzielnie stworzyć raport własnych wymagań, bez udziału programisty.

Zaufaj mi, możesz go nauczyć korzystania z tych funkcji, ponieważ jest to o wiele łatwiejsze niż pisanie formuł w arkuszach kalkulacyjnych Excel.

Język wyrażeń systemu składu danych

Język wyrażeń systemu tworzenia danych przeznaczony jest do rejestrowania wyrażeń używanych w różnych częściach systemu.

Wyrażenia są używane w następujących podsystemach:

  • schemat kompozycji danych - do opisywania pól wyliczanych, pól sumarycznych, wyrażeń łączących itp.;
  • ustawienia kompozycji danych - w celu opisania niestandardowych wyrażeń pól;
  • układ kompozycji danych - do opisywania wyrażeń relacji w zbiorze danych, opisywania parametrów układu itp.

Literały

Wyrażenie może zawierać literały. Możliwe literały następujących typów:

  • Linia;
  • Numer;
  • Data;
  • Wartość logiczna.

Linia

Dosłowny ciąg znaków zapisywany jest znakami „”, na przykład:

„Literał ciągu”

Jeśli chcesz użyć znaku „” wewnątrz literału ciągu, powinieneś użyć dwóch takich znaków.

Na przykład:

„dosłownie” „w cudzysłowie” „”

Numer

Liczbę zapisuje się bez spacji, w formacie dziesiętnym. Część ułamkowa jest oddzielona znakiem „.”. Na przykład:

10.5 200

data

Literał typu daty jest zapisywany przy użyciu literału klucza DATETIME. Po tym słowie kluczowym, w nawiasach oddzielonych przecinkami, podany jest rok, miesiąc, dzień, godziny, minuty i sekundy. Wskazanie czasu nie jest wymagane.

Na przykład:

DATETIME(1975, 1, 06) - 6 stycznia 1975 DATETIME(2006, 12, 2, 23, 56, 57) - 2 grudnia 2006, 23:56:57 sekund, 23:56:57 sekund

wartość logiczna

Wartości logiczne można zapisać za pomocą literałów True (True), False (False).

Oznaczający

Aby określić literały innego typu (wyliczenia systemowe, dane predefiniowane), stosuje się słowo kluczowe Value, po którym w nawiasach podaje się nazwę literału.

Wartość (typ konta. Aktywne)

Operacje na liczbach

Jednoargumentowy -

Ta operacja ma na celu odwrócenie znaku liczby. Na przykład:

Sprzedaż.Ilość

Jednoargumentowy +

Ta operacja nie powoduje wykonania żadnych operacji na numerze. Na przykład:

Sprzedaż.Ilość

Binarny -

Operacja ta ma na celu obliczenie różnicy dwóch liczb. Na przykład:

BalancesAndTurnovers.InitialBalance - BalancesAndTurnovers.EndBalance BalancesAndTurnovers.InitialBalance - 100 400 - 357

Binarny +

Operacja ta ma na celu obliczenie sumy dwóch liczb. Na przykład:

SaldaI Obroty.Saldo początkowe + Salda i obroty.Salda i obroty.Saldo początkowe + 100 400 + 357

Praca

Ta operacja ma na celu obliczenie iloczynu dwóch liczb. Na przykład:

Nomenklatura Cena * 1,2 2 * 3,14

Dział

Operacja ta ma na celu uzyskanie wyniku dzielenia jednego operandu przez drugi. Na przykład:

Nomenklatura Cena / 1,2 2 / 3,14

Pozostała część podziału

Operacja ta ma na celu uzyskanie reszty z dzielenia jednego operandu przez drugi. Na przykład:

Nomenklatura Cena % 1,2 2 % 3.14

Operacje na łańcuchach

Konkatenacja (binarna +)

Ta operacja ma na celu połączenie dwóch ciągów znaków. Na przykład:

Nomenklatura.Artykuł + „: ”+ Nomenklatura.Nazwa

Tak jak

Ta operacja sprawdza, czy ciąg znaków pasuje do podanego wzorca.

Wartość operatora LIKE ma wartość PRAWDA, jeśli wartość<Выражения>pasuje do wzorca, w przeciwnym wypadku FALSE.

Następujące znaki w<Строке_шаблона>mają znaczenie inne niż kolejny znak w ciągu:

  • % - procent: ciąg zawierający zero lub więcej dowolnych znaków;
  • _ - podkreślenie: jeden dowolny znak;
  • […] - jeden lub więcej znaków w nawiasach kwadratowych: jeden znak, dowolny z wymienionych w nawiasach kwadratowych. Wyliczenie może zawierać zakresy, takie jak a-z, co oznacza dowolny znak w zakresie, łącznie z końcami zakresu;
  • [^…] - w nawiasach kwadratowych ikona negacji, po której następuje jeden lub więcej znaków: dowolny znak inny niż te wymienione po ikonie negacji;

Każdy inny symbol oznacza sam siebie i nie niesie ze sobą żadnego dodatkowego obciążenia. Jeśli konieczne jest wpisanie jednego z wymienionych znaków jako samego, należy go poprzedzić<Спецсимвол>Podane po słowie kluczowym ESCAPE.

Na przykład szablon

„%ABC[abc]\_abc%” ZNAK SPECJALNY „\”

oznacza podciąg składający się z ciągu znaków: litery A; litery B; litery B; jedna cyfra; jedna z liter a, b, c lub d; znak podkreślenia; litery a; litery b; litery w. Co więcej, sekwencję tę można zlokalizować zaczynając od dowolnej pozycji w ciągu.

Operacje porównawcze

Równa się

Ta operacja ma na celu porównanie dwóch operandów pod kątem równości. Na przykład:

Sales.Counterparty = Sales.NomenclatureMainSupplier

Nie równe

Operacja ta ma na celu porównanie dwóch operandów pod kątem nierówności. Na przykład:

Sprzedaż.Kontrahent<>Sprzedaż.NomenklaturaGłówny dostawca

Mniej

Ta operacja ma na celu sprawdzenie, czy pierwszy operand jest mniejszy niż drugi. Na przykład:

SalesCurrent.Amount< ПродажиПрошлые.Сумма

Więcej

Ta operacja ma na celu sprawdzenie, czy pierwszy operand jest większy od drugiego. Na przykład:

SalesCurrent.Amount > SalesPast.Amount

Mniej lub równo

Ta operacja ma na celu sprawdzenie, czy pierwszy operand jest mniejszy lub równy drugiemu. Na przykład:

SalesCurrent.Amount<= ПродажиПрошлые.Сумма

Więcej lub równo

Ta operacja ma na celu sprawdzenie, czy pierwszy operand jest większy lub równy drugiemu. Na przykład:

SalesCurrent.Amount >= SalesPast.Amount

Operacja B

Ta operacja sprawdza obecność wartości na przekazanej liście wartości. Wynik operacji to True, jeśli wartość zostanie znaleziona, lub False, w przeciwnym razie. Na przykład:

Element B (&Pozycja1, &Pozycja2)

Operacja sprawdzająca, czy wartość istnieje w zbiorze danych

Operacja sprawdza obecność wartości w określonym zbiorze danych. Zestaw danych walidacyjnych musi zawierać jedno pole. Na przykład:

Sprzedaż Wykonawca Wykonawcom

Operacja sprawdzania NULL

Ta operacja zwraca True, jeśli wartość wynosi NULL. Na przykład:

Sprzedaż.Kontrahent ma wartość NULL

Operacja sprawdzania wartości innej niż NULL

Ta operacja zwraca True, jeśli wartość nie jest równa NULL. Na przykład:

Sales.Contractor NIE JEST NULL

Operacje logiczne

Operacje logiczne przyjmują jako argumenty wyrażenia typu Boolean.

Operacja NIE

Operator NOT zwraca True, jeśli jego operand ma wartość False i zwraca False, jeśli jego operand ma wartość True. Na przykład:

NOT Document.Consignee = Dokument.Nadawca

Operacja AND

Operacja AND zwraca True, jeśli oba operandy mają wartość True i zwraca False, jeśli jeden z operandów ma wartość False. Na przykład:

Document.Consignee = Dokument.Nadawca ORAZ Document.Consignee = &Kontrahent

LUB operacja

Operacja OR zwraca True, jeśli jeden z operandów ma wartość True, i False, jeśli oba operandy mają wartość False. Na przykład:

Document.Consignee = Dokument.Nadawca LUB Document.Consignee = &Kontrahent

Funkcje agregujące

Funkcje agregujące wykonują pewne działania na zbiorze danych.

Suma

Funkcja agregująca Suma oblicza sumę wartości wyrażeń przekazanych jej jako argument dla wszystkich rekordów szczegółowych. Na przykład:

Kwota (Sales.AmountObrót)

Ilość

Funkcja Count zlicza wartości inne niż null. Na przykład:

Ilość (Sprzedaż. Wykonawca)

Liczba różnych

Ta funkcja zlicza liczbę różnych wartości. Na przykład:

Ilość (różna sprzedaż. Wykonawca)

Maksymalny

Funkcja pobiera maksymalną wartość. Na przykład:

Maksimum (pozostałości. Ilość)

Minimum

Funkcja pobiera wartość minimalną. Na przykład:

Minimum (saldo. Ilość)

Przeciętny

Funkcja pobiera średnią dla wartości innych niż null. Na przykład:

Średnia (pozostałości. Ilość)

Inne operacje

Operacja WYBIERZ

Operacja Wybierz ma na celu wybranie jednej z kilku wartości pod pewnymi warunkami. Na przykład:

Wybierz opcję Gdy Suma > 1000, a następnie Suma W przeciwnym razie 0 Koniec

Zasady porównywania dwóch wartości

Jeżeli typy porównywanych wartości różnią się od siebie, wówczas relację między wartościami określa się na podstawie pierwszeństwa typów:

  • NULL (najniższy);
  • wartość logiczna;
  • Numer;
  • Data;
  • Linia;
  • Typy referencyjne

Relacje pomiędzy różnymi typami referencyjnymi definiowane są na podstawie numerów referencyjnych tabel odpowiadających danemu typowi.

Jeśli typy danych są zgodne, wartości są porównywane według następujących zasad:

  • typ Boolean TRUE jest większy niż FALSE;
  • typ Numer ma zwykłe zasady porównywania liczb;
  • dla typu Date daty wcześniejsze są krótsze niż późniejsze;
  • dla typu String - porównania ciągów zgodnie z ustalonymi cechami narodowymi bazy danych;
  • typy referencyjne porównywane są na podstawie ich wartości (numer rekordu itp.).

Praca z wartością NULL

Każda operacja, w której wartość jednego z operandów wynosi NULL, zwróci wynik NULL.

Istnieją wyjątki:

  • operacja AND zwróci NULL tylko wtedy, gdy żaden z operandów nie będzie fałszywy;
  • operacja OR zwróci NULL tylko wtedy, gdy żaden z operandów nie ma wartości True.

Priorytety operacji

Operacje mają następujące priorytety (pierwsza linia ma najniższy priorytet):

  • B, JEST NULL, NIE JEST NULL;
  • =, <>, <=, <, >=, >;
  • Binarny +, Binarny – ;
  • *, /, %;
  • Jednoargumentowy +, Jednoargumentowy -.

Funkcje języka wyrażeń systemu składu danych

Oblicz

Funkcja Oblicz służy do obliczania wyrażenia w kontekście jakiegoś grupowania. Funkcja ma następujące parametry:

  • Wyrażenie. Wpisz ciąg. Zawiera wyrażenie obliczone;
  • Grupowanie. Wpisz ciąg. Zawiera nazwę grupowania, w kontekście którego wyrażenie ma zostać ocenione. Jeżeli jako nazwę grupowania zostanie użyty pusty ciąg znaków, obliczenia zostaną wykonane w kontekście bieżącego grupowania. Jeżeli jako nazwę grupy zostanie użyty ciąg GrandTotal, obliczenia zostaną wykonane w kontekście sumy całkowitej. W przeciwnym razie obliczenia zostaną wykonane w kontekście grupy nadrzędnej o tej nazwie. Na przykład:
Kwota(Sales.AmountTurnover) / Calculate("Kwota(Sales.AmountTurnover)", "TotalTotal")

W tym przykładzie wynikiem będzie stosunek kwoty w polu „Sales.AmountTurnover” rekordu grupującego do kwoty tego samego pola w całym układzie.

Poziom

Funkcja ma na celu uzyskanie aktualnego poziomu nagrywania.

Poziom()

Numer w kolejności

Uzyskaj następny numer sekwencyjny.

Numer zamówienia()

NumerW kolejnościWGrupowaniu

Zwraca następny numer kolejny w bieżącym grupowaniu.

NumerW PorządkuWGrupie()

Format

Pobierz sformatowany ciąg przekazanej wartości.

Ciąg formatujący jest ustawiony zgodnie z ciągiem formatującym 1C:Enterprise.

Opcje:

  • Oznaczający;
  • Formatuj ciąg.

Format (Faktury wydatków.AmountDoc, „NPV=2”)

Początek okresu

Opcje:

    • Minuta;
    • Dzień;
    • Tydzień;
    • Miesiąc;
    • Kwartał;
    • Dekada;
    • Pół roku.

PeriodStart(DateTime(2002, 10, 12, 10, 15, 34), „Miesiąc”)

Wynik:

01.10.2002 0:00:00

KoniecOkresu

Funkcja ma za zadanie wyodrębnić konkretną datę z podanej daty.

Opcje:

  • Data. Wpisz datę. Podana data;
  • Typ okresu. Wpisz ciąg. Zawiera jedną z następujących wartości:
    • Minuta;
    • Dzień;
    • Tydzień;
    • Miesiąc;
    • Kwartał;
    • Dekada;
    • Pół roku.

EndPeriod(DateTime(2002, 10, 12, 10, 15, 34), „Tydzień”)

Wynik:

13.10.2002 23:59:59

DodajDatę

Funkcja ma na celu dodanie pewnej wartości do daty.

Opcje:

  • Typ powiększenia. Wpisz ciąg. Zawiera jedną z następujących wartości:
    • Minuta;
    • Dzień;
    • Tydzień;
    • Miesiąc;
    • Kwartał;
    • Dekada;
    • Pół roku.
  • Wartość - o ile chcesz zwiększyć datę. Numer typu. Część ułamkowa jest ignorowana.

AddToDate(DateTime(2002, 10, 12, 10, 15, 34), „Miesiąc”, 1)

Wynik:

12.11.2002 10:15:34

Data różnicy

Funkcja ma na celu uzyskanie różnicy między dwiema datami.

Opcje:

  • Wyrażenie. Wpisz datę. pierwotna data;
  • Wyrażenie. Wpisz datę. Odjęta data;
  • Typ różnicy. Wpisz ciąg. Zawiera jedną z następujących wartości:
    • Drugi;
    • Minuta;
    • Dzień;
    • Miesiąc;
    • Kwartał;

RÓŻNICA DATY(DATAGODZINA(2002, 10, 12, 10, 15, 34), DATACZAS(2002, 10, 14, 9, 18, 06), „DZIEŃ”)

Wynik:

Podciąg

Ta funkcja ma na celu wybranie podciągu z ciągu.

Opcje:

  • Linia. Wpisz ciąg. Ciąg, z którego wyodrębniany jest podciąg;
  • Pozycja. Numer typu. Pozycja znaku, od którego zaczyna się podciąg, który ma zostać wyodrębniony z ciągu;
  • Długość. Numer typu. Długość wybranego podciągu.

PODCIĄG(Konta.Adres, 1, 4)

Długość łańcucha

Funkcja przeznaczona jest do określenia długości ciągu znaków.

Parametr:

  • Linia. Wpisz ciąg. Ciąg, którego długość jest określana.

String(Konta.Adres)

Rok

Funkcja ta ma na celu wyodrębnienie roku z wartości typu Date.

Parametr:

  • Data. Wpisz datę. Data, według której ustala się rok.

ROK (wraz z datą)

Kwartał

Funkcja ta ma na celu wyodrębnienie numeru kwartału z wartości typu Data. Numer bloku zwykle mieści się w zakresie od 1 do 4.

Parametr

  • Data. Wpisz datę. Data, według której ustala się kwartał
Kwartał (data faktury)

Miesiąc

Funkcja ta ma na celu wyodrębnienie numeru miesiąca z wartości typu Date. Numer miesiąca mieści się zwykle w zakresie od 1 do 12.

  • Data. Wpisz datę. Data, według której ustalany jest miesiąc.
MIESIĄC(data faktury)

Dzień roku

Ta funkcja ma na celu uzyskanie dnia roku z wartości typu Date. Dzień w roku zwykle mieści się w zakresie od 1 do 365(366).

  • Data. Wpisz datę. Data, według której ustala się dzień roku.
DZIEŃ ROKU (data wygaśnięcia)

Dzień

Celem tej funkcji jest uzyskanie dnia miesiąca z wartości typu Date. Dzień miesiąca zwykle mieści się w zakresie od 1 do 31.

  • Data. Wpisz datę. Data, według której ustalane są dni miesiąca.
DZIEŃ (data wygaśnięcia)

Tydzień

Funkcja ta ma na celu uzyskanie numeru tygodnia w roku z wartości typu Date. Tygodnie roku numerujemy zaczynając od 1.

  • Data. Wpisz datę. Data, według której ustalane są numery tygodni.
TYDZIEŃ (data wygaśnięcia)

Dzień tygodnia

Ta funkcja ma na celu uzyskanie dnia tygodnia z wartości typu Date. Dzień tygodnia zwykle waha się od 1 (poniedziałek) do 7 (niedziela).

  • Data. Wpisz datę. Data, według której ustalany jest dzień tygodnia.
DZIEŃ TYGODNIA (data ważności)

Godzina

Ta funkcja ma na celu uzyskanie godziny dnia z wartości typu Data. Godzina dnia waha się od 0 do 23.

  • Data. Wpisz datę. Data, według której ustalana jest godzina dnia.
GODZINA (data wygaśnięcia)

Minuta

Ta funkcja ma na celu uzyskanie minut godziny z wartości typu Data. Minuty godziny mieszczą się w zakresie od 0 do 59.

  • Data. Wpisz datę. Data, według której ustalana jest minuta.
MINUTA (data wygaśnięcia)

Drugi

Ta funkcja ma na celu uzyskanie sekundy minuty z wartości typu Date. Sekunda minuty mieści się w zakresie od 0 do 59.

  • Data. Wpisz datę. Data, według której określane są sekundy minuty.
SEC (data wygaśnięcia)

wyrazić

Ta funkcja ma na celu wyodrębnienie typu z wyrażenia, które może zawierać typ złożony. Jeżeli wyrażenie zawiera typ inny niż wymagany, zwrócona zostanie wartość NULL.

Opcje:

  • Wyrażenie do konwersji;
  • Wskazanie typu. Wpisz ciąg. Zawiera ciąg typu. Na przykład „Numer”, „Ciąg” itp. Oprócz typów pierwotnych ten ciąg może zawierać nazwę tabeli. W takim przypadku zostanie podjęta próba wyrażenia odniesienia do określonej tabeli.

Express(Data.Attribute1, "Numer(10,3)")

Zero

Ta funkcja zwraca wartość drugiego parametru, jeśli wartość pierwszego parametru wynosi NULL.

W przeciwnym razie zwrócona zostanie wartość pierwszego parametru.

IsNULL(Kwota(Sprzedaż.KwotaObrotu), 0)

Wspólne funkcje modułu

Wyrażenie silnika kompozycji danych może zawierać wywołania funkcji do globalnych wspólnych modułów konfiguracyjnych. Do wywoływania takich funkcji nie jest wymagana żadna dodatkowa składnia.

W tym przykładzie funkcja „ShortName” zostanie wywołana z modułu konfiguracji ogólnej.

Należy pamiętać, że korzystanie z funkcji modułu współdzielonego jest dozwolone tylko wtedy, gdy określono odpowiednią opcję procesora kompozycji danych.

Ponadto w niestandardowych wyrażeniach pól nie można używać typowych funkcji modułów.

Dodawanie gotowych raportów z własnymi kolumnami.
Do raportów sporządzonych z wykorzystaniem „Schematu kompozycji danych” z poziomu użytkownika możesz dodawać własne Pola, które będą wyświetlane podczas generowania.
Na tych polach dopuszczalne jest stosowanie działań arytmetycznych.

Dawno temu napisałem raport „Sprzedaż towarów wysyłką” http://infostart.ru/public/16477/. W tej publikacji nie będziemy omawiać jej znaczenia i zalet. Raport ten będzie traktowany jako szablon do eksperymentów i modyfikacji. Ponadto w komentarzach pytali, jak dodać Pola.

Otwórz „Ustawienia…” i przejdź do zakładki „Ustawienia użytkownika”.

2. Dodaj „Nowe wyrażenie pola”

Dodawanie pól oznacza wpisywanie działań arytmetycznych pomiędzy dostępnymi polami (dopuszczalne jest to oznaczone zielonym kwadratem). Cechą charakterystyczną jest również to, że jeśli nazwa takiego pola składa się z dwóch lub więcej słów, należy ją ująć w nawiasy kwadratowe. Zrób to - [Kwota sprzedaży].

Po zapisaniu pole to stanie się dostępne do wyboru:

Tutaj za pomocą prostych manipulacji uzyskasz potrzebną wartość. Ta funkcja umożliwia dodanie wymaganych pól. W takich opcjach obliczeniowych, jakie potrzebujesz. Rentowność, wydajność i inne wartości zostaną uwzględnione w logice obliczeń arytmetycznych.

W takim przypadku Twoja praca nie zostanie utracona i następnym razem, gdy otworzysz raport, będziesz mógł z niego skorzystać.

Funkcje używane podczas wpisywania pól.

  • Arytmetyka „+, -, *, /” jest z tym jasna, myślę, że nie trzeba wyjaśniać zasady ich działania.
  • Wyrażenia logiczne służą do definiowania selekcji. " > ,< , = , >= , <= , <>, ORAZ, LUB, NIE”. Wyrażenia te są używane w operacji wyboru.
  • Operacje selekcji. Zastosuj, aby uzyskać jedną z możliwych wartości zgodnie z określonymi warunkami

WYBÓR
GDY< Операция выбора >NASTĘPNIE<Выражение>
W PRZECIWNYM RAZIE<Выражение>
KONIEC
Przykład:
WYBÓR
JEŚLI Ilość > 0 i Ilość > 0 WTEDY „Poprawnie”
W przeciwnym razie „Błąd”
KONIEC

Rozszyfruje się to w następujący sposób: pod warunkiem, że ilość jest większa od zera i kwoty są większe od zera, wyświetli się tekst „Poprawnie”, a jeśli choć jeden z warunków nie zostanie spełniony, wyświetli się „Błąd”.

  • Wbudowana funkcja umożliwia wykonanie określonych przekształceń za pomocą pól.

SUBSTRING („Wyrażenie”, „Pozycja początkowa”, „Pozycja końcowa”) - wybiera część „Wyrażenia”, ograniczoną ramkami „Początek…” i „Koniec…”.
Jak to się dzieje z wartością Nomenklatura - formuła „Pasta czekoladowa” Substring(Nomenklatura,1,5) wyświetli wartość „Wklej”

Funkcje służą do pracy z datami.

ROK(<Дата>), KWARTAŁ(<Дата>), MIESIĄC(<Дата>), DZIEŃ(<Дата>), DZIEŃ(<Дата>), TYDZIEŃ(<Дата>),DZIEŃ POWSZEDNI(<Дата>),GODZINA(<Дата>), MINUTA(<Дата>), SEK(<Дата>)

Wyświetlona zostanie wartość odpowiadająca nazwie funkcji.

POCZĄTEK("Data", "Okres zmiany"), KONIEC("Data", "Okres zmiany"). W przypadku danych funkcyjnych wartość wyrażenia daty znajduje się na początku lub na końcu danej daty.

DODAJ ("Data", "Okres przesunięcia", "Kwota o którą chcesz zwiększyć datę") - funkcja pozwala zwiększyć lub zmniejszyć datę o określoną wartość.

RÓŻNICA („Data1”, „Data2”, „Okres przesunięcia”) - Funkcja ma na celu uzyskanie różnicy pomiędzy dwiema datami.

„Okres zmiany” to „minuta, godzina, dzień, tydzień, miesiąc, kwartał, rok, dekada, pół roku”.

5.Funkcje agregujące języka zapytań służą do grupowania wyników obliczeń sum

SUMA (<>) suma arytmetyczna wszystkich wartości w próbie.
PRZECIĘTNY (<>) oblicza średnią wartość wszystkich w próbie
MINIMUM (<>) oblicza minimalną wartość wszystkich wartości w próbce
MAKSYMALNE (<>) oblicza maksymalną wartość wszystkich wartości w próbce
ILOŚĆ (<>) zlicza liczbę wartości parametrów objętych selekcją. Dzięki tej funkcji możesz mieć przypadki użycia. LICZBA(*) - pozwala policzyć liczbę wierszy w wyniku. LICZBA(RÓŻNE „Wyrażenie”) – pozwala policzyć liczbę różnych wartości określonego pola.

Kwota (wybór
Kiedy Substring (Nomenklatura, 1, 5) = „Wklej”
Następnie Ilość *0,2
Inaczej Ilość *0,35
Koniec)

Sumę wartości otrzymamy w tym przypadku, gdy na początku nazwy nomenklatury znajduje się słowo „Pasta”, w tym przypadku ilość zwiększa się o 0,2, a jeśli nie występuje, zwiększa się o 0,35.

Rok([Dokument.Data])

Wyświetlony zostanie rok zarejestrowania/wysłania dokumentu.

Bardziej złożony przykład, bez dekodowania.

Wybór
Kiedy kwartał([Document.Date]) = 1 ORAZ Substring(Nomenklatura, 1, 5) = „Wklej”
Następnie Ilość * 0,2
Inny wybór
Kiedy kwartał([Dokument.Data]) = 2
Następnie Ilość * 0,3
Inny wybór
Gdy kwartał([Dokument.Data]) = 3
Następnie Ilość * 0,4
Inny wybór
Kiedy kwartał([Dokument.Data]) = 4
Następnie Ilość * 0,5
Koniec
Koniec
Koniec
Koniec