계산 된 필드 데이터 구성 스키마. 데이터 구성 시스템 표현 언어 기능

데이터 구성 시스템 표현 언어

데이터 구성 시스템의 표현 언어는 시스템의 다양한 부분에서 사용되는 표현을 작성하도록 설계되었습니다.

표현식은 다음 하위 시스템에서 사용됩니다.

  • 데이터 구성 스키마-계산 된 필드, 총 필드, 관계 표현식 등을 설명합니다.
  • 데이터 구성 설정-사용자 정의 필드 표현식을 설명합니다.
  • 데이터 구성 템플릿-데이터 세트 관계 표현식 설명, 템플릿 매개 변수 설명 등

리터럴

표현식은 리터럴을 포함 할 수 있습니다. 다음 유형의 리터럴이 가능합니다.

  • 선;
  • 번호;
  • 날짜;
  • 부울.

문자열 리터럴은 "" "문자로 작성됩니다. 예를 들면 다음과 같습니다.

"문자열 리터럴"

문자열 리터럴 내에 "" "문자를 사용해야하는 경우 이러한 문자를 두 개 사용해야합니다.

예를 들면 :

"리터럴" "따옴표" ""

번호

숫자는 공백없이 십진수 형식으로 기록됩니다. 소수 부분은 기호 "."로 구분됩니다. 예를 들면 :

10.5 200

날짜

날짜 리터럴은 DATETIME 키 리터럴을 사용하여 작성됩니다. 이 키워드 뒤에는 쉼표로 구분 된 대괄호 안에 년, 월, 일,시, 분, 초가 나열됩니다. 시간은 선택 사항입니다.

예를 들면 :

DATE TIME (1975, 1, 06)-1975 년 1 월 6 일 DATE (2006, 12, 2, 23, 56, 57)-2006 년 12 월 2 일, 23 시간 56 분 57 초, 23 시간 56 분 57 초

부울

부울 값은 True, False 리터럴을 사용하여 작성할 수 있습니다.

다른 유형의 리터럴 (시스템 열거, 사전 정의 된 데이터)을 지정하려면 다음을 사용하십시오. 예어 괄호로 묶인 리터럴 이름이 뒤에 오는 값.

값 (계정 유형. 활성)

숫자 연산

단항-

이 연산은 숫자의 부호를 반대로하기위한 것입니다. 예를 들면 :

Sales.Number

단항 +

이 작업은 번호에 대한 작업을 수행하지 않습니다. 예를 들면 :

Sales.Number

바이너리-

이 연산은 두 숫자의 차이를 계산하도록 설계되었습니다. 예를 들면 :

잔액 및 회전율. 초기 잔액-잔액 및 회전율. 최종 잔액 및 회전율. 초기 잔액-100400-357

바이너리 +

이 연산은 두 숫자의 합을 계산하도록 설계되었습니다. 예를 들면 :

잔액 및 회전율. 초기 잔액 + 잔액 및 회전율. 전환 잔액 및 회전율. 초기 잔액 + 100400 + 357

구성

이 연산은 두 숫자의 곱을 계산하도록 설계되었습니다. 예를 들면 :

명명법. 가격 * 1.2 2 * 3.14

분할

이 연산은 한 피연산자를 다른 피연산자로 나눈 결과를 얻기위한 것입니다. 예를 들면 :

명명법. 가격 / 1.2 2 / 3.14

부서의 나머지

이 연산은 한 피연산자를 다른 피연산자로 나눈 나머지를 얻기위한 것입니다. 예를 들면 :

명명법 가격 % 1.2 2 % 3.14

문자열에 대한 작업

연결 (이진 +)

이 작업은 두 문자열을 연결하기위한 것입니다. 예를 들면 :

명명법. 문서 + ":"+ 명명법. 이름

처럼

이 작업은 문자열이 전달 된 패턴과 일치하는지 확인합니다.

LIKE 연산자의 값은 다음과 같은 경우 TRUE입니다.<Выражения> 패턴과 일치하고 그렇지 않으면 FALSE입니다.

다음 문자<Строке_шаблона> 다음 줄 문자 외에 의미가 있습니다.

  • %-백분율 : 0 개 이상의 임의 문자를 포함하는 시퀀스입니다.
  • _-밑줄 : 임의의 문자 하나;
  • […]-대괄호 안에있는 하나 이상의 문자 : 하나의 문자, 대괄호 안에 나열된 문자. 열거에는 범위 (예 : 범위의 끝을 포함하여 범위에 포함 된 임의의 문자)를 의미하는 a-z와 같은 범위가 포함될 수 있습니다.
  • [^ ...]-대괄호 안에 부정 아이콘 뒤에 하나 이상의 문자가 있습니다. 부정 아이콘 뒤에 나열된 문자를 제외한 모든 문자;

다른 기호는 그 자체를 의미하며 추가 의미를 갖지 않습니다. 나열된 문자 중 하나를 자신으로 기록해야하는 경우 앞에 와야합니다.<Спецсимвол>ESCAPE 키워드 뒤에 지정됩니다.

예를 들어, 템플릿

"% ABC [abcg] \\ _ abc %"특수 기호 "\\"

일련의 문자로 구성된 하위 문자열을 의미합니다. 문자 A; 문자 B; 문자 B; 한 자리; 문자 a, b, c 또는 d 중 하나; 밑줄 문자; 편지 a; 편지 b; 편지 c. 또한이 시퀀스는 라인의 임의의 위치에서 시작하여 찾을 수 있습니다.

비교 작업

같이

이 연산은 두 피연산자가 같은지 비교하기위한 것입니다. 예를 들면 :

Sales.Contractor \u003d Sales.NomenclatureMainSupplier

같지 않음

이 연산은 두 피연산자가 다른지 비교하기위한 것입니다. 예를 들면 :

판매, 계약자<> Sales.NomenclatureMainSupplier

적게

이 연산은 첫 번째 피연산자가 두 번째 피연산자보다 작은 지 확인하기위한 것입니다. 예를 들면 :

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

이 연산은 첫 번째 피연산자가 두 번째 피연산자보다 큰지 확인하기위한 것입니다. 예를 들면 :

SalesCurrent.Total\u003e SalesPast.Amount

작거나 같음

이 연산은 첫 번째 피연산자가 두 번째 피연산자보다 작거나 같은지 확인하도록 설계되었습니다. 예를 들면 :

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

더 많거나 같음

이 연산은 첫 번째 피연산자가 두 번째 피연산자보다 크거나 같은지 확인하기위한 것입니다. 예를 들면 :

SalesCurrent.Amount\u003e \u003d SalesPast.Amount

작업 B

이 작업은 전달 된 값 목록에 값이 있는지 확인합니다. 값이 발견되면 작업 결과는 True이고 그렇지 않으면 False입니다. 예를 들면 :

품목 B (& Item1, & Item2)

값이 데이터 세트에 있는지 확인하는 작업

작업은 지정된 데이터 세트에 값이 있는지 확인합니다. 유효성 검사 데이터 집합에는 하나의 필드가 포함되어야합니다. 예를 들면 :

판매. 상대방 대 상대방

NULL 값을 확인하는 작업

이 연산은 값이 NULL이면 True를 반환합니다. 예를 들면 :

Sales.Contractor가 NULL입니다.

NULL 부등식 값을 확인하는 작업

값이 NULL이 아니면이 작업은 True를 반환합니다. 예를 들면 :

Sales.Contractor가 NULL이 아닙니다.

논리적 작업

논리 연산은 부울 식을 피연산자로 사용합니다.

작동하지 않음

연산은 피연산자가 False이면 True를 반환하고 피연산자가 True이면 False를 반환하지 않습니다. 예를 들면 :

