1s ckd изчислени полета в етапиращата таблица. Език за изразяване на системата за съставяне на данни (1Cv8). Процесът на създаване на доклад за ACS

Влезте като студент

Влезте като ученик, за да получите достъп до учебните материали

Система за съставяне на данни 1С 8.3 за начинаещи: помислете за резултатите (ресурси)

Целта на този урок ще бъде:

  • Напишете отчет, който показва списък с храни (указател за храни), тяхното калорично съдържание и вкус.
  • Групирайте продуктите по цвят.
  • Научете за обобщаване (ресурси) и изчислени полета.

Създаване на нов отчет

Както в предишните уроци, отваряме базата " Деликатес"в конфигуратора и създайте нов отчет чрез менюто" Файл"->"Ново ...":

Вид на документа - външен доклад:

Под формата на настройка на отчета напишете името " Урок 3"и натиснете бутона" Отворена схема за съставяне на данни":

Оставете името на схемата по подразбиране и щракнете върху „ Готов":

Добавяне на заявка чрез конструктора

На " Набор от данни"бутане зеленознак плюс и изберете елемента " Добавяне на набор от данни - заявка":

Вместо да пишем текста на заявката ръчно, стартираме отново конструктор на заявки:

На " Таблици"плъзнете таблицата" Храна"от първата колона към втората:

Избор от таблицата " Храна"полета, които ще поискаме. За да направите това, плъзнете полетата" Име", "Вкус", "Цвят" и " Калорично съдържание"от втората колона към третата:

Оказа се така:

Натисни бутона " Добре"- текстът на заявката е генериран автоматично:

Ние формираме настройките за представяне на доклада

Отидете на отметката " Настройки"и кликнете върху магическа пръчка, да се обади конструктор за настройки:

Избор на типа отчет “ Списък... "и натиснете бутона" По -нататък":

Плъзнете от лявата колона до дясните полета, които ще се покажат в списъка, и щракнете върху „ По -нататък":

Плъзнете от лявата колона до дясното поле " Цвят"- ще бъде групиранередове в доклада. Кликнете върху „ Добре":

И ето резултата от работата на конструктора. Йерархията на нашия доклад:

  • доклад като цяло
  • групиране „Цвят“
  • подробни записи - редове с имена на храни

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

Промяна на реда на колоните

Но нека променете редаколони (стрелки нагоре и надолу), така че да изглежда като на снимката по -долу:

Нека запазим отчета и го отворим отново в потребителски режим:

Страхотно, много по -добре.

Обобщаване (количество) по съдържание на калории

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

За това има механизъм за изчисляване на ресурсите.

Отидете на „ Ресурси"и плъзнете полето" Калорично съдържание"(ще го обобщим) от лявата колона вдясно.

В този случай в полето за израз изберете от падащия списък " Количество (калории)", тъй като общата сума ще бъде сумата от всички елементи, включени в общата сума:

Запазваме и генерираме отчет:

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

Обобщаване (средно) по съдържание на калории

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

Не можете да докоснете вече съществуващата колона „Калории“ - следователно общата сума вече се показва в нея нека вземем друго поле, което ще бъде точно копие на полето „Съдържание на калории“.

За да създадем такова „виртуално“ поле, ще използваме механизма изчислени полета.

Отидете на отметката " Изчислени полета"и щракнете зеленознак плюс:

В колона " Път на данни"напишете името на новото поле ( заедно, без интервали). Нека се нарича " Средно калорично съдържание"и в колоната" Израз"пишем името на съществуващо поле, въз основа на което ще се изчисли новото поле. Пишем там" Калорично съдържание". Говорителят" Заглавие"ще се попълни автоматично.

Добавихме ново поле (" Средно калорично съдържание"), но няма да се появи в отчета сам по себе си - трябва да се обадите конструктор за настройки("вълшебна пръчка") или добавете това поле ръчно.

