1C 엔터프라이즈 모듈 및 그 목적. 일반적인 모듈

이 기사는주기 "1C의 개발의 첫 번째 단계"를 계속하면 다음과 같은 문제점이 자세히 간주됩니다.

  • 프로그램 모듈이란 무엇이며 어떤 파티션으로 구성되어 있습니까?
  • 응용 프로그램 모듈은 무엇입니까? 왜 거기에 있니? 언제 시작 되었습니까? 일의 미묘함은 무엇입니까?
  • 시스템 시작과 관련된 이벤트, 방법 및 어디에서 프로세스 할 위치와 관련이 있습니까?
  • 외부 연결 모듈이 필요한 것은 무엇입니까? 언제 사용하는 방법은 무엇입니까?
  • 세션 모듈은 언제입니까?
  • 일반적인 모듈이란 무엇입니까? 그의 속성과 일의 규칙은 무엇입니까? 왜 "리턴 리턴 재사용 재사용"속성을 사용해야합니까?
  • 양식 모듈과 어떤 이벤트를 처리 할 수있는 경우는 언제입니까?
  • 객체 모듈은 무엇입니까? 어떤 파티션에서 구성되어 있습니까? 사용 가능한 모듈 이벤트를 보는 방법은 무엇입니까?
  • 가치 모듈 (상수의 경우) 및 설치 모듈 (레지스터 용)의 모듈이있는 작업의 일부분이 있습니까?
  • 객체 모듈과 관리자의 모듈의 차이점은 무엇입니까? 언제 후자를 사용해야합니까?

적용 가능성

이 기사에서는 플랫폼 "1C : 기업"8.3.4.496에 대해 설명합니다. 재료는 현재 플랫폼 릴리스와 관련이 있습니다.

"1C : Enterprise 8.3"의 모듈

모듈은 프로그램 코드가 포함 된 객체입니다.

플랫폼에서는 충분히 많은 수의 모듈이 있으며, 각각의 목적과 기능이 있습니다.

모든 코드 줄은 모든 모듈에 있어야합니다. 범용 모듈 및 객체 모듈을 식별하십시오. 일부 모듈은 클라이언트와 서버에서만 컴파일 될 수 있으며 서버에서만 일부로 만 컴파일 될 수 있습니다.

모듈은 여러 섹션으로 구성 될 수 있습니다. 변수 섹션에서는이 모듈의 로컬 변수를 설명합니다. 이는이어서 모든 절차에서 사용될 수 있습니다.

각 절차 내에서 모듈 변수에 액세스 할 수 있습니다. 또한 절차 자체 내에서 동일한 이름의 다른 변수 선언이있을 수 있습니다. 이 절차의 로컬 변수가됩니다.

같은 이름에도 불구하고, 이들은 두 가지 변수입니다. 하나는 특정 절차에서 사용되며 다른 하나는 밖에 있습니다.

변수에 대한 일부 모듈에는 서버 또는 클라이언트의 컴파일 위치 (가용성)가 포함될 수 있습니다. 예 :

변수 설명의 섹션은이 모듈의 로컬 메소드가 지정된 프로 시저 및 기능 섹션을 따릅니다. 일부 모듈은 프로 시저 또는 함수가 컴파일되는 위치에서 지정해야합니다.

원칙적으로 컴파일 지시문을 표시 할 수 없습니다. 이 경우 기본 컴파일 지시문은 서버입니다. 그러나 프로그램 코드를 분석하는 편의를 위해이 절차가 컴파일되는 위치를 명시 적으로 표시하는 것이 좋습니다. 절차를 설명하는 절차는 값이 없습니다.

모듈의 끝에서 모든 절차와 기능을 설명한 후 일부 연산자가 포함될 수있는 주 프로그램의 섹션이 있으며 모듈 모듈의 로컬 변수를 초기화 할 수 있습니다. 이번 장 모듈에 액세스 할 때 수행됩니다.

예를 들어, 항목의 양식을 열면 기본적으로 주 프로그램 모듈 프로그램의 섹션입니다.

메인 프로그램의 캠페인 선언과 섹션은 모든 모듈 (즉, 일부 모듈에서는이 섹션이 허용되지 않습니다)이 아닙니다. 절차 및 기능의 설명 섹션은 모든 모듈에 절대적으로 존재할 수 있습니다.

응용 프로그램 모듈

이 모듈은 응용 프로그램 실행 이벤트를 처리하고 완료하도록 설계되었습니다. 예를 들어, 응용 프로그램이 시작되면 인터넷에서 환율 환율을 다운로드 할 수 있습니다. 응용 프로그램이 완료되면 사용자가 작업을 완료하기위한 그의 의도에 대해 확인할 수 있습니다.

또한 응용 프로그램 모듈에서는 장비에서 외부 이벤트를 가로 챌 수있는 특수 핸들러가 있습니다.

그것은 회신 등록자 인 라이더 마그네틱 카드의 이벤트가 될 수 있습니다. 이러한 사건들도 어떤 방식 으로든 사용될 수 있습니다.

응용 프로그램 모듈에서는 추적되는 대화식 시작 시스템입니다.

프로그램 1C의 시작이 예를 들어 COM 연결 모드에서 수행되는 경우 응용 프로그램 모듈이 작동하지 않습니다. 이 경우 프로그램 창이 작성되지 않습니다.

플랫폼 8.3에는 관리되는 응용 프로그램 모듈과 일반 응용 프로그램 모듈의 두 가지 응용 프로그램 모듈이 있습니다. 모듈 이벤트 관리되는 응용 프로그램 관리되는 응용 프로그램 및 웹 클라이언트의 얇고 두꺼운 클라이언트를 시작할 때 작동 할 수 있습니다.

기준 치수 일반 앱 모드에서 두꺼운 클라이언트를 시작할 때 작동합니다 일반 앱평범한 곳이 있습니다 명령 인터페이스 같이 주 메뉴.

응용 프로그램이 작동하고 모드로 작동하는 경우 관리자모드에서 일반 앱그런 다음 모듈에 대한 처리 절차를 설명해야합니다. 관리되는 응용 프로그램모듈의 경우 일반 앱.

기준 치수 관리되는 응용 프로그램 루트 구성 노드의 컨텍스트 메뉴에서 선택할 수 있습니다.

또한이 모듈은 구성 루트 속성 팔레트에서 열 수 있습니다.

모듈을 열려면 일반 앱구성 설정에 연락해야합니다 (명령 옵션메뉴에서 서비스).

형태 옵션...에 탭에 흔하다구성 편집 모드를 지정해야합니다. 통제 된 응용 프로그램일반 앱.

이 경우 모듈 일반 앱 루트 노드의 속성을 열 수도 있습니다.

처리 할 수있는 이벤트 목록입니다 관리자일반 앱 같은.

이 모듈에서는 변수 선언, 임의의 절차 및 함수 및 주 프로그램 섹션에 대한 설명을 게시 할 수 있습니다. 그러나 임의의 절차와 기능 외에 특별한 이벤트 핸들러가 모듈에 위치 할 수 있습니다.

사용 가능한 핸들러 목록은 열린 모듈이있는 현재 모듈의 절차와 기능을 입력하면 볼 수 있습니다.

오프닝 윈도우에서 절차 및 기능은이 모듈의 모든 프로 시저 및 기능과 핸들러가 아직 생성되지 않은 이벤트를 표시합니다.

시스템 시작 ( "전"및 "언제")과 관련된 두 개의 이벤트가 있습니다. 시스템 완성과 관련된 두 가지 이벤트 ( "전"및 "언제"). 외부 이벤트 처리뿐만 아니라 (예 : 거래 장비 이벤트).

이벤트 핸들러가 수행되면 아직 동작이 수행되지 않은 것으로 믿어집니다. 이벤트 핸들러가 수행되면 작업이 이미 완료되었습니다.

행사 eRocommallium.엔터프라이즈가 8.3을 시작했지만 응용 프로그램 자체가 아직 화면에 표시되지 않은 순간에 발생합니다. 이 이벤트에는 이러한 매개 변수가 있습니다 혁신.

이 매개 변수가 값을 수락하면 진실응용 프로그램이 시작되지 않습니다. 행사 전문 시스템작업이 이미 완료되었음을 가정하고, 창은 이미 생성 되었으며이 경우 예를 들어 특수 양식을 표시 할 수 있습니다. 발사에서 거절하는 것은 불가능합니다.

마찬가지로 시스템을 완성하기 전에 응용 프로그램이 여전히 열려 있으며 완료를 거부 할 수 있습니다. 시스템이 완료되면 응용 프로그램 창이 이미 닫혔습니다. 예를 들어 일부 파일을 삭제하거나 전자 메일을 보내는 데 추가 작업 만 수행 할 수 있습니다.

모듈에서 관리되는 응용 프로그램 전체 모듈이 클라이언트 측에서 컴파일되기 때문에 절차 및 함수 컴파일 지시문은 지정되지 않습니다. 즉, 모듈의 절차와 기능에서는 예를 들어 책을 참조 할 수 없습니다.

모듈에서 if 관리되는 응용 프로그램 서버를 호출해야합니다. 그런 다음이 작업을 위해 특별한 것을 만들어야합니다. 깃발이 전시되어 있습니다 .

모듈에서 일반 앱 이 모듈은 두꺼운 클라이언트를로드 할 때 컴파일되므로 이러한 제한이 없습니다. 거의 모든 유형의 데이터는 Tolstaya 클라이언트에서 사용할 수 있습니다.

