동적 목록 1s 8.3 임의 요청 매개변수

마침내 "7인"의 꿈이 이루어졌습니다. 프로그램 7.7의 사용자가 항목을 정상적으로 선택하도록 요청한 빈도입니다. 잔액, 가격 및 설정 필터를 볼 수 있습니다. 외부 컴포넌트 작성까지 다양한 트릭을 생각해내야 했다. 1C 8.2에서는 동적 목록이 나타났습니다. 나는 그것이 무엇이며 1C 8.3에서 우리에게 무엇을 줄 수 있는지 고려할 것을 제안합니다.

특정 테스트 구성 1C: "Enterprise Accounting 3.0"을 기본으로 합시다. 지금은 선택하지 않고 "Nomenclature" 참고서에 다른 선택 양식을 추가하고 일시적으로 기본 양식으로 만듭니다.

생성되면 시스템은 기본적으로 "동적 목록" 유형의 테이블 필드를 양식에 추가합니다.

속성으로 이동하여 거기에 무엇이 있는지 봅시다.

먼저 "임의 요청" 확인란에 관심이 있습니다. 동적 목록의 모든 장점을 우리에게 알려줄 사람은 바로 그 사람입니다. 매개변수를 사용하여 자체 쿼리를 작성할 수 있습니다. 확인란을 선택하고 "열기" 링크를 클릭합니다.

에 대한 기성 코드가 있는 창이 열립니다. 지금까지 "Nomenclature" 디렉토리의 모든 필드가 여기에 나열되어 있습니다.

267개의 1C 비디오 강의를 무료로 받으세요:

보시다시피 통화 버튼 ""과 목록의 내용을 동적으로 변경할 수 있는 확인란이 있습니다. 즉, 다른 사용자가 디렉토리에서 무언가를 변경하면 우리 목록에서도 변경됩니다. 또한 설정 탭이 있지만 나중에 다루겠습니다.

동적 목록의 사용자 지정 쿼리

먼저 잔액 및 가격에 필요한 쿼리를 작성해 보겠습니다. 그렇게:

설정 탭

그리고 지금 가장 맛있습니다! "설정" 탭으로 이동합니다. 그리고 첫 번째 탭에서 요청의 모든 필드에 대해 선택할 수 있음을 즉시 확인합니다.

동적 목록 1C 8.3에서 프로그래밍 방식으로 쿼리 매개 변수 설정

요청에 "기간"과 "가격 유형"이라는 두 개의 매개변수가 있다는 것을 잊지 마십시오. 요청에 전달해야 합니다. 그렇지 않으면 오류가 발생합니다.

양식 매개변수에 이러한 매개변수를 작성하고 양식 모듈에 다음 줄을 추가해 보겠습니다.

&OnServerProcedure OnCreateOnServer(Failure, StandardProcessing) 목록. 옵션. SetParameterValue("기간", Parameters.Date) ; 목록. 옵션. SetParameterValue("PriceType" , Parameters.PriceType) ; 종료 절차

구성을 마무리하는 과정에서 각 1C 프로그래머는 동적 목록을 만납니다.
동적 목록은 다양한 데이터베이스 개체 목록 또는 비개체 데이터 레지스터 항목을 표시하는 데 사용되는 인터페이스 개체입니다.
예를 들어 동적 목록은 항목 목록을 표시하는 데 사용됩니다.

동적 목록의 가능성을 보여주기 위해 외부 처리를 만들고 기본 양식을 추가해 보겠습니다. 양식에 "동적 목록" 유형의 새 속성을 추가해 보겠습니다. 속성으로 이동하여 무엇이 있는지 살펴보겠습니다.
우리는 "맞춤형 요청" 속성에 관심이 있습니다. 활성화하면 동적 목록의 모든 가능성이 표시됩니다. 1C: Enterprise 시스템 쿼리 언어의 거의 모든 기능을 사용하여 쿼리를 작성할 수 있습니다. 확인란을 선택하고 "열기" 링크를 클릭합니다.

기본적으로 목록에는 모든 창고에 대한 총 잔액이 있는 항목 목록이 표시됩니다. 이러한 목록을 구현하려면 다음 쿼리를 추가합니다.


기본 테이블로 "Directory. Nomenclature"를 선택하면 명명법 목록과 마찬가지로 동적 목록으로 작업할 수 있습니다(디렉토리의 삭제 요소 추가, 변경, 표시). 또한 기본 테이블을 설정하면 동적 데이터 읽기가 가능해집니다. 즉, 필요에 따라 선택이 부분적으로 이루어집니다.
다음으로 목록에 대한 양식 요소를 만들어야 합니다.

이 형식으로 처리를 실행하려고 하면 오류가 발생합니다.


이를 제거하려면 "기간" 매개변수의 값을 설정해야 합니다. 이렇게 하려면 동적 목록의 "Parameters" 컬렉션의 "SetParameterValue" 메서드를 사용할 수 있습니다. 이 메서드는 두 가지 매개변수를 사용합니다.
. "매개변수" - 유형: 문자열; DataCompositionParameter. 값을 설정할 매개변수 또는 데이터 구성 매개변수의 이름입니다.
. "값" - 유형: 임의. 설정할 값입니다.
다음 형식의 "OnCreateOnServer" 처리기에서 호출할 수 있습니다.

질문이 있으십니까? 컨설턴트의 도움이 필요하십니까?


사용자에게 잔액 수령 기간을 변경할 수 있는 기능을 부여해 보겠습니다. 이를 위해 속성과 이와 관련된 "Date" 양식 요소를 추가해 보겠습니다.


"Date" 양식 요소의 "OnChange" 핸들러에서 "SetParameterValue" 메소드를 호출하여 연관된 속성 값을 값으로 전달하십시오. 마찬가지로 양식의 "On CreationAtServer" 절차를 변경합니다. 이 메서드는 클라이언트에서 사용할 수 있으므로 서버를 호출할 필요가 없습니다.


이제 날짜가 변경되면 잔액이 자동으로 업데이트됩니다.




사용자가 현재 잔액이나 예상 영수증을 보고 싶어 한다고 가정합니다. 구현 옵션 중 하나를 고려해 봅시다. 부울 양식 속성과 관련 라디오 버튼을 추가해 보겠습니다.


스위치 값을 변경할 때 요청 텍스트를 변경합니다. 이를 위해 양식 요소 "DisplayQuantityToReceipt"의 이벤트 핸들러 "OnChange"를 사용합니다. 속성 값에 따라 동적 목록의 "QueryText" 속성을 변경해야 합니다. 이 속성은 클라이언트에서 사용할 수 없으므로 서버 프로시저에 대한 호출이 필요합니다.


변경 결과:



Looking Glass의 홈 노트

2014/04/21 동적 목록 데이터 가져오기

버전 8.3.6.1977에서 구현되었습니다.

동적 목록을 사용하여 표시된 데이터를 쉽고 편리하게 얻을 수 있는 기능을 구현했습니다.

비표준 "특정" 형식으로 인쇄하려면 동적 목록 데이터가 필요할 수 있습니다. 또는 그들과 함께 특정 작업을 수행하기 위해. 예를 들어, 몇 가지 기준에 따라 목록에서 선택한 모든 상대방에게 편지를 보냅니다.