Нека да направим второначин. За да направите това, отидете на „ Настройки", избирам" Доклад"(в края на краищата искаме да добавим полето като цяло към отчета), изберете раздела по -долу" Избрани полета"и плъзнете полето" Средно калорично съдържание"от лявата колона вдясно:

Оказа се така:

Запазваме и генерираме отчет:

Полето се е появило и виждаме, че неговите стойности са стойностите на полето "Съдържание на калории". Глоба!

За да направим това, отново ще използваме вече познатия механизъм ресурси(обобщаване). Отидете на отметката " Ресурси"и плъзнете полето" Средно калорично съдържание"от лявата колона вдясно:

Освен това в колоната „ Израз"избирам" Средно (Средна калория)":

Запазваме и генерираме отчет:

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

Знаете ли защо са се появили (стойности не по групи)? Защото, когато добавихме полето " Средно калорично съдържание"в настройките на отчета, във втората стъпка, която избрахме целия доклад като цялои това ново поле влезе в елемента " Подробно записи".

Нека поправим грешката. За да направим това, нека се върнем към „ Настройки", изберете" Подробни записи"първо отгоре (стъпка 2) и след това" Подробни записи"по -долу (стъпка 3), отидете на раздела" Избрано полета"и ще видим елемент в дясната му колона" Автоматичен".

Елемент " Автоматичен"не е едно поле. Това са няколко полета, които попадат тук автоматично въз основа на по -високите настройки.

За да видите какви са тези полета - кликнете върху „ Автоматичен" надяснобутон и изберете елемента " Разгъване":

Елемент " Автоматичен"разгънати в следните полета:

И тук е нашето поле " Средно калорично съдържание"който стигна тук от точката" Доклад"когато го завлякохме там. Просто свалям, отлитамквадратче до това поле, за да премахнете изхода.

Здравей скъпи читателю! Имаме още един урок по основите на системата за оформление. Запознахте се с функциите на езика за израз на ACS, видяхте особеностите на системата за оформление, както и разбрахте основните настройки на полетата за оформление. Сега ще разгледаме някои нови материали. Отивам!

Допълнителни настройки за полета ACS.

Говорителят „Тип стойност“ви позволява да посочите типа данни за полето за оформление. Защо да посочвате типа например за полето „Номенклатура“, ако вече знаете какъв тип е той? Това се изисква, ако полето за оформление е от сложен тип. Можете да изберете конкретен тип, след което при избора на това поле ще бъдат избрани стойностите от този тип.

Говорителят „Налични стойности“ви позволява да посочите наличните за избор стойности и да ограничите избора на потребителя до определени рамки.

Говорителят "Регистрация"ви позволява да зададете външния вид на поле за оформление, без да използвате оформления. Можете да зададете цвят на шрифта, цвят на рамката, ориентация на текста и т.н.

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

Изчислени полета

В раздела „Изчислени полета“ в състава на данните можете да създадете свои собствени изчислени полета.

Защо имате нужда от изчислени полета, когато можете да ги създадете на ниво заявка? Не всички полета могат да бъдат описани с помощта на заявка. Ако трябва да съставите сложно поле от различни набори от данни, например от типовете заявки и обекти, тогава не можете да правите без изчислени полета. Не можете да добавите поле за съставяне на данни, ако източникът на данни е заявка и е автоматично попълване, а с помощта на изчислени полета можете да добавите колкото искате полета.

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

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

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

Добавяме набор от данни от типа заявка и пишем проста заявка, ръчно или с помощта на конструктора на заявка:

1. Настройте заявка в ACS.

2. Конфигуриране на изчислените полета в ACS

3. Изпълнете настройката за съставяне на данни в раздела настройки

4. Стартиране на 1С Enterprise 8.2.14. Отваряме доклада. Ние формираме, получаваме.

Описание на самите нови функции:

1. Текущата дата ()

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

2. ИЗЧИСЛЕТЕ ИЗРАЗЯВАНЕ ()

Синтаксис:

Оценете израза (<Выражение>, <Группировка>, <ОбластьВычисления>, <Начало>, <Конец>, <Сортировка>, <ИерархическаяСортировка>, <ОбработкаОдинаковыхЗначенийПорядка>)

Описание:

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

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

Функцията не може да бъде приложена към групиране при избора на група от това групиране. Например при избора на номенклатурното групиране не можете да използвате израза CalculateExpression ("Sum (SumTurnover)", "TotalTotal")> 1000. Но такъв израз може да се използва в йерархичен подбор.

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

При изчисляване на интервални изрази за общата сума (параметърът Grouping е зададен на General Total) се приема, че няма записи за изчисляване на подробни данни и изчисляване на съвкупни функции.

Композиторът на оформление, когато генерира израз за функцията EvaluateExpression, ако изразът за подреждане съдържа полета, които не могат да се използват в групирането, замества функцията EvaluateExpression с NULL.

Настроики

<Выражение>

Тип: Низ. Изразът за оценка.

<Группировка>

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

Например:

Сума (Sales.SumTurnover) / Изчислете („Сума (Sales.SumTurnover)“, „TotalTotal“)

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

<ОбластьВычисления>

Тип: Низ. Параметърът може да приема следните стойности:

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

При изчисляване на функцията EvaluateExpression ()със стойността GroupNoResource за групови записи, които не са групирани по ресурс, функцията се изчислява по същия начин, както би била изчислена, ако стойността на параметъра е равна на Grouping.

Композиторът на шаблона за съставяне на данни, когато генерира шаблона за съставяне на данни, когато показва полето с ресурси, чрез което се извършва групирането в шаблона, поставя израз, изчислен с помощта на функцията EvaluateExpression (), задавайки параметъра GroupNoResource. За останалите ресурси редовните изрази на ресурси са групирани по ресурси.

<Начало>

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

<Конец>

Тип: Низ. Показва към кой запис да продължи фрагмента, в който да се оценят съвкупните функции на израза. Стойността може да бъде една от следните:

  • Първо (Първо). Трябва да получите първия запис за групиране. След думата в скоби можете да посочите израз, резултатът от който ще се използва като отместване от началото на групирането. Получената стойност трябва да бъде цяло число, по -голямо от нула. Например Първо (3) - получаване на третия запис от началото на групирането.

Ако първият запис излиза извън границите на групиране, тогава се счита, че няма записи. Например, ако има 3 записа и искате да получите Първо (4), тогава се счита, че няма записи.

  • Последно (Последно). Трябва да получите най -новия запис за групиране. След думата в скоби може да бъде посочен израз, резултатът от който ще се използва като отместване от края на групирането. Получената стойност трябва да бъде цяло число, по -голямо от нула. Например Last (3) - получаване на третия запис от края на групирането.

Ако последният запис е извън границите на групиране, тогава се счита, че няма записи. Например, ако има 3 записа и искате да получите Последния (4), тогава се счита, че няма записи.

  • Предишни. Трябва да получите предишния запис за групиране. След думата в скоби може да бъде посочен израз, резултатът от който ще се използва като отместване обратно от текущия запис за групиране. Например Предишен (2) - вземете предишния от предишния запис.

Ако предишният запис надхвърля групирането (например за втория запис за групиране трябва да получите Предишен (3), тогава се получава първият запис за групиране.

При извличане на предишния запис за общото групиране се счита, че първият запис е получен.

  • Напред (Напред). Трябва да получите следващия запис за групиране. След думата в скоби може да бъде посочен израз, резултатът от който ще се използва като отместване напред от текущия запис за групиране. Например Next (2) - вземете следващия от следващия запис.

Ако следващият запис излезе от групирането, тогава се счита, че няма записи. Например, ако има 3 записа и Next () е получен за третия запис, тогава няма записи.

Когато се получи следващият запис за общото групиране, се счита, че няма запис.

  • Ток (Ток). Трябва да получите текущия запис.

При извличане на общата сума за групиране се получава първият запис.

  • BoundaryValue. Необходимостта от получаване на запис на посочената стойност. След думата BoundedValue в скоби, трябва да посочите израз със стойността на който искате да стартирате фрагмента, първото поле за подреждане.

Като запис ще бъде получен първият запис, чиято стойност на полето за подреждане е по -голяма или равна на посочената стойност. Например, ако полето Period се използва като поле за подреждане и има стойности 01/01/2010, 01/02/2010, 01/03/2010 и искате да получите BoundingValue (DateTime (2010) , 1, 15)), тогава ще получите запис с дата 01.02.2010 г.