절차, 기능 및 변수 응용 프로그램 모듈을 내보내기로 설명 할 수 있습니다.

모듈이 클라이언트에서 전적으로 컴파일되므로 클라이언트 절차 에서이 메서드 와이 속성에 액세스 할 수 있습니다.

예를 들어, 모든 객체의 모듈에서는 응용 프로그램 모듈의 프로 시저 또는 기능을 호출 할 수 있습니다. 그러나 일반적인 알고리즘을 설명하기 위해 공통 모듈을 사용하는 것이 좋습니다. 응용 프로그램 모듈의 주요 목적은 시작점과 완료 지점을 처리하는 것입니다.

응용 프로그램 모듈과 유사한이 모듈은 이벤트 개방 이벤트와 이벤트 완료 이벤트를 처리하도록 설계되었습니다.

응용 프로그램의 대화식 실행시 시작될 때 시작되는 응용 프로그램 모듈과 달리 외부 연결 모듈은 COM 연결 모드에서 작동합니다. 즉. 1C 객체가 작성된 경우 : Enterprise 8을 사용하여 특정베이스에 연결합니다.

이 모듈에는 이벤트가 있습니다. 전문 시스템강제 시험.

외부 연결 모듈은 중 하나를 사용하여 열 수 있습니다 상황에 맞는 메뉴 루트 구성 루트 레벨 또는 루트 노드의 속성 팔레트에서.

외부 연결 자체의 프로세스는 프로그램 작업 과정입니다. 정보 기반대화 형이 아닙니다. 따라서이 시점에서 대화 상자 양식을 사용할 수 없으며, 경고 메시지를 출력합니다. 사용자 인터페이스.

외부 연결 모듈에서 외부 통화가 1c : Enterprise 8.3 인 측면에서 사용할 수있는 내보내기 변수 및 내보내기 메소드를 설명 할 수 있습니다.

외부 연결에 사용자 인터페이스가 없으므로 외부 연결 모듈은 서버에서 완전히 컴파일됩니다.

세션 모듈

이 모듈은 세션 매개 변수를 초기화하기 위해 필요합니다. 세션 매개 변수는 빠른 전역 변수이며 구성의 어느 위치에서나 사용할 수있는 값입니다.

세션 모듈을 열면 컨텍스트 메뉴 또는 루트 노드 특성 팔레트를 통해 수 있습니다.

세션 모듈은 이벤트를 제공합니다 Parametrovtersean의 설치.

응용 프로그램 시작 시이 절차를 처음으로 호출합니다. 대화식 시작 및 외부 연결 모드에서 시작할 때 세션 매개 변수가 모두 응용 프로그램 조작에 필요합니다.

세션 모듈은 여러 조건에 따라 세션 매개 변수를 초기화하기위한 다양한 조치를 설명합니다.

이 모듈은 규칙적으로 절차에서 호출되는 여러 절차에 대해 설명합니다. Parametrovtersean의 설치...에 따라서 이러한 모든 절차는 별도의 모듈에서 강조 표시됩니다.

세션 모듈은 항상 권한있는 모드에서 실행됩니다. 즉, 데이터베이스에 액세스 할 때 액세스 권한을 확인하기 위해 수행되지 않음을 의미합니다. 세션 모듈은 서버에서 컴파일됩니다. 모든 서버 방법 (베이스에서 읽는 값을 읽는 것을 포함하여)에 호소 할 수 있습니다.

세션 모듈에서는 절차 및 기능 만 정의 할 수 있습니다. 즉. 메인 프로그램의 변수와 섹션에 대한 섹션 설명이 없습니다. 세션 모듈에서 내보내기 메소드를 설명 할 수 없습니다.

시스템을 시작할 때 서버에서 일부 작업을 수행 해야하는 경우, 예를 들어 디렉토리의 항목을 작성한 다음 옵션으로서 세션 모듈을 사용할 수 있습니다. 서버에서 컴파일되며 시스템 시작시 항상 안정적입니다. 그러나 다음 사항을 고려해야합니다.

  • 순서 Parametrovtersean의 설치초기화되지 않은 세션 매개 변수를 참조 할 때뿐만 아니라 시스템의 시작 부분 에서뿐만 아니라 수행됩니다. 그. 설치 매개 변수 프로세서는 응용 프로그램의 작동 과정에서 반복적으로 호출 할 수 있습니다.
  • 세션 매개 변수 배열의 항목 수가 0이면 (필요한 매개 변수의 배열에서 데이터 유형이 정의되지 않은 경우) 응용 프로그램의 시작입니다.
  • 세션 모듈이 인위 된 모드에서 작동하고 액세스 권한을 확인하지 않으므로 사용자가 제공해서는 안되는 데이터에 액세스 할 수 있기 때문에 데이터베이스 개체와 매우 부드럽게 작동해야합니다.
  • 시스템을 실행할 때는 아직 가능하지 않습니다 : 응용 프로그램이 시작되는지 여부. 동시에 설치 매개 변수의 이벤트 핸들러에서 불필요한 단계가 수행 될 수 있습니다.

이 모듈은 일부 공통 알고리즘에 대한 설명입니다. 절차 및 다른 장소에서 호출 할 수있는 기능.

논리적으로 관련된 방법은 다른 일반 모듈로 그룹화 할 수 있습니다. 이 모듈은 전체 분기에서 생성됩니다.

모든 수의 일반적인 모듈을 추가 할 수 있습니다. 다른 구성 장소에서 공통 모듈의 방법을 사용할 수있게하려면이를 결정할 필요가 있습니다. 예어 수출. 일반 모듈의 고객 절차는 클라이언트 및 서버 온 서버에서 사용할 수 있습니다.

일반 모듈에서는 절차 및 기능 설명 만 사용할 수 있습니다. 그. 전체 모듈에서 변수를 설명 할 수 없으므로 프로그램 섹션에서 설명 할 수 없습니다.

전역 변수가 필요한 경우 세션 매개 변수 또는 응용 프로그램 모듈의 변수를 내보낼 수 있습니다.

일반 모듈의 경우이 모듈의 동작에 영향을 미치는 몇 가지 매개 변수를 지정할 수 있습니다. 전역 등록 정보가 공통 모듈에 설정된 경우이 모듈에서 선언 된 내보내기 메소드는 추가 지침없이 외부에서 직접 사용할 수 있습니다.

그. 그만큼 공통 모듈 전역 구성 컨텍스트의 형성에 참여합니다.

특성 글로벌일반 모듈의 경우 유용 할 수 있습니다. 그러나 모든 일반적인 모듈에 대해 모든 곳에서는 사용할 필요가 없습니다.

서명으로 표시 글로벌시스템을 시작할 때 컴파일됩니다. 이러한 모듈이 많을수록 프로그램이 더 느리게됩니다.

플래그 인 경우 글로벌...에 대한 일반 모듈지정되지 않음,이 모듈의 편집은 IT (즉, 시스템의 시작 후)에 대한 첫 번째 호소시에 수행됩니다.

