활성 사용자 비활성화 1 8.3. 사용자 세션 종료, 작동 방식, 수행 작업

1C 플랫폼을 기반으로 한 소프트웨어 제품에는 전문화되고 적용되는 많은 기능, 즉 관리 기능이 있습니다. 핵심 기능(물론 솔루션 목적에 따라 다름)은 상품 구매, 판매, 창고, 운영 및 관리 회계, 회계, CRM, 복잡한 솔루션의 경우 등의 영역과 모두 관련됩니다.

당연히 자동화되더라도 한 직원이 조직의 모든 비즈니스 프로세스를 제어할 수는 없습니다. 따라서 1C 시스템 관리자는 특정 시스템 기능을 사용하는 수십, 수백 명의 사용자를 처리해야 합니다. 그들 각자는 동시에 필요한 모든 문서, 기능 및 보고서만 마음대로 사용할 수 있도록 특별한 권한을 설정해야 합니다. 여기서는 특히 사용자 액세스 권한 설정을 포함하는 1C 솔루션의 적용 또는 관리 기능을 고려하기 시작합니다.

사용자 설정 1C 8.3

1C 8.3에서는 구성 구조의 특수 개체인 "역할"이 사용자 권한을 담당합니다. 대부분의 일반적인 구성에는 이미 특정 표준 역할 목록이 생성되어 있습니다. 계정을 생성하고 접근 권한을 설정할 때 이를 사용할 수 있습니다. 표준 세트가 귀하에게 적합하지 않은 경우 이를 변경하거나 자신의 역할을 추가할 수 있습니다.

각 사용자에게는 특정 권한을 담당하는 여러 역할이 할당될 수 있습니다. 1C 사용자 권한을 구성하려면 현재 어떤 역할을 가지고 있는지 확인해야 합니다. 이 정보는 두 가지 방법으로 얻을 수 있습니다.

  • 구성자를 통해. 이 옵션은 모든 구성에 적합합니다.
  • 일부 구성에서는 "엔터프라이즈" 모드를 사용합니다.

모든 권한이 있는 사용자 이름으로 1C 데이터베이스 구성기를 실행하고 "관리" -> "사용자" 메뉴를 엽니다. 특정 사용자의 권리를 찾으려면 해당 사용자의 성이 있는 줄을 두 번 클릭하고 "기타" 탭으로 이동해야 합니다. 사용자가 사용할 수 있는 역할이 확인됩니다. 특정 역할을 추가하거나 제거하려면 확인란을 변경하고 확인을 클릭하세요.



분석 후 표준 역할이 권한 구분 요구 사항을 완전히 충족할 수 없다는 것을 알게 되면 표준 역할을 변경해야 합니다. 이렇게 하려면 구성 트리에서 원하는 역할을 찾아 두 번 클릭합니다. 열리는 창의 왼쪽에는 모든 구성 개체 목록이 표시됩니다. 오른쪽의 확인란은 왼쪽에서 선택한 개체와 관련하여 이 역할에 할당된 권한인 작업을 나타냅니다.



상자를 선택하거나 선택 취소하여 구성 개체를 사용하여 특정 작업에 대한 권한을 부여하거나 제거할 수 있을 뿐만 아니라 또한 1C 플랫폼에는 레코드 수준인 RLS에서 사용자 권한을 제한하는 매우 편리한 메커니즘이 내장되어 있습니다. 조건을 설정할 수 있으며, 충족된 경우에만 사용자에게 정보베이스 데이터가 표시됩니다. RLS를 사용하면 예를 들어 각 특정 창고 직원이 자신의 창고에 대한 정보만 볼 수 있도록 1C 8.3의 사용자 권한을 구성할 수 있습니다.

표준 역할을 변경하지 않고 사용자에게 개체에 대한 권한을 추가하는 또 다른 방법은 새 역할을 만드는 것입니다. 이렇게 하려면 "역할" 구성 분기에서 "추가" 버튼을 클릭하고 새 개체의 이름을 지정합니다. 열리는 창의 왼쪽에서 필요한 구성 개체를 찾고 오른쪽에서 필요한 권한과 제한 사항을 설정합니다. 새 역할을 저장한 후 구성을 업데이트하고 사용자 목록으로 이동하여 특정 사용자에게 새 역할을 추가해야 합니다.