<Сортировка>

Тип: Низ. Изброява изрази, разделени със запетаи, които описват правилата за подреждане. Ако не е посочено, подреждането се извършва по същия начин, както за групирането, за което се оценява изразът. След всеки израз можете да посочите ключовата дума Възходящо (за възходящ ред), Низходящо (за низходящ ред) и Автоматично подреждане (за подреждане на референтните полета по полетата, по които искате да подредите референтния обект). Думата Автоматично подреждане може да се използва както с възходящ, така и с низходящ.

<ИерархическаяСортировка>

Тип: Низ. Същото като сортирането. Използва се за подреждане на йерархични записи. Ако не е посочено, конструкторът на оформление генерира подреждане според реда, посочен в параметъра Сортиране.

<ОбработкаОдинаковыхЗначенийПорядка>

Тип: Низ. Указва правилото за определяне на предишния или следващия запис в случай, че има няколко записа със същата стойност на поръчка:

  • Отделно означава, че последователност от подредени записи се използва за определяне на предишните и следващите записи. Стойност по подразбиране.
  • Заедно означава, че предишният и следващият запис се определят въз основа на стойностите на подреждащите изрази.

Например, ако получената последователност е подредена по дата:

дата Пълно име Смисъл
1 01 януари 2001 г. Иванов М. 10
2 02 януари 2001 г. Петров С. 20
3 03 януари 2001 г. Сидоров Р. 30
4 04 януари 2001 г. Петров С. 40

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

Предишният запис на запис 3 ще бъде запис 2.

§ ако изчисленият фрагмент е дефиниран като Current, Current (съответно началните и крайните параметри), тогава за запис 2 този фрагмент ще се състои от един запис 2. Expression Calculate Expression (“Sum (Value)”, Current, Current) ще да бъде равно на 20.

Ако стойността на параметъра е Заедно, тогава:

Предишният запис към запис 3 ще бъде запис 1.

§ ако изчисленият фрагмент е дефиниран като Текущ, Текущ (съответно началните и крайните параметри), тогава за запис 2 този фрагмент ще се състои от записи 2 и 3. Израз. ще бъде равно на 50.

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

Изчислете израза („Сума (SumTurnover)“, „Първо“, „Текущо“)

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

Оценете израза („Курс“, „Предишен“)

Списък новфункции:

EvaluateExpressionGroupedArray(<Выражение>, <ВыражениеПолейГруппировки>, <ОтборЗаписей>, <ОтборГруппировок>) –

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

EvaluateExpressionGroupedValuesTable(<Выражения>, <ВыражениеПолейГруппировки>, <ОтборЗаписей>, <ОтборГруппировок>) –

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

ValueFilled(<Выражение>) - Връща True, ако стойността е различна от стойността по подразбиране на дадения тип, различна от NULL, различна от празна препратка, различна от Undefined. За булеви стойности се извършва нулева проверка. За низове се извършва проверка за липсата на не-интервали

Формат(<Выражение>, <Форматная строка>) - Вземете форматирания низ на предадената стойност. Низът за формат се задава в съответствие с низа за форматиране на системата 1С: Предприятие.

Подниза(<Выражение>, <Начальные символ>, <ДлинаПодстроки>) - Тази функция е предназначена за извличане на подниза от низ.

Дължина на линията(<Выражение>) - Функцията е предназначена да определи дължината на низа. Параметърът е израз от низ