NOT Document.Consignee \u003d Document.Shipper

작업 및

AND 연산자는 두 피연산자가 모두 True이면 True를 반환하고 피연산자 중 하나가 False이면 False를 반환합니다. 예를 들면 :

Document.Consignee \u003d Document.Shipper AND Document.Consignee \u003d & 상대방

OR 작업

OR 연산은 피연산자 중 하나가 True이면 True를 반환하고 두 피연산자가 False이면 False를 반환합니다. 예를 들면 :

Document.Consignee \u003d Document.Carrier OR Document.Consignee \u003d & 상대방

집계 함수

집계 함수는 데이터 세트에서 일부 작업을 수행합니다.

Sum 집계 함수는 모든 세부 레코드에 대한 인수로 전달 된 식 값의 합계를 계산합니다. 예를 들면 :

금액 (Sales.AmountTurnover)

Count 함수는 널이 아닌 값의 수를 계산합니다. 예를 들면 :

수량 (판매. 계약자)

다른 수

이 함수는 고유 값의 수를 계산합니다. 예를 들면 :

수량 (다양한 판매. 계약자)

최고

이 함수는 최대 값을 얻습니다. 예를 들면 :

최대 (Balances.Quantity)

최저한의

이 함수는 최소값을 가져옵니다. 예를 들면 :

최소 (Balances.Quantity)

평균

이 함수는 NULL이 아닌 값에 대한 평균을 가져옵니다. 예를 들면 :

평균 (Balances.Amount)

기타 작업

작업 SELECT

Operation Select는 특정 조건이 충족 될 때 여러 값 중 하나를 선택하도록 설계되었습니다. 예를 들면 :

Amount\u003e 1000 Then Amount Else 0 End 일 때 선택

두 값 비교 규칙

비교 된 값의 유형이 서로 다른 경우 값 간의 관계는 유형의 우선 순위에 따라 결정됩니다.

  • NULL (가장 낮음)
  • 부울;
  • 번호;
  • 날짜;
  • 선;
  • 참조 유형

다양한 참조 유형 간의 관계는 유형에 해당하는 테이블의 참조 번호를 기반으로 결정됩니다.

데이터 유형이 일치하면 다음 규칙에 따라 값이 비교됩니다.

  • 부울 유형은 FALSE 값보다 큰 TRUE 값을 갖습니다.
  • 숫자 유형에는 숫자에 대한 일반적인 비교 규칙이 있습니다.
  • 날짜 유형에 이후 날짜보다 이전 날짜가 있습니다.
  • 문자열 유형-데이터베이스의 확립 된 국가적 특성에 따른 문자열 비교;
  • 참조 유형은 값 (레코드 번호 등)을 기준으로 비교됩니다.

NULL 작업

피연산자 중 하나의 값이 NULL 인 연산은 NULL이됩니다.

예외가 있습니다.

  • aND 연산은 피연산자가 False가 아닌 경우에만 NULL을 반환합니다.
  • oR 연산은 피연산자가 True가 아닌 경우에만 NULL을 반환합니다.

운영 우선 순위

작업의 우선 순위는 다음과 같습니다 (첫 번째 줄의 우선 순위가 가장 낮음).

  • B IS NULL은 NULL이 아닙니다.
  • =, <>, <=, <, >=, >;
  • 바이너리 +, 바이너리-;
  • *, /, %;
  • 단항 +, 단항-.

데이터 구성 시스템 표현 언어 기능

계산하다

Calculate 함수는 일부 그룹화 컨텍스트에서 식을 평가하도록 설계되었습니다. 이 함수에는 다음 매개 변수가 있습니다.

  • 표현. 유형 문자열. 계산 된 표현식을 포함합니다.
  • 그룹화. 유형 문자열. 식을 평가할 컨텍스트의 그룹화 이름을 포함합니다. 빈 문자열이 그룹화 이름으로 사용되는 경우 계산은 현재 그룹화 컨텍스트에서 수행됩니다. GeneralTotal 문자열이 그룹화 이름으로 사용되는 경우 총합계 컨텍스트에서 계산이 수행됩니다. 그렇지 않으면 해당 이름의 상위 그룹 컨텍스트에서 계산이 수행됩니다. 예를 들면 :
금액 (Sales.SumTurnover) / 계산 ( "Amount (Sales.SumTurnover)", "TotalTotal")

이 예 결과적으로 전체 레이아웃의 동일한 필드 합계에 대한 그룹화 레코드의 "Sales.SumTurnover"필드 금액의 비율을 얻습니다.

수평

이 기능은 현재 녹음 레벨을 가져 오기위한 것입니다.

수평()

NumberOrder

다음 시퀀스 번호를 가져옵니다.

NumberOrder ()

NumberOrderInGroup

현재 그룹에서 다음 순차 번호를 반환합니다.

NumberOrderInGrouping ()

체재

전달 된 값의 형식화 된 문자열을 가져옵니다.

형식 문자열은 다음에 따라 설정됩니다. 형식 문자열 1C : 엔터프라이즈.

옵션 :

  • 값;
  • 형식 문자열.

형식 (Invoices.SumDoc, "NPT \u003d 2")

기간의 시작

옵션 :

    • 분;
    • 일;
    • 일주일;
    • 달;
    • 쿼터;
    • 열개의;
    • 반 년.

기간의 시작 (DateTime (2002, 10, 12, 10, 15, 34), "월")

결과:

01.10.2002 0:00:00

기간 종료

이 함수는 주어진 날짜에서 특정 날짜를 추출하도록 설계되었습니다.

옵션 :

  • 날짜. 날짜를 입력합니다. 지정된 날짜;
  • 기간 유형. 유형 문자열. 다음 값 중 하나를 포함합니다.
    • 분;
    • 일;
    • 일주일;
    • 달;
    • 쿼터;
    • 열개의;
    • 반 년.

EndPeriod (DateTime (2002, 10, 12, 10, 15, 34), "주")

결과:

13.10.2002 23:59:59

날짜에 추가

이 함수는 날짜에 특정 값을 추가하기위한 것입니다.

옵션 :

  • 확대 유형. 유형 문자열. 다음 값 중 하나를 포함합니다.
    • 분;
    • 일;
    • 일주일;
    • 달;
    • 쿼터;
    • 열개의;
    • 반 년.
  • 가치-날짜를 얼마나 늘려야 하는가. 유형 번호. 소수 부분은 무시됩니다.

날짜에 추가 (DateTime (2002, 10, 12, 10, 15, 34), "월", 1)

결과:

12.11.2002 10:15:34

날짜 차이

이 함수는 두 날짜 간의 차이를 가져 오도록 설계되었습니다.

옵션 :

  • 표현. 날짜를 입력합니다. 원래 날짜;
  • 표현. 날짜를 입력합니다. 빼기 날짜;
  • 차이 유형. 유형 문자열. 다음 값 중 하나를 포함합니다.
    • 둘째;
    • 분;
    • 일;
    • 달;
    • 쿼터;

차이 (날짜 / 시간 (2002, 10, 12, 10, 15, 34), 날짜 / 시간 (2002, 10, 14, 9, 18, 06), "요일")

결과:

하위 문자열

이 기능 문자열에서 부분 문자열을 추출하도록 설계되었습니다.

옵션 :

  • 선. 유형 문자열. 부분 문자열을 추출 할 문자열입니다.
  • 위치. 유형 번호. 문자열에서 추출 할 하위 문자열이 시작되는 문자의 위치.
  • 길이. 유형 번호. 선택할 하위 문자열의 길이입니다.

SUBSTRATE (계약 업체. 주소, 1, 4)

라인 길이

이 함수는 문자열의 길이를 결정하도록 설계되었습니다.