1C 정보 기반 관리자의 책임은 사용자 생성 및 권한 할당에만 국한되지 않습니다. 직원은 변할 수 있고 책임은 재분배될 수 있으며 관리자는 이러한 모든 변화에 신속하게 대응해야 합니다. 1C에서 특정 기능을 수행한 직원이 종료한 경우 이전 동료가 계정을 사용하지 않도록 1C 사용자를 비활성화해야 합니다. "관리" 메뉴의 구성 프로그램에서 열 수 있는 사용자 목록이 이에 도움이 될 것입니다.


1C 사용자 설정을 열면 선택 목록에서 직원 이름을 찾고 인증하는 확인란을 선택 취소해야 합니다. 이렇게 하면 퇴사한 직원의 성으로는 로그인을 금지하고 직원이 복귀할 경우를 대비해 접근 권한 설정을 저장하게 됩니다. 이러한 설정은 모든 권한이 새 직원에게 이전되는 경우에도 유용합니다. 역할을 다시 구성할 필요가 없습니다.

또한 시스템의 다양한 문서에는 해당 사용자에 대한 링크가 포함되어 있으므로 사용자를 완전히 삭제하는 것은 권장되지 않습니다. 항목을 삭제하면 링크가 끊어지고 특정 문서를 만든 사람이 누구인지 혼동될 수 있어 혼란이 생길 ​​수 있습니다. 1C 사용자가 시스템에 로그인하는 것을 비활성화하고 경우에 따라 권한(역할)을 완전히 제거하는 것이 훨씬 더 효과적입니다. 또한 일부 회사에서는 "이름" 필드에 "*IvanovaTP"와 같은 특정 아이콘을 사용하여 비활성 사용자를 표시하는 관행이 있습니다.

경우에 따라 1C 관리자는 긴급하게 1C 데이터베이스에서 사용자를 "제거"해야 할 수도 있습니다. 이 작업은 두 가지 방법으로 수행할 수 있습니다.

  1. 관리 권한이 있는 사용자의 "엔터프라이즈" 모드를 통해. 모든 구성에서 지원되지는 않습니다.
  2. 1C 서버 클러스터의 콘솔을 사용하는 애플리케이션 서버를 통해.

첫 번째 옵션을 사용하려면 "NSI 및 관리"로 이동하여 "유지 관리"를 열고 "활성 사용자" 양식을 시작해야 합니다. 상단에 활성 사용자 목록과 "종료" 버튼이 표시됩니다. 클릭하면 사용자 세션이 강제로 종료됩니다. 또한 이 목록에서는 정지된 세션을 추적하는 데 도움이 되는 컴퓨터 이름과 시작 시간을 볼 수 있습니다.


활성 사용자를 비활성화하는 두 번째 옵션은 대부분의 경우 클러스터 콘솔이 응용 프로그램 서버에서 호스팅되므로 더 많은 주의와 책임이 필요합니다. 이 서버 제어판에 액세스할 수 있는 경우 다음과 같이 사용자 세션을 종료할 수 있습니다.

  1. 클러스터 콘솔을 엽니다.
  2. 우리는 정보 기반 목록으로 이동하여 필요한 정보 기반 세션을 엽니다.
  3. 목록에서 필요한 사용자를 찾으십시오.
  4. 마우스 오른쪽 버튼을 클릭하여 상황에 맞는 메뉴를 호출하면 "삭제" 기능이 있습니다.


1C 플랫폼에는 개발자가 권한 설정 및 사용자 관리를 위한 편리한 메커니즘을 포함했습니다. 따라서 설명된 기능은 독립적으로 작성된 구성을 포함하여 모든 구성의 소유자가 사용할 수 있습니다. 또 다른 장점은 1C 시스템에 대한 심층적인 지식이 필요하지 않다는 것입니다. 책임감 있고 세심한 관리자라면 누구나 이러한 작업에 대처할 수 있습니다.

1. 1C 8 파일 버전에서 사용자를 비활성화합니다.

파일 버전에서 사용자의 연결을 끊기 위해 한 줄로 *.bat 파일을 만들었습니다.

순 세션 /삭제 /y

데이터베이스가 있는 컴퓨터에서 열려 있는 모든 공유 파일을 비활성화합니다.
다음으로 지정된 시간에 이 파일을 실행하는 작업(Windows 작업 스케줄러)을 만들었습니다.
컴퓨터에 열려 있는 세션은 어떻습니까? 다음 줄을 사용하여 새 *.bat 파일을 만들어 제거했습니다.

