1c 관리형 애플리케이션 작업 콘솔. 일상적인 및 백그라운드 작업(생성, 구성, 시작) 루틴 작업 만들기

문서 관리 및 회계의 일부 작업은 정기적으로 수행해야 할 수도 있습니다. 예를 들어, 20일. 아니면 매일.

일반적으로 회사는 이러한 작업을 수행하기 위한 규칙(작업을 누가, 언제, 어떻게 완료해야 하는지, 누가 작업을 제어해야 하는지)을 만들려고 합니다.

이러한 작업을 규제라고 합니다. 즉, 규정에 따라 수행됩니다.

IT에서는 모니터링이 규제된 방식으로 수행되는 경우가 많습니다.

이는 시스템 관리자에게 잘 알려져 있습니다. 특별 프로그램, 주기적으로 서버 및 네트워크 인프라의 성능을 확인하고 SMS로 보고하거나 이메일로관리자.

웹마스터에게도 비슷한 일이 있습니다. 낮 동안 사이트의 가용성을 확인하는 것입니다.

1C에서는 일정에 따라 자동으로 수행되어야 하는 모니터링 작업 및 기타 정기 작업이 1C 예약 작업 메커니즘을 사용하여 수행됩니다.

오늘 그들에 대해 이야기합시다.

예약된 작업 1C

예약된 작업 1C는 수행하는 대로 일정에 따라 수행할 수 있는 작업입니다.

구성기의 1C 루틴 작업 자체는 설정을 지정하고 일정을 설정하는 방법입니다. 그런데 나중에 1C Enterprise 모드에서 일정을 동적으로 변경할 수 있습니다.

백그라운드 작업은 1C 언어의 프로그램 텍스트에서 임의로 생성할 수 있습니다. 규제 업무 1C – 서버에서의 병렬 컴퓨팅용.

루틴 1C 작업 실행을 일시적으로 비활성화할 수 있습니다.

1C 루틴 작업 추가

루틴 1C 작업은 일반/루틴 1C 작업 분기의 구성에 있습니다. 새로운 1C 규제 작업을 추가하고 이름을 표시해 보겠습니다.

1C 루틴 작업의 속성에는 에서와 마찬가지로 메소드 이름이 표시됩니다. 기능은 속성에서 서버 확인란이 선택된 공통 모듈에 위치합니다. 즉, 모듈을 미리 추가해야 합니다.

1C 예약된 작업 속성인 작업 이름은 작업 관리 도구에 작업이 표시되는 이름을 결정합니다.

1C 루틴 작업 속성인 키를 사용하면 여러 가지 1C 루틴 작업을 그룹화할 수 있습니다. 동일한 키 값을 가진 작업은 한 번에 하나만 시작할 수 있습니다. 값 자체는 임의적일 수 있습니다. 빈 값은 제어 중에 고려되지 않습니다(즉, 비어 있는 것으로 간주됩니다).

1C 루틴 작업의 속성(사전 정의됨)은 1C Enterprise가 시작될 때 이러한 작업이 구성자에 지정된 일정에 따라 단일 복사본으로 생성되도록 결정합니다. 미리 정의되지 않은 작업은 일정 시간에 프로그래밍 방식으로 나타납니다.

안에 일반적인 구성예를 들어 회계 버전 2.0에서는 구성 업데이트 및 총계 재계산과 같은 1C 일상적인 작업이 사전 정의되어 있지만 데이터 교환 또는 지연 이동과 같은 작업은 사전 정의되지 않습니다.

사용법 – 작업을 활성화합니다(즉, 사용법 확인란을 선택한 경우에만 실행됩니다).

비정상 종료 시 재시도 - 추측할 수 있듯이 처음에 성공적으로 완료할 수 없는 경우 작업을 다시 시작하는 것을 의미합니다. 비정상 종료 후 다시 시작해야 하는 횟수와 시간이 표시됩니다.

1C 일상 작업 관리 및 모니터링

일상적인 1C 작업을 관리하기 위해 특별한 표준 처리 작업 콘솔이 있습니다. 에서도 찾을 수 있습니다.

