Персонализирани полета в отчети 1s 8.3. Изразен език на системата за съставяне на данни (1Cv8)

Персонализирани полета в отчети 1s 8.3.  Изразен език на системата за съставяне на данни (1Cv8)
Персонализирани полета в отчети 1s 8.3. Изразен език на системата за съставяне на данни (1Cv8)

За компетентно управление всяка търговска организация трябва бързо да получи информация за текущото състояние на стоките, продажбите и печалбите. Въпреки това, като се има предвид, че организациите често работят с най-широката гама от продукти и голяма сумаконтрагенти, тогава инструментът за настройка на аналитичен отчет играе важна роля за получаване на необходимата информация. Нека разгледаме по-отблизо процедурата за работа с потребителски полета в отчетите на типична програма (рев. 11).

Развитието на платформата 1C: Enterprise 8 предлага на потребителите все повече и повече възможности. Така например във версия 8.2 отчетите станаха по-гъвкави, което им позволява да бъдат персонализирани за различни изисквания без помощта на квалифицирани програмисти.

Променете настройките на отчета

За да видите или промените настройките на отчета, отидете в менюто "Всички действия" и изберете командата "Промяна на варианта". След това пред потребителя се отваря прозорец с настройки за отворения отчет.

В горната част на прозореца за настройки можете да видите структурата на отчета, която не е нищо повече от визуално отражение на колоните на отчета и групирането на неговите редове, което по същество ви позволява да си представите реда, в който се показват аналитичните данни в този доклад.

В долната част на прозореца за настройки се показва самата информация и настройки на полета, свързани или с отчета, или с елементите на неговата структура (колони и групиране на редове).

Персонализирани полета

В програма 1C: Управление на търговията 8Настройките на отчети издание 11 предоставят на потребителите повече опции при формирането им.

В прозореца за редактиране на настройките и структурата на отчетите бих искал да обърна специално внимание на потребителите към раздела " Персонализирани полета”, което ви позволява да създавате свои собствени полета и да ги добавяте към отчета. Трябва да се припомни, че по-рано потребителят можеше да използва само онези полета, които бяха внедрени от разработчика.

Обмислете използването на тази функция с пример.

Да предположим, че ръководителят на търговска компания, която продава стоки в Москва и регионите, иска да персонализира отчета за историята на продажбите, за да отговаря на неговите изисквания, като иска да показва данни за продажбата на артикула в Москва и регионите като цяло, както и на партньори . Много е лесно да направите това с помощта на персонализирани полета.

По този начин, илюстративният пример показва, че гъвкавите настройки на потребителските полета в типична програма 1C: Управление на търговията 8предостави на потребителя широки възможностив настройките на отчета, което ви позволява бързо да получите необходимата информация по удобен начин.

Изразен език на системата за съставяне на данни

Езикът на изразите на системата за съставяне на данни е проектиран да записва изрази, използвани в различни части на системата.

Изразите се използват в следните подсистеми:

  • схема за съставяне на данни - за описание на изчислени полета, общи полета, изрази за връзки и др.;
  • настройки за съставяне на данни - за описание на персонализирани изрази на полета;
  • оформление на състава на данните - за описание на изрази за релационни набори от данни, описание на параметри на оформление и др.

Литерали

Изразът може да съдържа литерали. Възможни литерали от следните типове:

  • линия;
  • Брой;
  • Дата на;
  • Булева стойност.

Линия

Литералът на низ се записва със знаците """, например:

"Низов литерал"

Ако трябва да използвате знака """ вътре в литерала на низа, трябва да използвате два такива знака.

Например:

„буквално „„в кавички“““

Номер

Числото се изписва без интервали, в десетичен формат. Дробната част е разделена със знака "." Например:

10.5 200

дата

Литерал от тип дата се записва с помощта на ключовия литерал DATETIME. След това ключова дума, в скоби, разделени със запетаи, са посочени годината, месецът, денят, часовете, минутите, секундите. Индикацията за време не е необходима.

Например:

DATETIME(1975, 1, 06) - 6 януари 1975 г. DATETIME(2006, 12, 2, 23, 56, 57) - 2 декември 2006 г., 23:56:57 секунди, 23:56:57 секунди