태스크킬 /IM 1cv8.exe /f
사실, 현재 컴퓨터에서 실행 중인 1C를 모두 비활성화하지만 보관이 밤에 수행되고 데이터베이스에서 작업하는 사람이 아무도 없었기 때문에 나에게는 그렇게 무섭지 않았습니다. 이 배치 파일을 Windows 스케줄러에 추가할 수도 있습니다.

2. 클라이언트-서버 데이터베이스에서 사용자를 비활성화합니다.

파일 데이터베이스의 경우와 마찬가지로 *.bat 파일을 사용했습니다.
두 개의 *.bat 파일을 만들었습니다. 첫 번째 파일은 1C Enterprise 서버를 비활성화하고 두 번째 파일은 매우 간단하게 켭니다.

net stop "1C:Enterprise 8.2 서버 에이전트"

net start "1C:Enterprise 8.2 서버 에이전트"

모든 고정 사용자의 연결을 끊을 수 있도록 15분의 시간 차이로 Windows 스케줄러에 두 가지 새로운 작업을 추가했습니다. 이러한 작업은 1C Enterprise 서버 시작 및 1C Enterprise 서버 중지와 유사합니다.

3. 1C에서 사용자 연결을 끊는 프로그래밍 방식

매일 22시 30분에 아카이빙을 수행하는 작업이었습니다.
이 방법에서는 신경 쓰지 않고 "NeClose1C"라는 새 역할을 만들었습니다.
일반 애플리케이션 모듈에 새 프로시저를 만들었습니다.

절차 ShutdownUsers() 내보내기 If NOT RoleAvailable("Do Not Close 1C") Then If Hour(mop_PerformingOperationsOnServer.CurrentDateOnServer()) >= 22 Then // 서버에서 시간 가져오기 StopSystemOperation(False);

endIf;

endIf;

절차 종료

If NOT RoleAvailable("Do Not Close 1C") Then If Hour(mop_PerformingOperationsOnServer.CurrentDateOnServer()) >= 22 Then // 서버에서 시간 가져오기 StopSystemOperation(False);
endIf;
endIf;

ConnectWaitHandler("ShutdownUsers", "600");

서버의 현재 날짜 함수는 다음과 같습니다.

함수 CurrentDateOnServer() 내보내기

현재 날짜()를 반환합니다.

EndFunction
이렇게 하면 서버에서 날짜를 얻을 수 있습니다. 공통 모듈의 속성에서 "서버" 확인란이 선택되어 있으면 해당 항목만 선택했습니다.

현재 코드는 2시간 동안 사용자의 접속을 차단하지만 일반적으로 자정 이후에는 아무도 데이터베이스에 로그인하지 않는 것으로 나타났습니다.

  • 이 글이 누군가에게 도움이 되었다면 저는 매우 기쁠 것입니다.

1C:Enterprise 서버에서 세션 연결을 강제로 끊어 사용자 연결을 끊는 옵션입니다. 1C:Enterprise 클라이언트-서버 데이터베이스에만 사용할 수 있습니다.

중요한:이 사용자를 1C:Enterprise 데이터베이스 사용자 및 "중앙 서버 관리자" 사용자와 혼동하지 마십시오.

1C:Enterprise 서버 콘솔에서 클러스터 관리자는 다음 경로에 있습니다. "콘솔 루트" - "1C:Enterprise 8.3 중앙 서버" - "(*)컴퓨터 이름" - "클러스터" - "로컬 클러스터" - "관리자".

"클러스터 관리자 이름:"
사용자 이름은 "클러스터 관리자"입니다.

"클러스터 관리자 비밀번호:"
사용자 비밀번호는 "클러스터 관리자"입니다.

"비표준 서버 에이전트 포트를 사용하고 있습니다"
"Agent" 서버에 대한 연결 포트가 표준 포트와 다른 경우 이 플래그를 설정합니다.

"포트:"
1C:Enterprise 서버 에이전트에 대한 연결 포트입니다. 기본값은 1540입니다.

서버 에이전트 포트를 결정하려면 1C 서버로 이동하여 드롭다운 메뉴에서 컴퓨터 이름을 마우스 오른쪽 버튼으로 클릭하고 "속성" - “1C:엔터프라이즈 중앙 서버 매개변수” - "IP 포트:".

  • “사용자의 정상적인 종료 원인”

표준 구성에 내장된 사용자 종료 메커니즘을 호출하여 사용자 연결을 끊는 옵션입니다. 이 메커니즘은 "정보베이스에 대한 연결 차단" 절차의 사용을 기반으로 합니다.