또한 사용자가 요소 목록 외에도 이 목록과 관련된 요약 데이터를 보고 싶어 하는 작업이 많이 있습니다. 예를 들어 특정 제품 그룹과 특정 공급업체의 상품을 선택한 후 즉시 데이터베이스에서 해당 상품의 총 수를 확인하려고 합니다.

동적 목록 자체는 이 정보를 제공할 수 없습니다. 동적 목록의 목적은 많은 양의 데이터를 빠르게 볼 수 있도록 하는 것입니다. 따라서 하나 또는 두 개의 화면에 표시하는 데 필요한 청크 단위로 데이터를 읽습니다. 예를 들어 읽어야 하는 데이터의 총량에 대해 "아무것도 모릅니다".

일반적으로 사용자가 원하는 추가 정보를 얻기 위해서는 데이터베이스를 조회해야 합니다. 동적 목록에 사용된 것과 정확히 동일합니다.

당신은 전에 그것을 할 수 있습니다. 하지만 항상 쉽지만은 않았습니다. 결국 동적 목록이 작동하는 원래 쿼리의 텍스트 외에도 사용자가 데이터를 표시하는 테이블에서 대화식으로 설정하는 모든 선택, 정렬 및 기타 매개 변수를 알아야 했습니다.

이제 이 작업은 쉽게 해결됩니다. 동적 목록 테이블에는 두 가지 새로운 방법이 있습니다.

  • GetExecutableDataCompositionSchema();
  • GetExecutableDataCompositionSettings().

따라서 사용자가 목록을 그대로 볼 수 있기 때문에 데이터 구성 체계 자체와 가장 중요한 모든 설정을 얻을 수 있습니다. 프로그래밍 방식으로 레이아웃을 구성하고 값 모음(프로그래밍 처리용) 또는 스프레드시트 문서(표시용)로 출력하기만 하면 됩니다.

결과적으로 동적 목록 테이블에 표시되는 열과 행을 포함하는 구조(또는 보고서)를 얻게 됩니다.

중요한 점은 동적 목록 테이블에서 가져오는 레이아웃과 설정이 특히 열의 가시성과 적용된 검색을 고려한다는 것입니다. 설정은 별도로 획득되기 때문에 자신의 목적에 따라 필드 구성을 변경하고 예를 들어 사용자에게 표시되는 열뿐만 아니라 목록의 모든 열을 가져올 수 있습니다.

스프레드시트 문서로 출력할 때 또 다른 좋은 순간이 있습니다. 일반적으로 보고서의 모양은 스키마와 설정을 수신할 때 동적 목록 테이블의 모양과 일치합니다. 테이블의 조건부 디자인을 포함합니다. 양식의 조건부 디자인도 보고서로 전송하려는 경우에만 몇 가지 추가 작업이 필요합니다.

인쇄(Ctrl+P)

동적 목록

1. 일반 정보

동적 목록은 데이터베이스 테이블의 임의 정보를 양식에 표시할 수 있는 특수 데이터 유형입니다. 이렇게 하려면 테이블, 표시하려는 데이터를 지정하거나 쿼리 언어로 결과 선택을 설명해야 합니다.
이 메커니즘은 데이터 구성 시스템을 기반으로 하며 수신된 데이터의 정렬, 선택, 검색, 그룹화 및 조건부 처리를 위한 옵션을 제공합니다. 이 경우 데이터 소스는 시스템에서 자동으로 생성(지정된 데이터 기반)하거나 개발자가 수동으로 작성한 요청입니다.

쌀. 1. 동적 목록 생성 옵션

유형의 양식 속성을 생성할 때 동적 목록개발자는 데이터를 쿼리하는 두 가지 방법을 선택할 수 있습니다.
● 기본 테이블 지정 – 이 경우 데이터를 가져오려는 테이블(기본 테이블 속성)을 지정하기만 하면 시스템이 자동으로 데이터에 대한 쿼리를 생성합니다(그림의 오른쪽 참조). . 1).
● 요청 수동 생성 - 이렇게 하려면 사용자 지정 요청 속성을 설정해야 합니다(그림 1의 왼쪽 참조). 그 후에 정보베이스에서 데이터를 얻기 위한 요청을 수동으로 생성할 수 있습니다.
쿼리를 사용하면 여러 테이블에서 데이터를 선택할 수 있으므로 기본 테이블을 지정할 수 있습니다. 이는 동적 목록이 기본 데이터와 보조 데이터를 결정하고 정보를 올바르게 선택 및 표시하고 표준 명령을 제공할 수 있도록 하기 위해 필요합니다. 단, 쿼리에서 메인 테이블을 결정할 수 없는 경우에는 생략할 수 있으나,
동적 목록은 기본 테이블과 관련된 명령을 제공하지 않습니다. 또한 이 경우(메인 테이블을 지정하지 않고) 동적 목록으로 데이터를 얻는 효율성이 크게 떨어집니다.
성능 향상을 위해 데이터 구성 시스템 쿼리 언어 확장을 사용하여 추가 데이터를 검색하기 위해서만 임의 쿼리에 사용되는 모든 조인을 선택 사항으로 만드는 것이 좋습니다.
양식의 주요 속성인 동적 목록의 경우 양식 매개변수를 사용하여 선택 값을 설정할 수 있습니다. 선택. 이렇게 하려면 매개변수에 있는 구조의 속성 이름이 필요합니다. 선택,
동적 목록 선택 필드의 이름과 일치했습니다. 이 경우 구조 속성의 값이 선택 요소의 올바른 값으로 설정됩니다. 배열, 고정 배열 또는 값 목록이 동적 목록 양식 선택 매개 변수의 요소 값으로 전달되면 In List 옵션이 있는 조건이 선택 항목에 추가되며 오른쪽 값은 값 목록이 배치됩니다 (배열 및 고정 배열이 변환됨).
동적 목록의 임의 쿼리는 매개변수가 필드 값을 생성하는 데 사용되는 쿼리일 수 있습니다. 예를 들면 다음과 같습니다.

선택하다
선택
WHEN Delivery.Factor = 1일 때 제출(&Submission)
다른 배달. 계수
END AS 계수
에서

이 경우 매개변수 값 유형이 객체 속성 유형과 다른 경우(예: 소품1유형이 있음 숫자, 매개변수의 값은 유형입니다. ) 그런 다음 필드를 올바르게 표시하려면 매개 변수 값을 원하는 유형으로 명시적으로 캐스팅해야 합니다.

선택하다
선택
WHEN Delivery.Factor = 1 THEN EXPRESS(&Representation AS String(100)) ELSE 배송. 계수
END AS 계수
에서
Document.DeliveryProducts AS 배송

필터가 설정된 필드가 기능 옵션을 사용하여 비활성화된 경우 필터 값이 양식 매개변수 또는 선택 매개변수 링크로 전달되더라도 이 필드에 대한 필터는 설정되지 않습니다.
동적 데이터 읽기 속성을 사용하여 동적 목록이 작은 부분에서 데이터를 읽어야 함을 나타냅니다.
(동적 목록에서 데이터를 가져오는 방법과 데이터를 캐시하는 방법에 대한 자세한 내용은 아래를 참조하세요.) 이 특성에 관계없이 다음 조건이 적용됩니다.