булево

Булевите стойности могат да бъдат записани с помощта на литерали True (True), False (False).

Значение

За да посочите литерали от други типове (системни изброявания, предварително дефинирани данни), се използва ключовата дума Value, последвана от името на литерала в скоби.

Стойност (AccountType. Active)

Операции с числа

единичен -

Тази операция е предназначена да обърне знака на число. Например:

Продажби.Количество

Унарен +

Тази операция не извършва никакви операции с номера. Например:

Продажби.Количество

двоичен -

Тази операция е предназначена за изчисляване на разликата на две числа. Например:

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

Двоичен +

Тази операция е предназначена за изчисляване на сумата от две числа. Например:

BalancesAndTurnovers.InitialBalance + BalancesAndTurnovers.Turnover BalancesAndTurnovers.InitialBalance + 100 400 + 357

работа

Тази операция е предназначена за изчисляване на произведението на две числа. Например:

Номенклатура Цена * 1.2 2 * 3.14

дивизия

Тази операция е предназначена да получи резултата от разделянето на един операнд на друг. Например:

Номенклатура Цена / 1.2 2 / 3.14

Остатък от делението

Тази операция е предназначена да получи остатъка от деленето на един операнд на друг. Например:

Номенклатура Цена % 1.2 2 % 3.14

Операции върху низове

Конкатенация (двоичен +)

Тази операция е предназначена за свързване на два низа. Например:

Номенклатура.Артикул + “: ”+ Номенклатура.Наименование

като

Тази операция проверява дали даден низ съответства на дадения шаблон.

Стойността на оператора LIKE е TRUE, ако стойността<Выражения>съвпада с шаблона и FALSE в противен случай.

Следните знаци в<Строке_шаблона>имат значение, различно от просто друг знак в низа:

  • % - процент: поредица, съдържаща нула или повече произволни символи;
  • _ - долна черта: един произволен знак;
  • […] - един или повече знака в квадратни скоби: един знак, който и да е от изброените в квадратните скоби. Едно изброяване може да съдържа диапазони, като a-z, което означава всеки знак в диапазона, включително краищата на диапазона;
  • [^…] - в квадратни скоби икона за отрицание, последвана от един или повече знаци: всеки знак, различен от изброените след иконата за отрицание;

Всеки друг символ означава себе си и не носи допълнително натоварване. Ако е необходимо да се напише един от изброените знаци като себе си, тогава той трябва да бъде предшестван от<Спецсимвол>Посочената след ключовата дума ESCAPE.

Например шаблон

“%ABC[abc]\_abc%” СПЕЦИАЛЕН ЗНАК “\”

означава подниз, състоящ се от последователност от знаци: букви А; букви B; букви B; една цифра; една от буквите a, b, c или d; знак за подчертаване; букви а; букви b; букви в. Освен това тази последователност може да бъде локализирана, започвайки от произволна позиция в низа.

Операции за сравнение

Равно на

Тази операция е предназначена да сравнява два операнда за равенство. Например:

Sales.Counterparty = Sales.NomenclatureMainSupplier

Не е равно

Тази операция е предназначена да сравнява два операнда за неравенство. Например:

Продажби.Изпълнител<>Продажби.НоменклатураОсновен доставчик

По-малко

Тази операция е предназначена да провери дали първият операнд е по-малък от втория. Например:

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

| Повече ▼

Тази операция е предназначена да провери дали първият операнд е по-голям от втория. Например:

SalesCurrent.Amount > SalesPast.Amount

По-малко или равно

Тази операция е предназначена да провери дали първият операнд е по-малък или равен на втория. Например:

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

Повече или равно

Тази операция е предназначена да провери дали първият операнд е по-голям или равен на втория. Например:

SalesCurrent.Amount >= SalesPast.Amount

Операция Б

Тази операция проверява наличието на стойност в предадения списък от стойности. Резултатът от операцията е True, ако стойността е намерена, или False в противен случай. Например:

Елемент Б (&Елемент1, &Елемент2)