매개 변수 :

  • 선. 유형 문자열. 길이로 지정할 문자열입니다.

문자열 (Accounts.Address)

이 함수는 날짜 유형의 값에서 연도를 추출하도록 설계되었습니다.

매개 변수 :

  • 날짜. 날짜를 입력합니다. 연도가 결정되는 날짜입니다.

YEAR (위탁 일)

쿼터

이 함수는 날짜 유형의 값에서 분기 숫자를 추출하기위한 것입니다. 분기 번호는 일반적으로 1 ~ 4 범위입니다.

매개 변수

  • 날짜. 날짜를 입력합니다. 분기가 결정되는 날짜
QUARTER (위탁 일자)

이 함수는 날짜 유형의 값에서 월 수를 추출하기위한 것입니다. 월 번호는 일반적으로 1에서 12 사이입니다.

  • 날짜. 날짜를 입력합니다. 월이 결정되는 날짜입니다.
MONTH (인보이스 날짜)

올해의 날

이 함수는 날짜 유형의 값에서 연중 일을 가져 오도록 설계되었습니다. 연중 날짜는 일반적으로 1에서 365 (366) 사이입니다.

  • 날짜. 날짜를 입력합니다. 연중 날짜가 결정되는 날짜입니다.
DAY OF THE YEAR (인보이스 날짜)

이 함수는 날짜 유형의 값에서 날짜를 가져 오기위한 것입니다. 일반적으로 날짜는 1에서 31 사이입니다.

  • 날짜. 날짜를 입력합니다. 날짜가 결정되는 날짜입니다.
DAY (인보이스 날짜)

일주일

이 함수는 날짜 유형의 값에서 한 해의 주 번호를 가져 오기위한 것입니다. 한 해의 주 번호는 1부터 시작됩니다.

  • 날짜. 날짜를 입력합니다. 주 번호가 결정되는 날짜입니다.
WEEK (인보이스 날짜)

요일

이 함수는 날짜 유형의 값에서 요일을 가져 오기위한 것입니다. 요일은 일반적으로 1 (월요일)에서 7 (일요일) 사이입니다.

  • 날짜. 날짜를 입력합니다. 요일이 결정되는 날짜입니다.
요일 (인보이스 날짜)

이 함수는 날짜 유형의 값에서 시간을 가져 오도록 설계되었습니다. 시간 범위는 0에서 23까지입니다.

  • 날짜. 날짜를 입력합니다. 시간이 결정되는 날짜입니다.
HOUR (위탁 일)

이 함수는 날짜 유형의 값에서 분을 가져 오기위한 것입니다. 분은 0에서 59까지입니다.

  • 날짜. 날짜를 입력합니다. 분이 결정되는 날짜입니다.
MINUTE (인보이스 날짜)

둘째

이 함수는 날짜 유형의 값에서 초를 가져 오기위한 것입니다. 초의 범위는 0에서 59까지입니다.

  • 날짜. 날짜를 입력합니다. 분의 초가 결정되는 날짜입니다.
SECOND (인보이스 날짜)

표현하다

이 함수는 복합 유형을 포함 할 수있는 표현식에서 유형을 추출하도록 설계되었습니다. 표현식에 필수 유형이 아닌 유형이 포함 된 경우 NULL 값이 반환됩니다.

옵션 :

  • 변환 할 표현식입니다.
  • 유형 표시. 유형 문자열. 유형의 문자열을 포함합니다. 예 : "숫자", "문자열"등 원시 유형 외에 주어진 문자열 테이블의 이름을 포함 할 수 있습니다. 이 경우 지정된 테이블에 대한 링크를 표현하려고 시도합니다.

Express (Data.Props1, "번호 (10.3)")

YesNull

이 함수는 첫 번째 매개 변수의 값이 NULL 인 경우 두 번째 매개 변수의 값을 리턴합니다.

그렇지 않으면 첫 번째 매개 변수의 값이 반환됩니다.

YesNULL (Sum (Sales.SumTurnover), 0)

공통 모듈 기능

데이터 구성 엔진 표현식은 글로벌 함수에 대한 호출을 포함 할 수 있습니다. 공통 모듈 구성. 이러한 함수를 호출하는 데 추가 구문이 필요하지 않습니다.

이 예에서 "AbbreviatedName"함수는 일반 구성 모듈에서 호출됩니다.

공통 모듈 기능의 사용은 해당 데이터 구성 프로세서 매개 변수가 지정된 경우에만 허용됩니다.

또한 공통 모듈의 기능은 사용자 정의 필드 표현식에서 사용할 수 없습니다.

다가오는 8.2.14 릴리스를 고려하여 데이터 구성 시스템의 몇 가지 새로운 기능을 설명하려고합니다.

편집하기 쉽도록 외부 보고서에서 데이터 구성 스키마를 엽니 다.

쿼리 유형의 데이터 세트를 추가하고 수동으로 또는 쿼리 생성자를 사용하여 간단한 쿼리를 작성합니다.

1. ACS에서 요청을 설정합니다.

2. ACS에서 계산 된 필드 설정

3. 설정 탭에서 데이터 구성을 구성합니다.

4. 1C Enterprise 8.2.14를 시작합니다. 보고서를 엽니 다. 우리는 형성하고 얻습니다.

새로운 기능 자체에 대한 설명 :

1. 현재 날짜 ()

시스템 날짜를 반환합니다. 레이아웃이 연결되면 레이아웃에있는 모든 식에서 CurrentDate () 함수가 현재 날짜 값으로 바뀝니다.

2. 표현식 계산 ()

통사론:

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

기술:

이 함수는 일부 그룹화 컨텍스트에서 표현식을 평가하기위한 것입니다.

이 기능은 그룹화 선택을 고려하지만 계층 적 선택은 고려하지 않습니다.

이 그룹의 그룹 선택에있는 그룹에 기능을 적용 할 수 없습니다. 예를 들어, 명명법 그룹을 선택할 때 CalculateExpression ( "Sum (SumTurnover)", "TotalTotal")\u003e 1000 표현식을 사용할 수 없습니다. 그러나 이러한 표현식은 계층 적 선택에 사용할 수 있습니다.

종료 레코드가 시작 레코드 앞에 있으면 세부 데이터 계산 및 집계 함수 계산을위한 레코드가없는 것으로 간주됩니다.

총합계 (Grouping 매개 변수가 General Total로 설정 됨)에 대한 간격 표현식을 계산할 때 세부 데이터를 계산하고 집계 함수를 계산하기위한 레코드가 없다고 가정합니다.

레이아웃 작성기는 EvaluateExpression 함수의 식을 생성 할 때 정렬 식에 그룹화에 사용할 수없는 필드가 포함 된 경우 EvaluateExpression 함수를 NULL로 바꿉니다.

옵션

<Выражение>

유형 : 문자열. 평가할 표현식입니다.

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

유형 : 문자열. 식을 평가할 컨텍스트의 그룹화 이름을 포함합니다. 빈 문자열이 그룹화 이름으로 사용되는 경우 계산은 현재 그룹화 컨텍스트에서 수행됩니다. GeneralTotal 문자열이 그룹화 이름으로 사용되는 경우 총합계 컨텍스트에서 계산이 수행됩니다. 그렇지 않으면 해당 이름의 상위 그룹 컨텍스트에서 계산이 수행됩니다.

예를 들면 :

Amount (Sales.SumTurnover) / 계산 ( "Amount (Sales.SumTurnover)", "TotalTotal")

이 예에서 결과는 전체 레이아웃에있는 동일한 필드의 양에 대한 그룹화 레코드의 Sales field.SumTurnover 금액의 비율입니다.

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

