구성요소나 지원을 다시 설치해야 할 수도 있습니다. 올바른 방법을 찾는 방법

모든 1C 프로그래머는 "컨텍스트 메서드 호출 시 오류(실행)"와 같은 메시지를 접했습니다. 이 오류는 일반적으로 숙련된 프로그래머에게는 아무런 문제도 일으키지 않습니다. 왜 발생합니까? 아래에서 살펴보겠습니다.

다른 프로그래밍 언어와 마찬가지로 1C 플랫폼에는 개발자의 삶을 더 쉽게 만들어주는 사전 정의된 방법이 있습니다. 그러나 이러한 명령을 실행하려면 다음이 필요합니다. 올바른 준수프로그래밍 언어 구문.

표준 메서드를 호출할 때 가장 일반적인 오류는 다음과 같습니다.

  • 써 내려 가다
  • 만들다
  • 연결하다
  • 연결하다
  • 출력 확인
  • 미리보기파일1C
  • 읽다
  • 실행하다
  • 패키지 실행
  • 변경 읽기

예를 살펴보겠습니다. 우리는 프로그래밍 방식으로 요청()을 생성하여 다음 조각을 "text" 매개변수에 전달했습니다.

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

“WHERE” 구성에서 의도적으로 “AND”를 넣는 실수를 했지만, 다른 조건을 지정하지 않았습니다. 1C가 이러한 요청에 대처할 수 없어 오류가 발생한다는 것은 완전히 논리적입니다.

(SessionModule(21)): 컨텍스트 메서드 호출 시 오류(실행)

때문에:

그리고<>

또 다른 예를 살펴보겠습니다.

잘못된 코드를 "프로그램 버전"의 "쓰기 전" 처리기로 전송하고 프로그래밍 방식으로 디렉터리를 작성해 보겠습니다. 오류가 표시됩니다.

(SessionModule(8)): 컨텍스트 메서드 호출 시 오류(쓰기)
선택.GetObject().쓰기();
때문에:
핸들러 실행 중 오류 발생 - 'BeforeRecording'
때문에:
(Directory.ProgramVersions.ObjectModule(20)): 컨텍스트 메서드 호출 시 오류(실행)
RequestResult = 요청.실행();
때문에:
((13, 4)): 구문 오류
그리고<>

"Run" 메서드 실행에 오류가 있다는 사실에도 불구하고 시스템은 개체의 프로그램 레코드가 호출되는 코드 줄에 대해서도 불평합니다.

해결책

문제를 해결하려면 오류가 정확히 무엇인지 이해하는 것으로 충분합니다. 99%의 경우 단순히 도움말을 읽고 문제를 분석하면 문제가 해결됩니다.

이 방법이나 저 방법을 사용하는 방법을 배우려면 관심 있는 기능에 커서를 놓고 "Ctrl + F1"을 누르십시오. 1C 플랫폼은 필요한 방법에 대한 컨텍스트 힌트를 제공합니다.

함수에 전달된 매개변수가 올바르게 사용되고 있는지 확인하십시오.

다음 오류가 발생했습니다. 인쇄된 양식에 정보를 표시할 때 플랫폼에 다음 메시지가 표시됩니다.
컨텍스트 메서드(CheckOutput) 호출 중 오류가 발생했습니다...

체크아웃풋()- 이 방법이에요 스프레드시트 문서, 제출된 스프레드시트 문서가 인쇄 시 페이지에 맞는지 확인합니다. 이 방법에 대한 메모에서 1C 플랫폼 개발자는 현재 프린터에 대한 정보를 얻는 데 문제가 발생하는 경우(예: 시스템에 단일 프린터가 설치되지 않은 경우) 예외가 발생한다고 즉시 썼습니다.

설치된 프린터를 확인했는데 모든 것이 정상이고 작동하고 있습니다. 경험적으로 나는 그것을 발견했다. 이 오류특정 상황에서만 발생 인쇄된 형태한 명의 사용자에게만 적용됩니다.