이 처리는 종종 구성에 포함되지 않지만 ITS 디스크와 같이 별도로 배포되는 소위 범용 외부 표준 1C 처리에 속합니다.

작업 콘솔 처리를 사용하면 다음을 수행할 수 있습니다.

  • 루틴 1C 작업 실행 활성화/비활성화
  • 예약된 1C 작업(및 기타 매개변수)의 일정 할당/변경
  • 루틴 1C 작업을 대신 수행할 1C 사용자를 지정합니다.
  • 어떤 작업이 언제 완료되었는지, 어떤 결과로 1C 작업 완료 시 오류가 발생했는지 확인하세요.
  • 작업을 수행합니다.

데이터베이스 사본 및 1C 일상 작업

서버 1C를 사용하는 경우 다음 상황이 발생합니다.

  • 자신의 목적(예: 프로그래밍)을 위해 작업 데이터베이스의 복사본이 만들어집니다.
  • 데이터베이스 사본에서의 작업, 테스트 등
  • 이러한 테스트 데이터베이스에서 일상적인 1C 작업을 끄는 것을 잊었습니다.

1C 일상 작업은 정보 기반과 관련된 작업만 수행하지만 그 안에는 아무것도 없습니다.

그러나 1C 일상적인 작업에서는 파일, 데이터를 다른 데이터베이스에 저장하고 교환을 수행하고 이메일을 보낼 수 있는 경우가 많습니다.

이 경우 작업 데이터베이스에서 일상적인 1C 작업을 수행한 결과와 복사본 사이에 흥미로운 혼합이 나타날 수 있습니다.

에서 작업 데이터베이스 복사본에 대한 일상적인 1C 작업을 비활성화해야 합니다.

1C 규제 업무 이행 및 비 이행

일상적인 1C 작업을 생성할 때 다음 사항을 기억해야 합니다.

  • 작업은 스스로 수행되므로 모니터링이 필요합니다.
  • 작업은 서버의 모듈에서 실행됩니다.
  • 작업은 다른 권한을 가진 다른 Windows 사용자로 수행됩니다.

먼저 작업이 수행되고 있으며 루틴 1C 작업으로 완료될 수 있는지 확인해야 합니다.

둘째, 서버 모듈은 클라이언트에서 사용할 수 있는 많은 것들이 사용할 수 없음을 의미합니다. 예를 들어, 때때로 모든 문서가 서버에만 게시될 수 있는 것은 아닙니다. 왜냐하면 해당 알고리즘은 사용자가 게시를 수동으로 시작하고 서버 이외의 기능을 사용할 수 있도록 제공할 수 있기 때문입니다.
경고("안녕하세요!")

셋째, 작업이 1C 데이터베이스 외부의 항목을 다루는 경우 작업이 실행되는 Windows 사용자의 권리가 중요해집니다.

세 번째 요점은 개발할 때 특히 중요합니다. 모듈이 서버에서 실행될 수 없으면 작업이 전혀 실행되지 않습니다. 확인하려면 작업을 한 번 이상 실행하고 작업 콘솔 처리에서 "작업 완료" 결과를 확인해야 합니다.

아마도 1C 8.3 또는 8.2의 단일 심각한 구성은 일상적인 및 백그라운드 작업을 사용하지 않고는 할 수 없습니다. 사용자나 프로그래머의 개입 없이 명확하게 정의된 일정에 따라 실행되므로 매우 편리합니다.

예를 들어, 하루에 한 번 다른 프로그램과 데이터를 교환해야 합니다. 일상적인 작업과 백그라운드 작업을 사용하여 1C는 다음과 같이 이러한 작업을 독립적으로 수행할 수 있습니다. 근무 외 시간. 이 방법은 사용자 경험에 어떤 영향도 미치지 않으며 시간을 절약하는 데 도움이 됩니다.

먼저, 그 의미와 차이점이 무엇인지 알아 봅시다.

  • 예약된 작업미리 구성된 일정에 따라 특정 작업을 시작할 수 있습니다.
  • 백그라운드 작업수행할 작업이 포함된 개체입니다.

