목록의 확인란은 uv 1을 형성합니다. 형태

북마크에 추가적으로쿼리 작성을 위한 추가 옵션은 다음과 같이 그룹화되었습니다.

그들의 목적을 고려해 봅시다.

  1. 첫 번째(n) - 지정된 레코드 순서를 고려하여 지정된 수의 레코드(요청의 첫 번째 레코드)를 선택할 수 있습니다. 요청 텍스트에 SELECT 키워드가 생성됩니다. 첫 번째 N
  2. 중복 없음 - 선택 항목의 세부 기록에 고유한 기록만 남깁니다. 요청 텍스트에 SELECT 키워드가 생성됩니다. 다양한
  3. 허용됨 - 액세스 권한 제한을 구성하는 데 필요합니다. 이러한 권한에 허용된 레코드만 표시됩니다(이 옵션을 선택하지 않으면 제한된 권한으로 요청이 실패하고 오류가 반환될 수 있습니다). 요청 텍스트에서 옵션은 SELECT 키워드를 생성합니다. 허용된
  4. 쿼리 유형 - 데이터 검색 또는 임시 테이블 생성. 임시 테이블 옵션을 사용하면 이름을 지정할 수 있습니다. 나중에 이 테이블을 편집된 쿼리의 중간 데이터 소스로 액세스할 수 있습니다. 이 경우 요청 텍스트에 키워드가 표시됩니다. 장소
  5. 후속 수정을 위해 수신된 데이터 잠금 - 소스 테이블에서 읽기가 진행되는 동안 다른 세션에서 읽기가 차단되는 것으로 가정됩니다. 옵션이 활성화되면 요청 텍스트에 키워드가 표시됩니다. 변화를 위해.이 경우 쿼리에 포함된 테이블 중 어떤 테이블을 차단할지 지정할 수 있습니다. 이것이 완료되지 않으면 모든 것이 차단됩니다.

시험 1C: 플랫폼 전문가의 문제 07.21. 쿼리 디자이너의 "고급" 탭에 있는 "중복 레코드 없음" 플래그를 사용하면 다음을 수행할 수 있습니다.

  1. 데이터 소스 테이블에서 동일한 행 제외
  2. 결과 쿼리 테이블에서 동일한 행을 제외합니다. 이 작업은 상세 기록과 요약 기록 모두에 적용됩니다.
  3. 결과 쿼리 테이블에서 동일한 행을 제외합니다. 이 작업은 세부 기록에만 적용됩니다.

정답은 세 번째입니다. 고유성 요구 사항은 결과에 적용되지 않습니다.

시험 1C: Platform Professional의 질문 07.22. 쿼리 디자이너의 "고급" 탭에 있는 "처음 5개 레코드" 플래그를 사용하면 다음을 수행할 수 있습니다.

  1. 보고서의 처음 5개 레코드를 표시합니다. 쿼리 디자이너에 구성된 순서 규칙을 고려하지 않고 레코드가 선택됩니다.
  2. 보고서의 처음 5개 레코드를 표시합니다. 쿼리 디자이너에 구성된 순서 규칙을 고려하여 레코드가 선택됩니다.

정답은 두 번째이며 순서가 고려됩니다.

시험 1C: 플랫폼 전문가의 질문 07.23. 쿼리 디자이너의 "고급" 탭에 있는 "변경" 플래그(자동 트랜잭션 잠금 모드)를 사용하면 다음을 수행할 수 있습니다.

  1. 쿼리 실행 시(트랜잭션 외부) 수정을 위해 지정된 소스 테이블의 데이터를 잠급니다.
  2. 쿼리에서 지정된 소스 테이블의 데이터를 읽기 위한 잠금(트랜잭션 외부 및 내부 모두)
  3. 읽기를 위해 지정된 소스 테이블의 데이터를 잠급니다(트랜잭션 내에서).
  4. 답변 1과 2가 정답입니다.

