데이터 레이아웃 다이어그램 계산 필드. 데이터 구성 시스템 표현 언어 기능

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

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

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

  • 데이터 레이아웃 다이어그램 - 계산된 필드, 전체 필드, 연결 표현식 등을 설명합니다.
  • 데이터 레이아웃 설정 - 사용자 정의 필드 표현식을 설명합니다.
  • 데이터 레이아웃 레이아웃 - 데이터 세트 연결을 위한 표현식 설명, 레이아웃 매개변수 설명 등을 위한 것입니다.

리터럴

표현식에는 리터럴이 포함될 수 있습니다. 다음 유형의 리터럴이 가능합니다.

  • 선;
  • 숫자;
  • 날짜;
  • 부울.

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

“문자열 리터럴”

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

예를 들어:

“리터럴 “”따옴표로 묶음”““

숫자

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

10.5 200

날짜

날짜 리터럴은 키 리터럴 DATETIME을 사용하여 작성됩니다. 이 키워드 뒤에는 연도, 월, 일, 시, 분, 초가 괄호 안에 나열되고 쉼표로 구분됩니다. 시간 지정은 필요하지 않습니다.

예를 들어:

DATETIME(1975, 1, 06) – 1975년 1월 6일 DATETIME(2006, 12, 2, 23, 56, 57) – 2006년 12월 2일, 23시 56분 57초, 23시 56분 57초

부울

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

의미

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

값(계정 유형. 활성)

숫자에 대한 연산

단항 –

이 작업은 숫자의 부호를 반대 부호로 변경하기 위한 것입니다. 예를 들어:

판매량.수량

단항 +

이 작업은 번호에 대해 어떤 작업도 수행하지 않습니다. 예를 들어:

판매량.수량

바이너리 -

이 연산은 두 숫자의 차이를 계산하기 위한 것입니다. 예를 들어:

ResidualsAndTurnovers.InitialRemaining – RemainingsAndTurnovers.FinalResidualsRemainingsAndTurnovers.InitialRemaining - 100 400 – 357

바이너리 +

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

RemainingsAndTurnover.InitialRemaining + RemainingAndTurnover.Turnover ResiduesAndTurnover.InitialRemaining + 100 400 + 357

일하다

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

명칭. 가격 * 1.2 2 * 3.14

분할

이 연산은 한 피연산자를 다른 피연산자로 나눈 결과를 얻도록 설계되었습니다. 예를 들어:

명칭.가격 / 1.2 2 / 3.14

나머지 부문

이 연산은 한 피연산자를 다른 피연산자로 나눌 때 나머지를 얻도록 설계되었습니다. 예를 들어:

명칭 가격 % 1.2 2 % 3.14

문자열 연산

연결(바이너리 +)

이 작업은 두 문자열을 연결하도록 설계되었습니다. 예를 들어:

명명법.기사 + “:”+ 명명법.이름

좋다

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

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

다음 문자는<Строке_шаблона>줄의 다른 문자와는 다른 의미를 갖습니다.

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

다른 기호는 그 자체를 의미하며 추가 부하를 전달하지 않습니다. 나열된 문자 중 하나를 그대로 작성해야 하는 경우 앞에 다음 문자를 붙여야 합니다.<Спецсимвол>, SPECIAL CHARACTER 키워드(ESCAPE) 뒤에 지정됩니다.

예를 들어 템플릿

“%ABV[abvg]\_abv%” 특수 문자 “\”

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

비교 작업

같음

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

Sales.Counterparty = Sales.NomenclatureMainSupplier

같지 않음

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

판매.상대방<>Sales.NomenclatureMainSupplier

더 적은

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

매출액현재.금액< ПродажиПрошлые.Сумма

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

SalesCurrent.Sum > SalesPast.Sum

작거나 같음

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

매출액현재.금액<= ПродажиПрошлые.Сумма

그 이상 또는 같음

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

SalesCurrent.Amount >= SalesPast.Amount

작전 B

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

품목 B(&제품1, &제품2)

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

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

매출.상대방 대 거래상대방

NULL 값을 확인하는 작업

이 작업은 값이 NULL인 경우 True를 반환합니다. 예를 들어:

판매.상대방이 NULL입니다.

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

이 작업은 값이 NULL이 아닌 경우 True를 반환합니다. 예를 들어:

판매. 상대방은 NULL이 아닙니다.

논리 연산

논리 연산은 부울 유형의 표현식을 피연산자로 허용합니다.

작동하지 않음

NOT 연산은 피연산자가 False이면 True를 반환하고 피연산자가 True이면 False를 반환합니다. 예를 들어:

문서.수취인 아님 = 문서.위탁자

작전 I

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

Document.Consignee = Document.Consignor AND Document.Consignee = &상대방

OR 연산

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

Document.Consignee = Document.Consignor OR Document.Consignee = &상대방

집계 함수

집계 함수는 데이터 집합에 대해 일부 작업을 수행합니다.

합집합

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

금액(매출.금액회전율)

수량

Count 함수는 NULL이 아닌 값의 개수를 계산합니다. 예를 들어:

수량(판매.상대방)

다른 수

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

수량(다양한 판매.상대방)

최고

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

최대(남은.수량)

최저한의

함수는 최소값을 얻습니다. 예를 들어:

최소(남은.수량)

평균

이 함수는 NULL이 아닌 값의 평균을 가져옵니다. 예를 들어:

평균(남은.수량)

기타 작업

작업 선택

Select 작업은 특정 조건이 충족되면 여러 값 중 하나를 선택하는 작업입니다. 예를 들어:

금액 > 1000인 경우 선택하고 그렇지 않은 경우 금액 0 끝

두 값을 비교하는 규칙

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

  • NULL(최저);
  • 부울;
  • 숫자;
  • 날짜;
  • 선;
  • 참조 유형

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

데이터 유형이 동일한 경우 다음 규칙에 따라 값을 비교합니다.

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

NULL 값 작업

피연산자 중 하나가 NULL인 모든 연산은 NULL 결과를 생성합니다.

예외가 있습니다:

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

운영 우선순위

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

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

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

계산하다

계산 기능은 특정 그룹화의 맥락에서 표현식을 계산하도록 설계되었습니다. 이 함수에는 다음과 같은 매개변수가 있습니다.

  • 표현. 문자열을 입력합니다. 계산된 표현식을 포함합니다.
  • 그룹화. 문자열을 입력합니다. 표현식이 평가되는 컨텍스트의 그룹화 이름을 포함합니다. 빈 문자열을 그룹화 이름으로 사용하는 경우 현재 그룹화 컨텍스트에서 계산이 수행됩니다. GrandTotal 문자열이 그룹 이름으로 사용되는 경우 총합계 컨텍스트에서 계산이 수행됩니다. 그렇지 않으면 이름이 같은 상위 그룹의 컨텍스트에서 계산이 수행됩니다. 예를 들어:
Sum(Sales.SumTurnover) / Calculate("Sum(Sales.SumTurnover)", "총액")

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

수준

이 기능은 현재 녹음 레벨을 가져오도록 설계되었습니다.

수준()

번호순서

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

번호별순서()

NumberInOrderInGrouping

현재 그룹의 다음 서수를 반환합니다.

번호별주문인그룹()

체재

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

형식 문자열은 다음에 따라 설정됩니다. 형식 문자열 1C:기업.

옵션:

  • 의미;
  • 형식 문자열.

형식(소모품 송장.Doc 금액, "NPV=2")

기간의 시작

옵션:

    • 분;
    • 낮;
    • 일주일;
    • 월;
    • 4분의 1;
    • 10년;
    • 반년.

StartPeriod(DateTime(2002, 10, 12, 10, 15, 34), "월")

결과:

01.10.2002 0:00:00

기간 종료

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

옵션:

  • 날짜. 날짜를 입력하세요. 특정 날짜;
  • 기간 유형. 문자열을 입력합니다. 다음 값 중 하나를 포함합니다.
    • 분;
    • 낮;
    • 일주일;
    • 월;
    • 4분의 1;
    • 10년;
    • 반년.

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

결과:

13.10.2002 23:59:59

날짜 추가

이 기능은 날짜에 특정 값을 추가하도록 설계되었습니다.

옵션:

  • 확대 유형. 문자열을 입력합니다. 다음 값 중 하나를 포함합니다.
    • 분;
    • 낮;
    • 일주일;
    • 월;
    • 4분의 1;
    • 10년;
    • 반년.
  • 금액 - 날짜를 늘려야 하는 금액입니다. 번호를 입력하세요. 소수 부분은 무시됩니다.

AddToDate(DateTime(2002, 10, 12, 10, 15, 34), "월", 1)

결과:

12.11.2002 10:15:34

날짜 차이

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

옵션:

  • 표현. 날짜를 입력하세요. 원래 날짜;
  • 표현. 날짜를 입력하세요. 차감된 날짜;
  • 차이 유형. 문자열을 입력합니다. 다음 값 중 하나를 포함합니다.
    • 두번째;
    • 분;
    • 낮;
    • 월;
    • 4분의 1;

DATEDIFFERENCE(DATETIME(2002, 10, 12, 10, 15, 34), DATETIME(2002, 10, 14, 9, 18, 06), "요일")

결과:

하위 문자열

이 기능문자열에서 부분 문자열을 추출하기 위한 것입니다.

옵션:

  • 선. 문자열을 입력합니다. 하위 문자열이 추출되는 문자열입니다.
  • 위치. 번호를 입력하세요. 문자열에서 추출할 부분 문자열이 시작되는 문자의 위치입니다.
  • 길이. 번호를 입력하세요. 할당된 하위 문자열의 길이입니다.

SUBSTRING(계정.주소, 1, 4)

줄 길이

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

매개변수:

  • 선. 문자열을 입력합니다. 길이가 지정된 문자열입니다.

라인(상대방.주소)

년도

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

매개변수:

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

YEAR(비용.날짜)

4분의 1

이 함수는 날짜 유형 값에서 분기 숫자를 추출하도록 설계되었습니다. 분기 번호의 범위는 일반적으로 1부터 4까지입니다.