우리 회사가 무언가를 판매하고 가격이 있는 자체 웹사이트를 가지고 있다고 가정해 보겠습니다. 관련성을 유지하기 위해 하루에 한 번 업로드하려고 합니다.

구성을 열고 예약된 작업을 추가합니다.

속성 설정

해당 속성에 입력해야 하는 가장 중요한 매개변수를 살펴보겠습니다.

  • 현장에서 " 메소드 이름» 직접 실행될 특정 일반 모듈의 절차를 선택합니다. 이는 당사 웹사이트에 가격을 업로드하는 모든 단계를 나타냅니다. 실행은 서버에서 수행된다는 점에 유의하세요. 일상적인 작업은 사용자 참여 없이 수행되므로 이는 논리적입니다.
  • 예약된 작업은 필요에 따라 비활성화하거나 활성화할 수 있습니다. 매번 일정을 편집할 필요가 없습니다. 이렇게 하려면 속성 팔레트에서 " 플래그를 설정하거나 지웁니다. 용법».
  • 또 다른 중요한 점은 이 일상적인 작업을 다음과 같이 할지 여부를 설정하는 것입니다. 미리 결정된, 또는 아닙니다. 미리 정의된 예약된 작업이 자동으로 시작됩니다. 이 기능이 설치되지 않은 경우 프로그래밍 방식으로 실행하거나 ITS와 함께 "작업 콘솔" 처리를 사용해야 합니다.
  • 지정할 수도 있습니다. 반복 횟수 및 간격비정상 종료의 경우. 비정상 종료란 오류로 인해 작업이 완료되지 않은 상황을 말합니다.

일정 설정

마지막 단계는 속성 팔레트의 해당 하이퍼링크를 사용하여 사이트 업로드 일정을 설정하는 것입니다.

1C 8.3에서 일반적인 일정 설정을 볼 수 있습니다. 여기에는 복잡한 것이 없습니다. 이 예에서는 매일 아침 5시부터 7시까지 사이트에 가격을 업로드하도록 설정했습니다. 예정된 작업을 7시 이전에 완료할 시간이 없는 경우 바로 다음날 완료됩니다.

예약된 작업 차단

표준 유틸리티 "1C 엔터프라이즈 서버 관리"를 실행하고 루틴 작업을 생성한 정보베이스의 속성을 엽니다(1C 클라이언트-서버 버전의 경우).

열리는 창에서(정보 보안에 액세스하기 위해 로그인 및 비밀번호를 입력한 후) "일상적인 작업 차단이 활성화되었습니다" 확인란이 선택되어 있지 않은지 확인하십시오. 작업이 실행되지 않는 상황이 발생하면 먼저 이 설정을 확인하세요.

같은 방식으로 1C 8.3에서는 일상적인 작업을 완전히 비활성화할 수 있습니다. 특정 백그라운드 작업을 비활성화하려면 최신 릴리스에 내장된 "백그라운드 작업 콘솔" 처리를 사용할 수 있습니다.

파일 모드의 백그라운드 및 예약된 작업

이 모드에서는 이러한 작업을 설정하고 시작하는 것이 구성하기가 훨씬 더 어렵습니다. 대부분의 경우 추가 계정이 생성되며 해당 세션은 항상 열려 있습니다.

예약된 작업 활성화 이 경우 RunTaskProcessing() 메소드를 사용할 때 수행됩니다.

다음 구성을 사용할 수도 있습니다.

프로시저 이름으로는 실행될 클라이언트 프로시저의 이름을 지정해야 합니다. 간격은 실행이 몇 초 후에 수행되는지 보여줍니다. "일회성" 매개변수는 필요하지 않습니다. 이 절차를 한 번 수행할지 여러 번 수행할지 여부를 반영합니다.

백그라운드 작업의 오류 추적

백그라운드 작업의 진행 상황과 가용성을 확인하세요. 가능한 오류로그북에서 확인할 수 있습니다. 필터에서 "백그라운드 작업" 애플리케이션을 선택하고 필요한 경우 관심 있는 중요도를 선택합니다(예: "오류"만 선택).