또한 전역 일반 모듈의 사용은 코드의 이해에 영향을줍니다. 비전 역 일반 모듈의 호출 방법은 이름을 통해 수행됩니다. 일반 모듈 메소드의 이름 (예 :
modulartebetsebestostistiostimost. 그려진 eMplications ();

동시에 공통 모듈의 이름은 이들에 설명 된 절차의 내용을 반영해야합니다. 프로 시저를 호출 할 때 공통 모듈의 이름을 지정하는 것은 코드를 더 잘 이해하는 데 기여합니다.

에 대한 일반 모듈 ...에서 팔레트 속성 속성을 설정할 수 있습니다 특권.

권한있는 모듈은 사용 권한을 제어하지 않습니다. 이것은 필요합니다 공통 모듈 거대한 데이터 처리를 수행하여베이스에서 데이터를 수신해야합니다.

액세스 권한 제어는 데이터베이스에 액세스하는 시간을 증가시키고 대량 알고리즘은 종종 가능한 한 빨리 작동해야합니다.

예를 들어, 자원 집약적 인 작업은 임금 계산입니다. 가능한 한 빨리 수행 할 필요가 있습니다. 임금을 계산하는이 알고리즘의 경우 특권에 배치됩니다. .

동시에 급여 발생에 대한 문서를 채우는 모든 절차는 일반적인 모듈...에 이 절차에 액세스 권한이 모니터링됩니다.

따라서 속도가 크게 증가 할 수 있습니다. 이는 테이블 항목에 대한 액세스를 구별하기 위해 행의 메커니즘을 적용하는 경우에 적용됩니다.

공유 모듈이 권한이있는 경우이 모듈의 절차는 서버에서만 컴파일 할 수 있습니다.

예를 들어 특정 참조 북으로 사용자가 사용할 수 없어야하는 상황이 있습니다. 그러나 어떤 종류의 문서가 호소 할 때 이 참조 서적 필요한.

그. 일시적으로 사용자의 권한을 일시적으로 확장 한 다음이를 반환해야합니다. 초기 상태...에 이 효과는 특권을 사용할 때 얻을 수 있습니다 일반적인 모듈.

이를 위해서는 특권이 있습니다 공통 모듈 필요한 데이터를 참조하는 절차를 발행해야합니다.

이 절차는 관련 문서에서 호출됩니다. 그. 이 절차를 호출 할 때 사용자는 실제로 고급 권한으로 제공됩니다.

에 대한 일반적인 모듈 컴파일 장소를 지정할 수 있습니다. 플래그의 도움으로 설정됩니다. 클라이언트의 공통 모듈이 서버의 외부 연결 모드에서 사용할 수 있습니다 (관리 응용 프로그램).

또한 구성 편집 모드를 제어 된 응용 프로그램과 일반 응용 프로그램으로 변환하면 클라이언트 (일반 응용 프로그램)를 제어 할 수 있습니다.

따라서, 프로그램의 4 가지 변형이 할당된다. 실행중인 응용 프로그램에 따라 클라이언트에 따라 서버에서 특정 공통 모듈을 사용할 수 있거나 사용할 수 없습니다.

컴파일 플래그를 지정하는 기능 외에도 공유 모듈에있는 절차 및 기능에 대한 컴파일 지시문을 지정할 수 있습니다.

컴파일 지시문에 대해 메소드가 지정된 경우, 이러한 모든 컨텍스트에서 일반 모듈을 사용할 수 있음을 알아 둔 경우 특정 메서드의 가용성이 컴파일 지시문으로 제한됩니다.

동시에, 절차는 전체 모듈 전체에 사용할 수없는 컨텍스트에서 사용할 수 없습니다.

프로 시저 (함수)에 대한 컴파일 지시문이 지정되지 않으면 모듈에 대해 정의 된 모든 컨텍스트에서 컴파일됩니다.

그. 본질적으로 절차의 여러 사본이 이루어집니다. 특정 컴파일 된 인스턴스의 선택은 절차를 호출하는 장소에 따라 다릅니다 (즉각적인 과제에 따라). 그러한 절차의 코드는 모듈에 대해 정의 된 모든 컨텍스트에서 가용성을 고려하여 작성해야한다는 것을 명심해야합니다.

여러 가지 다른 컨텍스트에서 동시에 사용할 수있는 일반적인 모듈은 주로 여러 컨텍스트에서 사용할 수있는 절차를 만들 수 있도록 설계되었습니다.

공유 모듈을 만들 때 좋은 음색의 규칙은 컴파일 지시문을 나타내지 않는 것으로 간주됩니다. 그. 절차 및 기능의 가용성은 모듈 자체의 속성에 의해 결정되어야합니다.

이 접근 방식을 사용하면 클라이언트 절차가 별도의 공통 모듈 및 별도의 일반 모듈 - 서버 절차에 있습니다.

여러 편집 플래그가있는 모듈은 실제로 사용되지 않는 실제로 설치됩니다. 이들은 클라이언트와 서버에서 사용할 수있는 몇 가지 일반적인 작업입니다. 보통, 이들은 몇 가지 간단한 계산입니다.

중대한! 클라이언트에서 공통 모듈의 내보내기 서버 방법에 액세스 할 수 있지만이 공통 모듈이 서버에서만 컴파일 된 경우에만 액세스 할 수 있습니다. 동시에 특수 확인란은 클라이언트에서 액세스를 제공하기위한 것입니다. .

비전 역 일반 모듈의 경우 함수에 의해 반환되는 값을 캐싱 할 수 있습니다. 그. 시스템은 실행의 결과를 기억할 수있는 첫 번째 호출 후에 시스템이 발생할 수 있습니다. 만약 이 기능 동일한 매개 변수로 다시 발생하면 시스템은 캐시에서 값을 제공합니다.

이 메커니즘의 목적은 반복 통화 속도를 높이는 것입니다. 이 동작을 구성하려면 다음에서 필요합니다 팔레트 속성 모듈 반환 값의 재사용에 적절한 값을 설정합니다.

기본적 으로이 속성은 사용하지 않는 것이 정의되어 있습니다. 다른 가능한 값 : 캐시 전화 당시에어느 한 쪽 세션시.

이 속성은 결과 매개 변수에만 의존하는 결과에 대해서만 사용되는 기능에 대해서만 사용하는 것이 좋습니다. 이 메커니즘 전역 공통 모듈이 아닌 경우에만 사용할 수 있습니다.

통화 시간에 해당하는 매개 변수의 값이 선택되면 일반 모듈 메소드가 호출되는 프로 시저가 오는 때까지 캐시가 유효합니다. 세션 시간의 값이 선택되면 사용자가 작동하는 동안 캐시가 작동하는 것으로 조건부로 믿어집니다.

그럼에도 불구하고 일시적인 일정 제한이 있습니다. 캐시의 값을 입력 한 후 캐시를 청소하면 자동으로 20 분이 소요됩니다.

모듈 양식

이 모듈은 사용자 작업을 처리하도록 설계되었습니다. 예를 들어 버튼을 누르면 프로그램 반응 알고리즘을 설명하십시오. 또는 예를 들어 값 필드를 입력 할 때 즉시 유효성 검사 확인을 수행하십시오.

양식 컨트롤 (버튼, 입력 필드)의 요소와 관련된 이벤트 외에도 양식 자체에 직접 관련된 이벤트가 있습니다.

예를 들어 양식 열기 이벤트를 처리하고 초기 초기화를 수행 할 수 있습니다. 또한 양식 닫는 이벤트를 처리하고 사용자가 모든 것을 올바르게 입력했는지 여부를 처리 할 수 \u200b\u200b있습니다.

형식이 관리되고 평범한 형식이 있습니다. 이러한 형태의 모듈은 주로 모듈이 모듈에 따라 다릅니다. 관리 양식 분명히 맥락으로 나누어졌습니다. 각 절차 (함수)에는 컴파일 지시문이 있어야합니다. 일반적인 양식에서 전체 코드가 클라이언트에서 사용됩니다.

관리 양식 모듈에서 프로 시저 및 함수를 선언 할 수 있으므로 변수를 선언하고 기본 프로그램의 섹션을 설명 할 수 있습니다.

주 프로그램의 프로그램 코드는 형식의 초기화시 수행됩니다. 사용자가 시작하기 시작하면 그림은 관리 양식의 표준 이벤트 목록을 보여줍니다.

관리되는 모양 이벤트 목록은 양식 자체에 직접 속성 목록에도 표시됩니다. 이 목록은 편집기 제어 양식에서 호출됩니다.

관리 양식에서는 요소 레코드 이벤트를 처리 할 수 \u200b\u200b있습니다. 이 이벤트는 객체의 형태 (디렉토리, 문서 및 기타)에만 적용됩니다. 양식이 특정 객체에 연결되어 있지 않으면 녹음 이벤트가 누락됩니다.

일반적인 양식의 모듈의 경우 표준 이벤트 목록은 약간 작습니다. 관리 양식에서는 많은 이벤트가 쌍으로 만들어집니다 (클라이언트에서 하나의 실행, 서버에서 다른 실행). 일반적인 양식에서 전체 코드가 클라이언트에서 실행됩니다.

개체 모듈

이 모듈은 참조 서적, 문서, 계산 종, 계정 계획 및 기타 여러 개체의 특징입니다. 개체 모듈은 표준 이벤트를 처리하도록 설계되었습니다. 예를 들어, 디렉토리 요소, 요소 항목, 삭제, 문서 등을 입력하는 이벤트. 이벤트.

원칙적으로 폼 모듈에 기록 이벤트가 존재합니다. 그러나 양식 모듈의 엔트리 이벤트는 특정 양식으로 작업 할 때 대화 형 레코드 프로세스 중에 발생합니다.

오브젝트 모듈의 엔트리 이벤트는이 객체의 모든 형태의 항목에서 수행됩니다. 또한 오브젝트가 프로그래밍 방식으로 기록되는 경우,이 경우 오브젝트 모듈의 이벤트가 작동 할 것입니다.

오브젝트 모듈의 항목 에서이 절차는 절대적으로 모든 레코드에서 작동 할 때 기록 된 데이터의 정확성에 대한 모든 수표를 임베드 할 수 있습니다.

이 객체의 모듈은 개체 속성 팔레트 및 개체 편집 창에서 컨텍스트 메뉴를 통해 호출 할 수 있습니다.

아래 그림에서는 사용 가능한 이벤트 모듈 이벤트 목록을 보여줍니다.

개체 모듈에서 변수 설명을 배치하고 이벤트와 연결되지 않을 수있는 임의의 함수와 주 프로그램 섹션을 설명 할 수 있습니다.

주 프로그램 섹션에서는 예를 들어이 모듈의 로컬 변수를 초기화 할 수 있습니다. 이 프로그램 코드는이 객체 의이 모듈에 액세스 할 때 수행됩니다.

오브젝트 모듈의 모든 객체가 서버에서 컴파일된다는 점에 유의해야합니다. 따라서, 객체 모듈의 절차 및 기능의 컴파일 지시문은 필요하지 않습니다. 일부 구성 객체에는 오브젝트 모듈이 없습니다.

이것은 물체 자체의 기능 때문입니다. 이러한 객체는 포함됩니다 상수레지스터...에 에 대한 일정한오브젝트 모듈이 없지만 매우 유사한 모듈이 있습니다. 모듈 관리자 값.

에서 가치 관리자의 모듈 이벤트 이벤트를 녹화 할 수 있습니다. 상수및 처리 충전 수표.

모듈의 전체 컨텍스트가 서버에서 실행됩니다.

레지스터의 경우 레코드 세트 모듈이 있습니다.

이 모듈에는 레코드 이벤트를 처리하고 채우기를 확인할 수 있습니다.

객체 모듈, 관리자의 모듈 (상수의 경우) 및 설치 모듈 (레지스터의 경우)에서 내보낼 수있는 방법을 설명 할 수 있으며 이러한 메소드는 외부에서 사용할 수 있습니다.

그. 고정 객체 클래스 메소드를 사용하는 것 외에도 개체에 대해 만들 수 있습니다. 추가 방법 객체 모듈에서. 이 모듈은 키워드로 적절한 절차를 설명해야합니다. 수출.

그런 다음이 절차를 밖으로 연락 할 수 있습니다. 게다가 이 방법 컨텍스트 프롬프트에 표시됩니다. 문맥 팁의 새로운 메소드는 파란색 글꼴로 강조 표시됩니다 (파란색 아이콘 p () 절차 I. f ()함수의 경우).

마찬가지로 키워드가있는 변수를 선언하는 새 속성을 만들 수 있습니다. 수출...에 이 속성은 외부에서도 적용 할 수도 있습니다.

따라서 객체의 기능을 확장 할 수 있습니다 (헌신적 인 새로운 방법 및 새 속성). 이 경우 속성은 동적이며 데이터베이스에 저장되지 않습니다.

데이터베이스에 저장 될 개체에 대한 속성을 사용해야하는 경우 개체 소품을 만들어야합니다.

모듈 관리자

이 모듈은 많은 개체 (디렉토리, 문서, 레지스터 등)에 대해 존재합니다. 모듈은 객체의 상황에 맞는 메뉴를 통해 열리거나 팔레트 속성또는 편집 창을 통해

관리자 모듈에서 표준 이벤트를 무시할 수 있습니다. 예를 들어, 가공 재배 교육요소가 디렉토리에서 선택되면 추가 필터링 또는 확인을 수행 할 수 있습니다.

또한 관리자의 모듈에서는 추가 메소드를 만들고 내보내는 것을 나타낼 수 있습니다. 이 경우 외부에서 이러한 방법을 호소 할 수 있습니다.

이 호소력을 수행하려면 데이터 유형을 가져와야합니다. 예배 규칙서.

Manager 모듈의 내보내기 메소드와 객체 모듈의 내보내기 메소드의 차이점은 처음에는 객체 모듈 방법에 호소하는 것이며, 객체 자체를 얻는 것이 필요합니다 (즉, 어떻게 든 링크를 가져 와서이 링크를 변환하는 다음 목적).

그런 다음 객체 모듈의 변수 및 메소드를 수출 할 수 있습니다. 관리자의 모듈의 경우, 항소는 간단합니다.
참고 책. 대조군 에이전트. Concate.

이것들은 두 가지 다른 호소력입니다. 참조에서 객체로 변환 (방법) 조작객체를 받으면 시스템에 대해 상당히 심각한 동작 이므로이 객체의 모든 데이터가 읽혀 지므로 충분히 길 수 있습니다.

두 번째 차이점은 다음과 같습니다 모듈러스특정 요소의 맥락에서 호출됩니다. 따라서, 우리는이 요소에 적용 가능하다고 가정 할 수 있습니다 (대부분의 경우는 그런 논리가 놓여 있습니다).

Manager 모듈의 경우 그룹에 대한 일반적인 조치 또는 참조 서 또는 일부 문서의 모든 요소에 대해 몇 가지 종류의 일반적인 작업을 설명합니다. 예를 들어, 참조 북의 요소를 인쇄 해야하는 경우 개체 모듈을 사용할 수 있습니다.

그러나 관리자의 모듈에서는 요소 그룹을 포함하여 인쇄 할 다양한 다재능 메커니즘을 만드는 것이 가능합니다.

또한 객체 모듈에 대한 호소는 여전히 더 긴 조치입니다. 따라서 관리자 모듈 에서이 작업을 해결하는 것이 더욱 바람직합니다.

이렇게하면 1C : 엔터프라이즈 시스템 구성에서 모듈과의 우리의 지식이 있습니다. 위의 간략한 요약을 가져 오면 건조한 잔류 물에서 다음과 같은 결론을 얻습니다.

  • 소프트웨어 모듈은 내장 된 1c 언어의 텍스트 만 포함 할 수있는 구성의 일부입니다.
  • 소프트웨어 모듈은이 문서에서 고려한 종에 의해 분류됩니다. 각 종은 배치 위치와 저렴한 소프트웨어 컨텍스트에 의해 결정됩니다.
  • 모듈의 구조는 특정 시퀀스에있는 일부 섹션으로 구성됩니다. 섹션의 조성은 모듈의 유형에 의해 결정됩니다.

또한 우리는 의도적으로 하나의 유형의 모듈, 즉 팀 모듈을 낮추었습니다. 그는 주목할만한 것을 추천하지 않으며, 우리는 당신이 그 기능을 숙지 할 것을 제안합니다.

우리의 전체 프로그램 코드는 우리가 적용된 솔루션으로부터 단편적이고 규칙적으로 일부 종류의 작은 테스트 구성에 썼습니다. 그리고 당신은 "그냥 찍을 수 없습니다"가 불가능하고 일반적인 구성 코드를 편집하기 시작한다는 것을 알고 있습니까? 아니? 그런 다음 다음 기사에서 우리는이 모든 것을 설명 할 것입니다!

거의 모든 구성 객체에는 Manager 모듈이 있으며 대부분의 오브젝트에 대한 개체 모듈이 있습니다. 종종 초보자 프로그래머는이 두 모듈의 할당의 차이점을 이해하지 못합니다.

목적지의 차이점에서의 이해는 구조에보다 올바른 소프트웨어 코드를 작성할 수 있으며 경우에 따라 서버 리소스 1C를 저장하고 적용된 솔루션의 성능을 향상시킬 수 있습니다.

이 기사에서 이론적 측면에서 이러한 모듈과 특정 실용적인 예 에서이 모듈 간의 기본적인 차이를 고려하십시오.

이론

우리는 객체 지향 프로그래밍 (OOP)의 기본 사항을 전환 하고이 예제와 유추를 수행합니다. OOP에서는 객체의 메소드를 분할 할 수 있습니다. static (static) 및 간단한. 간단한 방법 특정 객체에 대해서만 발생할 수 있으며 현재 프로그램 코드 컨텍스트에있는 액세스를 할 수 있습니다. 정적 메소드는 객체에 직접 액세스하지 못합니다. 물체에 호소하기 위해 처음에는 eczmpamp를 만들 필요가 있습니다. 1C 플랫폼에도 동일하게 적용됩니다 : Enterprise 8.x.

오브젝트 모듈에서 플랫폼은 예를 들어 "Norencuture"디렉토리의 객체와 같이 특정 객체로 작업 할 때만 발생할 수있는 절차와 함수를 저장합니다. 관리자의 모듈에는 모든 객체에 적용 할 수있는 절차 및 함수가 들어 있습니다. 이 유형그러나이 객체의 인스턴스를 초기 작성하는 것입니다. 즉,이 모듈에서 명명법의 요소를 변경하기 위해 원래 "object ()"방법을 수행하기 위해 요소를 참조하여 이미 작업하고 있습니다.

이론에서 우리는 연습을 위해 변합니다.

연습

실질적인 예로 돌아 가자. 우리는 상품 목록을 인쇄하는 작업을 해결해야한다고 가정합니다. Polyzotel은 물품을 표시하거나 디렉토리 요소 목록 또는 상품 목록 목록에서 직접 표시합니다. 작업을 수행하는 두 가지 방법을 고려하십시오.

개체 모듈의 인쇄 절차

참조 오브젝트 모듈에서 다음 기능을 추가하십시오.

// 참조 항목에 대한 링크를 전달하십시오 PrintingSbranchestovers의 기능 (링크) Tabo Exports \u003d 새로운 목재; 레이아웃 \u003d 참고 문헌. 상품. 수신 ( "레이아웃"); 요청 \u003d 새 요청; 의뢰. 텍스트 \u003d "선택하십시오 | ...에 제품으로서의 성능 | 상품 ...에 편성 | 상품 ...에 공급 업체 코드 | | 예배 규칙서 ...에 상품과 같은 제품 | 어디서 | 상품 ...에 링크 (& Massiveovarov)"; 요청, 설치 매개 변수 ("massiveovarov ", 링크); // 선택을 참조로 놓습니다

프로그램 코드는 인쇄 디자이너에 의해 완전히 형성됩니다. 주목할만한 유일한 것은 요청의 참조 사이트 "물품"에 대한 참조입니다. 링크는 함수의 매개 변수로 전송됩니다. 호출의 결과로 완성 된 제품 위치가있는 테이블 문서가 반환됩니다.

프로그램 코드 "인쇄 소프트웨어"메소드를 호출하는 프로그램 코드는 다음 목록에서 인쇄 양식 명령이 표시됩니다.

및 맞춤 프로 시저 인쇄 (팀) // Server 절차를 적용하여 형성된 표 형식 문서를 얻습니다. tabo \u003d printerserver (); // 형성된 표지 문서를 보여줍니다 tabd. 보여 주다 (); Extrudresses & Nasserver 함수 인쇄 서버 () // 폼 객체를 참조 북 "물품"으로 변환하여 개체 모듈에서 함수를 호출합니다. objectovar \u003d RequisItFormAdrification ( "객체"); // 현재 참조 항목에 대한 링크를 전달하여 오브젝트 모듈 절차를 호출합니다. 결과 // 클라이언트 부품으로 돌아갑니다 개체를 반환합니다. StampSebrants (Object. Reference); endfunction

따라서 우리는 그 오브젝트로 작업하는 참조 서의 현재 요소를 인쇄했습니다. 그러나 작업은 사용자가 선택 해야하는 제품 목록을 인쇄합니다. 물체로 작업 할 때이 가능성을 사용자에게 제공 할 수 없습니다. 참조 북 "물품"의 요소 목록에서 인쇄를 수행하는 것이 가장 정확할 것입니다.

관리자 모듈의 인쇄 절차

참조 관리자 모듈에서 다음 내보내기 절차를 추가합니다.

// 상품에 대한 참조 배열을 송신합니다 PrintingSibers의 기능 (Massiveovarov) 수출 Tauffo \u003d 새로운 목재; 레이아웃 \u003d 참고 문헌. 상품. 수신 ( "레이아웃"); 요청 \u003d 새 요청; 의뢰. 텍스트 \u003d "선택하십시오 | ...에 제품으로서의 성능 | 상품 ...에 편성 | 상품 ...에 공급 업체 코드 | | 예배 규칙서 ...에 상품과 같은 제품 | 어디서 | 상품 ...에 링크 (& Massiveovarov)"; 요청, 설치 매개 변수 ("Massiveovarovarov ", 분화물); // 배열별로 선택을 설치합니다 결과 \u003d 요청. 수행 (); 지역 헤드 의자 \u003d 레이아웃. 사무실 ( "제목")에 한 번; regionpowel \u003d 레이아웃. 선택 사항 ( "지하"); 권한 표 \u003d 레이아웃. 옵션 올빼미 ( "capacked"); RegionAdvallets \u003d 레이아웃. 선택 사항 ( "충돌"); RegionDeatel 녹음 \u003d 레이아웃. 선택 사항 ( "세부 사항"); tabd. 명확한 (); tabd. 출력 (Oblasts Head Chair); tabd. 철수 (전지 패킷); tabd. 자동 그룹 () 시작하기; evalidateCaption \u003d 결과. 선택 (); 샘플링을하는 동안. arreadeal 기록의 다음 ()주기. 옵션. 채우기 (샘플링 화); tabd. 철수 (지역 행정 기록, elegadaTrinization); endcycle; tabd. 자동 그룹 ()을 마침. tabd. 도출 (regionpodvalla); tabd. 철수 (regomaved); 환불금; endfunction

객체 모듈의 함수의 주요 차이점은 함수 매개 변수입니다. 이제 배열은 인쇄 해야하는 물품에 대한 링크가있는 매개 변수로 전송됩니다.

명령 모듈 "인쇄"의 프로그램 코드는 다음과 같습니다.

& 슬릿 프로 시저 인쇄 (명령) tabo \u003d printerserver (); tabd. 보여 주다 (); Extrudresses & Nasserver 함수 인쇄 서버 () // 참조 서 목록에서 전용 상품에 대한 링크 배열을 보냅니다. // printsebrants 관리자의 모듈의 기능에 참조 서적을 반환합니다. 상품. Printshebrants (요소, 함께 개발); endfunction

동시에 1c 모드에서 명령 실행 결과 : 기업은 다음과 같습니다.

관리자 모듈에서 메소드를 사용하는 경우 각 링크의 기본값에서 "상품"비율 데이터에 액세스 할 수 있습니다. 객체 수신은 디렉토리 항목의 데이터베이스의 모든 데이터와 RAM으로 수신 된 데이터의 전제를 획득 함을 의미하기 때문에, 두 번째 방식으로 문제의 구현은 성능에 긍정적 인 영향을 미칩니다. 실제로,이 경우, 우리는 최소한의 자원을 사용할 것입니다 ( 랜덤 액세스 메모리) 서버 시스템.

무엇을 사용할 것인가?

항상 그렇듯이 모든 것은 특정 작업에 따라 다릅니다. 문서를 인쇄 해야하는 경우 더보기 최적의 옵션 - 관리자 모듈을 사용하십시오. 객체를 채우기 위해 필요한 경우, 예를 들어, 외부 처리 가득 따르다 표 부분이 경우 절차와 기능은 작업이 객체와 정확하게 암시하기 때문에 객체 모듈에서 재미있는 것이 좋습니다.

"무역 관리"버전 11의 일반적인 구성에서 Manager Manager 모듈은 모든 곳에서 사용됩니다. "제조 엔터프라이즈"구성의 구성을 살펴보면 구성이 이전 버전의 플랫폼 에서이 메커니즘에 대한 완전한 지원이 없었기 때문에 관리자 모듈이 실제로 사용되지 않습니다.

기사의 예제 구성.

1C 플랫폼 모듈 : Enterprise 8.3, 8.2.

일반적인 모듈

이러한 모듈의 "내보내기"플래그로 선언 된 함수는 모든 구성 장소에서 호출 할 수 있습니다. 챌린지는 값의 이름을 통해 수행됩니다. mixifunctions ().

이러한 모듈에서 변수의 섹션이 없습니다.

일반 모듈의 실행은 속성에 설정된 설정에 따라 다릅니다.

깃발 "글로벌"

이 플래그가 설치되면이 모듈의 컨텍스트가 전역이됩니다. 즉, 내보내기 기능에 액세스 할 때 모듈의 이름을 지정할 필요가 없습니다. 그러나 내보내기 기능의 이름은 전역 구성 컨텍스트 내에서 고유해야합니다.

플래그 "서버"

이 모듈의 기능은 서버에서 수행 할 수 있습니다.

플래그 "클라이언트 (일반 부록)"

이 모듈의 기능은 클라이언트에서 모드에서 수행 할 수 있습니다. 일반 앱.

플래그 "클라이언트 (관리 응용 프로그램)"

이 모듈의 기능은 관리되는 응용 프로그램 모드에서 클라이언트에서 수행 할 수 있습니다.

플래그 "서버 호출"

플래그는 "서버"플래그가있는 모듈에 사용할 수 있습니다. 클라이언트 의이 모듈의 내보내기 기능을 호출 할 수 있습니다 (서버에서 수행 할 수 있음).

깃발 "외부 유니온"

이러한 모듈의 내보내기 기능은 외부 소스에서 연결할 때 호출 할 수 있습니다.

플래그 "특권"

이러한 플래그가있는 모듈에서 유효성 검사가 꺼집니다. 성능이나 행정 조치를 향상시키는 데 적합합니다.

매개 변수 "재사용"

이 매개 변수를 활성화하면 첫 번째 호출 직후의 내보내기 함수의 리턴 된 값이 캐시됩니다. 캐싱은 통화 시간 (특정 절차의 시간 실행) 또는 사용자 세션에 대해 가능합니다.

응용 프로그램 모듈

시작 이벤트를 처리하고 응용 프로그램을 완료하도록 설계되었습니다. 정규 및 관리 응용 프로그램의 경우 두 가지 유형이 있습니다.

응용 프로그램의 시작 시간에 영향을 미치므로 과부하하지 마십시오.

세션 모듈

세션 매개 변수를 초기화하는 데 사용되는 특수 모듈입니다. 다양한 응용 프로그램 모듈에서 코드를 복제 할 필요가 없습니다.

모듈을 여러 번 실행할 수 있고 추가 시동없이 실행될 수 있으므로 조심스럽게 사용해야합니다. 응용 프로그램 모듈을 수행합니다.

안부, (교사 및 개발자).

모듈이란 무엇이며 실제로 무엇을 위해 무엇을 위해 무엇을 위해 무엇입니까? 모듈에는 프로그램 코드가 있습니다. 또한 플랫폼 7.7과 달리 코드가 위치하고 양식 요소의 속성과 레이아웃 테이블의 셀의 속성에서 플랫폼 8.x의 모든 코드 라인에 위치해야합니다. 모든 모듈에서. 일반적으로 모듈은 세 섹션으로 구성됩니다 - 이것은 변수의 설명, 프로 시저 설명 섹션 및 함수뿐만 아니라 주 프로그램의 섹션의 섹션입니다. 이러한 구조는 일부 예외를위한 거의 모든 플랫폼 모듈을 특징으로합니다. 일부 모듈에서는 주 프로그램의 변수 및 파티션을 설명하는 섹션이 없습니다. 예를 들어 세션 모듈과 공통 모듈이 있습니다.

일반 경우 모듈을 수행하는 컨텍스트는 클라이언트 및 서버로 나뉩니다. 또한 일부 모듈은 클라이언트 측 및 서버 측에서 컴파일 될 수 있습니다. 그리고 일부는 서버 측이나 클라이언트 측에만 있습니다. 그래서:

응용 프로그램 모듈

이 모듈은 응용 프로그램 실행 순간 (구성 다운로드) 및 작업 완료의 순간을 캡처하도록 설계되었습니다. 관련 이벤트에서 테스트 절차를 배치 할 수 있습니다. 예를 들어 응용 프로그램을 시작할 때 작업이 완료되면 참조 구성 데이터를 업데이트하고 그만한 가치가 있는지 물어보십시오. 어쩌면 일꾼이 아직 끝나지 않았을 것입니다. 또한 쇼핑이나 재정과 같은 외부 장비의 사건이 가로 챌 수 있습니다. 응용 프로그램 모듈은 대화식 실행 이벤트에서만 설명 된 이벤트를 가로 채는 것을 주목할만한 가치가 있습니다. 그. 프로그램 창 자체가 생성 될 때. 응용 프로그램이 모드로 시작하면 이는 발생하지 않습니다. 개력.

플랫폼 8.2에서는 두 가지 응용 프로그램 모듈이 있습니다. 이것은 일반적인 응용 프로그램과 제어 된 응용 프로그램 모듈의 모듈입니다. 그들은 다양한 고객을 시작할 때 트리거됩니다. 따라서 웹 클라이언트를 시작할 때 제어 된 응용 프로그램 모듈이 트리거됩니다. 씬 클라이언트 관리되는 응용 프로그램 모드에서 두꺼운 클라이언트입니다. 일반 응용 프로그램에서 두꺼운 클라이언트를 시작할 때 일반적인 응용 프로그램의 모듈이 트리거됩니다.

응용 프로그램 모듈에서는 중요 프로그램의 설명뿐만 아니라 변수, 절차 및 함수에 대한 모든 섹션을 가질 수 있습니다. 응용 프로그램 모듈은 클라이언트 측에서 컴파일되므로 많은 유형의 데이터의 가용성을 강력하게 제한합니다. 확장 응용 프로그램 모듈의 컨텍스트는 서버 호출 속성이 설정된 일반 모듈의 메소드로 인한 것일 수 있습니다. 내보내기로 표시된 모든 변수 및 메소드는 클라이언트 측에서 실행중인 모든 구성 모듈에서 사용할 수 있습니다. 그러나 어떤 유혹이 유혹하는 것이 무엇이든 간에는 많은 수의 방법이 없어야합니다. 코드가 클수록 컴파일 시간이 많아집니다. 그러므로 응용 프로그램의 시작은 매우 귀찮은 사용자입니다.

위에서 언급했듯이 응용 프로그램 모듈은 시작 및 완료 이벤트를 처리합니다. 응용 프로그램 모듈에서 이러한 각 이벤트를 처리하려면 이전에 핸들러가 핸들 된 핸들러가 있습니다 ... 그 사이의 차이점은 이전에 처리기에서 코드가 수행 될 때 ... 동작이 아직 없었습니다. 성취되었고 우리는 그것을 거절 할 수 있습니다. 이를 위해 Failure 매개 변수는 의도됩니다. 핸들러에서는 액션이 \u200b\u200b이미 일어 났을 때 응용 프로그램을 실행하거나 이탈을 종료하기를 거부 할 수 없습니다.

외부 연결 모듈

모듈의 목적은 응용 프로그램 모듈의 임명과 유사합니다. 그것은 시작점 점을 처리하고 응용 프로그램을 완성하고 있습니다. 외부 연결 모듈은 응용 프로그램이 완료 모드에서 시작될 때 트리거됩니다. 외부 연결 자체의 프로세스는 대화식이 아닙니다. 이 모드에서는 정보 데이터베이스와의 소프트웨어 작업이 발생하고 응용 프로그램 창이 열리지 않아서 응용 프로그램 창이 열리지 않으므로 사용하는 방법의 사용에 대한 특정 제한 사항이 부과됩니다. 대화 형 작업...에 이 모드에서는 대화 상자 형식, 경고 메시지 등에 대한 호출을 사용할 수 없습니다. 그들은 단지 일하지 않습니다.

응용 프로그램 모듈에서와 같이 기본 프로그램의 변수, 메서드 및 섹션에 대한 설명 섹션을 사용할 수 있습니다. 또한 내보내기 변수 및 메소드를 선언 할 수도 있습니다. 차이점은 복합 모드에서 정보 기반의 모든 작동이 서버 측에서 발생하여 외부 연결 모듈이 서버에서 독점적으로 컴파일됩니다. 따라서 일반 클라이언트 모듈의 수출 변수 및 방법을 사용할 수 없습니다.

세션 모듈

이것은 매우 특수화 된 모듈이며 세션 매개 변수를 초기화하는 것만으로 만드는 것입니다. 왜 이것을 위해 자신의 모듈을 만들 필요가 있었습니까? 이는 초기화 프로세스가 모든 코드의 실행을 요구할 수 있기 때문에 응용 프로그램은 다른 클라이언트 (다양한 응용 프로그램 모듈 또는 외부 연결 모듈이 생성됨) 및 세션 매개 변수의 초기화로 실행될 수 있기 때문입니다. 모든 스타트 업 모드에서 수행해야합니다. 따라서 추가 모듈이 필요했으며 응용 프로그램을 시작하는 모든 모드에서 수행됩니다.

세션 모듈에는 "ParametrovSeans 설치"가있는 단일 이벤트가 있으며, 이는 프로토커스 앞에있는 응용 프로그램 모듈의 이벤트보다 먼저 처음으로 수행됩니다. 변수 선언과 주 프로그램 섹션을 포함하지 않습니다. 또한 내보내기 방법을 발표 할 수 없습니다. 모듈은 서버 측에서 컴파일됩니다.

이 모듈이 응용 프로그램의 시작에서 수행되고 코드가 세션 매개 변수의 초기화에 직접 연결되어 있지 않은 유혹에 굴복해서는 안됩니다. 이것은 설치 매개 변수의 프로세서가 시스템 작동 과정에서 반복적으로 호출 될 수 있기 때문입니다. 예를 들어, 이는 초기화되지 않은 매개 변수를 호소하는 경우에 발생합니다. 그리고이 이벤트의 첫 번째 실행의 순간을 잡을 수는 있지만 (필요한 매개 변수가 불확실 함)이 모듈은 권한있는 모드에서 컴파일된다는 점에 유의해야합니다. 그것은 액세스 권한을 제어하지 않습니다. 두 번째 순간은 시스템 시작이 생산 될 수있는 몇 백분 % 일 수 없습니다. 갑자기 응용 프로그램 모듈에 거절이있을 것이며 데이터베이스로 일부 작업을 수행하려고합니다.

일반적인 모듈

모듈은 다른 구성 모듈에서 호출되는 몇 가지 일반적인 알고리즘을 설명하도록 설계되었습니다. 일반 모듈에는 주 프로그램의 변수 및 파티션을 설명하는 섹션이 포함되어 있지 않습니다. 그것은 내보내기 방법을 발표 할 수 있으며,이 가용성의 컨텍스트는 컴파일 플래그에 의해 결정될 것입니다. 변수 설명 섹션을 사용할 수 없다는 사실 때문에 공통 모듈에서 전역 변수를 결정하는 것은 불가능합니다. 이렇게하려면 반환 된 값이나 응용 프로그램 모듈의 캐싱을 사용하여 일반 모듈의 기능을 사용하십시오. 일반 모듈의 재사용 속성이 "세션 시점"으로 설정된 경우 에도이 경우 생활 수명은 마지막 호소의 순간부터 그들에게 20 분을 초과하지 않는다는 것을 명심해야합니다. ...에
일반 모듈의 동작은 표시된 설정에 따라 다르므로 서버 호출이 사용 가능한 경우 다양한 컴파일 플래그를 사용할 수 있습니다. 우리는이 기사에서 모든 종류의 설정을 고려하지 않을 것입니다뿐만 아니라 부동산 플래그의 부당한 설치에서 발생하는 행동 기능 및 함정. 이것은 별도의 기사의 주제입니다. 플래그로 인도 해야하는 몇 가지 점에 대해서만 계신하십시오.

  • 좋은 규칙은 모든 곳에서 글로벌 플래그를 사용하지 않습니다. 이렇게하면 응용 프로그램의 시작 시간이 줄어 며 코드의 가독성을 향상시킬뿐만 아니라 코드의 가독성이 향상됩니다 (일반 모듈에 완전히 의미있는 이름이있는 경우).
  • 둘 이상의 편집 플래그를 사용하는 것이 바람직하지 않습니다. 다른 컨텍스트에서 수행 해야하는 방법은별로이 아니며 그럼에도 불구하고 이러한 메소드가 필요하다면 별도의 공통 모듈을 선택할 수 있습니다.
  • "서버 호출"플래그는 모듈이 "서버에서 컴파일 된 경우에만 의미가 있습니다. 따라서 다른 문제를 피하기 위해 다른 모든 컴파일 플래그를 제거해야합니다.
  • 대규모 데이터 처리가있는 경우 모듈 메소드에서 데이터베이스를 읽고 쓰고 쓰는 다음 작동 속도를 높이려면 액세스 권한을 제어하여 "권한있는"플래그를 노출하는 것이 좋습니다. 이 모드는 서버에서 컴파일 된 일반 모듈에만 사용할 수 있습니다.

모듈 양식

사용자 작업을 처리하기위한 것입니다. 데이터 입력과 관련된 다른 이벤트 및 입력의 정확성을 처리합니다. 일반 양식의 모듈은 전적으로 클라이언트에서 컴파일됩니다. 제어 된 양식의 모듈은 실행의 컨텍스트에 의해 명확하게 분리되어 모든 변수 및 메서드에 컴파일 지시문이 있어야합니다. 지시문이 명시 적으로 지정되면이 변수 또는 메소드가 서버 측에서 컴파일됩니다. 모듈에서는 기본 프로그램의 섹션뿐만 아니라 변수 및 방법에 대한 설명 섹션을 사용할 수 있습니다.

개체 모듈

이 모듈은 많은 구성 객체의 특성이며 일반적으로 객체 이벤트를 처리합니다. 예를 들어, 객체, 이벤트 이벤트 등의 이벤트 및 제거를 기록합니다.

일부 오브젝트 모듈 이벤트 중복 된 모듈 이벤트. 예를 들어, 레코드와 관련된 이벤트. 그러나 양식의 모듈의 사건은 객체의 특정 형태로만 독점적으로 수행되는 것으로 이해되어야합니다. 일반적으로 이러한 형태는 몇 가지 일 수 있습니다. 객체 모듈 이벤트는 객체와 함께 소프트웨어 작업시에도 어떠한 경우에도 어떠한 경우에도 호출됩니다. 따라서 모든 경우에 일부 코드를 수행 해야하는 경우이를 위해 객체 모듈 이벤트를 사용하는 것이 좋습니다.

오브젝트 모듈은 서버에서 독점적으로 컴파일됩니다. 여기에는 다른 구성 모듈에서 사용할 수있는 내보내기 변수 및 메소드가 포함되어 있습니다. 이러한 속성과 메소드의 도움으로 우리는 객체의 기능을 크게 확장 할 수 있습니다.

모듈 관리자 개체

이 모듈은 많은 구성 객체에 대해 존재합니다. 이 모듈의 주요 목적은 선 입력시에 발생하는 표준 선택 이벤트와 Manager 기능의 확장을 무시하는 것입니다. 모듈은 서버 측에서 컴파일됩니다. 내보내기 속성 및 메소드의 정의가 필요합니다. export manager 메소드를 호출하는 것은 객체 자체를 생성하지 않습니다.

위의 모든 구성 모듈과 관리되는 응용 프로그램 모드에서 메소드의 일부 구성 모듈 및 메소드의 그림을 추가 할 수 있습니다. 화살표는 해당 방법을 호출하기 위해 연락 할 수있는 방향을 나타냅니다. 스키마에서 볼 수 있듯이 서버 컨텍스트가 완전히 닫힙니다. 그러나 클라이언트 컨텍스트에서 서버 메소드를 참조 할 수 있습니다.

이 계획의 조건부 지정 : 오전. 클라이언트 - 클라이언트 공통 모듈; 옴 서버 - 서버 공통 모듈; 엠. 클라이언트 - 클라이언트 양식 모듈 절차; 엠. 서버 - 서버 모듈 서버 절차.

소프트웨어 모듈에는 시스템이나 사용자의 동작에 특정 방식으로 응답하기 위해 필요한 1c 언어의 실행 코드가 포함되어 있으며, 시각적 개발의 시각적 수단이 충분하지 않을 때 사용자가 필요합니다. 또한 소프트웨어 모듈에서는 자체 메서드 (절차 및 기능)를 설명 할 수 있습니다.

일반적으로 소프트웨어 모듈은 세 섹션으로 구성됩니다.

  • 변수 발표 영역;
  • 프로 시저 및 기능에 대한 지역 설명;
  • 프로그램의 주요 텍스트.

구조의 예 소프트웨어 모듈:

// ***************** 변수 선언 영역 **********************

이동 수출; ...에 / / 이것은 전역 변수입니다
이름 변경, autronymic; // 이것은 변수 모듈입니다
변환; // 이것은 변수 모듈이고 연락 할 수 있습니다.

// 모듈의 모든 절차와 기능에서

// *************** 절차 및 함수에 대한 설명 영역 *****************

프로 시저 프로 시저 1 ()
음성 결과; ...에 / / 결과는 로컬 변수 (변수 절차)입니다.

결과 \u003d 성 + ""+ 이름 + ""+ autronymic;

extrudresses.

기능 기능 1 ()

// 운영자 기능

리턴 (성 + ""+ 이름);

endfunction

// ******************* 프로그램의 주요 텍스트 ************************ ***

Surname \u003d "ivanov";
이름 \u003d "Ivan";
patronymic \u003d "ivanovich";

//******************************************************************************

특정 소프트웨어 모듈에서는 어떤 영역이 없을 수 있습니다.
변수 발표 영역 모듈의 텍스트의 시작 부분에서 첫 번째 운영자 프로 시저 또는 운영자 기능 또는 모든 실행 가능 연산자에게 배치됩니다. 이 섹션에서는 CC 카메라 문장이있을 수 있습니다.

프로 시저 및 기능에 대한 지역 설명 프로 시저 또는 기능의 본문 설명 외부의 모든 실행 가능 연산자에게 첫 번째 운영자 프로 시저 또는 운영자 기능에서 배치됩니다.

지역 기본 텍스트 프로그램 본문 절차 또는 모듈의 끝까지까지 기능 외부의 첫 번째 실행 가능 연산자에 있습니다. 이 섹션에는 실행 가능한 연산자 만 포함될 수 있습니다. 프로그램의 주 텍스트는 모듈의 초기화시 실행됩니다. 일반적으로 메인 프로그램 섹션에서는 변수의 초기화 연산자를 첫 번째 통화 절차 또는 모듈 함수에 할당 해야하는 특정 값으로 배치하는 것이 좋습니다.

소프트웨어 모듈은 특정 기능 알고리즘에 대한 설명이 필요할 수있는 구성 위치에 있습니다. 이러한 알고리즘은 시스템 자체가 미리 결정된 상황에서 시스템 자체라고하는 절차 또는 기능의 형태로 발행해야합니다 (예 : 대화 상자에서 단추를 눌러 참조 서를 열 때, 대화 상자에서 버튼을 누르면, 개체가있는 경우). 변경 등).