매개변수

  • 날짜. 날짜를 입력하세요. 분기가 결정되는 날짜
QUARTER(비용.날짜)

이 함수는 Date 유형 값에서 월 번호를 추출하도록 설계되었습니다. 월 번호의 범위는 일반적으로 1부터 12까지입니다.

  • 날짜. 날짜를 입력하세요. 월이 결정되는 날짜입니다.
MONTH(비용.날짜)

올해의 날

이 함수는 Date 유형 값에서 해당 연도의 날짜를 가져오도록 설계되었습니다. 연중 날짜의 범위는 일반적으로 1부터 365(366)까지입니다.

  • 날짜. 날짜를 입력하세요. 해당 연도의 날짜가 결정되는 날짜입니다.
DAYYEAR(비용계정.날짜)

이 함수는 Date 유형 값에서 해당 월의 일자를 가져오도록 설계되었습니다. 해당 월의 날짜 범위는 일반적으로 1부터 31까지입니다.

  • 날짜. 날짜를 입력하세요. 해당 월의 날짜가 결정되는 날짜입니다.
DAY(비용.날짜)

일주일

이 함수는 날짜 유형 값에서 해당 연도의 주 수를 가져오도록 설계되었습니다. 한 해의 주는 1부터 시작하여 번호가 매겨집니다.

  • 날짜. 날짜를 입력하세요. 주 번호가 결정되는 날짜입니다.
WEEK(비용.날짜)

요일

이 함수는 Date 유형 값에서 요일을 가져오도록 설계되었습니다. 일반적인 요일은 1(월요일)부터 7(일요일)까지입니다.

  • 날짜. 날짜를 입력하세요. 요일이 결정되는 날짜입니다.
요일(비용.날짜)

시간

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

  • 날짜. 날짜를 입력하세요. 하루의 시간이 결정되는 날짜입니다.
HOUR(비용.날짜)

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

  • 날짜. 날짜를 입력하세요. 분을 결정하는 날짜입니다.
MINUTE(비용.날짜)

두번째

이 함수는 날짜 유형 값에서 1분의 1초를 가져오도록 설계되었습니다. 분의 초 범위는 0부터 59까지입니다.

  • 날짜. 날짜를 입력하세요. 분의 초가 결정되는 날짜입니다.
SECOND(비용.날짜)

표현하다

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

옵션:

  • 변환할 표현식입니다.
  • 유형 표시. 문자열을 입력합니다. 유형 문자열을 포함합니다. 예를 들어 "숫자", "문자열" 등이 있습니다. 기본 유형 외에도 주어진 줄테이블 이름이 포함될 수 있습니다. 이 경우 지정된 테이블에 대한 참조를 표현하려고 시도합니다.

Express(Data.Props1, "번호(10,3)")

IsNull

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

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

YesNULL(Amount(Sales.AmountTurnover), 0)

공통 모듈의 기능

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

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

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

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

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

편집을 더 쉽게 하려면 가급적 외부 보고서에서 데이터 레이아웃 다이어그램을 엽니다.

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

1. 액세스 제어 시스템에서 요청을 설정합니다.

2. 접근 제어 시스템에서 계산된 필드 설정

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

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

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

1. 현재 날짜()

시스템 날짜를 반환합니다. 레이아웃 레이아웃을 구성할 때 레이아웃에 있는 모든 표현식에서 CurrentDate() 함수가 현재 날짜 값으로 대체됩니다.

2. 계산식()

통사론:

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

설명:

이 함수는 일부 그룹화의 맥락에서 표현식을 평가하도록 설계되었습니다.

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

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

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

총합계에 대한 간격 표현식을 계산할 때(Grouping 매개변수가 GrandTotal로 설정됨) 세부 데이터 계산 및 집계 함수 계산을 위한 레코드가 없는 것으로 가정됩니다.

CalculateExpression 함수에 대한 표현식을 생성할 때 정렬 표현식에 그룹화에 사용할 수 없는 필드가 포함된 경우 레이아웃 구성자는 CalculateExpression 함수를 NULL로 바꿉니다.

옵션

<Выражение>

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

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

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

예를 들어:

Sum(Sales.SumTurnover)/Calculate(“Sum(Sales.SumTurnover)”, “Total”)

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

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

유형: 문자열. 매개변수는 다음 값을 사용할 수 있습니다.

  • GeneralTotal - 모든 그룹화 레코드에 대해 표현식이 계산됩니다.
  • 계층 구조 - 상위 계층 레코드가 있는 경우 표현식이 평가되고, 상위 계층 레코드가 없는 경우 전체 그룹에 대해 표현식이 평가됩니다.
  • 그룹화 - 현재 그룹화 그룹화 레코드에 대해 표현식이 평가됩니다.
  • 비자원 그룹화 - 자원별로 그룹 레코드에 대한 함수를 계산할 때 표현식은 원래 그룹화의 첫 번째 그룹 레코드에 대해 평가됩니다.