유형 : 문자열. 매개 변수는 다음 값을 가질 수 있습니다.

  • 합계-모든 그룹화 레코드에 대해 표현식이 평가됩니다.
  • 계층 구조-표현식이 상위 계층 레코드 (있는 경우) 및 전체 그룹 (상위 계층 레코드가없는 경우)에 대해 평가됩니다.
  • 그룹화-현재 그룹화 그룹화 레코드에 대해 표현식이 평가됩니다.
  • GroupingNonResource-리소스별로 그룹 레코드에 대한 함수를 계산할 때 원래 그룹화의 첫 번째 그룹 레코드에 대해식이 계산됩니다.

함수를 계산할 때 EvaluateExpression () 리소스별로 그룹화되지 않은 그룹 레코드에 대한 GroupNoResource 값을 사용하면 매개 변수 값이 Grouping과 같을 경우 계산되는 것과 동일한 방식으로 함수가 계산됩니다.

데이터 구성 템플릿의 작성자는 데이터 구성 템플릿을 생성 할 때 그룹화가 수행되는 리소스 필드를 템플릿에 출력 할 때 함수를 사용하여 계산 된 표현식을 넣습니다. EvaluateExpression (), GroupUnResource 매개 변수를 지정합니다. 나머지 리소스의 경우 정규 리소스식이 리소스별로 그룹화됩니다.

<Начало>

유형 : 문자열. 조각을 시작할 레코드, 표현식의 집계 함수를 계산할 레코드 및 집계 함수 외부의 필드 값을 가져올 레코드를 나타냅니다. 값은 다음 중 하나 일 수 있습니다.

<Конец>

유형 : 문자열. 표현식의 집계 함수를 평가할 조각을 계속할 레코드를 나타냅니다. 값은 다음 중 하나 일 수 있습니다.

  • 먼저 (첫 번째). 첫 번째 그룹화 레코드를 가져와야합니다. 괄호 안의 단어 뒤에 표현식을 지정할 수 있으며, 그 결과는 그룹화 시작 부분에서 오프셋으로 사용됩니다. 결과 값은 0보다 큰 정수 여야합니다. 예 : First (3)-그룹화 시작 부분에서 세 번째 레코드를 가져옵니다.

첫 번째 레코드가 그룹 외부에 있으면 레코드가없는 것으로 간주됩니다. 예를 들어 3 개의 레코드가 있고 First (4)를 얻으려면 레코드가없는 것으로 간주됩니다.

  • 마지막 (마지막). 최신 그룹화 레코드를 가져와야합니다. 괄호 안의 단어 뒤에 표현식을 지정할 수 있으며, 그 결과는 그룹화 끝에서 오프셋으로 사용됩니다. 결과 값은 0보다 큰 정수 여야합니다. 예 : Last (3)-그룹화의 끝에서 세 번째 레코드를 가져옵니다.

마지막 레코드가 그룹화 한계를 벗어나면 레코드가없는 것으로 간주됩니다. 예를 들어, 3 개의 레코드가 있고 Last (4)를 얻으려면 레코드가없는 것으로 간주됩니다.

  • 이전. 이전 그룹화 레코드를 가져와야합니다. 표현식은 대괄호 안의 단어 뒤에 지정 될 수 있으며 그 결과는 현재 그룹화 레코드에서 오프셋으로 다시 사용됩니다. 예 : 이전 (2)-이전 레코드에서 이전 레코드를 가져옵니다.