Линия(<Выражение>) - Ако даден масив е предаден като параметър, функцията връща низ, съдържащ низови представяния на всички елементи на масива, разделени със символи “; „. Ако таблица със стойности се предава като параметър, функцията връща низ, съдържащ низови представяния на всички редове от таблицата със стойности, а представленията на клетките на всеки ред са разделени с „; “, И низове - със знак за предаване на ред. Ако някой елемент има празно представяне на низ, тогава низът се показва вместо неговото представяне<Пустое значение>.

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

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

Добавяме набор от данни от типа заявка и пишем проста заявка, ръчно или с помощта на конструктора на заявка:

1. Настройте заявка в ACS.

2. Конфигуриране на изчислените полета в ACS

3. Изпълнете настройката за съставяне на данни в раздела настройки

4. Стартиране на 1С Enterprise 8.2.14. Отваряме доклада. Ние формираме, получаваме.

Описание на самите нови функции:

1. Текущата дата ()

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

2. ИЗЧИСЛЕТЕ ИЗРАЗЯВАНЕ ()

Синтаксис:

Оценете израза (,)

Описание:

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

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

Функцията не може да бъде приложена към групиране при избора на група от това групиране. Например при избора на номенклатурата за групиране не можете да използвате израза CalculateExpression ("Сума (SumTurnover)", "TotalTotal")> 1000... Но такъв израз може да се използва при йерархичен подбор.

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

При изчисляване на интервални изрази за общата сума (параметърът Grouping е зададен на General Total) се приема, че няма записи за изчисляване на подробни данни и изчисляване на съвкупни функции.

Свързване на оформление при генериране на израз на функция EvaluateExpression, в случай че изразът за подреждане съдържа полета, които не могат да се използват в групирането, заменя функцията EvaluateExpressionНа НУЛА.

Настроики

Тип: Линия... Изразът за оценка.

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

Например:

Сума (Sales.Turnover Amount) / Изчислете ("Сума (Sales.Turnover Amount)", "TotalTotal")

В този пример резултатът ще бъде съотношението на сумата върху полето Sales.AmountTurnoverгрупиране на записи към сумата на едно и също поле в цялото оформление;

Тип: Линия... Параметърът може да приема следните стойности:

· Общият резултат- изразът ще бъде оценен за всички записи на групиране.

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

· Групиране- изразът ще бъде оценен за текущия групов запис на групирането.

· GroupingNonResource- когато се изчислява функция за групов запис по ресурси, изразът ще бъде изчислен за първия групов запис на оригиналното групиране.

При изчисляване на функцията EvaluateExpression () със значението GroupingNonResourceза групови записи, които не са групирани по ресурси, функцията се изчислява по същия начин, както би била изчислена, ако стойността на параметъра е равна на стойността Групиране.

Композиторът на шаблона за съставяне на данни, когато генерира шаблона за съставяне на данни, когато показва полето с ресурси, чрез което се извършва групирането в шаблона, поставя израз, изчислен с помощта на функцията EvaluateExpression () , задавайки параметъра GroupingNonResource... За останалите ресурси редовните изрази на ресурси са групирани по ресурси.

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

· Първо

· Последно

· Предишни

· Напред (Напред)

· Текущ

· Ограничаваща стойност(BoundaryValue) Ограничаваща стойност

Тип: Линия... Показва към кой запис да продължи фрагмента, в който да се оценят съвкупните функции на израза. Стойността може да бъде една от следните:

· Първо... Трябва да получите първия запис за групиране. След думата в скоби можете да посочите израз, резултатът от който ще се използва като отместване от началото на групирането. Получената стойност трябва да бъде цяло число, по -голямо от нула. Например Първо (3) - получаване на третия запис от началото на групирането.

Ако първият запис излиза извън границите на групиране, тогава се счита, че няма записи. Например, ако има 3 записа и искате да получите първия (4), тогава се счита, че няма записи.