로그에는 선택 사항과 일치하는 모든 항목이 오류 이유를 이해하는 데 도움이 되는 설명과 함께 표시됩니다.

아마도 모든 1C 8.3 프로그래머는 조만간 일정에 따라 특정 작업의 실행을 설정해야 할 것입니다. 아래는 내가 줄게 상세 설명이러한 메커니즘 중 하나가 되기를 바랍니다. 유용한 정보초보 1C 프로그래머를 위한 것입니다. 이는 사람의 작업이 필요하지 않고 일상적인 작업이 한 번 구성되어 일정에 따라 작동하므로 매우 편리합니다.

아래 예를 통해 자세한 지침을 확인할 수 있습니다.

1C의 일상적인 작업과 백그라운드 작업이란 무엇입니까?

  • 예약 된 일들주어진 일정에 따라 특정 작업을 수행하도록 설계된 특수 1C Enterprise 8.3 메커니즘입니다.
  • 백그라운드 작업-사용자 또는 1C 8.2 프로그래머의 참여없이 의도한 작업을 직접 수행하는 일상적인 작업에 의해 생성된 개체입니다.

예약된 작업과 백그라운드 작업의 메커니즘은 DBMS 기능 덕분에 클라이언트-서버 모드(SQL)에서 작동합니다. 파일 데이터베이스가 있는 경우 작업을 구성할 수도 있지만 원칙은 약간 다릅니다.

1C 클라이언트-서버 모드에서 백그라운드 작업 설정

먼저, 일상적인 작업인 새로운 메타데이터 개체를 생성해 보겠습니다. 내 작업을 "환율 로드"라고 부르겠습니다. 이 구성 개체의 속성 팔레트를 살펴보겠습니다.

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

  • 메소드 이름— 주어진 일정에 따라 백그라운드 작업에서 실행될 프로시저의 경로입니다. 프로시저는 공통 모듈에 있어야 합니다. 표준을 사용하지 말고 직접 만드는 것이 좋습니다. 백그라운드 작업이 서버에서 실행된다는 점을 잊지 마세요!
  • 용법— 일상적인 작업을 사용한다는 신호입니다.
  • 미리 결정된— 루틴 작업이 미리 결정되었는지 여부를 나타냅니다. 데이터베이스에 배치된 후 루틴 태스크가 즉시 작동하도록 하려면 이 플래그를 지정하십시오. 그렇지 않으면 작업 콘솔 처리를 사용하거나 작업이 프로그래밍 방식으로 실행되도록 해야 합니다.
  • 작업이 비정상적으로 종료된 경우 재시도 횟수— 오류가 발생하여 실행된 경우 백그라운드 작업이 다시 시작된 횟수입니다.
  • 작업이 비정상적으로 종료되는 경우 재시도 간격— 오류가 발생하여 완료된 경우 백그라운드 작업이 다시 시작되는 빈도입니다.

그리고 가장 흥미로운 설정은 일정:

여기서는 "메소드 이름" 필드에 지정된 절차의 시작 간격을 구성합니다. 내가 구성했다고 가정 해 봅시다

주목! DBMS 수준에서 루틴 및 백그라운드 작업 실행 차단을 비활성화하는 것을 잊지 마세요!

이는 클라이언트-서버 버전의 관리 유틸리티에서 수행하거나 새 데이터베이스를 생성할 때 수행할 수 있습니다.

1C 파일 모드에서 일상적인 작업 설정

파일 모드에서는 이러한 작업을 설정하는 것이 다소 어렵습니다. 이러한 작업을 위해서는 1C 프로그램의 별도 세션을 시작해야 합니다. 이 문제는 세션이 항상 실행되는 "기술적" 사용자를 생성하여 해결되는 경우가 많습니다.

파일 모드에서는 "RunTaskProcessing()" 메서드가 시작될 때 루틴 작업이 초기화됩니다.

특정 사용자의 경우 다른 방법을 사용하여 실행되도록 이 방법을 구성할 수 있습니다.