이전 레코드가 그룹화를 넘어서는 경우 (예 : 두 번째 그룹화 레코드의 경우 이전 (3)을 가져와야하는 경우 첫 번째 그룹화 레코드를 가져옵니다.

그룹화 합계에 대한 이전 레코드를 검색 할 때 첫 번째 레코드가 고려됩니다.

  • 다음 (다음). 다음 그룹화 레코드를 가져와야합니다. 표현식은 대괄호로 묶인 단어 뒤에 지정할 수 있으며 그 결과는 현재 그룹화 레코드에서 앞으로 오프셋으로 사용됩니다. 예 : 다음 (2)-다음 레코드에서 다음을 가져옵니다.

다음 레코드가 그룹에서 벗어나면 레코드가없는 것으로 간주됩니다. 예를 들어, 3 개의 레코드가 있고 세 번째 레코드에 대해 다음 ()이 수신되면 레코드가 없습니다.

그룹화 합계에 대한 다음 레코드가 수신되면 레코드가없는 것으로 간주됩니다.

  • 현재 (현재). 현재 기록을 얻어야합니다.

그룹화 합계를 검색 할 때 첫 번째 레코드를 얻습니다.

  • BoundaryValue. 기록을 얻을 필요성 지정된 값... 괄호 안의 LimitingValue 단어 뒤에는 첫 번째 순서 필드 인 조각을 시작할 값이 포함 된 표현식을 지정해야합니다.

레코드로서, 순서화 필드의 값이 지정된 값보다 크거나 같은 첫 번째 레코드가 확보됩니다. 예를 들어 기간 필드가 정렬 필드로 사용되고 여기에 2010 년 1 월 1 일, 2010 년 1 월 2 일, 2010 년 1 월 3 일 값이 있고 BoundingValue (DateTime (2010 , 1, 15)), 그러면 2010 년 2 월 1 일 날짜의 레코드를 받게됩니다.

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

유형 : 문자열. 정렬 규칙을 설명하는 표현식을 쉼표로 구분하여 나열합니다. 지정하지 않으면 표현식이 평가되는 그룹화와 동일한 방식으로 정렬이 수행됩니다. 각 표현식 뒤에 키워드 Ascending (오름차순), Descending (내림차순) 및 Autoordering (참조 된 개체의 순서를 지정하려는 필드를 기준으로 참조 된 필드를 정렬)을 지정할 수 있습니다. Auto-Arrange라는 단어는 오름차순과 내림차순 모두에 사용할 수 있습니다.

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

유형 : 문자열. 정렬과 동일합니다. 계층 적 레코드를 정렬하는 데 사용됩니다. 지정되지 않은 경우 레이아웃 빌더는 Sort 매개 변수에 지정된 순서에 따라 순서를 생성합니다.

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

유형 : 문자열. 순서 값이 동일한 레코드가 여러 개인 경우 이전 또는 다음 레코드를 결정하기위한 규칙을 지정합니다.

  • 별도로는 순서가 지정된 레코드 시퀀스가 \u200b\u200b이전 및 다음 레코드를 정의하는 데 사용됨을 의미합니다. 기본값.
  • Together는 데이터 정렬 표현식의 값을 기반으로 이전 및 다음 레코드가 결정됨을 의미합니다.

예를 들어 결과 시퀀스가 \u200b\u200b날짜순으로 정렬 된 경우 :

날짜 성명
1 2001 년 1 월 1 일 이바노프 M. 10
2 2001 년 1 월 2 일 페트로프 S. 20
3 2001 년 1 월 3 일 Sidorov R. 30
4 2001 년 1 월 4 일 페트로프 S. 40

매개 변수 값이 Separate 인 경우 :

항목 3의 이전 항목은 항목 2가됩니다.

§ 계산 된 조각이 Current, Current (각각 Start 및 End 매개 변수)로 정의 된 경우 레코드 2의 경우이 조각은 하나의 레코드 2로 구성됩니다. Expression Calculate Expression ( "Sum (Value)", Current, Current)은 20과 같아야합니다.

매개 변수 값이 Together 인 경우 :

항목 3의 이전 항목은 항목 1이됩니다.

§ 계산 된 조각이 Current, Current (각각 Start 및 End 매개 변수)로 정의 된 경우 레코드 2의 경우이 조각은 레코드 2와 3으로 구성됩니다. Expression Calculate Expression ( "Sum (Value)", Current, Current) 50이됩니다.

Together와 같은 매개 변수 값을 지정할 때 Start 및 End 매개 변수에서 First, Last, Previous, Next 위치에 대한 오프셋을 지정할 수 없습니다.

식 계산 ( "Sum (SumTurnover)", "First", "Current")

이전 줄에서 그룹화 값을 얻으려면 다음 식을 사용할 수 있습니다.

식 평가 ( "과정", "이전")

명부 새로운 기능 :

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

함수는 지정된 필드로 그룹화 할 표현식을 평가 한 결과를 포함하는 각 요소의 배열을 리턴합니다.

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

이 함수는 지정된 필드별로 그룹화 할 표현식을 평가 한 결과를 포함하는 각 행에 값 테이블을 반환합니다.

ValueFilled(<Выражение>)-값이 값과 다른 경우 True를 반환합니다. 이 유형의 기본적으로 NULL이 아닌 null이 아닌 Undefined입니다. 부울 값의 경우 널 검사가 수행됩니다. 문자열의 경우 공백이 아닌 문자가 없는지 확인합니다.

체재(<Выражение>, <Форматная строка>)-전달 된 값의 형식화 된 문자열을 가져옵니다. 형식 문자열은 1C : Enterprise 시스템의 형식 문자열에 따라 설정됩니다.

하위 문자열(<Выражение>, <Начальные символ>, <ДлинаПодстроки>)-이 함수는 문자열에서 하위 문자열을 추출하도록 설계되었습니다.

라인 길이(<Выражение>)-이 함수는 문자열의 길이를 결정하도록 설계되었습니다. 매개 변수는 문자열 유형 표현식입니다.

(<Выражение>)-배열이 매개 변수로 전달되면 함수는 "; 기호로 구분 된 모든 배열 요소의 문자열 표현을 포함하는 문자열을 반환합니다. “. 값 테이블이 매개 변수로 전달되면 함수는 값 테이블의 모든 행에 대한 문자열 표현을 포함하는 문자열을 반환하고 각 행의 셀 표현은“; ", 및 문자열-줄 바꿈 문자 포함. 요소에 빈 문자열 표현이있는 경우 해당 표현 대신 문자열이 표시됩니다.<Пустое значение>.

학생으로 로그인

학교 자료에 액세스하려면 학생으로 로그인하십시오.

초보자를위한 데이터 구성 시스템 1C 8.3 : 결과 고려 (자원)

이 튜토리얼의 목적은 다음과 같습니다.

  • 음식 목록 (음식 디렉토리), 칼로리 함량 및 맛을 표시하는 보고서를 작성하십시오.
  • 색상별로 제품을 그룹화합니다.
  • 요약 (리소스) 및 계산 된 필드에 대해 알아 봅니다.

새 보고서 작성

이전 강의에서와 같이베이스를 엽니 다. " 델리"구성자에서 새로운 보고서 메뉴를 통해 " 파일"->"새로운...":

문서 유형 - 외부 보고서:

보고서 설정 양식에서 " 레슨 3"그리고 버튼을 누르세요" 개방형 데이터 구성 스키마":

기본 스키마 이름을 그대로두고 " 끝난":

생성자를 통해 요청 추가

" 데이터 세트"푸시 초록더하기 기호 및 항목 선택 " 데이터 세트 추가-쿼리":

요청 텍스트를 수동으로 작성하는 대신 다시 실행합니다. 쿼리 생성자:

" 테이블"테이블 드래그" 음식"첫 번째 열에서 두 번째 열로 :

표에서 선택 " 음식"요청할 필드입니다. 이렇게하려면 필드를 드래그하십시오." 이름", "맛이 나다", "색깔"과" 칼로리 함량"두 번째 열에서 세 번째 열로 :

다음과 같이 밝혀졌습니다.

버튼을 누르십시오 " 확인"-요청 텍스트가 자동으로 생성되었습니다.

보고서 발표를위한 설정을 구성합니다.

탭으로 이동 " 설정"그리고 클릭 마법의 지팡이, 전화 설정 생성자:

보고서 유형 선택 " 명부... "버튼을 누르십시오" 더욱이":

왼쪽 열에서 목록에 표시 될 오른쪽 필드로 드래그하고 " 더욱이":

왼쪽 열에서 오른쪽 여백으로 드래그 " 색깔"-그것은 될 것입니다 그룹화 보고서의 라인. 클릭 " 확인":

그리고 여기 생성자의 작업 결과가 있습니다. 보고서의 계층 구조 :

  • 전체보고
  • "색상"그룹화
  • 상세 기록-식품 이름이있는 줄

보고서 저장 (버튼 디스켓) 및 닫지 않고 구성 자의 경우 사용자 모드에서 즉시 엽니 다. 다음과 같이 밝혀졌습니다.

열 순서 변경

하지만하자 순서를 바꾸다 아래 그림과 같이 표시되도록 열 (위쪽 및 아래쪽 화살표) :

보고서를 저장하고 사용자 모드에서 다시 열어 보겠습니다.

좋아, 훨씬 낫다.

칼로리 함량으로 (양) 합산

그룹별로 식품의 총 칼로리 함량을 표시하면 좋을 것입니다. 흰색 또는 노란색 등 모든 음식의 칼로리 합계를 확인합니다. 또는 데이터베이스에서 모든 제품의 총 칼로리 함량을 찾으십시오.

이를 위해 자원을 계산하는 메커니즘이 있습니다.

"로 이동 자원"필드 드래그" 칼로리 함량"(우리는 요약 할 것입니다) 왼쪽 열에서 오른쪽으로.

이 경우 표현식 필드의 드롭 다운 목록에서 " 금액 (칼로리)", 합계는 합계에 포함 된 모든 요소의 합계가됩니다.

보고서를 저장하고 생성합니다.

이제 각 그룹 및 전체 보고서에 대한 합계가 있습니다.

칼로리 함량 별 합계 (평균)

이제 하나 더 열이 표시되도록 만들어 보겠습니다. 평균 보고서에 따르면 그룹 및 일반적으로 제품의 칼로리 함량.

이미 존재하는 "칼로리"열은 터치 할 수 없습니다. 총 합계가 이미 표시되어 있으므로 다른 분야를 가져 오자그것은 될 것입니다 정확한 사본 "칼로리 함량"필드.

이러한 "가상"필드를 만들려면 메커니즘을 사용합니다. 계산 된 필드.

탭으로 이동 " 계산 된 필드"그리고 클릭 초록더하기 기호 :

콜럼에서 " 데이터 경로"새 필드의 이름을 작성하십시오 ( 함께, 공백없이). 이름을 " 평균 칼로리 함량"그리고 열에서" 표현"우리는 새 필드가 계산되는 기준으로 기존 필드의 이름을 작성합니다. 여기에 작성합니다." 칼로리 함량". 스피커" 표제"이 자동으로 채워집니다.

새 필드 ( " 평균 칼로리 함량"), 보고서에 단독으로 표시되지 않습니다. 전화를 걸어야합니다. 설정 생성자 ( "magic wand") 또는이 필드 추가 수동으로.

하자 둘째 방법. 이렇게하려면 " 설정", 선택" 보고서"(결국 보고서에 필드 전체를 추가하려고합니다.) 아래 탭을 선택하십시오." 선택한 필드"필드 드래그" 평균 칼로리 함량"왼쪽 열에서 오른쪽으로 :

다음과 같이 밝혀졌습니다.

보고서를 저장하고 생성합니다.

필드가 나타나고 해당 값이 "Calorie"필드의 값임을 알 수 있습니다. 좋아!

이를 위해 이미 익숙한 메커니즘을 다시 사용합니다. 자원 (요약). 탭으로 이동 " 자원"필드 드래그" 평균 칼로리 함량"왼쪽 열에서 오른쪽으로 :

또한 열에서 " 표현"고르다" 평균 (평균 칼로리)":

보고서를 저장하고 생성합니다.

그룹, 즉 각 색상과 보고서 전체에 대해 평균값이 매우 정확하게 계산되었음을 알 수 있습니다. 하지만 추가 항목 보고서에서 제거하려는 개별 제품 (그룹 용이 아님)

그들이 나타난 이유를 알고 있습니까 (그룹이 아닌 값)? 필드를 추가했을 때 " 평균 칼로리 함량"보고서 설정에서 두 번째 단계에서 전체 보고서 이 새 필드는 항목 " 상세한 기록".

오류를 수정하겠습니다. 이렇게하려면 " 설정", 고르다" 자세한 기록"먼저 위에서부터 (2 단계), 그런 다음" 자세한 기록"아래 (3 단계) 탭으로 이동" 선택된 필드"오른쪽 열에 요소가 표시됩니다." 자동".

요소 " 자동"은 하나의 필드가 아닙니다.이 필드는 더 높은 설정에 따라 여기에 자동으로 표시되는 여러 필드입니다.

이러한 필드가 무엇인지 확인하려면 " 자동" 권리 버튼을 누르고 항목을 선택 " 넓히다":

요소 " 자동"다음 필드로 확장되었습니다.

그리고 여기 우리 분야가 있습니다. " 평균 칼로리 함량"포인트부터 여기까지" 보고서"우리가 그를 거기로 끌었을 때. 벗다 출력을 제거하려면이 필드 옆의 확인란을 선택합니다.

데이터 구성 체계 (1C ACS) -생성하기 편리한 생성자 소프트웨어 제품 1C : 생산 자동화의 개발 및 추적에 기여하는 복잡한 보고서의 엔터프라이즈로, 최소한의 시간에 가능한 한 유연하고 아름답게 만들 수 있습니다. 데이터 구성 체계 (1C ACS)의 또 다른 장점은 통제 된 보고서 양식의 자동 생성이며,이 방향의 추가 개발로 인해 중요한 요소 보고서 개발 방법을 선택할 때. 그러나 데이터 구성 체계 (1C ACS)의 구조가 복잡하고 설정이 너무 많기 때문에 종종 "출력 양식 디자이너"를 통하는 것보다 보고서를 더 오래 개발해야합니다. 따라서 1C 프로그래머는 보고서 생성을위한 개발 시간을 더욱 단축하기 위해 데이터 구성 체계 (1C ACS)의 모든 복잡성을 이해해야합니다.

데이터 구성 체계 (1C ACS)의 처음 세 탭인 데이터 세트, 데이터 세트 링크 및 계산 된 필드를 살펴 보겠습니다.

1C ACS의 데이터 세트

데이터 세트에는 세 개의 창조 객체-요청, 객체 및 공용체, 각각에 대해 자세히 살펴 보겠습니다.

쿼리 생성자 버튼을 클릭하여 생성되는 일반 요청입니다. Autocomplete 플래그가 설정된 경우 선택한 모든 세부 정보가 자동으로 데이터 세트 필드에 포함됩니다. 세 개의 탭이있는 데이터 구성 탭에서 요청의 필드 채우기를 사용자 정의 할 수도 있습니다.

테이블, 여기에서는 보고서 형성에 참여할 테이블을 선택합니다. 일반적으로 기본 데이터가 선택됩니다. 테이블 및 필드 탭에서 필요한 문서, 디렉토리, 레지스터를 이미 선택했기 때문입니다.

필드, 여기서 보고서에 포함되어야하는 개체를 선택합니다. 하위 플래그는 개체에 사용할 수있는 하위 요소가 있는지 여부를 나타냅니다. 문자열, 숫자 및 유사한 데이터에 대해 플래그를 True로 설정할 수 없다는 것은 논리적입니다. .

조건, 여기서는 ACS의 조건에서 사용할 수있는 개체를 선택합니다.

작업의 일부는 데이터 구성 체계에서 수행되고 일부는 프로그래밍 방식으로 수행됩니다. 간단한 예를 살펴 보겠습니다.

먼저 문서에 대한 데이터 구성 체계의 레이아웃을 만들고 ACS (예 : 1C ACS)의 이름을 지정한 다음 개체를 만든 다음 필드를 입력합니다 (예 : 문서가 있음). 표 부분 세부 사항이있는 상품-명명법, 수량 및 가격.

세 개의 필드를 추가하고 각 열의 필드에 세부 정보 이름을 입력하면 나머지 열은 자동으로 채워집니다.

문서 양식에 버튼을 만들고 작업 메커니즘을 설명해 봅시다. 관리되는 양식:

& 클라이언트에서

절차 인쇄 ()

OurReport \u003d PrintOnServer (); // 서버에서 함수 호출

OurReport.Show (); // 생성 된 보고서 표시

절차 종료

서버에서

PrintOnServer () 함수

DocumentObject \u003d FormAvailableValue ( "개체");

//aCS 자체에 데이터가 포함 된 개체의 이름을 표시 한 것과 동일한 방식으로 GoodsSKD라는 구조에 상품 표 섹션을 넣습니다.

데이터 세트 \u003d 새 구조;

SetData.Insert ( "GoodsSKD", DocumentObject.Goods);

//모든 보고서 출력 설정이 레이아웃에서 가져 오도록 레이아웃을 가져오고 기본 설정을 설정합니다.

OurMakeup \u003d DocumentObject.GetMakeup ( "SKD");

설정 \u003d 우리의 Layout.Default 설정;

//설정으로 데이터 구성 레이아웃 생성

Layout Composer \u003d 새로운 DataComposition Layout Composer;

LayoutComposition \u003d LayoutComposer.Execute (OurLayout, 설정);

//데이터 셋으로 데이터 구성 수행

DataCompositionProcessor \u003d 새 DataCompositionProcessor;

DataCompositionProcessor.Initialize (LayoutDataset);

//스프레드 시트 문서를 작성하고 그 안에 보고서를 표시합니다.

ReportDocument \u003d 새 SpreadsheetDocument;

OutputProcessor \u003d 새 OutputProcessorDataCompositionResultInTableDocument;

OutputProcessor.SetDocument (ReportDoc);

OutputProcessor.Output (DataComposition Processor);

Return DocumentReport;

EndFunction

원하는 경우 영역 및 기타 레이아웃을 가져올 수 있으며이 보고서에도 표시 할 수 있습니다. 예를 들어 결제 구성에 대한 일반적인 레이아웃이 있고 헤더가 매우 잘 생성되어 있습니다. 불필요한 작업을하지 않고 먼저 레이아웃을 가져 와서 헤더를 표시 한 다음 ACS에 보고서를 생성하고 표시합니다.

통일

쿼리와 개체를 여기에 넣을 수 있지만 링크와 달리 단순히 테이블을 서로 추가합니다. 즉, 두 개의 동일한 테이블을 연결하면 하나가되고, 결합되면 두 배가됩니다. 예 :

테이블이 있습니다.

통신시 다음을 받게됩니다.

그리고 결합 할 때 :

이제 데이터 세트의 열을 채우는 것을 고려해 보겠습니다 (다른 탭과 관련되어 있으므로 일부는 건너 뛸 것이므로 이후 기사에서 다시 살펴 보겠습니다).

- , 소품의 일반적인 이름을 나타냅니다.

­­- 방법, ACS에서 참조 할 필수 구성 요소의 이름을 나타냅니다. 예를 들어 계산 된 필드;

- 표제, 보고서에 표시 될 변수의 이름을 나타냅니다.

- 필드 제한,이 필수 구성 요소의 가용성을 나타냅니다.

-요건의 제한, 우리는 자식 요소의 가용성을 나타냅니다. 세부 정보의 가용성이 표시되면 필드 자체를 사용할 수 있습니다. 아마도이 메커니즘은 향후 릴리스에서 변경 될 것입니다.

- 필드의 표현이 평가되는 표현식, 세부 정보 표시를 약간 변경해야 할 때 사용하는 것이 편리합니다. 예를 들어 이름 뒤에 필요합니다. 명명법 철회되었다 창고, 위치를 확인한 다음 명명법 + "재고 있음"+ 창고를 입력합니다. 나는 세부 사항에 대한 주소가 열에 표시된 이름을 통해 수행된다는 것을 반복합니다. 방법;

- 표현 순서, 보고서의 순서를 설정하는 편리한 메커니즘으로, 조건을 수동으로 설정할 수 있습니다. 이전 포인트와 유사하지만 실습에서 알 수 있듯이이 메커니즘은 종종 원하는대로 작동하지 않으므로 표준을 사용하는 것이 좋습니다. 정렬;

- 값 유형, 변수 값의 유형이 표시되며, 다음 필드를 사용하는 경우 입력해야합니다.

- 사용 가능한 값, 채워질 때만 작동 값 유형, 채우기 양식을 열고 열에서 유형에 따라 변경해야하는 요소를 나타냅니다. 사전 정의 된 개체 또는 숫자 (예 : 속성, 간단한 값 포함) 일 수 있습니다. 제출 부울 유형의 예인 변경해야 할 사항을 나타냅니다.

- 기재표준 설정 관리되는 양식의 설정과 유사한 필드 형식을 사용하면 특정 소품의 출력을보다 정확하고 아름답게 사용자 지정할 수 있습니다.

1C ACS의 데이터 세트 링크

여기 만 왼쪽 조인, 비슷한 원리로 사이 요청에서 의사 소통의 원천 우리는 연결의 기본 테이블을 나타냅니다. 리시버 추가. 에 표현 소스표현 수신기 우리는 연결이 이루어지는 세부 사항을 나타냅니다. 탭을 구문 분석 할 때 나머지 열을 더 자세히 고려합니다. 옵션... 그렇지 않다면 추가 커뮤니케이션 매개 변수를 사용하여 요청에 연결하는 것이 좋습니다. 이렇게하면 보고서 속도가 빨라집니다.

다가오는 8.2.14 릴리스를 고려하여 데이터 구성 시스템의 몇 가지 새로운 기능을 설명하려고합니다.

편집하기 쉽도록 외부 보고서에서 데이터 구성 스키마를 엽니 다.

쿼리 유형의 데이터 세트를 추가하고 수동으로 또는 쿼리 생성자를 사용하여 간단한 쿼리를 작성합니다.

1. ACS에서 요청을 설정합니다.

2. ACS에서 계산 된 필드 설정

3. 설정 탭에서 데이터 구성을 구성합니다.

4. 1C Enterprise 8.2.14를 시작합니다. 보고서를 엽니 다. 우리는 형성하고 얻습니다.

새로운 기능 자체에 대한 설명 :

1. 현재 날짜 ()

시스템 날짜를 반환합니다. 레이아웃의 레이아웃이 연결되면 레이아웃에있는 모든 식에서 CurrentDate () 함수가 현재 날짜 값으로 바뀝니다.

2. 표현식 계산 ()

통사론:

식 평가 (,)

기술:

이 함수는 일부 그룹화 컨텍스트에서 표현식을 평가하기위한 것입니다.

이 기능은 그룹화 선택을 고려하지만 계층 적 선택은 고려하지 않습니다.

이 그룹의 그룹 선택에있는 그룹에 기능을 적용 할 수 없습니다. 예를 들어, 그룹화 명명법을 선택할 때 다음 표현식을 사용할 수 없습니다. CalculateExpression ( "Sum (SumTurnover)", "TotalTotal")\u003e 1000... 그러나 이러한 식은 계층 적 선택에 사용할 수 있습니다.

종료 레코드가 시작 레코드 앞에 있으면 세부 데이터 계산 및 집계 함수 계산을위한 레코드가없는 것으로 간주됩니다.

총합계에 대한 간격 표현식을 계산할 때 (Grouping 매개 변수가 General Total로 설정 됨) 세부 데이터를 계산하고 집계 함수를 계산하기위한 레코드가 없다고 가정합니다.

함수 표현식 생성시 레이아웃 링커 EvaluateExpression, 정렬 식에 그룹화에 사용할 수없는 필드가 포함 된 경우 함수를 대체합니다. EvaluateExpression 의 위에 없는.

옵션

유형: ... 평가할 표현식입니다.

유형: ... 식을 평가할 컨텍스트의 그룹화 이름을 포함합니다. 빈 문자열이 그룹화 이름으로 사용되는 경우 계산은 현재 그룹화 컨텍스트에서 수행됩니다. GeneralTotal 문자열이 그룹화 이름으로 사용되는 경우 총합계 컨텍스트에서 계산이 수행됩니다. 그렇지 않으면 해당 이름을 사용하는 상위 그룹의 컨텍스트에서 계산이 수행됩니다.

예를 들면 :

금액 (Sales.SumTurnover) / 계산 ( "Amount (Sales.SumTurnover)", "TotalTotal")

이 예에서 결과는 필드에 대한 합계의 비율입니다. Sales.AmountTurnover 전체 레이아웃에서 동일한 필드의 합계로 레코드를 그룹화합니다.

유형: ... 매개 변수는 다음 값을 가질 수 있습니다.

· 전반적인 결과 -모든 그룹화 레코드에 대해 표현식이 평가됩니다.

· 계층 -표현식은 상위 계층 레코드 (있는 경우) 및 전체 그룹 (상위 계층 레코드가없는 경우)에 대해 평가됩니다.

· 그룹화 -식은 그룹화의 현재 그룹 레코드에 대해 계산됩니다.

· 비자 원 그룹화 -자원별로 그룹 레코드에 대한 함수를 계산할 때 원래 그룹화의 첫 번째 그룹 레코드에 대해 표현식이 계산됩니다.

함수를 계산할 때 EvaluateExpression () 의미있는 비자 원 그룹화 리소스별로 그룹화되지 않은 그룹 레코드의 경우 함수는 매개 변수 값이 값과 같을 때 계산되는 것과 동일한 방식으로 계산됩니다. 그룹화.

데이터 구성 템플릿의 작성자는 데이터 구성 템플릿을 생성 할 때 그룹화가 수행되는 리소스 필드를 템플릿에 출력 할 때 함수를 사용하여 계산 된 표현식을 넣습니다. EvaluateExpression () , 매개 변수 지정 비자 원 그룹화... 나머지 리소스의 경우 정규 리소스식이 리소스별로 그룹화됩니다.

유형: ... 조각을 시작할 레코드, 표현식의 집계 함수를 계산할 레코드 및 집계 함수 외부의 필드 값을 가져올 레코드를 나타냅니다. 값은 다음 중 하나 일 수 있습니다.

· 먼저

· 마지막

· 이전 (이전)

· 다음 (다음)

· 흐름

· 한계 값 (경계 값) 한계 값

유형: ... 식의 집계 함수가 평가되는 조각을 계속할 레코드를 나타냅니다. 값은 다음 중 하나 일 수 있습니다.

· 먼저... 첫 번째 그룹화 레코드를 가져와야합니다. 표현식은 괄호로 묶인 단어 뒤에 지정할 수 있으며 그 결과는 그룹화 시작 부분에서 오프셋으로 사용됩니다. 결과 값은 0보다 큰 정수 여야합니다. 예 : First (3)-그룹화 시작 부분에서 세 번째 레코드를 가져옵니다.

첫 번째 레코드가 그룹 외부에 있으면 레코드가없는 것으로 간주됩니다. 예를 들어, 3 개의 레코드가 있고 First (4)를 얻으려면 레코드가없는 것으로 간주됩니다.

· 마지막... 최신 그룹화 레코드를 가져와야합니다. 식은 대괄호로 묶인 단어 뒤에 지정할 수 있으며 그 결과는 그룹 끝에서 오프셋으로 사용됩니다. 결과 값은 0보다 큰 정수 여야합니다. 예 : Last (3)-그룹화의 끝에서 세 번째 레코드를 가져옵니다.

마지막 레코드가 그룹화 한계를 벗어나면 레코드가없는 것으로 간주됩니다. 예를 들어, 3 개의 레코드가 있고 Last (4)를 얻으려면 레코드가없는 것으로 간주됩니다.

· 이전 (이전)... 이전 그룹화 레코드를 가져와야합니다. 표현식은 대괄호로 묶인 단어 뒤에 지정할 수 있으며 그 결과는 현재 그룹화 레코드에서 다시 오프셋으로 사용됩니다. 예 : 이전 (2)-이전 레코드에서 이전 레코드를 가져옵니다.

이전 레코드가 그룹화를 넘어서는 경우 (예 : 이전 (3)을 가져 오려는 두 번째 그룹화 레코드의 경우 첫 번째 그룹화 레코드를 얻습니다.

그룹화 합계에 대한 이전 레코드를 검색 할 때 첫 번째 레코드가 고려됩니다.

· 다음 (다음)... 다음 그룹화 레코드를 가져와야합니다. 표현식은 대괄호로 묶인 단어 뒤에 지정 될 수 있으며 그 결과는 현재 그룹화 레코드에서 앞으로 오프셋으로 사용됩니다. 예 : 다음 (2)-다음 레코드에서 다음을 가져옵니다.

다음 레코드가 그룹에서 벗어나면 레코드가없는 것으로 간주됩니다. 예를 들어, 3 개의 레코드가 있고 세 번째 레코드에 대해 다음 ()이 수신되면 레코드가 없습니다.

그룹화 합계에 대한 다음 레코드가 수신되면 레코드가없는 것으로 간주됩니다.

· 흐름... 현재 기록을 얻어야합니다.

그룹화 합계를 검색 할 때 첫 번째 레코드를 얻습니다.

· 한계 값 (경계 값)... 지정된 값에서 레코드를 가져와야합니다. 단어 뒤에 한계 값 괄호 안에는 첫 번째 순서 필드 인 조각을 시작할 값이있는 표현식을 지정해야합니다.

레코드로서, 순서화 필드의 값이 지정된 값보다 크거나 같은 첫 번째 레코드가 확보됩니다. 예를 들어 기간 필드가 정렬 필드로 사용되고 값이 01.01.2010, 01.02.2010, 01.03.2010이고 ConstrainingValue (DateTime (2010, 1, 15)), 그러면 날짜가 2010 년 2 월 1 일인 레코드를 받게됩니다.

유형: ... 정렬 규칙을 설명하는 표현식을 쉼표로 구분하여 나열합니다. 지정하지 않으면식이 평가되는 그룹화와 동일한 방식으로 정렬이 수행됩니다. 각 표현식 뒤에 키워드를 지정할 수 있습니다. 나이 (오름차순으로 정렬), 내림차순 (내림차순) 및 자동 주문 (참조 된 개체를 정렬 할 필드별로 참조 된 필드를 정렬합니다.) 워드 자동 주문 단어와 같이 사용할 수 있습니다. 나이, 그래서 단어와 함께 내림차순.

유형: ... 매개 변수와 유사 정렬... 계층 적 레코드를 정렬하는 데 사용됩니다. 지정하지 않으면 레이아웃 작성기가 매개 변수에 지정된 순서에 따라 순서를 생성합니다. 정렬.

유형: ... 순서 값이 같은 레코드가 여러 개인 경우 이전 또는 다음 레코드를 결정하기위한 규칙을 지정합니다.

· 갈라져 순서가 지정된 레코드 시퀀스가 \u200b\u200b이전 및 다음 레코드를 정의하는 데 사용됨을 나타냅니다. 기본값.

· 함께 순서 표현식의 값에 따라 이전 및 다음 레코드가 결정됨을 나타냅니다.

예를 들어 결과 시퀀스가 \u200b\u200b날짜순으로 정렬 된 경우 :

날짜 성명
1 2001 년 1 월 1 일

이바노프 M.

10
2 2001 년 1 월 2 일 페트로프 S. 20
3 2001 년 1 월 3 일 Sidorov R. 30
4 2001 년 1 월 4 일 페트로프 S. 40

갈라져, 다음 :

항목 3의 이전 항목은 항목 2가됩니다.

현재, 현재 (각각, 매개 변수 스타트), 레코드 2의 경우이 단편은 하나의 레코드 2로 구성됩니다. 표현식은 20과 같습니다.

매개 변수 값이 함께, 다음 :

항목 3의 이전 항목은 항목 1이됩니다.

§ 계산 된 조각이 다음과 같이 정의 된 경우 현재, 현재 (각각, 매개 변수 스타트), 레코드 2의 경우이 조각은 레코드 2와 3으로 구성됩니다. CalculateExpression ( "Sum (값)", 현재, 현재) 50이 될 것입니다.

지정된 경우 매개 변수 값은 다음과 같습니다. 함께, 매개 변수 스타트 위치에 대한 오프셋을 지정할 수 없습니다. 처음, 마지막, 이전, 다음.

식 계산 ( "Sum (SumTurnover)", "First", "Current")

이전 줄에서 그룹화 값을 얻으려면 다음 식을 사용할 수 있습니다.

식 평가 (과정, 이전)

명부 새로운 기능 :

EvaluateExpressionGroupedArray(,) -

함수는 지정된 필드로 그룹화 할 표현식을 평가 한 결과를 포함하는 각 요소의 배열을 리턴합니다.

EvaluateExpressionGroupedValuesTable(,) -

이 함수는 지정된 필드별로 그룹화 할 표현식을 평가 한 결과를 포함하는 각 행에 값 테이블을 반환합니다.

ValueFilled()-값이 지정된 유형의 기본값과 다르면 (NULL 이외), 정의되지 않음이 아닌 빈 참조가 아닌 경우 True를 반환합니다. 부울 값의 경우 널 검사가 수행됩니다. 문자열의 경우 공백이 아닌 문자가 없는지 확인합니다.

체재(,)-전달 된 값의 형식화 된 문자열을 가져옵니다. 형식 문자열은 1C : Enterprise 시스템의 형식 문자열에 따라 설정됩니다.

하위 문자열(,,)-이 함수는 문자열에서 부분 문자열을 추출하도록 설계되었습니다.

라인 길이()-이 함수는 문자열의 길이를 결정하도록 설계되었습니다. 매개 변수는 문자열 유형 표현식입니다.

()-배열이 매개 변수로 전달되면 함수는 ";"문자로 구분 된 배열의 모든 요소에 대한 문자열 표현을 포함하는 문자열을 반환합니다. 값 테이블이 매개 변수로 전달되면 함수는 값 테이블의 모든 행에 대한 문자열 표현을 포함하는 문자열을 반환하며 각 행은 ";"문자로 구분되고 문자열은 줄 바꿈으로 구분됩니다. 요소에 빈 문자열 표현이있는 경우 해당 표현 대신 문자열이 표시됩니다.

이 공유