● 보기 모드가 계층적 목록으로 설정된 경우 현재 그룹의 데이터와 모든 부모 요소(자식 요소 없음)의 데이터만 읽습니다.
● 트리 보기 모드로 설정하면 열려 있는 트리 노드의 데이터만 읽습니다.
● 계층적 보기가 설정되고(표시 속성이 트리로 설정됨) 초기 트리 보기가 모든 수준 확장으로 설정된 경우 동적 목록 데이터의 일회성 로드가 지원되지 않습니다. 데이터를 얻기 위해 표시된 목록에 있는 노드 수만큼 서버에 대한 요청이 이루어집니다.
단일 데이터 획득 내에서 동적 목록은 다음 조건에 따라 이전에 생성된 임시 테이블을 재사용합니다.
● 목록 일괄 쿼리에서 메인 일괄 쿼리 이후 쿼리가 없습니다.
● 임시 테이블과 해당 필드의 구성은 이전 일괄 쿼리 실행 이후 변경되지 않았습니다.

작업에서 동적 목록은 메타데이터 개체 속성의 다음 속성 값을 사용합니다.
● 형식,
● 편집 형식,
● 힌트,
● 음수 값 강조 표시,
● 마스크,
● 여러 줄 모드의 기호,
● 고급 편집 표시,
● 암호 모드.
데이터 구성 시스템의 선택 및 매개변수를 표시하고 편집할 때 해당 필드의 편집 형식을 사용합니다.

2. 제한 사항 및 기능

동적 목록에서 필터를 설정할 때 동적 목록의 표시 모드가 계층적 목록 또는 트리인 경우 필터가 그룹에 영향을 주지 않는다는 점을 기억하십시오. "그룹"은 참조 서적의 요소 또는 ThisGroup 속성이 True로 설정된 특성 유형 계획을 의미합니다.
표준 속성 소유자, 상위, 날짜, 기간 및 이 그룹에 대한 동적 목록에 의해 자동으로 적용되는 필터가 적용됩니다.
데이터 구성 시스템의 표준 수단. 동적 목록에 의해 주요 필드에 자동으로 적용되는 필터는 데이터 구성 시스템의 표준 수단과 쿼리 텍스트에 조건을 직접 추가하여 적용할 수 있습니다. 안에기본 테이블의 필드에. 레이아웃 도구에서 필터를 사용한 결과 중첩된 쿼리와 가상 테이블 매개변수 모두에 필터를 적용할 수 있습니다.

동적 목록을 개발할 때 사용자 정의 쿼리로 모든 동적 목록을 테스트하는 것이 좋습니다. 확인 프로세스 중에 목록 쿼리에 중첩된 쿼리 또는 가상 테이블이 포함되어 있고 표준 속성 Owner, Parent, Date, Period, ThisGroup 또는 키 필드의 별칭과 일치하는 별칭이 있는 필드를 선택할 수 있는지 확인해야 합니다. 그런 다음 이러한 필드는 동일한 별칭을 가진 표준 속성과 일치하는 유효합니다. 그렇지 않은 경우 일치하도록 요청을 변경해야 합니다.
별명이 다릅니다.
수동 쿼리 생성을 선택하면 쿼리에 몇 가지 제한 사항이 적용됩니다.
● 동적 목록 쿼리에서 FIRST 절의 사용은 지원되지 않습니다. 레코드 수에 의해 제한되는 동적 목록에서 선택을 사용해야 하는 경우 동적 목록을 생성하는 쿼리는 쿼리의 실제 내용을 하위 쿼리에 배치하고 제한하는 방식으로 재작업해야 합니다. 이 하위 쿼리에서 받은 레코드 수입니다. 하위 쿼리 대신 임시 테이블을 사용할 수도 있습니다.
● 필터링, 정렬 및 그룹화는 지원되지 않습니다.

  • 표 섹션의 세부 사항에 따르면.
  • 필드를 봅니다.
  • 데이터 버전 필드.
  • PredefinedDataName 필드입니다.
  • 필드 계정 ​​차트 테이블 유형.
  • 누적 레지스터 테이블의 MovementType 필드입니다.
  • 특성 유형 계획 테이블의 필드 유형값.
  • Type의 필드;
  • 문자열 유형의 필드(무제한 길이).
  • BinaryData 유형의 필드.

● Subconto 필드별 정렬 및 그룹화는 지원되지 않습니다.<НомерСубконто>및 하위 콘토를 입력합니다.<НомерСубконто>Tables MovementsSubconto 회계 레지스터.
● 집계 함수를 포함하는 쿼리 언어 표현식인 필드별 그룹화는 지원되지 않습니다.
● 기본 테이블을 선택한 상태에서 동적 목록 쿼리에는 다음과 같은 제한이 있습니다.

  • 조인은 지원되지 않습니다.
  • ORDER BY 섹션의 사용은 지원되지 않습니다. 기본 테이블 없이 쿼리를 사용하거나 동적 목록 설정을 통해 필요한 순서를 지정해야 합니다.

● 동적 목록이 계층적 목록 또는 트리로 표시되는 경우 이 항목의 상위 항목이 하나 이상 표시되지 않으면 항목이 동적 목록으로 표시되지 않습니다. 즉, 계층적 목록에 요소를 표시하려면 동적 목록도 해당 요소의 모든 부모를 목록 맨 위에 표시해야 합니다. 이 경우 목록의 맨 위는 다음 중 하나를 의미합니다.
동적 목록에 의해 렌더링되는 계층적 개체의 루트 요소 또는 동적 목록 양식 테이블 확장의 ParentTopLevel 속성으로 설정된 요소입니다.

다음 테이블을 동적 목록의 기본 테이블로 사용하는 것은 지원되지 않습니다.

● 각 테이블 항목을 고유하게 식별하는 키가 없는 테이블(개체 테이블에 대한 참조 및 레지스터 테이블에 대한 항목 키). 그러나 다음 테이블은 키가 없음에도 불구하고 동적 목록의 기본 테이블로 설정할 수 있습니다.

● 회계 등록부의 하위 콘토 테이블;
● 테이블 MovementsSubconto를 제외한 회계 레지스터의 모든 가상 테이블;
● 상수 값 테이블(상수 테이블 포함);
● 키 필드가 없는 외부 데이터 소스 테이블.
● 외부 데이터 소스의 큐브 테이블;
● 누적 레지스터 테이블:

  • 회전율 테이블;
  • 대차대조표;
  • 매출 및 잔액 표.

● 계산 레지스터 테이블:

  • 실제 유효 기간 테이블;
  • 그래프 데이터;
  • 기본적인 정보.

● 개체의 테이블 형식 부분 테이블;
● 변경 등록 테이블(데이터 교환 메커니즘에 사용됨);
● 시퀀스 테이블;
● 변환 테이블(반복 정산 엔진에 사용됨).
● 쿼리에서 외부 조인에만 사용되는 테이블.