정답은 세 번째입니다. 처리 트랜잭션이 완료된 후 잠금이 해제됩니다.

시험 1C: 플랫폼 전문가의 질문 07.24. 쿼리 디자이너의 "고급" 탭에서 "변경" 플래그(자동 트랜잭션 잠금 모드에서)를 설정하면 잠금이 발생합니다.

  1. 데이터베이스 테이블 수준에서
  2. 데이터베이스 테이블의 레코드 수준에서
  3. 파일 서버 버전 - 데이터베이스 테이블 수준
  4. 클라이언트-서버 버전 - 데이터베이스 테이블 레코드 수준
  5. 3번과 4번은 정답입니다

정답은 다섯번째 입니다.
자동 및 관리형 트랜잭션 잠금에 대해 자세히 알아보세요.

시험 1C: 플랫폼 전문가의 질문 07.25. 쿼리 디자이너의 "고급" 탭에서 "수정용" 플래그(자동 트랜잭션 잠금 모드에서)를 설정하면 데이터가 잠깁니다.

  1. 쿼리의 모든 소스 테이블
  2. 쿼리에는 가상 소스 테이블만
  3. "변경할 테이블" 목록이 비어 있으면 요청에 관련된 모든 테이블이고, 그렇지 않으면 목록에 지정된 테이블만 해당됩니다.

정답은 세 번째, 게시물 내 분석입니다.

시험 1C: 플랫폼 전문가의 질문 07.47. "Select * From Directory.Nomenclature" 텍스트가 포함된 요청을 실행하려고 할 때 디렉터리 항목(해당 역할)에 읽기 제한이 정의된 경우 다음과 같은 일이 발생합니다.

  1. 모든 데이터가 수신됩니다.
  2. 허용된 레코드의 데이터만 검색됩니다.
  3. 오류가 발생합니다

정답은 세 번째입니다. 이러한 상황을 방지하려면 "허용" 옵션을 설정해야 합니다.

1. 양식 작성 방법
2. 양식 작성기

양식을 만드는 방법

1c 형식에 대해 배웠으므로 더 깊은 이해로 넘어 갑시다. 먼저 양식을 만들어 보겠습니다. 이는 모든 개체의 양식일 수 있습니다. 이 예에서는 디렉터리입니다. 양식을 만드는 방법에는 여러 가지가 있습니다.

1. 객체 생성자에서 두 가지 방법으로

2. 구성 트리에서 상황에 맞는 메뉴를 통해(그림에서 파란색으로 강조 표시된 개체를 마우스 오른쪽 버튼으로 클릭)

양식 작성기

새 양식을 만들 때 양식 디자이너 창이 나타납니다.

디자이너가 선택을 제안하는 양식 유형은 요소의 초기 채우기에 영향을 미칩니다. 주요 유형 옵션은 다음과 같습니다.

    요소의 형식(문서, 값 집합)

    목록 양식

    선택 양식

체크박스 " 양식을 기본으로 설정"는 이 유형의 양식이 여러 개 있고 이 유형의 양식을 호출할 때 특정 양식을 지정하지 않으면 기본 양식이 표시된다는 의미입니다. 예를 들어, 기본 목록 양식인 "ListFormShort"와 "ListFormFull"이 있는데, 목록 양식을 호출하고 특정 양식을 지정하지 않으면 "ListFormShort"가 표시됩니다.
기본 양식은 수정 가능한 개체 생성자의 "양식" 탭에 표시됩니다.

체크박스 " 기본 목록 및 선택 양식"는 이 양식이 목록 보기와 선택 모두에 표시된다는 의미입니다.

체크박스 " 요소 및 그룹의 기본 형태"는 이 양식이 요소 편집과 그룹 모두에 대해 표시된다는 의미입니다.

다음은 소품입니다.” 이름"이 양식의 식별자입니다. 하나의 개체에 대해 동일한 식별자를 사용하여 두 개의 양식을 만들 수 없습니다.
소품 " 동의어"는 사용자 모드에서 이 양식의 이름으로 표시됩니다.
소품 " 코멘트» 메모나 설명을 저장합니다.