함수를 계산할 때 계산식()자원 그룹이 아닌 그룹 레코드에 대해 비자원 그룹화 값을 사용하면 매개변수 값이 그룹화 값과 같은 경우 계산되는 것과 동일한 방식으로 함수가 계산됩니다.

데이터 구성 레이아웃 빌더는 그룹핑이 수행된 리소스 필드를 레이아웃으로 출력할 때 데이터 구성 레이아웃을 생성할 때, 함수를 이용하여 계산된 표현식을 레이아웃에 배치합니다. 계산식(), 비자원 그룹화 매개변수를 나타냅니다. 다른 리소스의 경우 일반적인 리소스 표현이 리소스 그룹에 배치됩니다.

<Начало>

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

<Конец>

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

  • 첫 번째. 첫 번째 그룹화 레코드를 확보해야 합니다. 괄호 안의 단어 뒤에 표현식을 지정할 수 있으며 그 결과는 그룹화 시작 부분의 오프셋으로 사용됩니다. 결과 값은 0보다 큰 정수여야 합니다. 예를 들어 First(3) – 그룹화 시작부터 세 번째 레코드를 받습니다.

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

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

만약에 마지막 기록그룹화를 벗어나면 기록이 없는 것으로 간주됩니다. 예를 들어 3개의 레코드가 있고 Last(4)를 얻으려는 경우 레코드가 없는 것으로 간주됩니다.

  • 이전의. 이전 그룹화 레코드를 가져와야 합니다. 괄호 안의 단어 뒤에 표현식을 지정할 수 있으며, 그 결과는 현재 그룹화 레코드로부터의 오프셋으로 다시 사용됩니다. 예를 들어 Previous(2) – 이전 레코드에서 이전 항목을 가져옵니다.

이전 레코드가 그룹화 범위를 벗어나는 경우(예를 들어 두 번째 그룹화 레코드의 경우 Previous(3)를 가져와야 하면 첫 번째 그룹화 레코드를 가져옵니다.

그룹화 합계에 대한 이전 기록을 검색할 때 첫 번째 기록을 얻은 것으로 간주됩니다.

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

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

그룹화 합계에 대해 다음 기록이 수신되면 기록이 없는 것으로 간주됩니다.

  • 현재의. 현재 기록을 가져와야 합니다.

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

  • 경계값. 다음을 통해 기록을 확보해야 할 필요성 지정된 값. 괄호 안의 LimitingValues라는 단어 뒤에는 첫 번째 순서 필드인 조각을 시작하려는 값이 포함된 표현식을 표시해야 합니다.

순서 필드 값이 지정된 값보다 크거나 같은 첫 번째 레코드가 레코드로 반환됩니다. 예를 들어 기간 필드가 순서 필드로 사용되고 해당 값이 01/01/2010, 02/01/2010, 03/01/2010이고 LimitingValue(DateTime(2010)을 가져오려는 경우 , 1, 15)), 날짜가 2010년 2월 1일인 레코드를 얻게 됩니다.

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

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

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

유형: 문자열. 정렬 옵션과 동일합니다. 계층적 레코드를 구성하는 데 사용됩니다. 지정하지 않으면 레이아웃 합성기는 Sort 매개변수에 지정된 순서에 따라 순서를 생성합니다.

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

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

  • 별도로(Separate)란 순서가 지정된 일련의 레코드를 사용하여 이전 레코드와 다음 레코드를 결정하는 것을 의미합니다. 기본값.
  • Together는 순서 표현식의 값을 기준으로 이전 레코드와 다음 레코드가 결정된다는 의미입니다.

예를 들어, 결과 시퀀스가 ​​날짜별로 정렬된 경우:

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

매개변수 값이 별도로인 경우:

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

§ 계산 조각이 Current, Current(각각 Start 및 End 매개변수)로 정의된 경우 레코드 2의 경우 이 조각은 하나의 레코드로 구성됩니다. 2. 표현식 CalculateExpression(“Sum (Value)”, Current, Current)은 20과 같아야 한다.

매개변수 값이 Together인 경우:

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

§ 계산 조각이 Current, Current(각각 Start 및 End 매개 변수)로 정의된 경우 레코드 2의 경우 이 조각은 레코드 2와 3으로 구성됩니다. 표현식 CalculateExpression(“Sum (Value)”, Current, Current) 50과 같을 것이다.

Together와 동일한 매개변수 값을 지정하는 경우 Start 및 End 매개변수에서 First, Last, Previous, Next 위치에 대한 오프셋을 지정할 수 없습니다.

CalculateExpression(“Sum(SumTurnover)”, “첫 번째”, “현재”)

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

CalculateExpression("비율", "이전")

목록 새로운기능:

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

이 함수는 지정된 필드별로 그룹화하기 위해 표현식을 평가한 결과가 포함된 각 요소가 포함된 배열을 반환합니다.

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

이 함수는 값 테이블을 반환하며, 각 행에는 지정된 필드별로 그룹화하기 위한 표현식 평가 결과가 포함되어 있습니다.