즉, 지정된 기본 테이블이 있는 동적 목록은 쿼리 실행 결과로 다음과 같은 경우 올바르게 작동합니다.
데이터 소스로 지정된 경우, 기본 테이블에서 수신되는 행의 수는 증가하지 않습니다(부과된 선택을 고려하여). 쿼리 실행 결과 쿼리가 기본 테이블에서 수신하는 행 수가 증가하면 목록에 표시되는 테이블의 레코드 키 고유성이 위반됩니다. 이 경우 기본 동적 목록 테이블의 사용을 비활성화해야 합니다.
동적 목록으로 작업할 때 목록에 표시되는 세부 정보에 대한 액세스 권한을 고려해야 합니다.
● 항상 사용 속성으로 표시되었지만 현재 사용자에게 보기 권한이 없는 동적 목록 열의 데이터는 클라이언트 측으로 전송되지 않습니다. 이러한 열의 데이터에 액세스(CurrentData 속성 및 RowData() 메서드 사용)
클라이언트 측에서는 불가능합니다.
● 현재 사용자에게 동적 목록의 키 필드에 대한 보기 권한이 없는 경우 이 동적 목록으로 데이터를 가져오면 액세스 위반 오류가 발생합니다.
열거형 목록을 표시하는 동적 목록의 경우 목록을 대화식으로 사용자 지정할 수 있는 방법이 없습니다.
열의 구성과 동적 목록의 설정은 선택 필드의 별칭으로 쿼리 필드와 연결됩니다. 선택 필드의 별칭이 쿼리에 명시적으로 지정되지 않고 필드가 시스템 필드인 경우 내장 언어의 영어 버전에 대한 필드 이름이 별칭으로 사용됩니다.
지정된 관계는 변경(또는 자동 별칭을 사용한 필드에 대한 별칭을 명시적으로 지정)할 때
동적 목록 데이터를 생성하는 쿼리 필드의 별칭, 동적 목록 속성의 설정이 손실되고, 양식 요소가 표시된 속성을 "손실"하고, 동적 목록 설정이 올바르지 않게 됩니다.
동적 목록의 데이터 소스가 기간별로 선택을 설정할 수 있는 테이블(일반 또는 가상)인 경우 사용자가 이러한 동적 목록에서 표시 기간을 설정하면(날짜 간격 설정 .. . 명령),
지정된 기간 경계는 선택 값 또는 가상 테이블 매개변수로 설정됩니다. 언어 확장 수단인 경우
가상 테이블의 매개변수 이름을 명시적으로 지정한 데이터 구성 시스템에 대한 쿼리 - 매개변수는 지정된
이름. 데이터 표시 또는 처리 기간을 제어할 수 있는 테이블:
● 기간별로 선택할 수 있는 등록부 테이블(메인 또는 가상)(정산 등록부의 경우 - 등록 기간별)
● 문서, 비즈니스 프로세스 및 작업의 기본 테이블
● 문서 저널의 기본 테이블;
● 주 시퀀스 테이블, 시퀀스 경계 테이블.
동적 목록의 쿼리 매개변수는 배열 또는 값 목록일 수 있습니다. 그러나 매개변수가 값 목록인 경우 목록의 첫 번째 값만 필터 값으로 사용됩니다. 동적 목록이 매개변수가 있는 쿼리를 사용하는 경우 매개변수 값의 초기 설정은 OnCreateAtServer 핸들러에서 수행해야 합니다.
동적 목록 데이터를 표시할 때 다음 사항에 유의하십시오.
● 동적 목록의 속성을 프로그래밍 방식으로 변경해도 다음과 연결된 명령 모음이 자동으로 다시 채워지지 않습니다.
이 동적 목록으로.
● 여러 필드가 그룹화 모드를 사용하여 그룹으로 그룹화되는 경우 셀과 그룹화된 필드에는 확인란과 함께 표시되는 필드가 있으며 이 확인란은 항상 결과 셀의 첫 번째(텍스트 왼쪽)에 표시됩니다. ).
동적 목록에서 표현식에 매개변수, 필드 또는 리터럴이 포함된 필드의 데이터 유형을 정의할 때 결과 유형은 필드 및 리터럴의 유형에 따라 결정됩니다. 매개변수 값 유형이 결과 데이터 유형에 포함되지 않으면 해당 값이 잘립니다.
예를 들어 다음 예에서 필드는 숫자 유형입니다.

선택
거짓일 때
다음 5
그렇지 않으면
&매개변수

매개변수 매개변수에 다른 유형의 값을 지정하면 이 필드의 동적 목록은 값 0(숫자 유형의 기본값)을 수신합니다.
이러한 상황에서 다른 유형의 매개변수를 선택해야 하는 경우 쿼리 언어 구성을 사용하는 것이 좋습니다. 표현하다. 예를 들어,
위의 예에서 매개변수에 100자 이하의 문자열을 전달하려는 경우 매개변수의 단순 표시를 명시적 유형 변환이 포함된 표현식으로 대체해야 합니다.

선택
거짓일 때
다음 5
그렇지 않으면
EXPRESS(&매개변수 AS 문자열(100))

동적 목록 조회의 자유 텍스트에서 선택 필드의 표현식에 매개변수가 사용되는 경우 구조를 사용하여 매개변수 유형을 명시적으로 지정해야 합니다. 표현하다. 예를 들어 &명칭 AS 명명법사용
EXPRESS(&Nomenclature AS Directory.Nomenclature) AS 명명법. 그렇지 않으면 검색 표시줄을 통한 검색이 작동할 수 있습니다.
잘못되거나 오류가 발생합니다.

3. 동적 목록으로 데이터를 얻고 캐싱하는 방법

표시할 데이터를 수신할 때 동적 목록은 다음 세 가지 방법 중 하나를 사용합니다.
1. 데이터베이스에서 읽기는 목록에 동시에 표시되는 행 수를 약간 초과하는 데이터 요소 수(단, 20개 이상)로 배치로 수행됩니다. 데이터는 서버에 캐시되지 않습니다.
2. 데이터베이스에서 읽기는 1,000개의 데이터 항목 페이지에서 수행됩니다. 데이터가 서버에 캐시되고 있습니다. 계층적 데이터가 캐시됩니다. 각 부모에 대해 2개 이하의 요소 페이지가 캐시됩니다. 동적 목록당 20개 이하의 항목 페이지가 캐시됩니다. 캐싱은 다음 테이블에 대해 동적 목록에 의해 활성화됩니다.
● 선정 기준;
● 기본 테이블과 MovementsSubconto 테이블을 제외한 모든 회계 원장 테이블.
● 메인 테이블을 제외한 누적 레지스터의 모든 테이블;
● 메인 테이블을 제외한 정보 레지스터의 모든 테이블;
● 기본 테이블을 제외한 계산 레지스터의 모든 테이블;
● 가상 테이블 TasksBy Performer;
● 키가 없는 외부 소스 테이블;
● 외부 소스 큐브.

3. 데이터베이스에서 읽기는 1,000개 항목의 페이지에서 수행됩니다. 첫 번째 부분은 1페이지입니다. 각 다음 부분은 1페이지씩 증가합니다(이전 샘플의 끝에 도달했을 때). "시점"이 표시된 데이터의 끝으로 가까울수록 데이터베이스에서 더 큰 선택 항목을 읽습니다. 한도는 표시된 모든 데이터와 동일해집니다. 데이터가 서버에 캐시되고 있습니다. 캐시 및 동적 목록의 최대 항목 수는 1,000,000입니다.
동적 목록의 기본 테이블에서 선택한 항목과 동적 읽기 속성이 사용하는 값에 따라 하나 또는 다른 데이터 읽기 방법이 사용됩니다.

● 다음 테이블 중 하나가 기본 테이블 속성의 값으로 지정됩니다. 교환 계획, 조회, 문서 목록, 문서 저널, 특성 차트 유형, 계정 차트, 계산 차트 유형, 비즈니스 프로세스, 작업, 테이블 비즈니스 프로세스 포인트:



● 다음 테이블 중 하나가 기본 테이블 속성의 값으로 지정됩니다: 정보 등록의 기본 테이블, 누적 등록, 회계 등록, 결산 등록, 회계 등록의 가상 테이블 MovementsSubconto:

● 동적 읽기 속성:
● 설치됨: 방법 1이 사용됩니다(방법은 위에 설명되어 있음).
● 재설정: 방법 2가 사용됩니다(방법은 위에 설명됨).

● 기본 테이블 속성으로 선택 기준 테이블 또는 실행자별 작업 테이블(TasksBy Executor)이 지정됩니다.
● 테이블 행을 식별하는 키: 링크.

● 기본 테이블 속성은 정보 레지스터 가상 테이블 SliceFirst 또는 SliceLast로 설정됩니다.
● 테이블 행을 식별하는 키: RecordKey.
● 동적 읽기 속성은 적용되지 않습니다.
● 방법 2가 사용됩니다(방법은 위에 설명됨).

● 위에 나열된 항목을 제외하고 가상 레지스터 테이블 중 하나가 기본 테이블 속성으로 지정됩니다.

● 동적 읽기 속성은 적용되지 않습니다.

● 기본 테이블 속성이 지정되지 않고 임의의 쿼리가 사용됩니다.
● 테이블 행을 식별하는 키: 숫자.
● 동적 읽기 속성은 적용되지 않습니다.
● 방법 3이 사용됩니다(방법은 위에 설명됨).

디스플레이를 위해 데이터는 청크 단위로 클라이언트에 전송되며, 그 크기는 첫 번째 데이터 읽기 방법(본 섹션 시작 부분에서 설명)의 청크 크기와 비슷합니다.
동적 목록을 포함하는 양식을 만들 때 표시되는 각 동적 목록에 대해 45개의 데이터 항목이 초기에 클라이언트에 전달됩니다(목록에 45개 이상의 항목이 있는 경우). 동적 목록에 45개 이상의 행이 표시되면 양식이 열릴 때 누락된 데이터 항목을 검색하기 위해 추가 서버 호출이 이루어집니다.

4. 동적 목록 설정

목록 설정 속성 - 열기 하이퍼링크를 클릭하면 동적 목록 표시 설정 양식이 열립니다. 목록 설정은 데이터 구성 시스템에서 유사한 작업과 동일한 방식으로 수행됩니다.


쌀. 2. 동적 목록의 조건부 스타일 지정

구성에서 동적 목록을 설정할 때 적용된 솔루션의 개발자는 다음을 수행할 수 있습니다.
● 주문을 수행해야 하는 필드를 설정합니다.
● 목록에서 선택한 데이터를 설명합니다.
● 조건부 서식 설정을 지정합니다.
● 데이터를 그룹화할 필드를 설정합니다.
시스템에서 설정한 기본 정렬이 적합하지 않은 경우 개발자에게 정렬을 설정하는 것이 좋습니다.

조언.잘못된 정렬 필드 선택(및 데이터 선택 및 그룹화)은 동적 샘플링의 효율성에 부정적인 영향을 미친다는 점을 기억해야 합니다.
애플리케이션 개발자의 관점에서 동적 목록 설정은 상호 연결된 여러 부분으로 구성됩니다. 동적 목록의 설정을 제어할 수 있는 주요 속성은 다음과 같습니다. 링커 설정. 이 개체에는 시스템이 실행 중일 때 동적 목록에 적용되는 최종 설정을 결정하는 세 가지 설정 집합이 포함되어 있습니다.
● 설정 - 구성자 모드에서 생성된 설정입니다. 동적 목록 Order 속성은 동적 목록 설정 빌더의 Settings.Order 속성에 대한 빠른 액세스를 제공하므로 다음 구문은 동일합니다.
List.Order 및 List.SettingsComposer.Settings.Order;
● UserSettings는 사용자가 1C:Enterprise 모드에서 변경할 수 있는 설정입니다.
● FixedSettings - 이 설정은 내장 언어에서 설정됩니다. 이 속성에는 매개 변수를 사용하여 양식에 전달되는 선택 값도 포함됩니다. 동적 목록 필터, 매개변수, 조건부 모양의 속성을 통해 동적 목록 설정 빌더의 고정 설정에 빠르게 액세스할 수 있습니다. 즉, 다음 호출은 동일합니다.
List.SettingsComposer.FixedSettings.Filter 및 List.Filter.
동적 목록의 최종 설정을 구성할 때 다음과 같이 다양한 설정이 결합됩니다.
● 모든 종류의 설정이 완전히 사용자 정의로 표시된 경우 결과 설정에 사용자 설정이 포함됩니다.
(List.SettingsComposer.UserSettings). 이 경우 설정 요소가 사용할 수 없는 것으로 표시된 경우 이러한 설정은 List.Settings Composer 속성의 결과 설정에 배치됩니다. 설정.
● 어떤 유형의 설정이 전체적으로가 아니라 요소별로 사용자별로 표시되는 경우:
● 사용자 지정으로 표시된 요소는 List.SettingsComposer.CustomSettings 속성의 결과 설정에 포함됩니다.
● 사용할 수 없는 것으로 표시된 항목은 List.SettingsComposer.Settings 속성의 결과 설정에 포함됩니다.
● 고정 설정(List.SettingsComposer.FixedSettings)은 "있는 그대로" 결과 설정에 추가됩니다. 동시에 고정 및 사용자 설정에 동일한 이름의 설정이 포함된 경우(예: 조건에서 왼쪽 값이 동일한 선택) 상황은 허용되지 않습니다.

기능 옵션을 사용하여 비활성화된 동적 목록 설정에 설정이 있는 경우 이러한 설정은 동적 목록 데이터를 수신할 때 사용 가능한 설정 목록에서 제거됩니다.
사용자가 사용할 수 있는 설정과 동적 목록 설정 창에서 수행되지 않을 설정을 제어합니다.


쌀. 3. 사용자 설정에 포함 관리

창 하단에 있는 확인란(그림 3 참조)은 전체 설정 유형을 설정(일반 또는 빠른)에 배치하는 역할을 합니다. 이 기능은 선택, 순서, 그룹화 및 조건부 스타일 지정에 사용할 수 있습니다. 빠른 선택 편집 모드로 설정을 지정한 경우 동적 목록을 표시하는 양식 테이블의 사용자 정의 설정 그룹 속성에서 동적 목록의 빠른 사용자 설정과 연결된 요소가 포함될 빈 양식 그룹을 지정해야 합니다. 에 위치한. 그룹을 지정하지 않으면 빠른 사용자 설정이 양식에 표시되지 않습니다. 동적 목록 확장의 CreateUserSettingsFormItems() 메서드를 사용하여 1C:Enterprise 언어를 사용하여 사용자 설정 생성을 명시적으로 호출할 수도 있습니다.
사용자 설정에 특정 설정 항목을 배치할 가능성을 선택할 수도 있습니다. 이 기능은 선택 및 조건부 디자인 요소에 사용할 수 있습니다(그림 3 참조).

동적 목록을 열 때 특수 설정을 로드해야 하는 경우 두 가지 방법으로 수행할 수 있습니다.
● CustomSettings 동적 목록 양식 매개변수 사용. 이 매개변수에 포함된 데이터는 동적 목록의 사용자 설정에 배치됩니다.
● 동적 목록 양식 매개변수 UserSettingsKey 사용. 양식을 열 때 이 매개변수를 지정하면 지정된 키를 사용하여 설정 저장소에 있는 사용자 설정이 양식의 주요 속성인 동적 목록에 로드됩니다.