체크박스 " 상단의 명령 모음" 그리고 " 아래 명령 패널» 명령 패널을 표시할 위치를 나타냅니다. 명령 모음은 버튼이 포함된 양식 요소입니다. 예를 들어:

나 자신의 경우 양식을 생성할 때 주로 다음 방법을 사용합니다. 개체가 새 개체인 경우 "열기" 아이콘( 돋보기)(그림 1). 객체에 기본 양식이 있는 경우 "Forms" 분기의 컨텍스트 메뉴에서 "Add" 메서드를 사용하여 메타데이터 트리에서 생성자를 호출합니다(그림 2).
형태와 객체의 연관성에 대해 간단히 설명하겠습니다. 일반적으로 속성을 올바르게 설정하면 코드 작성 필요성이 줄어듭니다.
양식에는 "데이터" 속성이 있습니다. 이 속성은 양식의 기본 속성이며 "세부 정보" 탭에서 굵게 강조 표시됩니다.

"데이터" 속성을 설정하면 선택한 값에 따라 새 이벤트, 양식 메서드 및 해당 명령 모음 버튼을 추가하는 기능이 추가됩니다.
예: " 매개변수현재행" - 이 속성은 기본 속성 유형이 DirectoryList인 경우 양식 모듈에서 사용할 수 있습니다.

그럼 시작해 보겠습니다. 명확성을 위해 .

양식에 새로운 세부정보를 배치해 보겠습니다. 이는 두 가지 방법으로 수행할 수 있습니다.

첫 번째 방법: 원하는 속성을 마우스로 요소 탭으로 드래그하면 됩니다.

두 번째 방법: 필드 유형으로 새 양식 요소를 추가하고 요소 속성을 사용하여 원하는 요소와 연결합니다. 데이터 경로.

부울 유형의 소품을 드래그하면 다음과 같이 자동으로 설정됩니다. 체크박스 필드.

우리는 깃발 자체에는 관심이 없습니다. 훨씬 더 흥미로운 속성 체크박스 유형, 세 가지 값을 취할 수 있습니다. 자동, 체크박스그리고 텀블러.

이 속성을 다음과 같이 설정하면 텀블러, 그러면 우리의 형태는 더욱 아름다운 모습을 갖게 될 것입니다.

물론, 토글 스위치에 True와 False라는 이름이 적혀 있으면 그다지 예쁘지는 않습니다. 좀 더 친숙한 것으로 바꿔 보겠습니다. 이를 위해 요소 속성을 사용합니다. 형식 편집, 북마크의 위치 부울우리에게 더 어울리는 토글 스위치 버튼의 이름을 설정해 보겠습니다.

그러면 토글 스위치가 더욱 아름답게 보일 것입니다. 제목의 위치를 ​​제거하거나 이동하려면 요소 속성이 필요합니다. 헤더 위치. 가치를 포함하여 다양한 의미를 갖습니다. 아니요.

실제 예제를 사용한 양식 요소에 대한 보다 자세한 작업은 "1C 개발의 기초: 택시" 책에 나와 있습니다. 12단계 관리형 애플리케이션 개발'을 참조하세요.

때로는 1C에서 프로그래밍 언어를 배우는 것이 복잡하고 어려운 것 같습니다. 실제로 1C 프로그래밍은 쉽습니다. 내 책은 1C 프로그래밍을 빠르고 쉽게 익히는 데 도움이 될 것입니다. 및 "1C 개발 기초 : 택시"

내 책 "11단계 프로그래밍 1C"의 도움으로 1C 프로그래밍을 배우세요

  1. 복잡한 기술 용어가 없습니다.
  2. 700페이지가 넘는 실용적인 자료.
  3. 각 작업에는 그림(스크린샷)이 함께 제공됩니다.
  4. 숙제 문제 모음입니다.
  5. 이 책은 초보자를 위해 명확하고 간단한 언어로 작성되었습니다.