Операция за проверка дали съществува стойност в набор от данни

Операцията проверява за наличието на стойност в посочения набор от данни. Наборът от данни за валидиране трябва да съдържа едно поле. Например:

Продажби. Изпълнител към изпълнители

NULL операция за проверка

Тази операция връща True, ако стойността е NULL. Например:

Продажби.Изпълнител Е НИЩОЖЕН

Операцията за проверка на стойност за не-NULL

Тази операция връща True, ако стойността не е NULL. Например:

Продажби.Изпълнител НЕ Е НИЩОЖЕН

Булеви операции

Логическите операции приемат като операнди изрази от тип Boolean.

Операция НЕ

Операторът NOT връща True, ако операндът му е False, и връща False, ако операндът му е True. Например:

НЕ Document.Consignee = Document.Consignor

Операция И

Операцията И връща True, ако и двата операнда са True, и връща False, ако един от операндите е False. Например:

Document.Consignee = Document.Consignor И Document.Consignee = &Изпълнител

ИЛИ операция

Операцията OR връща True, ако един от операндите е True, и False, ако и двата операнда са False. Например:

Document.Consignee = Document.Consignor ИЛИ Document.Consignee = &Изпълнител

Агрегатни функции

Агрегираните функции извършват някакво действие върху набор от данни.

Сума

Агрегираната функция Sum изчислява сумата от стойностите на изразите, предадени й като аргумент за всички подробни записи. Например:

Сума(Продажби.СумаОборот)

Количество

Функцията Count отчита броя на ненулевите стойности. Например:

Количество (Продажби.Изпълнител)

Брой различни

Тази функция изчислява числото различни значения. Например:

Количество (Различни продажби. Изпълнител)

Максимум

Функцията получава максималната стойност. Например:

Максимум (Остатъци. Количество)

минимум

Функцията получава минималната стойност. Например:

Минимум (Баланс. Количество)

Средно аритметично

Функцията получава средната стойност за ненулеви стойности. Например:

Средно (Остатъци. Количество)

Други операции

Операция SELECT

Операцията Select е предназначена да избира една от няколко стойности при определени условия. Например:

Изберете When Sum > 1000 Then Sum Else 0 End

Правила за сравняване на две стойности

Ако типовете на сравняваните стойности се различават един от друг, тогава връзката между стойностите се определя въз основа на приоритета на типовете:

  • NULL (най-нисък);
  • булево;
  • Брой;
  • Дата на;
  • линия;
  • Референтни типове

Връзките между различните типове препратки се дефинират въз основа на референтните номера на таблици, съответстващи на определен тип.

Ако типовете данни съвпадат, тогава стойностите се сравняват съгласно следните правила:

  • тип Boolean TRUE е по-голямо от FALSE;
  • тип Number има обичайните правила за сравнение за числа;
  • за типа Дата по-ранните дати са по-малко от по-късните;
  • за тип String - сравнения на низове в съответствие с установените национални характеристики на базата данни;
  • референтните типове се сравняват въз основа на техните стойности (номер на запис и т.н.).

Работа с NULL

Всяка операция, при която стойността на един от операндите е NULL, ще доведе до NULL резултат.

Има изключения:

  • операцията AND ще върне NULL само ако нито един от операндите не е False;
  • операцията OR ще върне NULL само ако нито един от операндите не е True.

Оперативни приоритети

Операциите имат следните приоритети (първият ред е с най-нисък приоритет):

  • B, Е NULL, НЕ Е NULL;
  • =, <>, <=, <, >=, >;
  • Двоичен +, Двоичен – ;
  • *, /, %;
  • Унарен +, Унарен -.

Композиция на данни Система Изразяване Езикови функции

Изчисли

Функцията Calculate е предназначена да изчислява израз в контекста на някакво групиране. Функцията има следните параметри:

  • Изразяване. Тип String. Съдържа изчислен израз;
  • Групиране. Тип String. Съдържа името на групирането, в чийто контекст изразът трябва да бъде оценен. Ако името на групата е празен ред, изчислението ще се извърши в контекста на текущото групиране. Ако низът GrandTotal се използва като име на групиране, изчислението ще се извърши в контекста на общата сума. В противен случай изчислението ще се извърши в контекста на родителската група с това име. Например:
Amount(Sales.AmountTurnover) / Calculate("Amount(Sales.AmountTurnover)", "TotalTotal")

IN този примерв резултат на това ще получите съотношението на сумата в полето "Sales.AmountTurnover" на групиращия запис към сумата на същото поле в цялото оформление.

Ниво

Функцията е предназначена да получи текущото ниво на запис.

Ниво()

NumberInOrder

Вземете следващия пореден номер.

Номер на поръчка()

NumberIn OrderInGrouping

Връща следващия пореден номер в текущото групиране.

NumberInOrderInGroup()

формат

Вземете форматирания низ на предадената стойност.

Форматният низ е зададен в съответствие с форматния низ на 1C:Enterprise.

Настроики:

  • Значение;
  • Форматиране на низ.

Формат(Фактури за разходи.СумаDoc, "NPV=2")

Начало на периода

Настроики:

    • минута;
    • ден;
    • Седмица;
    • месец;
    • Квартал;
    • десетилетие;
    • Половин година.

PeriodStart(DateTime(2002, 10, 12, 10, 15, 34), "Месец")

Резултат:

01.10.2002 0:00:00

Краен период

Функцията е предназначена да извлича конкретна дата от дадена дата.

Настроики:

  • Дата на. Тип Дата. Дадена дата;
  • Тип период. Тип String. Съдържа една от следните стойности:
    • минута;
    • ден;
    • Седмица;
    • месец;
    • Квартал;
    • десетилетие;
    • Половин година.

EndPeriod(DateTime(2002, 10, 12, 10, 15, 34), "Седмица")

Резултат:

13.10.2002 23:59:59

AddDate

Функцията е предназначена да добави известна стойност към датата.

Настроики:

  • Тип увеличение. Тип String. Съдържа една от следните стойности:
    • минута;
    • ден;
    • Седмица;
    • месец;
    • Квартал;
    • десетилетие;
    • Половин година.
  • Стойност - с колко искате да увеличите датата. Тип номер. Дробната част се игнорира.

AddToDate(DateTime(2002, 10, 12, 10, 15, 34), "Месец", 1)

Резултат:

12.11.2002 10:15:34

Дата на разликата

Функцията е предназначена да получава разликата между две дати.

Настроики:

  • Изразяване. Тип Дата. оригинална дата;
  • Изразяване. Тип Дата. Извадена дата;
  • Тип на разликата. Тип String. Съдържа една от следните стойности:
    • Второ;
    • минута;
    • ден;
    • месец;
    • Квартал;

DATEDIFF(DATETIME(2002, 10, 12, 10, 15, 34), DATETIME(2002, 10, 14, 9, 18, 06), "ДЕН")

Резултат:

Подниз

Тази функцияе проектиран да извлича подниз от низ.

Настроики:

  • Линия. Тип String. Низът, от който е извлечен поднизът;
  • Позиция. Тип номер. Позицията на знака, от който започва поднизът, който ще бъде извлечен от низа;
  • Дължина. Тип номер. Дължината на избрания подниз.

ПОДНИЗ(Акаунти.Адрес, 1, 4)

Дължина на низа

Функцията е предназначена да определя дължината на низ.

Параметър:

  • Линия. Тип String. Низът, чиято дължина се определя.

Низ (Акаунти.Адрес)

година

Тази функция е предназначена да извлича годината от стойност от типа Дата.

Параметър:

  • Дата на. Тип Дата. Датата, от която се определя годината.

ГОДИНА (вкл. дата)

Квартал

Тази функция е предназначена да извлича номера на тримесечието от стойността на типа Дата. Номерът на блока обикновено варира от 1 до 4.

Параметър

  • Дата на. Тип Дата. Датата, до която се определя тримесечието
QUARTER(Дата на фактура)

месец

Тази функция е предназначена да извлича номера на месеца от стойност от типа Дата. Номерът на месеца обикновено е в диапазона от 1 до 12.

  • Дата на. Тип Дата. Датата, от която се определя месецът.