5. 동적 목록에서 검색

양식에 있는 동적 목록은 표시된 데이터에서 대화식 검색을 수행하는 기능을 제공합니다. 다음 도구를 사용하여 검색할 수 있습니다: 검색 문자열, 검색 대화 상자, 현재 값 검색, 검색 기록 사용 및 기간 설정(문서를 표시하는 동적 목록의 경우). 검색 결과는 제한된 레코드 집합입니다.
검색 기준과 일치하는 동적 목록(지정된 사용자가 사용할 수 있는 목록).
동적 목록의 검색 기능을 제어하기 위해 동적 목록을 표시하는 관리되는 양식 테이블에는 세 가지 속성이 있습니다.
● 검색 문자열 위치 - 검색 문자열의 위치를 ​​정의합니다. 다음 값을 사용할 수 있습니다. Auto, Command Panel, No, Top, Bottom.


쌀. 4. 동적 목록의 검색창

이 속성의 값이 명령 모음으로 설정되면 검색 표시줄이 양식 명령 모음(동적 목록이 양식의 주요 특성인 경우) 또는 동적 목록과 연결된 명령 모음에 표시됩니다. 명령 모음에 배치된 검색 표시줄은 항상 명령 표시줄의 오른쪽 가장자리에 눌려 있습니다(검색 표시줄 오른쪽에 있는 버튼과 함께).
속성이 아니요로 설정되어 있으면 양식에 검색 문자열이 없으며 검색 문자열을 입력하기 시작할 때 대화 상자가 열립니다.
속성을 Top으로 설정하면 목록 명령 모음과 동적 목록을 표시하는 테이블 사이에 검색 표시줄이 위치합니다. 이 속성을 Bottom으로 설정하면 동적 목록을 표시하는 테이블 바로 뒤에 검색 문자열이 배치됩니다.


● 호환성 모드 속성이 사용 안 함 또는 버전 8.3.4 이전으로 설정된 경우 값은 명령 패널입니다.
검색 표시줄로의 전환은 다음과 같이 수행됩니다.
● Ctrl+F 키 조합을 누르면;
● 마우스;
● 동적 목록에서 입력을 시작할 때(동적 목록의 SearchOnType 속성 값 기준).
● 보기 상태 위치 - 보기 상태가 표시되는 위치(검색된 필드 및 값)를 설명합니다.
모든 분야에서 찾았다. 다음 값을 사용할 수 있습니다. Auto, None, Top, Bottom


쌀. 5. 동적 목록에서 검색 상태

속성이 아니요로 설정되면 보기 상태가 양식에 표시되지 않습니다. 결과적으로 검색 취소 버튼의 사용 가능 여부만으로 검색이 수행되었는지 여부를 확인할 수 있습니다.
속성을 Top으로 설정하면 보기 상태는 목록 명령 모음과 동적 목록을 표시하는 테이블 사이에 위치합니다. 속성이 Bottom으로 설정되면 보기 상태는 동적 목록을 표시하는 테이블 바로 뒤에 배치됩니다.
양식이 1C:Enterprise 버전 8.3.4 이하에서 생성된 경우 속성이 아니요로 설정됩니다. 양식이 1C:Enterprise 버전 8.3.5 이상에서 생성된 경우 속성이 자동으로 설정됩니다. 이 경우 재산의 실제 가치는 다음과 같이 결정됩니다.
● 호환성 모드 속성이 버전 8.3.4(이하)로 설정된 경우 – 아니오;
● 호환성 모드 속성이 사용 안 함 또는 버전 8.3.4 이전으로 설정된 경우 값은 Top입니다.
● 검색 제어 위치 - 검색 제어 버튼이 표시될 위치를 결정합니다. 이 버튼은 현재 값으로 찾기, 고급 검색, 검색 취소, 기간 설정(문서 및 저널 목록용) 및 검색어 기록(마지막 5개 쿼리) 명령과 같은 정보가 포함된 메뉴를 엽니다. 이 속성은 Auto, No, Command 패널 값을 가질 수 있습니다.


쌀. 6. 동적 목록에서 검색 관리

이 속성이 아니요로 설정되어 있으면 검색 컨트롤 단추가 양식에 표시되지 않습니다(단, 자세히 메뉴를 사용하여 명령을 사용할 수 있음). 명령 모음 속성 값은 동적 목록을 표시하는 테이블과 연결된 명령 모음에 단추를 배치합니다.
양식이 1C:Enterprise 버전 8.3.4 이하에서 생성된 경우 속성이 아니요로 설정됩니다. 양식이 1C:Enterprise 버전 8.3.5 이상에서 생성된 경우 속성이 자동으로 설정됩니다. 이 경우 재산의 실제 가치는 다음과 같이 결정됩니다.
● 호환성 모드 속성이 버전 8.3.4(이하)로 설정된 경우 – 아니오;
● 호환성 모드 속성이 사용 안 함 또는 버전 8.3.4 이전으로 설정된 경우 값은 명령 패널입니다.
양식에 여러 개의 명령 패널이 있는 경우 명령 소스가 관리되는 양식의 하나의 테이블(동적 목록 데이터 표시)인 경우 검색 문자열과 검색 제어 단추는 하나의 명령 패널에만 있습니다.
● 또는 동적 목록 자체의 명령 모음에서(자동 완성이 활성화된 경우)
● 또는 나머지 명령 패널에서.

동적 목록에서 검색을 사용하는 기능을 고려하십시오.
● 검색을 편리하게 사용하려면(성능 측면 포함) 동적 목록의 기본 테이블로 사용할 수 있는 모든 구성 개체에 대해 전체 텍스트 검색을 활성화해야 합니다. 또한 전체 텍스트 검색에는 동적 목록에 표시될 수 있고 검색이 필요할 수 있는 구성 개체의 모든 세부 정보가 포함되어야 합니다.
개체가 전체 텍스트 검색에서 제외되면 문제의 검색 메커니즘이 작동하지만 이러한 검색 성능은 매우 낮습니다. 전체 텍스트 검색으로 인덱싱되지 않은 객체에 대해서는 검색을 사용하지 않는 것이 좋습니다.
● 애플리케이션 솔루션에는 전체 텍스트 검색 인덱스를 정기적으로 업데이트하는 예약된 작업이 있어야 합니다.