각 개별 소프트웨어 모듈은 시스템에 의해 단일 정수로 인식되므로 소프트웨어 모듈의 모든 프로 시저 및 기능은 단일 컨텍스트에서 수행됩니다.

모듈을 수행하는 컨텍스트는 클라이언트 및 서버로 나뉩니다. 또한 일부 소프트웨어 모듈은 클라이언트 측 및 서버 측에서 컴파일 될 수 있습니다.

응용 프로그램 모듈 (관리 또는 일반)

응용 프로그램 모듈은 시스템을 시작하고 완료 할 때 초기화 된 이벤트의 절차 (핸들러)를 설명합니다. 예를 들어 응용 프로그램을 시작할 때 구성 데이터를 업데이트하고 작업이 끝나면 프로그램을 떠날 가치가 있는지 묻습니다. 또한 쇼핑 또는 재정과 같은 외부 장비의 이벤트 가이 모듈에서 가로 챌 수 있습니다. 응용 프로그램의 대화식 실행 실행의 경우에만 응용 프로그램 창이 시작될 때만 응용 프로그램 모듈이 수행됩니다. COM 복합 모드에서 응용 프로그램이 시작된 경우에는 발생하지 않습니다.
1C 8 플랫폼에는 두 가지 응용 프로그램 모듈이 있습니다. 이것은 일반적인 응용 프로그램과 제어 된 응용 프로그램 모듈의 모듈입니다. 그들은 다양한 고객을 시작할 때 트리거됩니다. 따라서 제어 된 응용 프로그램 모듈은 웹 클라이언트가 시작될 때 트리거되며 관리되는 응용 프로그램 모드에서 씬 클라이언트 및 두꺼운 클라이언트가 트리거됩니다. 일반 응용 프로그램에서 두꺼운 클라이언트를 시작할 때 일반적인 응용 프로그램의 모듈이 트리거됩니다. 응용 프로그램 시작 모드 설정은 구성 등록 정보 "주 시작 모드"에서 설정됩니다.