МЕСЕЦ(Дата на фактура)

Ден от годината

Тази функция е предназначена да получи деня от годината от стойност на тип дата. Денят от годината обикновено варира от 1 до 365 (366).

  • Дата на. Тип Дата. Датата, по която се определя денят от годината.
ДЕН ОТ ГОДИНАТА (Exp.Inc.Date)

ден

Тази функция е предназначена да получи деня от месеца от стойност от типа Дата. Денят от месеца обикновено варира от 1 до 31.

  • Дата на. Тип Дата. Датата, от която се определят дните в месеца.
ДЕН (Дата на изтичане)

Седмица

Тази функция е предназначена да получи номера на седмицата от годината от стойност от типа Дата. Седмиците в годината са номерирани от 1.

  • Дата на. Тип Дата. Датата, до която се определят номерата на седмиците.
СЕДМИЦА (Дата на изтичане)

Ден от седмицата

Тази функция е предназначена да получи деня от седмицата от стойност от типа Дата. Денят от седмицата обикновено варира от 1 (понеделник) до 7 (неделя).

  • Дата на. Тип Дата. Датата, по която се определя денят от седмицата.
ДЕН ОТ СЕДМИЦАТА (Дата на изтичане)

час

Тази функция е предназначена да получи часа от деня от стойност на тип дата. Часът на деня варира от 0 до 23.

  • Дата на. Тип Дата. Датата, до която се определя часът на деня.
ЧАС (Дата на изтичане)

минута

Тази функция е предназначена да получава минутата от часа от стойността на тип дата. Минутата на часа варира от 0 до 59.

  • Дата на. Тип Дата. Датата, до която се определя минутата на часа.
МИНУТА (Дата на изтичане)

Второ

Тази функция е проектирана да получава секунди от минута от стойност на тип дата. Секундата от минута варира от 0 до 59.

  • Дата на. Тип Дата. Датата, на която се определят секундите от минутата.
SEC(Exp.Inc.Date)

експресен

Тази функция е предназначена да избира тип от израз, който може да съдържа композитен тип. Ако изразът съдържа тип, различен от необходимия тип, ще бъде върнато NULL.

Настроики:

  • Изразът, който трябва да се преобразува;
  • Индикация за типа. Тип String. Съдържа низ тип. Например "Число", "Низ" и т.н. Освен примитивни типове даден низможе да съдържа име на таблица. В този случай ще бъде направен опит за изразяване на препратка към посочената таблица.

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

Нула

Тази функция връща стойността на втория параметър, ако стойността на първия параметър е NULL.

В противен случай ще бъде върната стойността на първия параметър.

IsNULL(Сума(Продажби.СумаОборот), 0)

Общи функции на модула

Изразът на машината за композиране на данни може да съдържа извиквания на функции към глобални общи конфигурационни модули. Не е необходим допълнителен синтаксис за извикване на такива функции.

В този пример функцията "ShortName" ще бъде извикана от модула за обща конфигурация.

Обърнете внимание, че използването на споделени модулни функции е разрешено само когато е указана съответната опция за процесор за композиране на данни.

Освен това общи функции на модула не могат да се използват в персонализирани изрази на полета.

Разгледахме подробно настройките на отчетите, реализирани на базата на ACS. Сега нека разгледаме по-фините и подробни настройкиопции за отчет. Прозорецът за "разширени" настройки на варианта на справка се извиква с командата "Още" - "Други" - "Промяна на вариант на справка".

Прозорецът за промяна на вариант на справка е разделен на две части:

1. Структурата на отчета.

2. Настройки на отчета.


Разделът за структура на вариант на отчет е подобен на раздела „Структура“ на стандартните настройки на отчета. Целта и конфигурацията на групировките е разгледана подробно в част 1 на статията.

Структурната таблица на варианта на отчета, в допълнение към колоната с групи, съдържа няколко допълнителни колони:

Разделът за настройки на вариантите на отчета дава на потребителя широка възможност да конфигурира отчета според нуждите си. Почти напълно съвпада с настройките по подразбиранена доклада, разгледан в част 1. Нека да разгледаме всички раздели на раздела и да отбележим разликите.