● 검색은 동적 목록(및 구성 개체)의 모든 열에서 수행되지 않고 테이블에 표시된 열에서만 수행됩니다.
● 임의 표현이 있는 참조 유형의 필드로 동적 목록에서 검색은 다음에 사용되는 필드로 수행됩니다.
표현 형성(여기 참조). 뷰에 포함된 필드는 해당 객체의 ViewFieldsGetProcess() 핸들러를 고려하여 가져옵니다.
● 지정된 기본 테이블이 있는 동적 목록의 경우 기본 테이블에 대한 전체 텍스트 검색이 사용됩니다. 기본 테이블에서 인덱싱되지 않은 모든 링크가 전체 텍스트 검색 결과에 추가됩니다. 기본 테이블에 대한 전체 텍스트 검색 결과는 키 필드별 필터로 사용됩니다. 전체 텍스트 검색은 다른 테이블의 목록에 표시된 필드에서도 수행됩니다(필드 및 구성 개체에 대해 전체 텍스트 검색이 사용된 경우). 전체 텍스트 검색을 활성화하지 않으면 데이터가
찾을 수 있지만 검색 자체는 매우 느립니다.
전체 텍스트 검색 시도 중 오류가 발생하면 전체 텍스트 검색을 사용하지 않고 검색을 수행합니다.
예를 들어, 이 문자로 시작하는 정보 베이스에서 하나의 문자와 많은 행으로 검색할 때 이런 일이 발생할 수 있습니다.
● 동적 목록의 기본 테이블 필드가 같음 비교 유형으로 필터링된 경우 전체 텍스트 검색을 수행할 때 이 테이블에 대한 검색 쿼리에 필터 값이 추가됩니다.
● 검색 문자열은 단어로 분할됩니다. 이 분할은 다음 규칙에 따라 수행됩니다.
● 공백과 탭 문자를 구분 기호로 사용하여 줄을 나눕니다.
● 그런 다음 각 결과 조각이 처리됩니다.
● 조각이 세션의 현재 로케일을 기반으로 하는 날짜(시간 포함 또는 제외) 표현인 경우 조각은 단어입니다.
● 그렇지 않으면 ",.-/\" 문자를 구분 기호로 사용하여 조각이 추가로 분할됩니다. 이 경우 문자열의 각 결과 조각은 단어로 간주됩니다.

● 각 단어에 대해 자체 조건 집합이 형성되며 "by OR"로 결합됩니다. 이 조건 집합은 이 필드를 가져온 테이블에서 주어진 단어에 대한 전체 텍스트 검색이 적어도 하나의 개체를 반환했거나 전체 텍스트 검색이 이 필드에 사용되지 않은 경우 생성됩니다. 조건은 다음과 같이 구성됩니다.
● 문자열 유형 필드의 경우 조건은 FieldName LIKE %Word%입니다.
● 숫자 유형 필드의 경우 조건은 FieldName=Value입니다. 여기서 Value는 숫자로 변환된 단어입니다. 캐스트를 수행할 수 없는 경우 필드 검색이 수행되지 않습니다.
● 단어는 현재 세션에 대해 정의된 부울 유형의 기본 표현에서 하위 문자열로 검색됩니다. 검색어가 뷰에서 발견되면 단어가 발견된 뷰에 해당하는 값에 대한 검색이 수행됩니다. 동시에 형식 양식 요소 특성을 사용하여 지정된 보기는 검색에 사용되지 않습니다.
● 날짜 유형 필드의 경우 조건은 FieldName>=DayStart(Word) AND FieldName입니다.<=КонецДня(Слово). Если Слово подобно дате, в которой год
한 자리 또는 두 자리로 지정하면 연도가 현재 세기로 변환되어 이 값이 검색 조건으로 대체됩니다.
● 참조 필드의 경우 링크 표현을 형성하는 데 사용된 필드에서 검색이 수행됩니다. 이러한 각 필드에서 검색
위에서 설명한 규칙에 따라 수행됩니다. 검색은 데이터의 임의 표시를 구성하는 데 사용되는 필드를 사용하지 않습니다.
각 단어에 대한 조건 세트는 "AND로" 결합됩니다.
● 선행 0이 있는 값의 경우 선행 0이 있는 문자열 또는 선행 0 없이 지정된 문자열에서 검색할 수 있습니다.
● 동적 목록이 문서 목록 또는 문서 기록을 표시하는 경우 지정된 목록 보기 간격도 원하는 동적 목록에 대한 보기 상태 표시 전용 양식 영역에 표시됩니다.
● 동적 목록의 기본 테이블이 선택 기준인 경우 현재 값으로 검색 명령을 사용할 수 없습니다.
● 발견된 줄 조각은 테이블에 표시될 때 강조 표시됩니다.
● 열당 하나의 검색 문자열만 지원됩니다. 이미 검색 중인 열에 새 검색어를 추가하면 두 개의 검색어가 추가되지 않고 검색 표현식이 대체됩니다.
● 양식에 동적 목록을 표시하는 테이블과 연결된 검색 문자열 표시(양식 요소 추가 기능의 소스 속성) 양식의 양식 요소 추가 기능이 없는 경우 Ctrl+F 키 조합을 누릅니다. 검색 대화 상자를 엽니다.


쌀. 7. 검색 대화상자

양식에 동적 목록을 표시하는 테이블과 연결된 검색 문자열 표시(양식 요소 추가 기능의 소스 속성) 양식의 양식 요소 추가 기능이 있는 경우 고급 검색 명령을 사용하여 열어야 합니다. 검색 대화 상자.
● 검색 대화 상자를 사용할 때 다음 사항에 유의하십시오.
● 키보드 단축키로 검색 대화 상자를 열면 현재 셀의 값이 검색 대상 행에 나타나고 검색 방법 라디오 버튼의 값이 완전 일치로 설정됩니다.

● 동적 목록에 검색 문자열을 직접 입력하여 검색 대화 상자를 열면 검색 방법 라디오 버튼의 값이 문자열의 일부로 설정되고 입력한 텍스트가 검색 대상 필드에 입력됩니다.

6. 동적 목록에 표시된 데이터 가져오기

동적 목록을 사용하는 경우 부과된 필터 및 적용된 검색을 고려하여 현재 동적 목록에 표시된 데이터에 대해 다양한 작업을 수행해야 할 수 있습니다. 이러한 작업에는 표시된 정보 처리(예: 선택한 문서 다시 게시 또는 선택한 개체에 대한 일부 세부 정보 설정), 예를 들어 인쇄 또는 스프레드시트 문서에 저장하기 위해 사용 가능한 개체 목록(디자인 포함) 생성 등이 포함됩니다.
동적 목록에 표시되는 데이터를 가져오려면 GetDataCompositionSchemeExecutable() 및
GetDataCompositionSettingsExecutable().
데이터 검색 예:

스키마 = Items.List.GetExecutableDataCompositionSchema();
설정 = Items.List.GetDataCompositionSettingsExecutable();
레이아웃 레이아웃 빌더 = 새 데이터 레이아웃 레이아웃 빌더();
LayoutLayout = LayoutComposer.Run(구성표, 설정);
CompositionProcessor = NewDataCompositionProcessor;
LayoutProcessor.Initialize(레이아웃 레이아웃);
OutputProcessor = 새 OutputProcessorofDataCompositionResultIntoSpreadsheetDocument;
Return OutputProcessor.Output(CompositionProcessor);

데이터를 값 모음(테이블 또는 값 목록)으로 가져오는 것도 비슷한 방식으로 수행됩니다.
이러한 방식으로 동적 목록에서 데이터를 가져오려면 응용 프로그램 솔루션을 개발할 때 고려해야 할 여러 기능이 있습니다.
● 다음 테이블 디자인은 지원되지 않습니다.
● 선 색상 교대;
● 헤더 그림;
● 지하실 사진;
● 지하실 배경색;
● 바닥글 텍스트 색상;
● 바닥글 글꼴;
● 지하실의 수평 위치;
● 암호 모드.
● 관리 양식에 대해 지정된 조건부 모양이 지원되지 않습니다.
● 계층 구조 테이블을 오름차순으로 정렬할 때 링크 유형의 필드별로 null 링크를 포함하는 레코드가 항상 먼저 배치됩니다.