실행 알고리즘은 다음과 같습니다.

  • 사용자 종료를 트리거합니다.
  • 작업 시작(보관, 테스트, 수정 등)
  • 사용자의 작업을 허용하기 시작합니다.

"순간:"
사용자가 작업을 완료하는 순간.

  • "작업을 수행하기 전에 시스템을 종료하세요". 각 작업을 실행하기 전에 사용자 종료 절차가 시작됩니다.
  • "구성을 업데이트해야 하는 경우에만 종료하세요.". 주변 베이스에 대한 교환을 수행하도록 작업이 구성되고 중앙 노드에서 변경된 구성이 수신되면 사용자 종료 절차가 시작됩니다. 다른 경우에는 완료 메커니즘이 작동하지 않습니다.

사용자를 강제 종료해야 하는 경우는 주로 다음과 같은 경우에 발생합니다.

  • 정보 기반 업데이트
  • 구성에 새 메타데이터 개체를 추가합니다.
  • 서버에 대한 예방 및 수리 작업 수행
  • 정지된 사용자 세션으로 인해 애플리케이션이 다시 시작되지 않습니다.

이 기사에서는 사용자 세션을 종료하는 방법, 관리자가 이 작업을 완료하기 위해 보유하고 있는 도구, 파일 버전에서 제공하는 종료 옵션 및 1C의 클라이언트-서버 버전에서 제공하는 종료 옵션에 대해 설명합니다. .

세션을 강제로 종료하면 데이터가 손실될 수 있다는 점을 기억하는 것이 중요합니다. 따라서 불쾌한 상황을 방지하려면 연결 끊김에 대해 사용자에게 미리 경고하는 것이 좋습니다.

구성기에서 세션 닫기

데이터베이스 구조가 변경되면 동적 구성 업데이트를 더 이상 사용할 수 없습니다. 그리고 화면에 정보 창이 나타납니다(그림 1).

이 경우 일련의 작업은 분명합니다.

  1. "세션 종료 및 반복" 버튼을 클릭해야 합니다.
  2. 데이터베이스 재구성 기간을 기다립니다.
  3. "확인"을 클릭하세요.

프로그램 코드를 변경해도 사용자가 종료할 필요는 없지만 각 특정 컴퓨터에서 응용 프로그램을 다시 시작하지 않으면 해당 장치에서 작동하지 않습니다.

프로그램에서 직접 세션 종료

대부분의 표준 1C 제품 버전 8에는 사용자의 작업을 원격으로 쉽게 종료하고 관리자에게 데이터베이스에 대한 독점 액세스를 제공할 수 있는 메커니즘이 있습니다. "정보베이스 연결 차단" 처리입니다.

다음 두 주소 중 하나에서 찾을 수 있습니다.

  1. "서비스" 섹션의 하위 메뉴 중 하나
  2. 작업->처리 섹션으로 이동합니다.

그림 2

처리의 모습은 그림 2에 나와 있습니다.

이 처리의 특징:

  1. 상자를 선택하거나 선택 취소하고 녹음 버튼을 클릭하면 사용자 차단이 켜지거나 꺼지고, 세션이 삭제되고, 새 연결이 생성되지 않도록 방지됩니다.
  2. 차단 종료 시간은 비어 있거나 시작 시간보다 작을 수 없습니다.
  3. "권한 코드" 매개변수가 지정된 경우 코드 앞에 "/UC"를 지정하여 차단을 무시하도록 시작 줄에 입력할 수 있습니다.
  4. "권한 코드"를 지정하지 않으면 차단 기간이 만료되기 전에 데이터베이스에 들어가는 것이 문제가 됩니다(파일 버전의 작업에서는 데이터베이스 폴더에서 1CVcdn 파일을 삭제하려고 시도할 수 있음).
  5. 매개 변수 "/UC"와 공백으로 구분된 비밀번호 대신 "/CAllow Users to Work"(C는 라틴어)를 지정하면 모든 사용자에 대한 차단을 완전히 비활성화할 수 있습니다.
  6. "활성 사용자" 버튼을 클릭하면 "등록 로그"를 열거나 각 특정 사용자의 세션을 종료할 수 있는 전체 사용자 목록(그림 3)이 있는 창이 열립니다.

그림 3

위의 두 가지 옵션은 파일 모드와 클라이언트-서버 모드 모두에서 잘 작동합니다. 또한 서버 작업에만 일반적인 경우를 고려할 것입니다.

rdp에서 사용자 제거

서버에서 사용자 세션의 연결을 끊는 것은 특정 권한이 있는 경우에만 가능하다는 점을 기억하는 것이 중요합니다.