다음 단계에 따라 오류가 해결되었습니다(오류가 발생한 사용자 아래에서 수행).
1) 인쇄된 양식을 생성할 때 CheckOutput() 메서드가 사용되지 않도록 빈 문서를 생성했습니다. 어떤 경우든 이 메소드가 호출되면 구성에서 이를 찾아 주석 처리하거나 구조에 배치해야 합니다. 시도-예외-종료 시도.
3) 현재 인쇄 양식에 대해 페이지 매개변수를 열고 올바른 매개변수를 설정하십시오.

3. 페이지 옵션
인쇄된 양식을 인쇄할 때 플랫폼이 이전에 저장한 잘못된 페이지 매개변수로 인해 오류가 발생했습니다. 예를 들어 플랫폼은 나중에 삭제되고 새 매개변수가 설치된 페이지 매개변수에 프린터를 저장했습니다. 인쇄 양식 페이지 매개변수는 스프레드시트 문서 속성에 저장됩니다. 인쇄 매개변수 키. 이 속성에는 테이블의 인쇄 옵션을 저장하는 값 키가 포함되어 있습니다. 이 키를 사용하여 구성하고 저장한 인쇄 설정은 다음에 테이블이 표시될 때 복원됩니다.

잘못된 페이지 매개변수로 인해 이 오류가 발생하는 것을 방지하려면 속성을 인쇄 매개변수 키이 속성을 설정하면 인쇄 매개변수가 즉시 복원되므로 인쇄 절차의 시작 부분이 아닌 마지막 부분에 설정해야 합니다.

UPD 2015년 4월 10일:속성을 설정하면 인쇄 매개변수 키스프레드 시트 문서 작성이 끝나면 방법 출력 확인인쇄 옵션을 사용합니다 기본적으로 설치됨, 맞춤형이 아닙니다. 이러한 상황을 방지하려면 속성을 설정해야 합니다. 시스템 매개변수 키스프레드시트 문서의 형성 초기에, 그리고 방법 출력 확인 Attempt-Exception-EndAttempt 구성에 배치합니다.

이 프로그램이나 해당 프로그램을 사용할 때 오류가 온갖 방식으로 발생합니다. 우리의 잘못으로 인해 발생하는 일련의 전체가 있습니다. 1C에서 컨텍스트 메서드를 출력할 때 컨텍스트의 규칙 및 메서드를 준수하지 않아 발생하는 오류를 수정하는 방법을 살펴보겠습니다.

컨텍스트 방법의 작동 원리를 이해하면 1C에서 작업할 때 실수를 피하는 데 도움이 됩니다.

어느 소프트웨어구조적으로 모듈(eng.), 부품으로 구성됩니다. 해당 위치는 그림에 표시되어 있습니다.

소프트웨어 모듈은 다음 섹션으로 구성됩니다.

컨텍스트는 프로그래밍에서 가장 중요한 개념 중 하나입니다. 1C에서 이는 모듈과 해당 섹션의 환경을 의미합니다. 즉, 각 특정 지점에서 변수, 속성, 개체, 메서드 및 이벤트에 액세스할 수 있습니다. 안에 다른 점일반적으로 상황은 이미 다릅니다.

개발자(개발자)는 포인트가 어떤 맥락적 속성을 갖고 있고 어떤 방법을 사용할 수 있는지 이해해야 합니다.

상황별 유형은 그림 8에 강조 표시되어 있습니다.


모듈의 프로시저, 변수 및 함수에 액세스하기 위한 기본 네 가지 규칙은 다음과 같습니다.

  • 일반적인 모듈식 부분에서는 모듈식 애플리케이션의 변수, 프로시저 및 기능을 내보낼 수 없습니다.
  • 모듈형 애플리케이션은 공통 모듈의 내보내기 절차 및 기능에 액세스할 수 있습니다.
  • 일반 모드의 경우. 부품은 다른 공통 모듈의 절차 및 기능 내보내기에 액세스할 수 있습니다.
  • 모듈형 응용 객체와 모듈형 형태의 경우 내보내기용 응용 모듈과 공통 모듈의 변수, 기능, 프로시저를 사용할 수 있습니다.

양식에 기본 속성이 할당되면 이 양식의 컨텍스트에는 이 기본 속성에 해당하는 속성과 메서드가 포함됩니다. 예를 들어 Nomenclature 디렉터리 요소에 대한 양식 모듈에서는 DirectoryObject.Nomenclature 개체의 메서드와 속성을 사용할 수 있습니다.