ConnectWaitHandler( <ИмяПроцедуры>, <Интервал>, <Однократно>).

  • 프로시저 이름— 대기 핸들러로 연결된 프로시저의 이름입니다. 관리되는 애플리케이션 모듈(일반 애플리케이션 모듈) 또는 글로벌 공유 모듈의 내보낸 프로시저의 이름입니다. 프로시저가 클라이언트에 있어야 합니다..
  • 간격— 작업 실행 간격(초)입니다.
  • 한 번- 작업을 한 번 완료하는 방법, 한 번 수행하지 않는 방법.

ConnectWaitHandler, 3600 ) ;

1C 구성기에서 일상적인 작업을 설정하는 방법을 보여주는 2분짜리 비디오:

1C에서 작업할 때 문서 게시 또는 웹 사이트에서 1C로 데이터 로드와 같은 특정 작업을 수행하기 위해 일정에 따라 시작하거나 구성해야 하는 일상적인 작업이 많이 있습니다.

나는 최근에 다음과 같은 기사를 게시했습니다: 이제 이것을 자동화할 시간입니다:

루틴 및 백그라운드 작업

작업 엔진은 일정에 따라 또는 비동기적으로 모든 애플리케이션이나 기능을 수행하도록 설계되었습니다.

작업 메커니즘은 다음 문제를 해결합니다.

  • 시스템 구성 단계에서 규제 절차를 정의하는 능력
  • 일정에 따라 지정된 작업을 실행합니다.
  • 주어진 프로시저나 함수를 비동기적으로 호출하는 것, 즉 완료를 기다리지 않고;
  • 특정 작업의 진행 상황을 추적하고 완료 상태(성공 여부를 나타내는 값)를 가져옵니다.
  • 현재 작업 목록을 얻습니다.
  • 하나 이상의 작업이 완료될 때까지 기다리는 기능
  • 작업관리(취소, 실행차단 등의 가능성)

작업 메커니즘은 다음 구성 요소로 구성됩니다.

  • 일상적인 작업의 메타데이터
  • 정규 업무
  • 백그라운드 작업
  • 작업 스케줄러.

백그라운드 작업은 애플리케이션 작업을 비동기적으로 수행하도록 설계되었습니다. 백그라운드 작업은 내장된 언어를 사용하여 구현됩니다.

예약된 작업은 일정에 따라 애플리케이션 작업을 수행하도록 설계되었습니다. 일상적인 작업은 정보 베이스에 저장되며 구성에 정의된 메타데이터를 기반으로 생성됩니다. 규제 업무의 메타데이터에는 이름, 방법, 용도 등과 같은 정보가 포함됩니다.

루틴 작업에는 루틴 작업과 관련된 메서드를 실행해야 하는 시간을 결정하는 일정이 있습니다. 일정은 일반적으로 정보 베이스에 지정되지만 구성 단계에서 지정할 수도 있습니다(예: 사전 정의된 일상 작업의 경우).

작업 스케줄러는 일상적인 작업 실행을 예약하는 데 사용됩니다. 예약된 각 작업에 대해 스케줄러는 주기적으로 현재 날짜일상적인 작업 일정의 시간. 일치하는 경우 스케줄러는 해당 작업을 실행에 할당합니다. 이를 위해 예약된 작업에 대해 스케줄러는 실제 처리를 수행하는 백그라운드 작업을 생성합니다.

설명은 이 정도로 충분하다고 생각합니다. 이제 구현을 시작해 보겠습니다.

루틴 작업 만들기

메소드 이름– 주어진 일정에 따라 백그라운드 작업에서 실행될 프로시저의 경로입니다. 프로시저는 공통 모듈에 있어야 합니다. 표준 공통 모듈을 사용하지 않고 직접 만드는 것이 좋습니다. 백그라운드 작업이 서버에서 실행된다는 점을 잊지 마세요!

용법– 일상적인 작업을 사용한다는 신호입니다.

미리 결정된– 루틴 작업이 미리 결정되었는지 여부를 나타냅니다.

루틴 작업이 데이터베이스에 배치된 후 즉시 작동하도록 하려면 속성을 지정하십시오. 미리 결정된. 그렇지 않으면 "작업 콘솔" 처리를 사용하거나 작업을 프로그래밍 방식으로 실행해야 합니다.