이 책은 이미 프로그래밍을 시작했고 이 주제에 대해 어려움을 겪고 있는 사람들과 오랫동안 프로그래밍을 해왔지만 1C 관리 양식을 사용해 본 적이 없는 사람들에게 적합합니다.

  1. 복잡한 기술 용어 없이;
  2. 600페이지 이상의 실용적인 자료;
  3. 각 예시에는 그림(스크린샷)이 첨부되어 있습니다.
  4. 책은 PDF 형식으로 이메일로 전송됩니다. 모든 기기에서 열 수 있습니다!

15% 할인 프로모션 코드 - 48PVX헤유


이 강의가 문제 해결에 도움이 되었거나, 마음에 들었거나, 유용하다고 생각했다면, 얼마든지 기부하여 내 프로젝트를 지원할 수 있습니다.

수동으로 결제할 수 있습니다.

Yandex.Money - 410012882996301
웹머니 - R955262494655

내 그룹에 가입하세요.

컨트롤은 대화 상자에 정보를 입력하고 표시하도록 설계된 별도의 개체 그룹입니다. 양식에 위치할 수 있으며 테이블 필드나 스프레드시트 문서에서 셀을 편집하는 데 사용할 수 있습니다.

버튼은 1C:Enterprise 프로그램의 응용 솔루션 형태에서 가장 자주 사용되는 제어 요소 중 하나입니다. 이 비디오 강의에서는 여러분과 함께 소위 "처리"라고 하는 가장 간단한 1C 응용 프로그램 개체를 만든 다음 기본 처리 양식을 만들고 이 양식에 중요한 제어 요소를 추가하는 방법을 배웁니다. "단추"

1. 테스트 처리 생성

안녕 친애하는 친구! Roman Degtyarev가 당신과 함께합니다. 교육 - 센터 "1C에서 시작".

텍스트를 읽고 동시에 인터페이스 요소를 1C 애플리케이션 개체의 형태에 삽입하는 방법에 대해 설명하는 짧은 비디오 치트 시트를 시청하세요(1C 처리 포함, 이 프로세스를 고려할 예)

전체 과정을 보여주는 비디오는 아래에 있습니다.

영상 재생 제어 버튼을 이용하시면 본 영상을 고화질, 전체화면으로 보실 수 있습니다

이는 형태를 디자인하는 기본 기술과 기타 실제 연습을 수행하는 데 일반적으로 유용합니다.

1C:Enterprise 애플리케이션 솔루션에서 사용되는 인터페이스 요소 유형 중 하나를 삽입하는 방법, 양식에 버튼을 삽입하는 방법에 대해 설명합니다.

구성(개발) 모드에서 교육 애플리케이션 솔루션을 실행해 보겠습니다. 교육 애플리케이션 솔루션에 대한 이 지침은 1C 프로그래밍 과정에서 공부하는 사람들과 관련이 있습니다.

강좌에 등록하지 않은 사용자는 완전히 비어 있는 솔루션을 포함하여 구성 모드에서 기존 애플리케이션 솔루션을 실행할 수 있습니다. 이것은 문제의 예에 대한 충분한 연구일 것입니다.

버튼을 삽입할 위치를 확보하기 위해 먼저 구성 개체 트리에서 일종의 별도 처리를 생성합니다.

그래서 우리는 응용 프로그램 솔루션 구성 모드에 들어갔습니다. 프로세싱을 함께 만들어 봅시다. 노드를 마우스 오른쪽 버튼으로 클릭하세요. “처리 중”그리고 메뉴가 나타납니다.

드롭다운 메뉴에서 이름이 있는 항목을 선택합니다. "추가하다". 시각 처리 디자이너 창이 열립니다.