응용 프로그램 모듈에서 모든 3 개의 파티션은 변수 선언, 프로 시저 및 기능뿐만 아니라 프로그램의 주요 텍스트를 찾을 수 있습니다. 응용 프로그램 모듈은 클라이언트 측에서 컴파일되어 많은 데이터 유형의 사용을 강력하게 제한합니다. 확장 응용 프로그램 모듈의 컨텍스트는 서버 호출 속성이 설정된 일반 모듈의 메소드로 인한 것일 수 있습니다. 내보내기로 표시된 응용 프로그램 모듈의 모든 변수 및 메서드는 클라이언트 측에서 실행중인 모든 구성 모듈에서 사용할 수 있습니다. 그러나 어떤 유혹이 유혹하는 것이 무엇이든, 여기에 많은 수의 절차와 기능이 없어야합니다. 이 모듈의 코드가 클수록 컴파일 시간이 길어질수록 결과적으로 응용 프로그램 시작 시간입니다.

위에서 언급했듯이 응용 프로그램 모듈은 시작 및 완료 이벤트를 처리합니다. 응용 프로그램 모듈에서 이러한 각 이벤트를 처리하려면 이전에 핸들러 한 쌍이 있습니다 ... 다음과 같습니다. 다음과 같습니다. 이전 버전에서 코드가 수행되면 작업이 아직 없었습니다. 성취되었고 우리는 그것을 수행하기를 거부 할 수 있습니다. 이를 위해 Failure 매개 변수는 의도됩니다. 핸들러에서는 액션이 \u200b\u200b이미 일어 났을 때 응용 프로그램을 실행하거나 이탈을 종료하기를 거부 할 수 없습니다.