작업이 비정상적으로 종료된 경우 재시도 횟수– 오류가 발생하여 실행된 경우 백그라운드 작업이 다시 시작된 횟수입니다.

작업이 비정상적으로 종료되는 경우 재시도 간격– 오류가 발생하여 완료된 경우 백그라운드 작업이 다시 시작되는 빈도입니다.

일정 설정

일정작업 완료:

매 시간, 딱 하루만RepeatDays 기간 = 0, RepeatDays 기간 = 3600
매일 하루에 한 번씩RepeatDays 기간 = 1, RepeatDays 기간 = 0
어느 날, 단 한번기간반복일 = 0
격일로 하루에 한 번씩기간반복일 = 2
매일 01:00부터 07:00까지 매 시간마다PeriodRepeatDays = 1RepeatPeriodDuringDay = 3600StartTime = 01.00

종료 시간 = 07.00

매주 토요일, 일요일 09:00RepeatDays 기간 = 1WeekDays = 6, 7StartTime = 09.00
일주일 동안 매일, 일주일 건너뛰기기간반복일 = 1주기주 = 2
01.00에 한 번시작 시간 = 01.00
매월 마지막 날 9시.PeriodRepeatDays = 1DayInMonth = -1StartTime = 09.00
매월 5일 9시PeriodRepeatDays = 1DayInMonth = 5StartTime = 09.00
매월 둘째 수요일 9시기간반복일 = 1일주월 = 2일주 = 3

시작 시간 = 09.00

파일 및 클라이언트-서버 변형에서 백그라운드 작업을 실행하는 기능

파일 버전과 클라이언트-서버 버전에서 백그라운드 작업을 실행하는 메커니즘이 다릅니다.

파일 버전에서백그라운드 작업을 수행할 전용 클라이언트 프로세스를 만들어야 합니다. 이를 위해 클라이언트 프로세스는 전역 컨텍스트 함수 ExecuteJobProcessing을 주기적으로 호출해야 합니다. 하나의 클라이언트 프로세스만 정보 기반백그라운드 작업을 처리해야 하며 그에 따라 이 함수를 호출해야 합니다. 백그라운드 작업을 처리하기 위한 클라이언트 프로세스가 생성되지 않은 경우 프로그래밍 방식으로 작업 엔진에 액세스하면 "작업 관리자가 활성화되지 않았습니다."라는 오류가 표시됩니다. 다른 기능을 위해 백그라운드 작업을 처리하는 클라이언트 프로세스를 사용하는 것은 권장되지 않습니다.

백그라운드 작업을 처리하는 클라이언트 프로세스가 시작되면 다른 클라이언트 프로세스가 프로그래밍 방식으로 백그라운드 작업 엔진에 액세스할 수 있습니다. 백그라운드 작업을 실행하고 관리할 수 있습니다.

클라이언트-서버 버전백그라운드 작업을 실행하기 위해 클러스터 관리자에 물리적으로 위치한 작업 스케줄러가 사용됩니다. 대기 중인 모든 백그라운드 작업에 대해 스케줄러는 로드가 가장 적은 작업자 프로세스를 가져와 이를 사용하여 해당 백그라운드 작업을 실행합니다. 작업자 프로세스는 작업을 실행하고 스케줄러에게 실행 결과를 알립니다.

클라이언트-서버 버전에서는 일상적인 작업의 실행을 차단할 수 있습니다. 다음과 같은 경우 루틴 작업 실행이 차단됩니다.

  • 일상적인 작업을 명시적으로 차단하는 기능이 정보 베이스에 설치되었습니다. 잠금은 클러스터 콘솔을 통해 설정할 수 있습니다.
  • 정보베이스에 연결 블록이 있습니다. 잠금은 클러스터 콘솔을 통해 설정할 수 있습니다.
  • True 매개 변수가 있는 SetExclusiveMode() 메서드가 내장 언어에서 호출되었습니다.
  • 일부 다른 경우(예: 데이터베이스 구성을 업데이트하는 경우)

예약된 작업의 시작 및 보기 처리여기에서 다운로드할 수 있습니다.