다이어그램에서 위의 규칙을 설명합니다.

화살표는 모듈식 부분 중 하나가 다른 사람이 해당 변수, 기능 및 내보내기 절차에 액세스할 수 있는 기능을 제공한다는 것을 나타냅니다. 일반 모듈에는 변수 선언이 없음을 알려드립니다.

소프트웨어 컨텍스트 규칙 및 관행을 준수하지 않음

모든 프로그래머는 컨텍스트 메서드를 호출할 때 1C 오류 알림을 경험했습니다. 다음 예를 고려하십시오.

명령 오류

디렉터리에서 쿼리를 생성할 때 "text" 매개변수에 조각이 추가되었습니다.

“WHERE” 구문에는 “I”가 추가되었지만 조건 자체는 지정되지 않았습니다.

프로그램의 응답은 다음과 같았습니다.

(MODSSession(21)): 컨텍스트 메서드 호출 시 오류(실행)
RequestResult = 요청.실행();

올바른 방법을 찾는 방법은 무엇입니까?

1C 플랫폼에서 메소드 사용 방법에 대한 힌트를 얻으려면 커서를 원하는 기능그리고 "Ctrl + F1"을 누르세요. 오류가 발생하면 함수에 전달된 매개변수와 함수의 올바른 사용을 확인해야 합니다.

오류에 대해 알아두면 유용한 점

마지막으로 1C의 오류에 대한 일반적인 분석을 수행해 보겠습니다. 그 중 하나가 기사의 주제가 되는 원인일 수 있습니다.

  • 정보 기반의 논리적 및 물리적 무결성 위반
  • 플랫폼 처리 시 사용자 오류
  • 개발자(개발자)가 실수로 입력한 코드;
  • 인적 요소 - 예를 들어 건망증;
  • 긴급 상황(전력 부족, 눈보라, 비, 우박, 허리케인, 홍수).

오류를 분석합니다.

  • 플랫폼 릴리스 및 구성을 비교합니다.
  • 읽다 전문메시지를 끝까지 읽고 잠시 생각하고 기계가 작성한 내용을 이해하십시오. 사람들은 그러한 메시지를 전체적으로 읽지 않는 경우가 많습니다. 그러나 결국에는 이를 제거하기 위한 권장 사항이 포함되어 있습니다.
  • 그것이 몇 살인지, 출현 상황을 분석하십시오.
  • 재현이 가능한가요?
  • 이전에 한 번도 본 적이 없는 재현 불가능한 버그는 일반적으로 수정되지 않습니다.
  • 오류가 다른 컴퓨터에서 반복되는지 아니면 다른 사용자에 의해 반복되는지 여부입니다. 이 경우 캐시 지우기, 권한 설정, 사용자 설정 지우기를 고려하십시오.

오류 원인에 대한 추가 정보:

  • 일부 오류는 무면허 사용으로 인해 발생합니다. 소프트웨어(창문도 마찬가지);
  • 손상된 플랫폼이 가장 일반적인 예입니다. 하나의 패치만으로 플랫폼 버전을 해킹할 수 있습니다. 그 후에는 데이터베이스(또는 라이센스)를 찾지 못할 수도 있습니다.
  • 처음 오류가 발생하면 검색 엔진에서 해결책을 찾아야 합니다. 아마도 누군가가 이미 해결책을 찾았을 수도 있습니다.
  • 구성 릴리스의 관련성을 추적하십시오(특히 규제 보고가 제출된 경우).
  • 플랫폼 릴리스의 관련성 - 각 구성마다 별도의 릴리스가 권장됩니다.
    1C에서 발생하는 모든 이벤트는 기술 로그에 기록됩니다!
  • 데이터베이스 작업을 시작하기 전에 아카이브 복사본을 만들어야 합니다!

이제 컨텍스트가 무엇인지, 이와 관련된 오류가 발생하는 이유, 1C에서 오류를 분석하는 방법 및 해결 방법을 알았습니다.

의견을 댓글로 남겨주세요.

공유하다