· Последно... Трябва да получите най -новия запис за групиране. След думата в скоби може да бъде посочен израз, резултатът от който ще се използва като отместване от края на групирането. Получената стойност трябва да бъде цяло число, по -голямо от нула. Например Last (3) - получаване на третия запис от края на групирането.

Ако последният запис е извън границите на групиране, тогава се счита, че няма записи. Например, ако има 3 записа и искате да получите Последния (4), тогава се счита, че няма записи.

· Предишни... Трябва да получите предишния запис за групиране. След думата в скоби може да бъде посочен израз, резултатът от който ще се използва като отместване обратно от текущия запис за групиране. Например Предишен (2) - вземете предишния от предишния запис.

Ако предишният запис надхвърля групирането (например за втория запис за групиране трябва да получите Предишен (3), тогава се получава първият запис за групиране.

При извличане на предишния запис за общото групиране се счита, че първият запис е получен.

· Напред (Напред)... Трябва да получите следващия запис за групиране. След думата в скоби може да бъде посочен израз, резултатът от който ще се използва като отместване напред от текущия запис за групиране. Например Next (2) - вземете следващия от следващия запис.

Ако следващият запис излезе от групирането, тогава се счита, че няма записи. Например, ако има 3 записа и Next () е получен за третия запис, тогава се счита, че няма записи.

Когато се получи следващият запис за общото групиране, се счита, че няма запис.

· Текущ... Трябва да получите текущия запис.

При извличане на общата сума за групиране се получава първият запис.

· Ограничаваща стойност(BoundaryValue)... Необходимостта от получаване на запис на посочената стойност. След думата Ограничаваща стойноств скоби трябва да посочите израз със стойността на който искате да стартирате фрагмент, първото поле за подреждане.

Като запис ще бъде получен първият запис, чиято стойност на полето за подреждане е по -голяма или равна на посочената стойност. Например, ако полето Period се използва като поле за подреждане и има стойности 01/01/2010, 01/02/2010, 01/03/2010 и искате да получите ConstrainingValue (DateTime (2010, 1, 15)), тогава ще получите запис с дата 02/01/2010.

Тип: Линия... Изброява изрази, разделени със запетаи, които описват правилата за подреждане. Ако не е посочено, подреждането се извършва по същия начин, както за групирането, за което се оценява изразът. След всеки израз можете да посочите ключова дума Възраст(да поръчате във възходящ ред), Низходящ(за низходящ ред) и Автоматично поръчване(за да подредите референтните полета по полетата, по които искате да подредите референтния обект). Word Автоматично поръчванеможе да се използва като с дума Възраст, така и с думата Низходящ.

Тип: Линия... Подобно на параметъра Сортиране... Използва се за подреждане на йерархични записи. Ако не е посочено, конструкторът на оформление генерира подреждането според подреждането, посочено в параметъра Сортиране.

Тип: Линия... Указва правилото за определяне на предишния или следващия запис в случай, че има няколко записа със същата стойност на поръчка:

· Отделнопоказва, че последователност от подредени записи се използва за дефиниране на предишните и следващите записи. Стойност по подразбиране.

· Заеднопоказва, че предишните и следващите записи се определят въз основа на стойностите на изразите за подреждане.

Например, ако получената последователност е подредена по дата:

дата Пълно име Смисъл
1 01 януари 2001 г.

Иванов М.

10
2 02 януари 2001 г. Петров С. 20
3 03 януари 2001 г. Сидоров Р. 30
4 04 януари 2001 г. Петров С. 40

Отделно, тогава:

Предишният запис на запис 3 ще бъде запис 2.

Ток, Ток(съответно параметрите Старти Край), тогава за запис 2 този фрагмент ще се състои от един запис 2. Изразът ще бъде равен на 20.

Ако стойността на параметъра е Заедно, тогава:

Предишният запис към запис 3 ще бъде запис 1.

§ ако изчисленият фрагмент е дефиниран като Ток, Ток(съответно параметрите Старти Край), тогава за запис 2 този фрагмент ще се състои от записи 2 и 3. Израз Изчислете израза ("Сума (стойност)", Текущ, Текущ)ще бъде равно на 50.

Когато е посочено, стойността на параметъра е Заедно, в параметри Старти Крайне можете да посочите изместване за позиции Първо, последно, предишно, следващо.

Изчислете израза ("Сума (SumTurnover)", "Първо", "Текущо")

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

Оценете израза (курс, предишен)

Списък новфункции:

EvaluateExpressionGroupedArray(,) -

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

EvaluateExpressionGroupedValuesTable(,) -

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

ValueFilled() - Връща True, ако стойността е различна от стойността по подразбиране на дадения тип, различна от NULL, различна от празна препратка, различна от Undefined. За булеви стойности се извършва нулева проверка. За низове се извършва проверка за липсата на не-интервали

Формат(,) - Вземете форматирания низ на предадената стойност. Низът за формат се задава в съответствие с низа за форматиране на системата 1С: Предприятие.

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

Дължина на линията() - Функцията е предназначена да определи дължината на низа. Параметърът е израз от низ

Линия() - Ако даден масив е предаден като параметър, функцията връща низ, съдържащ низови представяния на всички елементи на масива, разделени със знаци ";". Ако таблица със стойности се предава като параметър, функцията връща низ, съдържащ низови представяния на всички редове от таблицата със стойности, с представяне на клетки на всеки ред, разделени с символи ";", и низове - с емисия на редове. Ако някой елемент има празно представяне на низ, тогава се показва низ вместо неговото представяне.

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

  1. кумулативна сума в групирането;
  2. текуща сума в кръстосана таблица;
  3. получаване на предишната стойност;
  4. изход на PM в един ред.

1. Получаване на индикатора на кумулативна основа

Нека вземем броя на стоките на кумулативна основа на ниво групиране. За да направим това, създаваме изчислено поле (виж Фигура 1).
В раздела „Ресурси“ задайте функцията за изчисленото поле:
Изчислете израза ("Сума (AmountTurnover)", "Първо", "Текущо")
което ще сумира броя на продуктите от първия запис до текущия (виж фигура 2).

Ако искате да получите броя на стоките на кумулативна сума на ниво подробни записи, тогава функцията CalculateExpression е зададена за изчисленото поле в раздела "Изчислени полета" (виж Фигура 3).
В зависимост от нивото на получаване на кумулативната сума, ние създаваме групиране (виж Фигура 4): на ниво ресурс - групиране по стоки, на ниво DZ - групиране на подробни записи.
Фигура 4. Групиране на доклада с кумулативна сума

2. Получаване на стойността на индикатора от предишния ред

Нека вземем валутния курс за датата и предишната дата. За да направите това, създайте изчислено поле и напишете следния израз в полето за израз (вижте Фигура 5):
CalculateExpression (курс, предишен, предишен)
която ще вземе предишната стойност на валутния курс за текущия ред, последният параметър на функцията ограничава извличането на данни.
Тъй като работим на ниво подробни записи, отидете директно в раздела „Настройки“ и създайте групиране - подробни записи.

3. Получаване на индикатор на кумулативна сума в кръстосан раздел

Нека вземем броя на стоките на кумулативна основа в контекста на периода. За да направим това, създаваме изчислено поле (виж Фигура 1). В раздела "Ресурси" за изчислено поле ще посочим следния израз (виж Фигура 6):
Изчислете израза ("Сума (NumberTurnover)", "Период", "Първо", "Текущо")
което на ниво групиране ще изчислява количеството стоки в интервала от първия ред до текущия в контекста на периода за всяка позиция.
В раздела „Настройки“ създайте таблица с групиране по елементи в ред и групиране по точки в колона (вижте Фигура 7).

4. Извеждане на данни от табличен раздел в един ред

Методите за показване на данни от табличен раздел в един ред, включително методът, използващ функцията EvaluateExpression, са обсъдени в статията