값이 채워짐(<Выражение>) – 값이 값과 다른 경우 True를 반환합니다. 이런 유형의기본값, NULL 이외, 빈 참조 이외, 정의되지 않음. 부울 값이 NULL인지 확인합니다. 공백이 아닌 문자가 없는지 문자열을 검사합니다.

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

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

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

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

학생으로 사이트에 로그인하세요

학교 자료에 접근하려면 학생으로 로그인하세요.

초보자를 위한 데이터 구성 시스템 1C 8.3: 결과 계산(리소스)

이 강의의 목적은 다음과 같습니다:

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

새 보고서 만들기

이전 강의와 마찬가지로 데이터베이스를 엽니다. 델리"를 구성기에서 생성하고 새로운 보고서메뉴를 통해 " 파일"->"새로운...":

문서 유형 - 외부 보고:

보고서 설정 양식에 이름을 " 제3과" 그리고 버튼을 누르세요 " 공개 데이터 구성 다이어그램":

기본 스키마 이름을 그대로 두고 " 준비가 된":

생성자를 통해 요청 추가

탭에서 " 데이터 세트" 클릭 녹색더하기 기호를 선택하고 " 데이터세트 추가 - 쿼리":

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

"탭"에서 테이블"테이블을 드래그해" 음식" 첫 번째 열부터 두 번째 열까지:

표에서 선택 " 음식"요청할 필드입니다. 이렇게 하려면 해당 필드를 끌어서 놓습니다." 이름", "", "색상" 그리고 " 칼로리 함량" 두 번째 열부터 세 번째 열까지:

결과는 다음과 같습니다.

버튼을 누르세요 " 좋아요" - 요청 텍스트가 자동으로 생성되었습니다.

보고서 프리젠테이션 설정 생성

탭으로 이동 " 설정"를 클릭하고 마법의 지팡이, 전화하다 설정 디자이너:

보고서 유형을 선택하세요. 목록..." 버튼을 누르고 " 더 나아가":

목록에 표시될 필드를 왼쪽 열에서 오른쪽으로 끌어서 "를 클릭합니다. 더 나아가":

왼쪽 열에서 오른쪽 필드로 드래그하세요. 색상" - 일어날거야 그룹화보고서의 줄. "를 클릭하세요. 좋아요":

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

  • 보고서는 전체적으로
  • "색상" 그룹화
  • 세부 항목 - 음식 이름이 있는 줄

보고서 저장(버튼 디스켓) 그리고 닫지 않고사용자 모드에서 구성 프로그램을 즉시 엽니다. 결과는 다음과 같습니다.

열 순서 변경

하지만 하자 순서를 바꾸자열(위쪽 및 아래쪽 화살표)을 아래 그림과 같이 만듭니다.

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

좋아요, 그게 훨씬 낫네요.

칼로리 함량을 요약 해 봅시다

그룹별로 음식의 칼로리 함량을 요약해 보면 좋을 것 같습니다. 흰색 또는 노란색과 같은 모든 제품의 칼로리 함량 합계를 확인합니다. 또는 데이터베이스에 있는 모든 제품의 총 칼로리 함량을 알아보세요.

이를 위해 리소스를 계산하는 메커니즘이 있습니다.

탭으로 이동 " 자원"그리고 필드를 드래그하세요" 칼로리 함량"(요약해보겠습니다) 왼쪽부터 오른쪽으로.

이 경우 필드의 드롭다운 목록에서 표현식을 선택합니다. 양(칼로리)", 총계는 총계에 포함된 모든 요소의 합계가 되기 때문입니다.

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

이제 각 그룹과 보고서 전체에 대한 결과가 표시됩니다.

칼로리 측면에서 (평균) 요약하자면

이제 다른 열에 나타나도록 합시다. 평균그룹별 및 보고서 전체의 제품 칼로리 함량.

기존 "칼로리" 열은 터치할 수 없습니다. 총계가 이미 표시되어 있으므로 다른 필드를 만들어 보겠습니다, 이는 정확한 사본"칼로리" 필드.

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

탭으로 이동 " 계산된 필드"를 누르고 녹색더하기 기호:

칼럼에서 " 데이터 경로"새 필드의 이름을 씁니다( 원활하게, 공백 없이). "라고 부르자 평균 칼로리 함량", 그리고 열에서 " 표현"새 필드가 계산될 기준으로 기존 필드의 이름을 씁니다. 거기에 씁니다. " 칼로리 함량". 열 " 표제"가 자동으로 채워집니다.

새 필드(" 평균 칼로리 함량"), 그러나 보고서 자체에는 표시되지 않습니다. 다시 전화해야 합니다. 설정 디자이너("마술 지팡이") 또는 이 필드를 추가하세요 수동으로.

해보자 두번째방법. 이렇게하려면 "탭으로 이동하십시오. 설정", 선택하다 " 보고서"(결국 보고서에 필드 전체를 추가하고 싶습니다.) 하단의 탭을 선택하세요." 선택된 필드"그리고 필드를 드래그하세요" 평균 칼로리 함량"왼쪽 열에서 오른쪽으로:

결과는 다음과 같습니다.

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

필드가 나타나고 그 값이 "칼로리" 필드의 값임을 알 수 있습니다. 엄청난!