모든 프로그래밍 언어에서 찾을 수 있는 기본 데이터 유형 외에도 1C에는 고유한 유형이 있습니다. 그들 각각은 시스템에서 고유한 속성, 방법, 기능, 목적 및 사용 뉘앙스를 가지고 있습니다. 이러한 유형 중 하나는 많은 적용된 작업을 크게 단순화하는 동적 목록입니다. 그렇기 때문에 개발자는 이 다재다능한 도구를 알고 다룰 수 있어야 합니다.

1C의 동적 목록 기능

이 유형의 목적은 유형에 관계없이 모든 데이터베이스 테이블의 정보를 표시하는 것입니다. 이 메커니즘은 SKD를 기반으로 만들어졌으며 유사한 기능을 가지고 있습니다. 그러나 이것이 1C 언어로 쿼리를 작성해야 한다는 것을 의미하지는 않지만 이 가능성이 존재하고 사용해야 합니다. 관심있는 정보 인 테이블을 지정하기 만하면 1C가 간단한 쿼리를 독립적으로 생성합니다.

동적 목록이 어떻게 형성되고 어떤 데이터가 표시되는지 확인하려면 구성자에서 관리 양식을 열어야 합니다. 세부 정보 목록에서 상황에 맞는 메뉴를 통해 속성을 열고 "사용자 지정"에 주의하십시오. 요청” 항목. 확인란이 없으면 "기본 테이블" 매개변수는 데이터를 가져온 데이터베이스 테이블을 반영합니다. 그렇지 않으면 목록 설정을 열어 볼 수 있는 사용자 지정 쿼리 데이터가 동적 목록에 반영됩니다.

임의 쿼리 스키마는 다양한 데이터를 결합하고 표시할 수 있는 좋은 기회를 제공하므로 훨씬 더 일반적으로 사용됩니다. 대부분의 경우 이 메커니즘은 재고 잔고, 항목 가격, 수입, 비용 또는 구매를 반영하는 데 사용됩니다. 쿼리가 복잡하면 성능이 떨어질 수 있으므로 신중하게 사용해야 합니다.

"목록 설정" 비문을 클릭하면 동적 목록의 또 다른 유용한 속성이 열립니다. 이 메뉴를 사용하면 표준 필드 집합을 사용하는 경우에도 최종 사용자가 정보에 더 쉽게 액세스하고 이해할 수 있습니다. 임의 요청인지 여부에 관계없이 다음을 지정할 수 있는 "설정" 탭이 표시됩니다.

  • 동적 목록 선택
  • 그룹화;
  • 분류;
  • 장식.

매개변수를 사용하면 동적 목록이 충분히 다양하고 유연해집니다. 또한 관리되는 양식의 소품에 바인딩할 수 있으며 데이터는 사용자가 선택한 옵션에 따라 변경됩니다. 실제 문제의 예를 살펴보면 이러한 메커니즘의 사용을 이해하고 평가할 수 있습니다.

예를 들어 관리되는 양식에 남아 있는 명명법을 반영하는 문제를 생각해 보십시오. 실제로 이러한 주문은 다양한 구성에서 매우 일반적이며 동적 목록은 도구로 이상적입니다. 이 작업을 위해 임의 쿼리, 동적 목록 매개 변수 및 해당 설정을 사용해야 합니다.

명확성을 높이기 위해 별도의 외부 처리를 생성하고 동적 목록을 배치해 보겠습니다. 계획을 구현하려면 명명법이 있는 테이블이 거의 없으므로 임의 요청을 허용해야 합니다. 그 안에는 참고서의 왼쪽 연결과 명명법 목록 및 잔류 등록부를 설명하고 참고서를 기본 테이블로 설정합니다. 이러한 체계를 통해 사용자는 동적 목록으로 작업하는 동안 명명법을 추가하거나 변경할 수 있습니다.



CHOOSE NomenclatureList.Description AS Name, GoodsInWarehouseRemains.Warehouse AS Warehouse, GoodsInWarehousesRemains.QuantityRemaining AS QuantityRemainder FROM Directory.Nomenclature AS NomenclatureList LEFT JOIN Accumulation Register.GoodsInWarehouses.Remains(&CurrentDate,) AS GoodsInWarehousesRemainder ki 소프트웨어 NomenclatureList.Reference = GoodsInWarehousesRemain s.명칭 WHERE

요청에 CurrentDate 매개변수가 사용되었으므로 처리를 사용하기 전에 해당 값을 설정해야 합니다. 이렇게 하려면 표준 명령을 사용하여 "On CreationOnServer" 절차의 양식 모듈에서 표준 명령을 사용하여 "CurrentSessionDate" 함수를 할당합니다. 또한 제어 양식에 동적 목록을 표시하고 명확성을 위해 필드 순서를 변경해야 합니다. "Nomenclature Remains" 소품을 양식 요소(왼쪽 위)로 드래그하고 파란색 화살표를 사용하여 양식의 테이블에서 필드 순서를 변경합니다.

&At 서버 프로시저 On CreationAt Server(Failure, StandardProcessing) 명명법 유지.Parameters.SetParameterValue("CurrentDate",CurrentSessionDate()) EndProcedure


이미 이 단계에서 1C에서 외부 처리를 열고 동적 목록이 작동하는지 확인할 수 있습니다. 저울을 보고 명명법과 그룹을 만들고 검색할 수 있습니다. 종종 고객은 잔액을 확인할 날짜를 선택할 수 있는 기능을 추가하도록 요청합니다. 동적 목록이 있는 양식의 경우 추가 필드 및 이를 사용하여 매개 변수를 설정하여 제공됩니다.

"Date" 유형의 "Remains Date" 속성을 추가하고 이를 양식 요소로 전송합니다. 필드 이벤트에서 "OnChange" 이벤트를 생성하고 동적 쿼리에 사용되는 "CurrentDate" 매개변수를 설정하기 위한 코드를 작성합니다. 양식을 열 때 사용자가 잔액을 보는 날짜를 즉시 이해할 수 있도록 OnCreateOnServer 절차를 약간 변경합니다.



&OnServerProcedureOnCreateOnServer(Failure, StandardProcessing)RemainsDate = CurrentSessionDate(); 항목 Remains.Parameters.SetParameterValue("현재 날짜", RemainsDate); 프로시저 종료 &At 클라이언트 프로시저 RemainsDateOnChange(Element) Item Remains.Parameters.SetParameterValue("CurrentDate",RemainsDate); 종료 절차

결과적으로 동적 목록 양식은 모든 날짜의 잔액을 표시할 수 있습니다.

우리는 이 툴킷의 기능 중 일부만 다루었지만, 이것은 이미 이러한 유형의 동적 목록의 편리함을 이해하기에 충분합니다. 유사한 메커니즘이 많은 작업에 사용되지만 대부분 관리되는 양식의 일반적인 구성에서 발견됩니다.

  1. 선택;
  2. 기울기.

일반적인 관리 양식에서 동적 목록 및 해당 요청을 가져오려면 개발자가 구성자에서 필요한 양식을 열어야 합니다. 속성 섹션에서 "DynamicList" 데이터 유형이 있는 속성을 찾으십시오(대부분 굵게 표시됨). 해당 속성에는 요청 텍스트, 선택 및 기타 설정이 포함됩니다.