처리를 특정 이름으로 부를 수도 있고 부를 수 없는 경우도 있으며 기본적으로 할당된 이름을 그대로 둡니다.

예를 들어 처리에 이름을 지정해 보겠습니다. “테스트 처리”. 처리를 생성하는 경우 필요에 따라 이름을 지정할 수 있습니다.

처리에 이름을 지정한 후 디자이너 창 하단에 있는 버튼을 즉시 클릭할 수 있습니다. "닫다"- 다른 조치가 필요하지 않기 때문입니다.

테스트 처리가 생성되었습니다. 구성 트리의 노드에 해당 이름이 표시됩니다. “처리 중”. 처리 이름을 클릭하고 이 항목을 확장하여 처리의 일부일 수 있는 하위 요소인 "세부 정보", "양식", "레이아웃" 등을 살펴보겠습니다.

2. 주 처리 양식 작성

이제 처리를 위한 양식을 만들 차례입니다. 처리 양식은 시각적 표현으로, 사용자가 보고 처리를 실행할 경우 상호 작용하게 되는 기본 대화 상자입니다.

이는 Windows의 다른 프로그램 형태인 창과 유사하며 메뉴 요소, 명령 패널, 입력 필드, 레이블, 버튼, 드롭다운 목록 및 기타 컨트롤 등 작업할 때 익숙한 모든 요소를 ​​포함할 수 있습니다. 대부분의 정규 프로그램과 함께.

노드를 마우스 오른쪽 버튼으로 클릭해 보겠습니다. “양식”을 클릭한 다음 나타나는 컨텍스트 메뉴에서 해당 이름의 항목을 선택합니다. "추가하다"

처리 양식 디자이너 창이 우리 앞에 나타납니다. 도움을 받으면 초기 단계에서 새로 생성된 양식의 일부 기능(프로그램 이름, 유형, 기본 항목인지 여부 등)을 지정할 수 있습니다.

하지만 지금은 특별한 설정을 할 필요가 없으므로 버튼만 누르면 됩니다. "준비가 된", 처리 양식 디자이너 창 하단에 있습니다.

그 후 새로 생성된 1C 처리 양식이 우리 앞에 열립니다.

3. 이제 처리형태에서 버튼을 생성하는 과정을 살펴보겠습니다.

그럼 버튼은 어떻게 삽입하나요?

기본적으로 새로 생성된 양식에는 처리 설계 중에 일부 버튼이 이미 삽입되어 있습니다. 이 버튼은 자동으로 삽입됩니다.
이는 양식 창 상단과 창 하단에 있는 소위 두 개의 명령 패널의 표준 "작업" 버튼입니다.

이제 우리는 "수동으로" 삽입할 버튼에 관심이 있습니다.

버튼을 포함한 일종의 인터페이스 요소를 디자인 중인 양식에 삽입하려면 "아이콘"(아이콘에 노란색 "더하기" 기호가 표시됨)이 있는 특수 버튼을 클릭해야 합니다. 삽입할 인터페이스 요소입니다.

"아이콘"이 있는 이 특수 버튼은 일반적으로 기본 구성 창의 기본 메뉴 아래 도구 모음에 있습니다.
원하는 버튼 위에 마우스를 올리면 툴팁이 나타납니다. "컨트롤 삽입" .

도구 모음에 버튼이 없는 경우(도구 모음의 설정에 따라 다름) 대체 경로가 있습니다. 화면에 양식 디자이너 창이 있으면 기본 메뉴에서 항목을 선택할 수 있습니다. 구성자: “양식”/ “컨트롤 삽입”.

도구 모음에서 버튼을 클릭했는지 또는 기본 메뉴에서 작업을 선택했는지에 관계없이 삽입할 컨트롤 요소를 선택하기 위한 특수 창이 우리 앞에 열립니다. 창에는 제목이 있습니다.

창에는 다양한 컨트롤이 표시됩니다. (여가 시간에 연습하여 이러한 요소를 양식에 삽입하고 모양을 확인할 수 있습니다.)