외부 연결 모듈

  • 모든 3 개의 영역이 포함될 수 있습니다
  • 루트 구성 섹션에 있습니다

모듈의 목적은 응용 프로그램 모듈의 임명과 유사합니다. 시작 이벤트의 처리와 응용 프로그램의 완료가 있습니다. 외부 연결 모듈은 응용 프로그램이 완료 모드에서 시작될 때 트리거됩니다. 외부 연결 자체의 프로세스는 대화식이 아닙니다. 이 모드에서는 소프트웨어가 정보 데이터베이스에서 작동하며 응용 프로그램 창이 열리지 않으므로 대화식 작업을위한 메소드의 사용에 대한 특정 제한 사항을 부과합니다. 이 모드에서는 대화 상자 양식, 경고 및 메시지를 사용자 등에 사용할 수 없습니다. 그들은 단순히 수행되지 않을 것입니다.

응용 프로그램 모듈에서와 마찬가지로 세 가지 영역은 모두 여기에서 사용할 수 있습니다. 변수 선언, 프로 시저 설명 및 기능뿐만 아니라 프로그램의 주요 텍스트. 응용 프로그램 모듈의 주요 차이점은 COM 연결 모드에서 정보 기반의 모든 작업이 서버 측에서 발생하여 외부 연결 모듈이 서버 측에서 컴파일됩니다. 따라서 일반 클라이언트 모듈의 수출 변수 및 방법을 사용할 수 없습니다.