Разделът с настройки се състои от следните раздели:

1. Опции.Съдържа Параметри на ACSдостъпни за потребителя.

ACS параметър - някаква стойност, използвана за получаване на отчетни данни. Може да бъде стойност на условие за избор или валидиране на данни, както и спомагателна стойност.


Таблицата с параметри е представена във формат "Параметър" - "Стойност". Ако е необходимо, можете да промените стойностите на параметрите. Щракването върху бутона „Свойства на елемента на потребителските настройки“ отваря потребителските настройки на елемента.


В този прозорец можете да изберете дали елементът да бъде включен в потребителските настройки (т.е. видим за потребителя при настройка на отчета), да зададете представянето на елемента и режима на редактиране ( бърз достъпв заглавката на отчета, нормално в настройките на отчета и недостъпно).

Свойствата на елемента с персонализирани настройки също имат полета за групиране, полета, селекции и елементи за условен стил.

2. Персонализирани полета.Съдържа полета, които потребителят сам формира въз основа на данните, избрани от отчета.


Потребителят може да добави два типа полета:

  • Ново поле за избор...
  • Ново поле за израз...

Полетата за избор ви позволяват да изчислите стойност въз основа на дадено състояние. Прозорецът за редактиране на полето за избор съдържа заглавието на полето и таблица, в която са посочени изборът, стойността и представянето на полето. Изборът е условие, в зависимост от което ще бъде заменена желаната стойност.


Например, нека изчислим приблизителна оценка на броя на продажбите. Ще приемем, че ако се продават по-малко от 10 единици стоки, се продава малко, а ако са повече от 10 единици, се продава много. За да направим това, ще зададем 2 стойности на изчисленото поле: първата ще бъде с избора „Брой продукти по-малък или равен на „10““, втората с избора „Брой продукти повече от „10“ "".

Изразителните полета ви позволяват да изчислите стойност с помощта на произволни алгоритми. Те могат да използват функциите на езика за заявки и вградения език за програмиране 1C. Прозорецът за редактиране на полето за израз съдържа две полета за изрази на подробни и обобщени записи. Обобщените записи са групи, конфигурирани в областта „Структура на отчета“, те трябва да използват агрегатни функции („Сума“, „Минимум“, „Максимум“, „Количество“).

Например, нека изчислим средния процент на отстъпка. Средният процент на отстъпка се изчислява по формулата: [Сума продажби без отстъпка] - [Сума продажби с отстъпка] / [Сума продажби без отстъпка]. Трябва да се помни, че сумата на продажбите без отстъпка може да бъде нула, така че използваме оператора SELECT за проверка. Получаваме следните изрази:

· За подробни записи:

Избор

Когато [Сума от продажби без отстъпка] = 0

След това 0

Друго [Разпродажби без отстъпка] - [Продажби с отстъпка] / [Продажби без отстъпка]

Край

· За обобщени записи:

Избор

Когато сума ([Сума продажби без отстъпка]) = 0

След това 0

В противен случай Сума([Сума продажби без отстъпка]) - Сума([Сума продажби с отстъпка]) / Сума([Сума продажби без отстъпка])

Край

Както споменахме по-рано, в израза на общите записи използваме агрегатната функция „Сума“.

3. Групирани полета.Съдържа полета, по които ще се групира резултатът от варианта на отчета. Полетата за групиране се конфигурират отделно за всяко от групирането, но можете да зададете общи полета за групиране за вариант на отчет, ако изберете корена „Отчет“ в структурното дърво. Можете да добавите поле от резултата от отчета, потребителско поле или да изберете автоматично поле, след което системата автоматично ще избере полетата. Този раздел също ви позволява да промените реда на групираните полета.


4. Полета.Съдържа полетата, които ще бъдат показани в резултата от варианта на отчета. Полетата се конфигурират отделно за всяко от групирането, но можете да зададете общи полета за вариант на отчет, ако изберете корена „Отчет“ в структурното дърво. Можете да добавите поле от резултата от отчета, потребителско поле или да изберете автоматично поле, след което системата автоматично ще избере полетата. Този раздел също ви позволява да промените реда на полетата.