이제 우리는 요소에 관심이 있습니다 "단추". 기본적으로 창을 연 후 "컨트롤 삽입", 가능한 요소 목록의 첫 번째 요소가 삽입을 위해 선택되고 이 제어 요소는 "단추".

삽입할 컨트롤 유형 선택은 창 왼쪽에서 이루어지며, 창 오른쪽에서는 양식에 삽입되기 전에 요소의 일부 속성을 설정할 수 있습니다.

즉, 컨트롤을 양식에 삽입하기 전에 이름, 제목, 마우스를 움직일 때의 도구 설명 텍스트 및 기타 속성과 같은 기본 속성을 설정하여 먼저 "준비"할 수 있습니다.

예를 들어, "버튼"을 포함한 모든 요소를 ​​삽입하기 전에 이름을 지정할 수 있습니다. 이 이름은 내장된 1C:Enterprise 언어의 개체 이름, 즉 소프트웨어 개체의 이름이 됩니다.

이는 내장된 프로그래밍 언어에서 액세스할 수 있는 이름입니다.

마찬가지로 버튼에 일종의 제목, 즉 비문을 할당할 수 있습니다. 이 예에서는 버튼에 제목을 지정하겠습니다. “우리의 버튼” .

이 버튼을 눌렀을 때 내장 프로그래밍 언어로 어떤 작업이 수행되도록 하려면 "프로시저 만들기" 확인란을 선택 취소하면 안 됩니다. 기본적으로 이 확인란은 활성화되어 있습니다.

이 확인란을 활성화하면 버튼을 삽입하는 것과 동시에 빈 처리기 프로시저가 양식의 프로그램 모듈에 생성됩니다. 여기서 사용자 모드에서 이 버튼을 누를 때 실행되는 원하는 알고리즘을 작성할 수 있습니다.

바로 저기 창문에 "컨트롤 삽입"원한다면 툴팁 텍스트를 입력할 수 있습니다. 입력창에 들어가보자 "단서"글을 쓰자 - "이것이 우리의 버튼이다" . 이 도구 설명은 삽입된 버튼 위에 마우스를 올리면 표시됩니다.

자, 삽입 전 준비가 완료되었으니 이제 버튼을 눌러주세요 "좋아요".

이 창 이후 "컨트롤 삽입"닫히고 이제 양식의 어느 곳에나 버튼을 삽입할 수 있습니다. 마우스 커서 아이콘은 일시적으로 큰 "더하기"로 변경됩니다. 이렇게 하면 시스템에서 컨트롤을 삽입할 양식의 특정 위치를 마우스로 가리키도록 요청합니다.

양식의 어느 부분에서나 버튼 위치를 선택하고 마우스 왼쪽 버튼을 누르십시오. 새 버튼이 양식에 삽입되고 동시에 양식 디자이너가 즉시 양식 소프트웨어 모듈의 편집기 창으로 전환합니다.

새로 삽입된 버튼에 대한 클릭 이벤트 핸들러의 본문을 보여줍니다. 즉, 버튼을 눌렀을 때 호출될 코드를 즉시 작성할 수 있습니다.

어쨌든 북마크로 돌아가 보겠습니다. "대화"(양식 디자이너 탭은 창 하단에 있음) 버튼이 양식에 나타나는지 확인하십시오. 네, 버튼이 여기 있어요!

버튼 모서리에 있는 "마우스를 당겨" 크기를 변경하거나 버튼을 양식 창 내 어딘가로 이동할 수 있습니다.

그리고 프로그램 모듈(탭)로 돌아가서 "기준 치수") - 버튼을 눌렀을 때 작업을 수행하도록 프로그래밍 언어로 코드를 작성할 수 있습니다.

몇 가지 코드를 작성해 보겠습니다. 단순화를 위해 단 한 줄로 구성하겠습니다. Notify("버튼이 눌렸습니다!");