세션 모듈

  • 서버 측면에서 실행됩니다
  • 루트 구성 섹션에 있습니다

이것은 전용으로 세션 매개 변수를 초기화하는 데 전문화 된 모듈입니다. 왜 이것을 위해 자신의 모듈을 만들 필요가 있었습니까? 그 사용은 응용 프로그램 자체가 시작될 수 있다는 사실 때문입니다. 다른 모드 (제어 된 또는 기존 응용 프로그램의 모듈을 실행하거나 외부 연결 모듈의 모듈이 실행되고, 시작 모드에 관계없이 세션 매개 변수의 초기화가 수행되어야합니다. 세 개의 지정된 모듈 모두에 동일한 프로그램 코드를 작성하지 않으려면 응용 프로그램 시작 모드에 관계없이 수행되는 추가 모듈이 필요했습니다.

세션 모듈에서는 프로토커스 앞에있는 응용 프로그램 모듈의 이벤트보다 먼저 가장 먼저 매우 먼저 수행됩니다. 변수 선언과 주 프로그램 섹션을 포함하지 않습니다. 또한 내보내기 방법을 발표 할 수 없습니다. 모듈은 서버 측에서 컴파일됩니다.

일반적인 모듈

  • 절차 및 기능에 대한 설명에 대한 설명이 포함될 수 있습니다.
  • 서버 측 또는 클라이언트에서 실행 중 (모듈 설정에 따라 다름)
  • 구성 개체 "일반"트리의 분기에 위치한 "일반 모듈"

공통 모듈은 다른 구성 모듈에서 호출되는 몇 가지 공통 알고리즘을 설명하도록 설계되었습니다. 일반 모듈에는 변수를 선언하는 영역과 프로그램의 기본 텍스트가 포함되지 않습니다. 수출 방법을 선언 할 수 있습니다.이 가용성은 모듈의 설정 (수행되는 측면이 수행되는 측면에서 서버 또는 클라이언트 측에서)을 결정할 수 있습니다. 변수 설명 섹션을 사용할 수 없다는 사실 때문에 공통 모듈에서 전역 변수를 결정하는 것은 불가능합니다. 이렇게하려면 응용 프로그램 모듈을 사용할 수 있습니다.

일반 모듈의 동작은 표시된 설정에 따라 다르므로 서버 호출이 사용 가능한 경우 다양한 컴파일 플래그를 사용할 수 있습니다. 다음은 일반적인 모듈을 설정하기위한 몇 가지 팁입니다.

좋은 음색은 모든 곳에서 글로벌 플래그를 사용하지 않습니다. 이렇게하면 응용 프로그램의 시작 시간을 줄이고 코드의 가독성을 향상시킬뿐만 아니라 코드의 가독성이 향상됩니다 (물론 일반 모듈이 완전히 의미있는 이름이있는 경우).
- 둘 이상의 편집 플래그를 사용하는 것이 바람직하지 않습니다. 서로 다른 컨텍스트에서 수행 해야하는 방법은 그렇게 많이가 아니며 모든 동일한 방법이 필요한 경우 별도의 공통 모듈을 구별 할 수 있습니다.
- "서버 호출"플래그는 모듈이 "서버에서 컴파일 된 경우에만 의미가 있습니다. 따라서 다양한 문제를 피하기 위해 다른 모든 컴파일 플래그를 제거해야합니다.
- 대규모 데이터 처리, 모듈 메소드에서 데이터베이스를 읽고 쓰는 경우, 작동 속도를 높이려면 액세스 권한의 제어를 해제하여 "권한있는"플래그를 노출하는 것이 좋습니다. 이 모드는 서버에서 컴파일 된 일반 모듈에만 사용할 수 있습니다.

모듈 양식

  • 모든 3 개의 영역이 포함될 수 있습니다
  • 서버 및 클라이언트 측에서 실행됩니다

양식의 모듈은이 양식으로 사용자의 동작을 처리하도록 설계되었습니다 (버튼을 누르면 양식의 형태의 변경 사항이 변경 될 수 있음). 또한 양식의 형태 (예 : 개방 또는 폐쇄)와 직접 관련된 이벤트도 있습니다. 모듈은 제어되고 기존의 형태는 먼저 제어 된 형태의 모듈이 명확하게 문맥으로 분할된다는 사실이 다릅니다. 각 절차 또는 함수에는 컴파일 지시문이 있어야합니다. 컴파일 지시문이 지정되지 않은 경우이 절차 또는 함수가 서버 측에서 수행됩니다. 일반적인 양식에서는 전체 코드가 클라이언트 측에서 실행됩니다.

관리 양식의 구조에는 변수 선언, 절차 및 함수 설명 및 프로그램의 주요 텍스트 (양식 초기화시 수행)의 섹션이 있습니다. 표준 양식 이벤트로 예상되는 절차 및 양식 기능 목록을 통해 연락 할 수 있습니다. (Ctrl + Alt + P)또는 속성 자체의 속성을 통해

양식에 주 소품이 할당 된 경우 주 소품으로 사용되는 응용 프로그램 객체의 속성 및 메서드가 양식 모듈에서 사용할 수 있습니다.

개체 모듈

  • 모든 3 개의 영역이 포함될 수 있습니다
  • 서버 측면에서 실행됩니다

이 모듈은 대부분의 구성 객체에서 사용할 수 있으며 일반적인 경우에 일반적인 경우 객체와 직접 관련된 이벤트를 처리합니다. 예를 들어, 항목을 입력하고 삭제하여 객체의 소품을 채우고 문서를 수행하는 등을 확인합니다.

일부 오브젝트 모듈 이벤트 중복 된 모듈 이벤트. 예를 들어, 레코드와 관련된 이벤트. 그러나, 양식의 모듈의 사건은 특정 형태의 특정 형태의 특정 형태로 독점적으로 수행 될 것이라는 것을 이해해야한다. 객체 모듈 이벤트는 객체와 함께 소프트웨어 작업시에도 어떠한 경우에도 어떠한 경우에도 호출됩니다. 따라서 객체의 특정 형식으로 바인딩하지 않고 객체와 연관된 방법이 필요한 경우이를 위해 객체 모듈을 사용하는 것이 좋습니다.

모듈 관리자 개체

  • 모든 3 개의 영역이 포함될 수 있습니다
  • 서버 측면에서 실행됩니다

Object Manager 모듈은 버전 1C 8.2에서만 나타났습니다. 관리자 모듈은 모든 응용 프로그램 개체에 있으며이 객체를 구성 객체로 관리하도록 설계되었습니다. 관리자 모듈을 사용하면 데이터베이스 오브젝트의 특정 인스턴스가 아닌 구성 자체에 적용되지 않는 절차 및 함수를 도입하여 개체의 기능을 확장 할 수 있습니다. Object Manager 모듈을 사용하면이 개체에 대한 일반 절차 및 기능을 배치하고 예를 들어 처리에서부터 외부에서 액세스 할 수 있습니다 (물론,이 절차 또는 함수가 핵심 단어 내보내기가있는 경우). 이것이 우리에게 무엇을 제공합니까? 일반적으로 개체의 개체 및 저장을위한 절차를 간소화하는 것은 아니지만 개체 관리자의 모듈에서는 별도의 장소에서 그들을 저장합니다. 우리는 이러한 절차와 공통 모듈에 넣는 기능의 동일한 성공을 거두고 1c는 객체 관리자 모듈에서 일반적인 절차 및 객체 기능을 조언합니다. 객체 관리자 모듈의 절차 및 기능 사용 예 : 특정 조건에서 디렉토리 또는 문서의 디렉토리 또는 문서의 개별 세부 사항을 초기 채우고 특정 조건에서 디렉토리 또는 문서의 세부 사항을 채우는 것을 확인합니다.

팀 모듈

  • 절차 및 기능을 설명하는 섹션을 포함 할 수 있습니다
  • 클라이언트 측에서 수행되었습니다

명령은 일반적으로 적용된 오브젝트 또는 구성에 대한 객체입니다. 각 명령에는 사전 정의 된 처리 명령 ()을 설명 하여이 명령을 실행할 명령 모듈이 있습니다.

공유