Полетата могат да бъдат групирани, за да подчертаят логически всяка част от отчета или да настроят конкретна подредба на колони. При добавяне на група колоната "Местоположение" става активна и ви позволява да изберете една от опциите за местоположение:

  • Auto - системата автоматично подрежда полетата;
  • Хоризонтално - полетата са разположени хоризонтално;
  • Вертикално - полетата са разположени вертикално;
  • В отделна колона – полетата са разположени в различни колони;
  • Заедно - полетата са подредени в една колона.


5. Избор.Съдържа филтрите, използвани във варианта на отчета. Настройването на филтри беше разгледано подробно в част 1 на тази статия. Филтрите се конфигурират отделно за всяко от групирането, но можете да зададете общи филтри за вариант на отчет, ако изберете корена „Отчет“ в структурното дърво.


6. Сортиране.Съдържа полетата за сортиране, използвани във варианта на отчета. Настройването на полета за сортиране беше обсъдено подробно в част 1 на тази статия. Сортирането се конфигурира отделно за всяко от групирането, но можете да зададете общи полета за сортиране за вариант на отчет, ако изберете корена „Отчет“ в структурното дърво.


7. Условен дизайн.Съдържа условни дизайнерски елементи, използвани във вариант на отчет. Настройването на условно форматиране беше обсъдено подробно в част 1 на тази статия. Условният дизайн се конфигурира отделно за всяко от групирането, но можете да зададете общи елементи на условен дизайн за вариант на отчет, ако изберете корена „Отчет“ в структурното дърво.


8. Допълнителни настройки.Съдържа допълнителни настройкиформатиране на отчета. Позволява ви да изберете общ външен видотчет, местоположението на полета, групи, атрибути, ресурси, суми, задаване на настройки на диаграмата, управление на показването на заглавие, параметри и избор, определяне на позицията на ресурсите и фиксиране на заглавката и колоните на групировките на варианта на отчета.


В заключение бих искал да отбележа, че настройките на справката могат не само да бъдат записани като вариант на справка, но и да бъдат качени във файл (меню „Още“ – „Запазване на настройките“). За да изтеглите, изберете „Зареждане на настройки“ и изберете записания файл. По този начин можем да прехвърляме настройките на вариантите на отчета между различни бази данни, които имат една и съща конфигурация.


Въз основа на това можем да обобщим, че потребителят може не само да персонализира отчета според нуждите си, но и да запази настройките си и да ги използва в бъдеще, ако е необходимо.

Добавяне на готови отчети със собствени колони.
Можете да добавите свои собствени полета към отчети, направени с помощта на "Схема за съставяне на данни" от потребителския режим, които ще се показват по време на генерирането.
В тези полета е допустимо да се прилагат аритметични операции.

Преди много време написах отчета "Продажби на стоки чрез пратка" http://infostart.ru/public/16477/. В тази публикация няма да обсъждаме неговата уместност и достойнства. Този отчет ще се използва като шаблон за експерименти, модификации. Освен това в коментарите те попитаха как да добавят полета.

Отворете „Настройки...“ и отидете на раздела „Потребителски настройки“.

2. Добавете "Нов израз на поле"

Добавянето на полета означава писане на аритметични операции между Наличните полета (това е разрешено, отбелязано със зелен квадрат). Освен това, ако името на такова поле се състои от две или повече думи, то трябва да бъде оградено в квадратни скоби. Вземете така - [Сума за продажба].

След запазване това поле ще стане достъпно за избор:

Тук с помощта на прости манипулации получавате стойността, от която се нуждаете. Тази възможностви позволяват да добавите задължителните полета. В такива опции за изчисление, каквито имате нужда. Рентабилността, ефективността и други стойности ще бъдат взети предвид във вашата логика на аритметични изчисления.

В този случай вашата работа няма да бъде загубена и следващия път, когато отворите отчета, можете да го използвате.