이를 위해 우리는 이미 우리에게 친숙한 메커니즘을 다시 사용할 것입니다. 자원(요약). 탭으로 이동 " 자원"그리고 필드를 드래그하세요" 평균 칼로리 함량"왼쪽 열에서 오른쪽으로:

게다가 "란에는 표현"선택하다" 평균(평균칼로리)":

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

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

왜 등장했는지 아시나요(그룹별 값 아님)? 왜냐하면 우리가 필드를 추가했을 때 " 평균 칼로리 함량"보고서 설정의 두 번째 단계에서 우리는 보고서 전체이 새 필드는 " 요소에 포함되었습니다. 상세한 기록".

오류를 수정해 보겠습니다. 이렇게 하려면 " 탭으로 돌아가세요. 설정", 선택하다 " 세부 항목" 먼저 위에서(2단계) 다음으로 " 세부 항목"아래(3단계)에서 북마크로 이동" 선택된 필드" 오른쪽 열에 " 요소가 표시됩니다. 자동".

요소 " 자동" - 이것은 하나의 필드가 아닙니다. 이는 상위 수준 설정에 따라 자동으로 여기에 포함되는 여러 필드입니다.

이러한 필드가 무엇인지 보려면 " 요소를 클릭하세요. 자동" 오른쪽버튼을 누르고 " 확장하다":

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

그리고 여기가 우리 분야야" 평균 칼로리 함량"그 지점에서 여기로 왔어요" 보고서" 우리가 그를 거기로 끌고 갔을 때. 그냥 제거하자해당 출력을 제거하려면 이 필드 옆에 있는 상자를 선택하십시오.

데이터 레이아웃 다이어그램(1C SKD)- 생성에 편리한 생성자 소프트웨어 제품 1C: 생산 자동화의 개발 및 추적에 기여하여 최소한의 시간에 최대한 유연하고 아름답게 만들 수 있는 엔터프라이즈 복합 보고서입니다. 데이터 구성 체계(1C SKD)의 또 다른 장점은 통제된 보고서 양식의 자동 생성이며, 이 영역이 추가로 개발되면 다음과 같습니다. 중요한 요소보고서 개발 방법을 선택할 때. 그러나 데이터 구성 체계(1C SKD) 구조의 복잡성으로 인해 엄청난 양설정을 사용하면 "출력 양식 디자이너"를 통하는 것보다 보고서 개발 시간이 더 길어지는 경우가 많습니다. 따라서 1C 프로그래머는 보고서 생성 개발 시간을 더욱 단축하기 위해 데이터 구성 체계(1C DCS)의 모든 복잡성을 이해해야 합니다.

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

1C SKD의 데이터 세트

데이터 세트에는 다음과 같은 능력이 포함됩니다. 세 가지 창조객체 - 쿼리, 객체 및 공용체를 각각 자세히 살펴보겠습니다.

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

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

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

조건 여기서는 액세스 제어 시스템의 조건에 따라 사용할 수 있는 개체를 선택합니다.

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

먼저 문서의 데이터 레이아웃에 대한 레이아웃 다이어그램을 만들고 SKD(예: 1C SKD)라고 부릅니다. 그 안에 데이터 세트 개체를 만든 다음 예를 들어 문서에 대한 필드를 채웁니다. 표 부분세부 사항이 포함된 상품 - 명칭, 수량 및 가격.

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

문서 양식에 버튼을 만들고 작동 메커니즘을 설명하겠습니다. 제어된 양식:

&클라이언트에서

절차 인쇄()

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

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

절차 종료

&서버에서

함수 PrintOnServer()

DocumentObject = FormAttributeValue("객체");

//SKD 자체에 데이터가 포함된 개체의 이름을 표시한 것과 동일한 방식으로 테이블 형식 부분 Products를 ProductsSKD라는 이름의 구조에 배치합니다.

DataSet = 새 구조;

DataSet.Insert("제품SKD", DocumentObject.Products);

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

OurLayout = DocumentObject.GetLayout(“SKD”);

설정 = OurLayout.DefaultSettings;

//설정으로 데이터 레이아웃 레이아웃 만들기

LayoutLinker = newDataLayoutLayoutLinker;

LayoutLayout = LayoutComposer.Execute(OurLayout, 설정);

//데이터 세트로 데이터 구성 수행

DataCompositionProcessor = newDataCompositionProcessor;

DataCompositionProcessor.Initialize(LayoutLayout, DataSet);

//우리는 형성한다 스프레드시트 문서그 안에 보고서를 표시합니다.

ReportDocument = 새 TabularDocument;

OutputProcessor = 새 OutputProcessorDataCompositionResultInTabularDocument;

OutputProcessor.SetDocument(ReportDocument);

OutputProcessor.Output(DataCompositionProcessor);

문서 반환 보고서;

EndFunction

원하는 경우 다른 레이아웃 영역을 가져와서 이 보고서에 표시할 수도 있습니다. 예를 들어 지불 주문 생성을 위한 표준 레이아웃이 있고 그 안에 헤더가 잘 생성되어 있으므로 그렇게 하지 마십시오. 불필요한 작업을 수행하려면 먼저 레이아웃을 가져오고 헤더를 표시한 다음 보고서를 생성하여 액세스 제어 시스템에 표시합니다.