이 코드는 버튼을 눌렀을 때 서비스 메시지 창의 사용자 화면에 "우리 버튼이 눌러졌습니다."라는 텍스트가 표시되도록 합니다.

사용자 모드에서 애플리케이션 솔루션을 확인하고 실행해 보겠습니다.

다음으로, 메인 메뉴에서 항목을 선택하세요 "작업"/"처리". 우리는 프로세싱을 생성하고 이를 호출했다는 것을 기억합니다. “테스트 처리”, 따라서 열리는 목록에서 이 이름으로 처리를 선택합니다.

Tmk, 우리 앞에는 처리 형태가 표시됩니다. 양식에는 제목이 있는 버튼이 표시됩니다. “우리의 버튼” . 참고하세요, 힌트 “이게 우리 버튼이에요” 버튼 위에 마우스를 올리면 나타납니다.

이제 버튼을 눌러보자. 프로그래밍한 메시지가 서비스 메시지 창에 표시되는지 확인합니다. “우리 버튼이 눌렸어요” .

비슷한 방식으로 강좌 및 비디오 치트 시트에 설명할 다른 컨트롤을 삽입할 수 있습니다.

요약: 처리 양식에 버튼을 성공적으로 삽입했으므로 이제 해당 작업을 수행할 수 있습니다. 비디오 튜토리얼에서 뵙겠습니다.

Roman Degtyarev가 당신과 함께했습니다.

교육 센터 "1C에서 시작"

1C에서 처음부터 프로그래밍하는 방법을 배우는 방법은 무엇입니까?

1C 프로그래머로 일하고 한 달에 최대 150,000 루블을 버는 방법은 무엇입니까?

무료 가입

2주 코스

"초보자를 위한 1C 프로그래밍"

강좌는 이메일로 발송됩니다. 단계별 작업을 완료하여 프로그래머가 되십시오.

참여하려면 컴퓨터와 인터넷만 있으면 됩니다.

강좌 무료 이용:

Sp-force-hide ( 디스플레이: 없음;).sp-form ( 디스플레이: 블록; 배경: #eff2f4; 패딩: 5px; 너비: 270px; 최대 너비: 100%; 테두리 반경: 0px; -moz-border -반경: 0px; -webkit-border-radius: 0px; 글꼴 계열: Arial, "Helvetica Neue", sans-serif; 배경 반복: 반복 없음; 배경 위치: 중앙; 배경 크기: 자동;) .sp-form 입력(디스플레이: 인라인 블록; 불투명도: 1; 가시성: 표시;).sp-form .sp-form-fields-wrapper(여백: 0 자동; 너비: 260px;).sp-form .sp -form-control ( 배경: #ffffff; 테두리 색상: #cccccc; 테두리 스타일: 단색; 테두리 너비: 1px; 글꼴 크기: 15px; 왼쪽 패딩: 8.75px; 오른쪽 패딩: 8.75px; 테두리 -반경: 4px; -moz-border-radius: 4px; -webkit-border-radius: 4px; 높이: 35px; 너비: 100%;).sp-form .sp-필드 라벨( 색상: #444444; 글꼴- 크기: 13px; 글꼴 스타일: 일반; 글꼴 두께: 굵은 글꼴;).sp-form .sp-버튼( border-radius: 4px; -moz-border-radius: 4px; -webkit-border-radius: 4px; 배경색: #f4394c, 색상: #ffffff, 너비: 100%, 글꼴 두께: 700, 글꼴 스타일: 일반; 글꼴 모음: Arial, "Helvetica Neue", sans-serif; 상자 그림자: 없음; -moz-box-shadow: 없음; -webkit-box-shadow: 없음; 배경: 선형 그라데이션(위로, #e30d22 , #f77380);).sp-form .sp-button-container ( 텍스트 정렬: 중앙; 너비: 자동;)

이 기사에서는 1C 쿼리 언어의 "FOR CHANGE" 구성 사용에 대해 설명합니다. 이 자료는 클라이언트-서버 버전에서 정보 베이스로 작업할 때 레지스터 잠금 기능을 이해하려는 사람들에게 특히 유용합니다.

적용 가능성

이 기사의 자료는 자동 데이터 관리 차단 모드를 사용하는 동안 현재 버전의 1C:Enterprise 플랫폼, 버전 8.3을 사용하는 구성과 관련이 있습니다.

변화를 위한 디자인

자동 잠금 모드를 사용할 때 TO MODIFY 옵션 없이 읽은 후 동일한 트랜잭션 내에서 쓰기를 수행하면 리소스 잠금 수준이 부족하여 교착 상태가 발생할 수 있습니다.

CHANGE 절은 공유 S-잠금을 다른 잠금과 덜 호환되는 U-업데이트 잠금으로 바꾸는 데 사용됩니다.

행과 열의 교차점에 있는 잠금이 호환 가능하면 테이블에 "+" 기호가 포함되고, 그렇지 않으면 "-" 기호가 포함됩니다.

주요 차단 유형을 간략하게 살펴 보겠습니다.

공유(S) 잠금동시 트랜잭션이 리소스를 읽을 수 있도록 허용합니다. 리소스에 S 잠금이 존재하는 한 다른 트랜잭션은 데이터를 변경할 수 없습니다.

잠금 업데이트(U)일반적인 형태의 교착 상태가 발생하지 않도록 방지합니다. 직렬화 가능 또는 반복 읽기 트랜잭션에서 트랜잭션은 데이터를 읽고 리소스에 대한 공유(S) 잠금을 획득한 다음 데이터 변경을 수행합니다. 이를 위해서는 잠금을 배타적(X) 잠금으로 변환해야 합니다.

두 트랜잭션이 리소스에 대한 공유 잠금을 획득한 후 동시에 데이터 업데이트를 시도하는 경우 트랜잭션 중 하나는 잠금을 배타적(X) 잠금으로 변환하려고 시도합니다.

한 트랜잭션의 배타적 잠금이 다른 트랜잭션의 공유 잠금과 호환되지 않기 때문에 공유 잠금을 배타적 잠금으로 변환하는 데 시간이 걸립니다.

잠금 대기가 시작됩니다.

두 번째 트랜잭션은 업데이트에 대한 배타적(X) 잠금을 획득하려고 시도합니다. 두 트랜잭션 모두 배타적(X) 잠금으로 변환 중이고 각 트랜잭션은 다른 트랜잭션이 공유 잠금을 해제하기를 기다리고 있으므로 결과적으로 교착 상태가 발생합니다.

이러한 잠재적인 교착 상태를 방지하기 위해 업데이트(U) 잠금이 적용됩니다. 업데이트 잠금(U)은 한 번에 리소스에 대한 하나의 트랜잭션에서만 획득할 수 있습니다. 트랜잭션이 리소스를 수정하면 업데이트(U) 잠금이 배타적(X) 잠금으로 변환됩니다.

배타적(X) 잠금은 트랜잭션이 리소스에 동시에 액세스하는 것을 방지합니다. 리소스가 배타적(X) 잠금으로 유지되면 다른 트랜잭션이 데이터를 변경할 수 없습니다.

TO CHANGE 구문은 탭의 쿼리 생성자에 지정됩니다. 추가적으로:

동일한 탭은 쿼리에서 여러 테이블을 사용하는 경우 차단해야 하는 특정 테이블을 지정합니다. 잠글 테이블을 지정하지 않으면 나중에 쓰지 않을 테이블을 포함하여 쿼리에 지정된 모든 테이블에 U 잠금이 적용됩니다. 이러한 잠금은 중복되며 여러 사용자가 동시에 작업할 때 문제를 일으킬 수 있습니다.

제어된 잠금 모드에서는 설명된 문제가 존재하지 않으므로 FOR CHANGE 절이 적용되지 않습니다.