Функции, използвани при писане на полета.

  • Аритметиката " + , - , * , / " е ясна с това, мисля, че не е необходимо да обяснявам принципа на действието им.
  • Булеви изразив се използват за определяне на селекции. " > ,< , = , >= , <= , <>, И, ИЛИ, НЕ". Тези изрази се използват с операцията за избор.
  • Операции за избор. Приложете, за да получите една от възможните стойности в съответствие с посочените условия

ИЗБОР
КОГА< Операция выбора >ТОГАВА<Выражение>
В ПРОТИВЕН СЛУЧАЙ<Выражение>
КРАЙ
Пример:
ИЗБОР
WHEN Quantity > 0 и Amount > 0 THEN "Correct"
ИНАЧЕ "Грешка"
КРАЙ

Това се дешифрира по следния начин: при положение, че количеството е по-голямо от нула и сумите са по-големи от нула, се изписва текстът „Верно“, а ако поне едно от условията не е изпълнено, се изписва „Грешка“.

  • Вградена функция ви позволява да извършвате определени трансформации с полета.

ПОДНИЗ ("Израз", "Начална позиция", "Крайна позиция") - избира частта от "Израза", ограничена от кадрите "Начална ..." и "Крайна ...".
Как става това със стойността Номенклатура - формула "Шоколадова паста" Подниз(Номенклатура,1,5) ще покаже стойността "Поставяне"

Функциите се използват за работа с дати.

ГОДИНА(<Дата>), КВАРТЕР(<Дата>), МЕСЕЦ(<Дата>), ДЕН(<Дата>), ДЕН(<Дата>), СЕДМИЦА(<Дата>),WEEKDAY(<Дата>),ЧАС(<Дата>), МИНУТА(<Дата>), SEC(<Дата>)

Ще се покаже стойността, съответстваща на името на функцията.

BEGINNING("Дата", "Период на смяна"), ENDPERIOD("Дата", "Период на смяна"). За функционални данни стойността на израза за дата е в началото или края на дадената дата.

ADDDATE ("Дата", "Период на смяна", "Сума, с която искате да увеличите датата") - функцията ви позволява да увеличавате или намалявате датата с определена стойност.

DIFFERENCEDATE ("Дата1", "Дата2", "Период на смяна") - Функцията е предназначена да получи разликата между две дати.

„Период на смяна“ е един от „минута, час, ден, седмица, месец, тримесечие, година, десетилетие, половин година“.

5. Агрегираните функции на езика за заявки се използват при групиране на резултатите от изчисляването на сумите

СУМА (<>) аритметичната сума на всички стойности в извадката.
СРЕДНО АРИТМЕТИЧНО (<>) изчислява средната стойност на всички в извадката
МИНИМУМ (<>) изчислява минималната стойност на всички стойности в извадката
МАКСИМУМ (<>) изчислява максималната стойност на всички стойности в извадката
КОЛИЧЕСТВО (<>) отчита броя на стойностите на параметрите, включени в селекцията. Тази функция ви позволява да имате случаи на употреба. NUMBER(*) - позволява ви да преброите броя на редовете в резултата. NUMBER(DIFFERENT "Expression") - позволява ви да преброите броя на различните стойности на определеното поле.

Сума (Избор
Когато подниз (номенклатура, 1, 5) = "Поставяне"
След това количество *0,2
Друго количество *0,35
Край)

Сумата от стойностите ще се получи в този случай, когато в началото на името на номенклатурата присъства „Поставяне“, в този случай количеството се увеличава с 0,2; ако не присъства, то се увеличава с 0,35.

Година ([Документ.Дата])

Ще се покаже годината, когато документът е записан/осчетоводен.

| Повече ▼ сложен пример, без декриптиране.

Избор
Когато Quarter([Document.Date]) = 1 И подниз(Номенклатура, 1, 5) = "Поставяне"
След това количество * 0,2
Друг избор
Когато Quarter([Document.Date]) = 2
След това количество * 0,3
Друг избор
Когато Quarter([Document.Date]) = 3
След това количество * 0,4
Друг избор
Когато Quarter([Document.Date]) = 4
След това количество * 0,5
Край
Край
Край
Край