에 대한 통일

여기에 쿼리와 개체를 배치할 수 있지만 연결과 달리 단순히 테이블을 서로 추가하는 것뿐입니다. 즉, 두 개의 동일한 테이블을 연결하면 하나로 끝나고 결합하면 두 배가 됩니다. 간단한 예에서 :

테이블이 있습니다:

통신 시 당사는 다음을 받게 됩니다:

그리고 결합하면:

이제 데이터 세트의 열을 채우는 방법을 살펴보겠습니다. 일부는 다른 탭과 관련되어 있으므로 건너뛰고 향후 문서에서 이에 대해 다시 설명하겠습니다.

- 필드, 속성의 일반 이름을 나타냅니다.

­­- , 액세스 제어 시스템에서 연락할 세부 정보의 이름을 표시합니다(예: 계산된 필드;

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

- 분야 제한, 이 필수 항목의 가용성을 나타냅니다.

- 세부 사항의 제한, 하위 요소의 가용성을 나타냅니다. 세부 사항의 가용성이 표시된 경우 필드 자체를 사용할 수 있으며 아마도 이 메커니즘은 향후 릴리스에서 변경될 수 있습니다.

- 필드 표현을 계산하는 표현식, 세부 사항의 출력을 약간 변경해야 할 때 사용하는 것이 편리합니다. 예를 들어 이름 뒤에 필요한 명명법표시되었다 재고, 해당 위치에 항목 + "창고에 있음" + 창고를 입력합니다. 세부정보에 대한 액세스는 열에 표시된 이름을 통해 수행됨을 반복합니다. 길;

- 표현 순서, 이전 항목과 유사하게 조건을 수동으로 설정할 수 있는 보고서 순서 설정을 위한 편리한 메커니즘이지만 실습에서 알 수 있듯이 이 메커니즘은 원하는 대로 작동하지 않는 경우가 많으므로 표준 정렬을 사용하는 것이 좋습니다.

- 값 유형는 속성 값의 유형을 나타내며, 다음 필드를 사용하는 경우 반드시 입력해야 합니다.

- 사용 가능한 값, 꽉 찬 경우에만 작동 값 유형, 양식을 열고 열에서 의미유형에 따라 변경해야 하는 요소를 나타냅니다. 사전 정의된 개체 또는 숫자일 수 있습니다. 예를 들어 세부 정보에는 간단한 값이 있습니다. 프레젠테이션부울 유형의 예를 들어 무엇으로 변경해야 하는지 나타냅니다.

- 장식표준 설정관리되는 양식의 설정과 유사한 필드 형식을 사용하면 특정 세부 사항의 출력을 더 정확하고 아름답게 사용자 정의할 수 있습니다.

1C SKD의 데이터 세트 연결

여기서만 설치됩니다 왼쪽 조인, 비슷한 원리로 사이요청에서,에서 의사소통의 원천연결을 위한 기본 테이블을 지정합니다. 수화기추가의. 안에 표현 소스그리고 표현 수신기우리는 커뮤니케이션이 이루어질 세부 사항을 나타냅니다. 나머지 열에 대해서는 탭을 볼 때 더 자세히 살펴보도록 하겠습니다. 옵션. 그렇지 않은 경우 추가 통신매개변수를 사용하는 경우 요청 시 연결하는 것이 좋습니다. 이렇게 하면 보고 속도가 빨라집니다.

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

편집을 더 쉽게 하려면 가급적 외부 보고서에서 데이터 레이아웃 다이어그램을 엽니다.

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

1. 액세스 제어 시스템에서 요청을 설정합니다.

2. 접근 제어 시스템에서 계산된 필드 설정

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

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

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

1. 현재 날짜()

시스템 날짜를 반환합니다. 레이아웃 레이아웃을 구성할 때 레이아웃에 있는 모든 표현식에서 CurrentDate() 함수가 현재 날짜 값으로 대체됩니다.

2. 계산식()

통사론:

계산식(,)

설명:

이 함수는 일부 그룹화의 맥락에서 표현식을 평가하도록 설계되었습니다.

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

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

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

총합계에 대한 간격 표현식을 계산할 때(Grouping 매개변수가 GrandTotal로 설정됨) 세부 데이터 계산 및 집계 함수 계산을 위한 레코드가 없는 것으로 가정됩니다.

함수 표현식 생성 시 레이아웃 링커 계산식, 순서 표현식에 그룹화에 사용할 수 없는 필드가 포함된 경우 함수를 대체합니다. 계산식~에 없는.

옵션

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

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

예를 들어:

Sum(Sales.SumTurnover)/Calculate("Sum(Sales.SumTurnover)", "총계")

이 예에서 결과는 필드별 합계의 비율입니다. 매출.금액회전율전체 레이아웃에서 동일한 필드의 합계로 레코드를 그룹화합니다.

유형: . 매개변수는 다음 값을 사용할 수 있습니다.

· 총계— 모든 그룹화 레코드에 대해 표현식이 계산됩니다.

· 계층— 상위 계층 레코드(있는 경우)에 대해 표현식이 평가되고, 상위 계층 레코드가 없는 경우 전체 그룹에 대해 표현식이 평가됩니다.

· 그룹화— 현재 그룹 그룹화 기록에 대해 표현식이 평가됩니다.

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

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

데이터 구성 레이아웃 빌더는 그룹핑이 수행된 리소스 필드를 레이아웃으로 출력할 때 데이터 구성 레이아웃을 생성할 때, 함수를 이용하여 계산된 표현식을 레이아웃에 배치합니다. 계산식() , 매개변수를 나타냄 비자원 그룹화. 다른 리소스의 경우 일반적인 리소스 표현이 리소스 그룹에 배치됩니다.

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

· 첫 번째

· 마지막 (마지막)

· 이전의

· 다음(다음)

· 현재의

· 제한가치(경계값) 제한가치

유형: . 표현식의 집계 함수가 계산되어야 하는 조각이 계속되어야 하는 레코드를 나타냅니다. 값은 다음 중 하나일 수 있습니다.

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

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

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

마지막 레코드가 그룹 외부에 있으면 레코드가 없는 것으로 간주됩니다. 예를 들어 3개의 레코드가 있고 Last(4)를 얻으려는 경우 레코드가 없는 것으로 간주됩니다.

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

이전 레코드가 그룹화 범위를 벗어나는 경우(예를 들어 두 번째 그룹화 레코드의 경우 Previous(3)를 가져와야 함) 첫 번째 그룹화 레코드를 가져옵니다.

그룹화 합계에 대한 이전 기록을 검색할 때 첫 번째 기록을 얻은 것으로 간주됩니다.

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

다음 레코드가 그룹화 범위를 벗어나면 레코드가 없는 것으로 간주됩니다. 예를 들어 3개의 항목이 있고 세 번째 항목이 Next() 를 수신하면 항목이 없는 것으로 간주됩니다.

그룹화 합계에 대해 다음 기록이 수신되면 기록이 없는 것으로 간주됩니다.

· 현재의. 현재 기록을 가져와야 합니다.

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

· 제한가치(경계값). 지정된 값으로 레코드를 얻어야 합니다. 단어 뒤에 제한가치대괄호 안에는 첫 번째 순서 필드인 조각을 시작하려는 값이 포함된 표현식을 표시해야 합니다.

순서 필드 값이 지정된 값보다 크거나 같은 첫 번째 레코드가 레코드로 반환됩니다. 예를 들어, 기간 필드가 순서 필드로 사용되고 해당 값이 01/01/2010, 02/01/2010, 03/01/2010이고 원하는 경우 LimitingValue(날짜/시간(2010, 1, 15)), 그러면 날짜가 2010년 2월 1일인 레코드가 수신됩니다.

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

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

유형: . 동일한 순서 값을 가진 여러 레코드가 있는 경우 이전 또는 다음 레코드를 결정하는 규칙을 지정합니다.

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

· 함께순서식의 값을 기준으로 이전 레코드와 다음 레코드가 결정됨을 나타냅니다.

예를 들어, 결과 시퀀스가 ​​날짜별로 정렬된 경우:

날짜 성명 의미
1 2001년 1월 1일

이바노프 M.

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

갈라져, 저것:

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

현재, 현재(따라서 매개변수 시작그리고 ), 그러면 레코드 2의 경우 이 조각은 하나의 레코드 2로 구성됩니다. 표현식은 20과 같습니다.

매개변수 값이 다음과 같은 경우 함께, 저것:

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

§ 계산 조각이 다음과 같이 정의된 경우 현재, 현재(따라서 매개변수 시작그리고 ), 그러면 레코드 2의 경우 이 조각은 레코드 2와 3으로 구성됩니다. CalculateExpression("합계(값)", 현재, 현재) 50과 같을 것이다.

다음과 같은 매개변수 값을 지정할 때 함께, 매개변수에서 시작그리고 위치에 대한 오프셋을 지정할 수 없습니다. 처음, 마지막, 이전, 다음.

CalculateExpression("Sum(SumTurnover)", "첫 번째", "현재")

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

CalculateExpression("비율", "이전")

목록 새로운기능:

CalculateExpressionWithGroupArray(,) -

이 함수는 지정된 필드별로 그룹화하기 위해 표현식을 평가한 결과가 포함된 각 요소가 포함된 배열을 반환합니다.

CalculateExpressionWithGroupValueTable(,) -

이 함수는 값 테이블을 반환하며, 각 행에는 지정된 필드별로 그룹화하기 위한 표현식 평가 결과가 포함되어 있습니다.

값이 채워짐() - 값이 이 유형의 기본값이 아니고, NULL이 아니고, 빈 참조가 아니고, 정의되지 않은 경우 True를 반환합니다. 부울 값은 NULL 값을 확인합니다. 공백이 아닌 문자가 없는지 문자열을 검사합니다.

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

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

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

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

공유하다