원격 데스크톱에서 작업할 때 표준 작업 관리자를 사용하여 사용자 세션을 종료할 수 있습니다. 단순히 세션을 중단하는 것은 약간 부정확하지만 매우 효과적입니다.

두 번째 옵션은 작업 관리자를 사용하는 것입니다. 즉, 각 특정 세션을 제어하고 모든 규칙에 따라 프로그램을 종료할 수 있는 원격 연결입니다. 이 방법은 길며 한 사용자가 로그아웃하는 동안 다른 작업자가 프로그램을 시작하지 않을 것이라고 아무도 보장하지 않습니다.

서버 콘솔을 통해 사용자 제거

1C 서버 클러스터에 대한 관리자 권한이 있으면 다음을 수행해야 합니다.


서버 모드에서 작업할 때 중단된 사용자 세션은 플랫폼 도구를 통해 표시되지 않고 콘솔을 통해서만 삭제할 수 있습니다.

세션을 중단하는 가장 급진적인 방법

위의 방법이 작동하지 않는 상황은 극히 드뭅니다. 그러나 이런 일이 발생하면 데이터베이스 연결을 중단하는 또 다른 근본적인 방법이 있습니다. 즉, 서버를 물리적으로 재부팅하는 것입니다.

물론, 작업을 끝내고 데이터를 저장할 시간이 없었던 사용자들은 이러한 뻔뻔한 태도에 극도로 분노하겠지만 속도가 빠르고 매우 효과적입니다.

1C:Enterprise 8 정보 베이스에서 일상적인 유지 관리를 수행하려면 데이터베이스에 대한 독점 액세스 권한을 얻어야 하는 경우가 많습니다. 예를 들어, 데이터베이스 백업을 수행하거나 DBMS 서버에서 일상적인 유지 관리(인덱싱 재지정 등)를 수행하려면 모든 활성 세션의 연결을 끊어야 합니다.

1C:Enterprise 서버의 표준 기능을 사용하여 정보베이스에서 사용자의 연결을 끊는 간단한 방법을 살펴보겠습니다.

표준 기능

1C:Enterprise 8의 클라이언트-서버 버전에 대해 이야기할 것이라고 바로 예약하겠습니다. 세션 연결을 끊으려면 서버 관리 콘솔로 이동하겠습니다. 목록에서 필요한 정보 기반을 찾을 수 있습니다.

정보 보안 속성으로 이동하여 '세션 시작 차단이 활성화됨' 옵션을 설정하세요. 이 경우 정보베이스 관리자 계정의 로그인/비밀번호를 입력해야 할 수도 있습니다.

세션 잠금 기간을 설정하는 것을 잊지 마세요. 또한 세션이 차단되는 동안 모든 백그라운드 작업을 중지해야 합니다. 이는 "일상적인 작업 차단이 활성화되었습니다" 옵션을 사용하여 수행됩니다.

필요한 경우 세션이 차단되기 5분 전에 알림을 받을 사용자에게 메시지 내용을 설정할 수 있으며, 세션 차단 기간 동안 정보베이스에 진입하기 위한 권한 코드도 설정할 수 있습니다.

권한 코드는 다른 세션이 비활성화된 동안 일상적인 유지 관리를 수행하기 위해 정보 베이스에 로그인하는 데 사용할 수 있습니다. 매개변수를 사용하여 데이터베이스에 연결할 때 권한 코드를 입력해야 합니다. 예를 들어, 권한 코드가 "123456"인 경우 서버에 전달된 매개변수는 다음과 같습니다.

이러한 방식으로 데이터베이스에 로그인하면 정보 베이스에 대한 독점적인 액세스 권한을 얻게 됩니다. 다른 세션은 우리와 함께 할 수 없습니다.

세션이 차단되었다는 사용자 알림은 다음과 같습니다(관리자가 입력한 메시지에 따라 다름). 차단 기간 5분 전부터 1분 간격으로 나타납니다.

세션 차단 기간이 시작되면 알림이 먼저 나타납니다.

그 후 세션이 종료됩니다.

활성 세션 목록에서 활성 세션을 제거하여 비활성화할 수도 있습니다. 중단된 세션을 종료하려면 이 작업이 필요한 경우가 있습니다.

실제로는 사용자가 입력했지만 아직 저장하지 않은 데이터가 손실될 위험을 줄이려면 사용자 연결 끊김에 대해 미리 알리는 것이 좋습니다.

공유하다