1s 8.3 모든 사용자에게 메시지를 표시하는 방법. 클릭 시 작업 수행

1C:Enterprise 플랫폼을 기반으로 하는 프로그램에서 메시지는 다양한 방식으로 사용자에게 표시될 수 있습니다.

1. 방법 경고 표시.

경고 표시(< ОписаниеОповещенияОЗавершении> , < ТекстПредупреждения> , < Таймаут> , < Заголовок> )

이 디자인을 사용하면 프로그램 인터페이스 중앙에 경고 창이 나타납니다.

옵션:

설명알림완료(선택 과목)
유형: 설명경고. 경고 창이 닫힌 후 다음 매개 변수와 함께 호출될 프로시저에 대한 설명이 포함되어 있습니다. AdditionalParameters - AlertDescription 개체를 만들 때 지정된 값입니다. 매개변수를 지정하지 않으면 완료 시 프로시저가 호출되지 않습니다.

텍스트 경고(필수의)
유형: 문자열; 형식화된 문자열. 경고의 텍스트입니다.

시간 초과(선택 사항)
유형: 숫자. 시스템이 사용자의 응답을 기다리는 시간 간격(초)입니다. 간격이 만료되면 경고 창이 닫힙니다. 매개변수를 지정하지 않으면 시간 제한이 무제한입니다. 매개변수가 음수이면 예외가 발생합니다. 기본값: 0.

제목(선택사항)
유형: 문자열. 경고 창의 제목을 포함합니다. 설명: 경고 창을 표시하지만 닫힐 때까지 기다리지는 않습니다.

가용성: 씬 클라이언트, 웹 클라이언트, 씩 클라이언트, 모바일 애플리케이션(클라이언트).

참고: 사용자가 경고 창을 닫은 후 코드를 실행해야 하는 경우 별도의 모듈 프로시저에 배치하고 매개변수에 설명해야 합니다.

2. 경고 방법.

프로그램 인터페이스 중앙에 경고 창이 나타납니다. 그러나 구성 속성이 ModeUseModality가 Do Not Use 로 설정되어 있으면 메서드가 작동하지 않습니다.

가용성: 씬 클라이언트, 웹 클라이언트, 모바일 클라이언트, 씩 클라이언트, 모바일 애플리케이션(클라이언트).

3. 방법 ShowAlertUser.

ShowUserAlert(< Текст> , < ДействиеПриНажатии> , < Пояснение> , < Картинка> , < СтатусОповещенияПользователя> , < КлючУникальности> )

이 방법을 사용하면 인터페이스의 오른쪽 하단에 메시지가 나타납니다.

가용성: 씬 클라이언트, 웹 클라이언트, 씩 클라이언트.

4. 보고 방법.

신고하기(< ТекстСообщения> , < Статус> )

가용성: 씬 클라이언트, 웹 클라이언트, 모바일 클라이언트, 서버, 씩 클라이언트, 외부 연결, 모바일 애플리케이션(클라이언트), 모바일 애플리케이션(서버).

5. 개체 사용자에게 메시지.

사용자에게 표시해야 하는 메시지 매개변수를 저장하도록 설계되었습니다. 메시지가 아직 사용자에게 표시되지 않은 경우(서버 측, 백그라운드 작업, 외부 연결 또는 웹 서비스에서 실행될 때일 수 있음) 메서드를 사용하여 누적된 메시지를 얻을 수 있습니다. GetMessages사용자.

속성: 목적지 ID(대상ID); 데이터 키(DataKey); 필드(필드); 데이터 경로(DataPath); 텍스트.

방법: 보고(메시지); 데이터 설치(세트 데이터).

메시지는 인터페이스 하단에 한 줄로 나타납니다.

메시지 = 새 MessageToUser() ; 메시지. 텍스트 = "명칭이 부족하다"; 메시지. 필드 = "명칭. 수량"; 메시지. 세트데이터(데이터객체) ; 메시지. 신고하기() ;

수업 중에 우리는 데이터베이스를 만들고 처리를 만들고 양식을 만들었습니다.

이제 1C "Hello world!"의 5가지 메시지 방법을 알려드리겠습니다.

모든 사람이 적어도 두 가지 방법에 대해 아는 것은 아닙니다. 🙂

프로그램의 텍스트를 작성하는 방법과 위치는 무엇입니까?

"모듈" 형식의 창 탭으로 전환합니다. 거기에 이미 텍스트가 있는지 확인합니다("절차...").

텍스트가 없으면 다음을 수행합니다.

  • 씩 클라이언트에서 처리에 양식을 잘못 추가했습니다. 처음부터 반복하십시오.
  • 씬 클라이언트에서 버튼을 추가하는 것을 잊었습니다. 처음부터 반복합니다.

텍스트 안에 다음 줄이 있습니다.

// 핸들러 내용 삽입

당신의 임무는 이 줄을 지우고 대신 프로그램의 텍스트를 입력하는 것입니다. 그런 다음 처리를 저장하고 엔터프라이즈 모드에서 엽니다.

실행을 클릭하면 입력한 작업이 수행됩니다.

이제 방법 자체로 넘어 갑시다!

1C의 메시지, 방법 1 - 가장 쉬운 방법

따라서 "// 핸들러의 내용을 삽입하십시오."라는 텍스트 대신에 해야 합니다. 프로그램의 텍스트를 작성하십시오.

alert("안녕하세요!");

사실 그게 다에요 🙂

씩 클라이언트의 엔터프라이즈 모드 메시지는 1C 창 하단, 씬 클라이언트 - 처리 창 오른쪽에 있습니다.

이것은 가장 간단한 방법이며 프로그래머가 매우 널리 사용합니다.

1C의 메시지, 방법 2 - 또한 간단합니다.

alert("안녕하세요!");

사실 그게 다에요 🙂

두 클라이언트 옵션 모두에서 엔터프라이즈 모드의 메시지는 팝업 창에 표시됩니다.

1C의 메시지, 방법 3 - 1C 버전 8.2에만 나타남

ShowUserAlert("안녕하세요!","안녕하세요!");

이 방법은 1C 버전 8.2에서만 나타났습니다. 이것은 시간이 지남에 따라 사라지는 화면의 오른쪽 하단 모서리에 있는 팝업 창입니다.

1C의 메시지, 방법 4 - 프로그래머

"Hello world!" 예외를 던지십시오.

어떤 프로그램을 실행할 때 오류가 있을 수 있습니다. 때때로 이 오류는 미리 계산될 수 있습니다(예를 들어, a = b/c를 계산해야 하고 프로그램 실행 시 c가 0과 같다는 것을 알게 되었습니다).

이런 경우 이런 식으로 오류를 보고하는 방법이 있습니다.

1C의 메시지, 방법 5 - 기술, 일반적인 구성에만 해당

범용.ReportError("안녕하세요!");

1C 프로그래머는 1C 플랫폼에 있는 프로그래밍 방법뿐만 아니라 일반적인 구성에 있는 프로그래밍 방법도 알아야 합니다.

초보자는 일반적인 구성을 추가하려고 할 때 바퀴를 재발명하기 시작합니다.

여기에 좋은 예가 있습니다. 이 기능은 많은 일반적인 구성에 있습니다(씩 클라이언트에만 해당). 결과는 방법 1의 작업과 같습니다.
그러나 아니오 - 일부 구성(예: SCP)에서는 오류 메시지가 로그에 중복됩니다. 또한 추가 사용자 지정을 통해 메시지가 완전히 다르게 보입니다.

이제 실제 프로그래머처럼 느낄 수 있습니다!

이것이 1C 프로그래밍의 전부입니다. 물론 실제 프로그래밍은 훨씬 더 복잡하고 많은 지식이 필요하지만 이제 일반적인 아이디어를 얻었습니다.

행운을 빕니다!

추신 스크린샷은 자신의 경험을 쉽게 만들 수 있도록 튜토리얼의 pdf 버전으로 제공됩니다.

추신 프로그래밍을 위한 기반 생성, 처리 생성, 씩 클라이언트 및 씬 클라이언트 프로그래밍에 대한 예제와 함께 수업을 위해 5개의 비디오가 제공됩니다.

버전 8.3.10.2168에서 구현되었습니다.

사용자 알림 메커니즘을 개선했습니다. 이제 씬 클라이언트와 웹 클라이언트 모두에서 사용하는 것이 똑같이 편리합니다. 알림 모양을 재설계하고 여러 가지 새로운 기능을 추가했습니다.

여러 알림 표시

이전 구현에서는 한 번에 하나의 알림만 화면에 표시되었습니다. 새 경고가 이전 경고와 겹쳤습니다. 따라서 여러 개의 알림이 연속으로 표시되면 다음 알림에 의해 차단되므로 사용자가 이전 알림을 읽을 시간이 없을 가능성이 높습니다.

이제 대부분의 경우 최대 3개의 경고를 동시에 표시할 수 있습니다.

이것은 브라우저에서 실행되는 씬 클라이언트, 씩 클라이언트 및 웹 클라이언트에 해당됩니다. 인터넷 익스플로러그리고 구글 크롬. 브라우저 원정 여행그리고 모질라 파이어 폭스알림을 무제한으로 표시할 수 있으며 브라우저는 마이크로소프트 엣지마지막 경고를 표시하지만 액션 센터, 모든 알림이 중복됩니다.

응용 프로그램 창이 비활성 상태일 때 경고 표시

이전에는 웹 클라이언트가 활성 브라우저 창에만 경고를 표시했습니다. 사용자가 다른 창이나 다른 응용 프로그램으로 전환한 경우 경고가 표시되지 않았습니다. 이제 웹 클라이언트를 사용할 때 응용 프로그램 창이 최소화되거나 비활성화된 경우에도 화면에 알림이 표시됩니다.

메소드가 처음 호출될 때 ShowUserAlert()웹 클라이언트에서 구글 크롬, 모질라 파이어 폭스그리고 원정 여행브라우저는 경고를 사용할 수 있는 권한을 사용자에게 요청할 것입니다. 사용자는 이 애플리케이션에 대한 출력을 허용하거나 금지할 수 있습니다.

사용자가 알림을 비활성화하면 새로운 유형의 알림이 사용되지만 브라우저 창 안에 표시됩니다.

경보 센터

알림이 영원히 사라지는 것을 방지하기 위해 경보 센터. 그리고 알림 자체에 대해 새로운 속성을 구현했습니다. 상태 경고 사용자. 두 가지 값을 사용할 수 있습니다. 정보그리고 중요한.

상태 경고 정보화면에 표시되고 10초 후에 사라집니다(브라우저에서 마이크로소프트 엣지– 4초 후). 상태 경고 중요한정확히 동일하게 작동하지만 경고 센터에 저장됩니다.

알림 센터는 도구 모음에서 사용할 수 있습니다. 새로운 중요 알림이 있다는 사실은 아이콘 옆에 주황색 점으로 표시됩니다.

경고 센터는 사용자가 경고를 닫거나 경고와 관련된 작업을 수행하여 아직 응답하지 않은 중요한 경고를 표시합니다. 경고는 표시되는 순서대로 나열되며 최신 항목이 맨 위에 표시됩니다. 따라서 사용자가 컴퓨터를 떠나더라도 중요한 경고를 놓치지 않습니다.

지우기 버튼으로 알림을 목록에서 제거할 수 있습니다. 일부 작업이 알림과 연결된 경우 알림 텍스트를 클릭하면 알림도 사라집니다. 팀 경고 지우기목록에서 모든 경고를 제거합니다. 동시에 작업이 알림과 연결된 경우 수행되지 않습니다.

클릭 시 작업 수행

이전 구현에서는 경고를 클릭했을 때 수행할 수 있는 유일한 작업은 탐색 링크를 따라가는 것이었습니다. 두 번째 매개 변수로 메서드에 전달되었습니다.

<Текст>, <НавигационнаяСсылка>, …

이제 알림 기능이 확장되었으며 두 번째 매개변수에서 탐색 링크가 있는 문자열뿐만 아니라 알림에 대한 설명도 전달할 수 있습니다.

ShowUserAlert(<Текст>, <ДействиеПриНажатии>, …

경고에 대한 설명은 경고를 클릭할 때 수행할 절차를 나타냅니다.

모습

인터페이스 변형의 씬 클라이언트에서 택시알림 스타일은 브라우저 알림 스타일과 최대한 유사합니다. 구글 크롬사용 알림 API.


인터페이스 옵션을 사용하는 경우 버전 8.2, 경고의 스타일과 동작은 동일하게 유지됩니다.

웹 클라이언트에서 경고의 모양은 사용 중인 브라우저에 따라 결정됩니다. 대체로 경고는 씬 클라이언트에서와 동일하게 보이지만 각 브라우저에는 고유한 특성이 있습니다. 예를 들어 동일한 알림이 표시되는 방식을 비교할 수 있습니다. 인터넷 익스플로러그리고 모질라 파이어 폭스.


또한 다른 기능이 있습니다. 예를 들어 브라우저에서 인터넷 익스플로러응용 프로그램 창 내부에 표시되는 경고만 지원됩니다. 그리고 브라우저에서 원정 여행매개변수 그림지원되지 않으며 화면 상단에 경고가 표시됩니다.

개발은 사용자에게 선택적으로 전체를 알리도록 설계되었으며, 메시지를 작성하거나 사용자 간에 통신할 수도 있습니다.

개발은 관리 또는 일반 응용 프로그램 모듈의 정보 등록 및 변경입니다.
경고를 트리거하려면 정보 레지스터에 항목을 추가해야 합니다. 사용자는 알림 시간의 시작과 끝 사이에 지정된 기간에 알림을 받습니다..

관리 앱

일반 앱

경고 창이 표시됨 사용자 프로그램에서 전체 인터페이스 차단 현재 프로그램에서 작업 중인 사용자는 알림을 놓치지 않고 그에 따라 읽습니다.

관리 앱

일반 앱

등록 목록

알림 목록에서 알림을 받은 사람과 읽은 사람을 확인할 수 있습니다.

관리 앱

일반 앱

구성에서 개발을 구현하려면 다음을 수행해야 합니다.

  1. 구성을 편집하는 기능을 설정합니다.
  2. 이 발행물에 제공된 구성과 비교하십시오. 이렇게 하면 응용 프로그램의 기본 실행 모드에 따라 사용자 경고 정보 레지스터와 일반 또는 관리 응용 프로그램 모듈의 항목이 추가됩니다.

    일반 또는 관리되는 응용 프로그램의 모듈 항목이 다릅니다.

    관리 앱

SystemStartup Procedure() //프로그램 사용자에게 알리기 위한 일반적인 구성 수정(모든 사용자에게 메시지 보내기) //모든 구성에 적합 ConnectWaitingHandler("modNotificationProcessingHandler", 60); EndProcedure // AtSystemStart() //프로그램 사용자에게 알리기 위한 일반적인 구성 수정(모든 사용자에게 메시지 보내기) //모든 구성에 적합 //양식이 닫힐 때까지 대기 핸들러 호출을 //또는 양식 메서드까지 계속 호출 Mod procedureAlertProcessHandler() Export MessageToUser = GetForm("InformationRegister.UserAlerts.Form.SendFormControl").GetNotificationProcessingMessages(); If Not MessageToUser = Undefined Then Form = GetForm("InformationRegister.UserAlerts.Form.AlertControl"); Form.Open()이 아니면 FillPropertyValues(Form,MessageToUser,"ViewOnly"); Form.Open(); 그렇지 않으면 Form.Activate(); EndIf; EndIf; 절차 끝 표준 응용 프로그램 SystemStartProcedure() //프로그램 사용자에게 알리도록 기본 구성을 수정합니다(모든 사용자에게 메시지 보내기) //모든 구성에 적합 ConnectWaitingHandler("modAlertProcessingHandler", 60); EndProcedure // AtSystemStart() //프로그램 사용자에게 알리기 위한 일반적인 구성 수정(모든 사용자에게 메시지 보내기) //모든 구성에 적합 //양식이 닫힐 때까지 대기 핸들러 호출을 //또는 양식 메서드까지 계속 호출 Mod procedureAlertProcessHandler() Export MessageToUser = RegistersInformation.AlertUser.GetMessageProcessingNotification(); If Not MessageToUser = Undefined Then Form = GetForm("InformationRegister.UserAlerts.Form.AlertUsual"); Form.Open()이 아니면 FillPropertyValues(Form,MessageToUser,"ViewOnly"); Form.OpenModal(); 그렇지 않으면 Form.Activate(); EndIf; EndIf; 종료 절차

개발 구현은 무료이며 10분 이내에 수행됩니다.

30일 동안 무료 기술 지원.

개발은 씬, 씩 클라이언트 및 웹 클라이언트 모드에서 플랫폼 8.3, 다양한 표준 및 비표준 구성을 위한 것입니다.

자기 개선이 가능하며 코드는 편집을 위해 열려 있습니다.

구매 이유

알림, 기술 작업에 대한 1C 사용자 알림, 구성 개선, 업데이트, 첫 번째 프로그램 내에서 1C 사용자 간의 통신 기능을 위한 매우 편리한 옵션입니다.

장점

1) 아날로그와 달리 모든 사용자에게 100% 경고 전달.
2) 사진을 보내는 기능.
3) 메시지 목록에서 사용자 활동을 봅니다(누가, 누가 읽었는지).
4) 알림 발신자에 대한 응답을 작성하는 기능.
5) 편집 기능이 설치된 구성을 업데이트할 때 다른 개체에 영향을 주지 않습니다.

환불 보증

Infostart LLC는 프로그램이 설명에서 선언된 기능과 일치하지 않는 경우 100% 환불을 보장합니다. 저희 계좌로 입금된 날로부터 14일 이내에 신고하시면 전액 환불이 가능합니다.

이 프로그램은 작업 중 테스트를 거쳤기 때문에 확신을 가지고 그러한 보증을 제공할 수 있습니다. 우리는 모든 고객이 구매에 만족하기를 바랍니다.

이 기사는 "1C 개발의 첫 단계" 기사 시리즈를 계속합니다.

그것에서 우리는 1C:Enterprise 8 플랫폼에 있는 사용자에게 알리는 방법을 고려하고 이러한 메커니즘 작동의 일부 기능에 주의를 집중할 것입니다. 이러한 기능은 모달리티 사용 모드와 연결되어 있습니다.

적용 가능성

이 문서에서는 기능에 대해 설명합니다.

  • "1C:Enterprise" 플랫폼 8.2.19.130에서 개발된 구성을 위한 "버전 8.2" 버전의 인터페이스
  • 1C:Enterprise 플랫폼 8.3.4.496 ~ 8.3.9+에서 개발된 구성을 위한 택시 인터페이스
  • 1C:Enterprise 플랫폼 8.3.10-8.3.11에서 개발된 구성을 위한 택시 인터페이스

1C에서 사용자에게 메시지를 표시하는 방법

사용자 모드에서 메시지를 표시하면 다음과 같은 여러 문제가 해결됩니다.

  • 현재 프로세스의 진행 상황 반영(프로세스의 단계 표시, 알고리즘 작동 중에 얻은 계산된 값 표시)
  • 가능한 수정을 위해 사용자에게 오류를 발행합니다.
  • 권고 발행;

메시지 유형:

  • 프로그램 실행을 중지하고 사용자가 이 메시지를 읽고 특정 작업을 수행할 때까지 계속되지 않도록 하는 종료자. 예를 들어, 사용자는 화면에서 예 또는 아니오로 대답해야 하는 질문을 받게 됩니다. 사용자가 응답할 때까지 프로그램은 추가 작업을 수행하지 않습니다.
  • 사용자에게 단순히 표시되고 추가 작업을 수행할 수 있도록 하는 소개 메시지(예: 경고 모드에서 사용).

종료 메시지는 오류 메시지, 소개 메시지: 권장 사항, 프로세스의 현재 단계에 대한 메시지 및 계산된 값 표시(디버그 인쇄)여야 합니다.

소개 메시지는 사용자에게 정보를 제공하기 위한 것입니다.

사용자가 이 메시지를 읽고 이 메시지에 설명된 몇 가지 조치를 취해야 합니다.

사용자가 실제로 이러한 메시지를 읽는 것이 매우 중요하므로 중요한 정보만 포함해야 합니다.

테스트 및 디버그 메시지는 사용자에게 발행되어서는 안 됩니다. 조만간 그는 모든 메시지를 절대적으로 무시하기 시작할 것입니다.

관리 인터페이스의 개념에서 메시지 발행 방식이 다소 변경되었습니다. 이제 원래 형식에 연결됩니다. 텍스트가 완전히 보이지 않도록 더 이상 닫을 수 없습니다.

양식에서 메시지 상자를 고정 해제할 수 없습니다.

함수 구문:

신고하기 (<Текст сообщения>, <Статус>)

저것들. 첫 번째 매개변수는 텍스트 자체입니다.

두 번째 매개변수(메시지 상태)는 선택 사항입니다. 상태에 대한 값을 지정할 수 있습니다. 정상, 중요한, 매우 중요등.

이 값은 메시지 옆에 배치할 아이콘을 결정합니다. 그러나 이것은 일반 인터페이스에서만 작동합니다.

관리되는 인터페이스의 개념에서 아이콘은 항상 느낌표이며 재정의할 수 없습니다.

사실 사전 요소를 작성할 때 메시지가 생성되면 다음과 같은 상황이 발생할 수 있습니다.

사용자가 버튼을 클릭함 쓰고 닫기, 이 경우 해당 창(양식 오른쪽)에 메시지가 표시됩니다.

그러나 양식은 즉시 닫히고 사용자는 일부 정보가 표시되었는지 볼 수 없습니다.

따라서 관리되는 응용 프로그램의 개념에서는 소위 알림을 사용하여 정보 메시지를 표시하는 것이 좋습니다. 함수의 잘못된 사용 예 신고하기그림에 나와 있습니다.

그러나 기능 신고하기예를 들어 문서를 게시할 때 일부 오류에 대한 정보를 표시하는 데 사용할 수 있습니다.

이 경우 시스템은 양식을 닫을 필요가 없음을 시스템에 알리고 문서를 게시할 때 어떤 오류가 발생하는지 사용자에게 보여줄 수 있습니다.

기능 신고하기플랫폼 8.3에서 완전히 지원됩니다. 사용할 수 있으며 작동합니다(파일 버전 및 클라이언트-서버 버전 모두).

그러나 그 기능도 주목해야 합니다. 신고하기추가 개발이 있습니다. 이것은 사용자에 대한 메시지 클래스로, 메시지를 표시하는 것 외에도 컨텍스트에 따라 모든 양식 요소에 바인딩할 수 있습니다.

예를 들어, 오류 메시지는 사용자에게 매우 잘 보이는 양식 요소에 첨부될 수 있습니다. 이 문제는 잠시 후에 다시 다루겠습니다. 기능 신고하기흥미로운 기능이 있습니다.

따라서 플랫폼 8.3의 프로그램 코드는 클라이언트 측과 서버 측 모두에서 실행할 수 있습니다.

이 경우 클라이언트 프로그램 코드는 사용자와의 상호 작용을 담당합니다. 클라이언트 측에서 양식을 열면 보고서가 표시됩니다.

다양한 대화 문서도 클라이언트에서만 표시됩니다. 서버에서는 사용자와 상호 작용할 수 있는 기능이 없기 때문에 실행할 수 없습니다.

그러나 기능 신고하기클라이언트 측과 서버 측 모두에서 실행할 수 있습니다. 그러나 방법을 사용하여 신고하기서버에서 메시지가 서버에 표시된다는 의미는 아니며 단순히 표시할 곳이 없습니다.

즉, 이 방법을 사용하여 서버 프로시저에 메시지를 표시하면 일부 버퍼에 누적되어 서버 프로시저가 종료되고 클라이언트로 반환될 때만 화면에 표시됩니다.

이 시점에서 시스템은 버퍼에서 데이터를 요청하고 화면에 표시합니다.

동일한 기능이 클래스에 적용됩니다. 사용자에게 메시지. 그림은 방법을 사용하는 예를 보여줍니다 신고하기서버 측에서.

방법을 사용한 결과 신고하기서버 측에서는 메시지가 클라이언트 측 화면에 표시되었습니다.

시스템에서 "무언가"가 발생했음을 사용자에게 알리기 위해 알림 메커니즘이 필요하며 이 "무언가"에는 사용자의 주의가 필요합니다. 경고는 두 가지 시나리오에서 생성됩니다.

  1. 대화형으로 객체를 작성하거나 수정할 때 플랫폼 자체에 의해
  2. 메서드 코드를 호출할 때 개발자 .

알림 자체는 일반적으로 오른쪽 하단에 표시되는 작은 창이며 취한 조치를 보고합니다. 몇 초 안에 점차 사라지고 사라집니다. 동시에 알림 위로 마우스 커서를 이동하면 알림이 나가지 않고 주의 깊게 읽을 수 있습니다.

또한 알림은 정보 패널의 해당 영역("버전 8.2" 인터페이스 옵션에서 지원 양식 왼쪽 하단의 "이력" 버튼)에서 액세스할 수 있습니다.

고유한 경고를 만들려면 전역 컨텍스트 메서드를 사용해야 합니다. ShowUserAlert(). 개정 8.3.10 이전의 구문은 다음과 같습니다.

사용자 경고 표시(<Текст>, <НавигационнаяССылка>, <Пояснение>, <Картинка>)

첫 번째 매개변수는 경고에 표시될 텍스트입니다.

또한 두 번째 매개변수로 정보 베이스의 모든 요소(메시지 텍스트에 해당하는 요소)에 대한 탐색 링크를 전달할 수 있습니다. 사용자가 경고를 클릭하면 해당 링크로 이동합니다.

세 번째 매개변수의 도움으로 메시지에 대한 설명을 전달할 수 있습니다. 일부 확장된 설명.

알림 상태를 표시하는 그림을 할당할 수도 있습니다.

이러한 매개변수는 모두 선택 사항입니다. 다음은 이 방법을 사용하는 예입니다(구성자 및 "버전 8.2" 인터페이스 옵션의 사용자 모드).

"Taxi" 버전의 인터페이스용 플랫폼 버전 8.3.10.216에서는 씬 클라이언트와 웹 클라이언트 모두의 사용성을 향상시키기 위해 알림 메커니즘이 크게 개선되었습니다. 이러한 이유로 메서드에 전달되는 매개변수도 변경되었습니다. ShowUserAlert(). 이제 구문은 다음과 같습니다.

ShowUserAlert(<Текст>, <ДействиеПриНажатии>, <Пояснение>, <Картинка>, <СтатусОповещенияПользователя>, <КлючУникальности>)

이전에 호출된 두 번째 매개변수가 탐색 링크, 새 이름을 얻었습니다 액션온프레스. 이는 이제 탐색 링크가 있는 문자열뿐만 아니라 경고에 대한 설명도 전달할 수 있게 되었기 때문입니다. 이는 아래 스크린샷에 설명되어 있습니다.

예제에서 볼 수 있듯이 이제 필요한 논리에 따라 알림 창 클릭을 프로그래밍 방식으로 처리할 수 있습니다.

다음 매개변수 상태 경고 사용자처음으로 등장했습니다. 경고 상태(정보 또는 중요)를 나타냅니다.

중요 옵션의 경우 사용자가 메시지에 응답하지 않으면 화면에서 숨긴 후 알림 센터를 통해 읽을 수 있습니다(자세한 내용은 아래 참조). 정보옵션의 경우 알림은 이 센터에 저장되지 않고 삭제됩니다. 아래와 같이 예제의 코드를 다시 작성해 보겠습니다.

명령을 실행하면 대략 다음과 같은 응용 프로그램 창 보기가 표시됩니다.

위에서 언급한 경고 센터를 호출하는 도구 모음에 벨 아이콘이 있는 버튼이 나타납니다. 사용자가 아직 응답하지 않은 새로운 중요 알림을 누적합니다.

센터에 경고가 있는 경우 사용자의 주의를 끌기 위해 작은 주황색 점이 그 옆에 나타납니다. 사용자는 경고 센터를 열고 텍스트를 읽고 필요한 경우 일부 작업을 수행할 수 있습니다.

지우기 버튼을 클릭하면 알림이 센터에서 제거되지만 알림과 관련된 작업이 있는 경우 사용자가 메시지 텍스트를 클릭하는 즉시 사라집니다.

마지막으로 추가된 매개변수는 키 고유성. 이를 이용하여 화면에 표시되는 경고를 찾아 변경할 수 있습니다. 이 매개변수가 포함된 알림이 없으면 새 알림이 표시됩니다.

보시다시피 해당 방법이 제공하는 가능성이 훨씬 더 커졌습니다! 그러나 이것이 알림 메커니즘의 모든 변경 사항이 아닙니다.

이미 눈치채셨겠지만 외모가 바뀌었습니다. 이제 알림이 보다 현대적이고 인체공학적으로 보이지만 화면에서 이동하거나 크기를 조정할 수 없습니다. 이 예에서 알림 텍스트는 창 자체에 완전히 맞지 않았으며 사용자는 알림 센터를 열어야만 완전히 읽을 수 있습니다. 따라서 알림의 텍스트에 많은 양의 텍스트를 작성할 필요가 없습니다.

또한 새로운 기능에는 화면에 최대 3개의 경고를 동시에 표시하는 기능이 포함됩니다.

이것으로 프로그래밍 방식의 경고 생성에 대한 소개를 마치겠습니다. 그러나 알림은 프로그래밍 방식으로 개발자뿐만 아니라 대화형 작성 또는 개체 변경 시 플랫폼 자체에 의해 생성된다는 점을 기억하십시오. 그리고 종종이 사실은 초보자 사이에서 무엇보다도 오해를 불러 일으 킵니다. 그런데 왜 끌 수없는 이러한 서비스 경고가 필요합니까?

이러한 간단한 상황을 상상해 봅시다. 사용자가 편의를 위해 일부 목록에 필터를 설정했습니다. 그가 명명법 참조 목록의 형태로 이 작업을 수행했다고 가정해 보겠습니다. 그러다가 잠시 후 기존에 설정한 필터와 어울리지 않는 '의자'라는 새로운 요소를 도입하기로 했다. 그는 그것을 입력, 그것을 기록하고 ...? 그리고 목록에 표시되지 않습니다. 일반 사용자는 무엇을 할 것인가? 물론 두 번째로 들어가겠지만 다시는 볼 수 없습니다. 세 번째, 네 번째, 다섯 번째 시간이 따를 수 있습니다. 그는 같은 것을 입력하는 데 지쳤을 때 마침내 당신에게 묻습니다. 모든 것이 어디로 사라지나요?

이것이 플랫폼이 이러한 서비스 경고를 표시하여 사용자에게 작업이 완료되었음을 알리는 이유입니다. 이 예에서는 대화식 녹음 시 사용자에게 다음 알림이 표시됩니다.

종료 메시지

종료 메시지는 사용자가 특정 작업을 수행할 때까지 작업을 허용하지 않는 메시지입니다. 메시지를 처리할 때까지.

우리는 잠시 후에 Platform 8.3에서 종료 메시지를 사용할 가능성에 대해 이야기할 것입니다.

종료 메시지를 발행하는 두 가지 방법이 있습니다. 경고그리고 문제. 경고~와 다르다 문제버튼이 하나 있기 때문에 확인.

질문에는 다양한 답변 옵션 세트가 있을 수 있습니다( 설마, 예아니오취소, 확인, 확인취소, 다시 시도 취소, 중단재시도건너뛰기), 매개변수를 사용하여 설정됩니다.

문자열을 사용하여 일종의 경고를 표시해 보겠습니다(예: 관리되는 응용 프로그램 모듈에서).

Alert("이제 기지가 열릴 것입니다.");

관리되는 응용 프로그램 모듈을 열려면 구성 트리에서 개체를 선택하십시오. 구성, 컨텍스트 메뉴를 호출하고 항목을 선택하십시오 관리형 애플리케이션 모듈 열기.

이 경우 응용 프로그램이 시작되면 모달 창이 표시됩니다. 모달 창은 응용 프로그램에 있는 모든 창을 오버레이합니다. 이 창을 처리할 때까지 더 이상 조치를 취할 수 없습니다.

기능은 같은 방식으로 작동합니다. 문제.

통사론:
문제(<ТекстВопроса>,<Кнопки>,<Таймаут>,<КнопкаПоУмолчанию>,<Заголовок>,
<КнопкаТаймаута>);

처음 두 매개변수만 필요합니다. 두 번째 매개변수의 경우 데이터 유형은 복합( 대화 모드질문또는 값 목록). 세 번째 매개변수( <Таймаут> ) 시스템이 사용자의 응답을 기다리는 시간 간격(초)을 나타냅니다.

간격이 만료되면 질문 창이 닫힙니다. 유사한 매개변수( <Таймаут> ) 기능도 있습니다 경고.

기능을 사용하는 예로서 문제관리되는 애플리케이션 모듈로 작성된 다음 코드를 사용할 수 있습니다.

이러한 방법은 경고그리고 문제)은 서버에서 사용할 수 없습니다. 그리고 이것은 사용자가 없는 서버에서 인터페이스 메소드를 실행할 수 없기 때문에 논리적입니다.

플랫폼 8.3에서 모달 창을 사용하는 기능

플랫폼 8.3에는 양식을 사용하거나 사용하지 않는 작동 모드가 있습니다. 기본 설정은 모달리티 모드를 사용하지 않음입니다.

이 경우 종료 메시지를 사용할 수 없습니다. 종료 메시지(기능 경고그리고 문제) 구성 속성의 값을 변경해야 합니다. 사용.

모달 창은 맨 위에 표시되며 모달 창이 완료될 때까지 다른 창과의 작업을 차단합니다. 또한 이 윈도우가 호출된 위치에서 프로그램 코드의 실행이 중지됩니다. 코드 실행은 모달 창이 닫힌 후에만 계속됩니다.

첫째, 모바일 응용 프로그램에서 모달 창을 사용하는 문제가 발생합니다. 둘째, 브라우저에서 창 모달리티는 별도의 팝업 창을 사용하여 구현됩니다.

팝업 창은 기본 브라우저 설정에서 비활성화되는 경우가 많습니다. 사용자는 이러한 창에 대한 권한을 설정해야 합니다.

대부분의 경우 태블릿 및 휴대폰용 브라우저는 팝업을 전혀 지원하지 않습니다.

기능을 교체하려면 문제그리고 경고새로운 방법이 개발되었습니다. 질문 표시, 경고 표시.

이러한 메서드를 사용하면 창을 호출할 수 있지만 프로그램 코드 실행을 중지할 수는 없습니다. 기술적으로 이것은 부모 창 내부에 의사 창을 형성하여 구현됩니다. 의사 창은 부모 창과 겹치지 않습니다. 이러한 창을 연 후에도 코드가 계속 실행됩니다.

사용자가 입력한 값을 수신하고 처리하는 작업은 대화 상자가 닫힐 때 호출되는 별도의 절차로 수행됩니다.

함수 구문 경고 표시:

경고 표시(<ОписаниеОповещенияОЗавершении>, <ТекстПредупреждения>, <Таймаут>, <Заголовок>)

매개변수 <ОписаниеОповещенияОЗавершении> (선택 과목)

데이터 형식: 설명경고.

경고 창이 닫힌 후 호출될 프로시저에 대한 설명을 포함합니다.

함수 구문 질문 표시:

ShowQuestion(<ОписаниеОповещенияОЗавершении>, <ТекстВопроса>, <Кнопки>, <Таймаут>, <КнопкаПоУмолчанию>, <Заголовок>, <КнопкаТаймаута>)

처음 세 개의 매개변수가 필요합니다.

다음은 함수를 사용하는 예입니다.

MessageToUser 클래스

메시지 클래스의 주요 편의성 사용자에게 메시지이것은 컨텍스트 메시지라는 것입니다(메소드와 달리 경고그리고 문제).

메시지는 특정 화면 요소에 연결될 수 있습니다. 이 개체는 서버에서도 사용할 수 있습니다.

먼저 이 객체를 생성해야 한다는 점에 유의해야 합니다. 예를 들어: 메시지 = 새 MessageToUser;

따라서 이 개체의 인스턴스를 만듭니다.

둘째, 메시지의 텍스트를 별도의 속성에 작성해야 합니다.

셋째, 부동산에서 주어진 메시지를 첨부해야 하는 양식 요소를 지정할 수 있습니다.

주목! 원하는 양식 필드에 바인딩하려면 속성 초기화에주의하십시오. 경로 데이터그리고 데이터 키. 문서의 경우 개체 모듈에 코드를 배치할 때 다음과 같이 작성할 수 있습니다.

Message.DataPath = "객체";
Message.DataKey = ThisObject.Reference;

문서 모듈을 열려면 개체(문서) 편집 창의 탭에서 다른버튼을 클릭 개체 모듈.

실험을 위해 문서의 개체 모듈에 코드를 배치해 보겠습니다.

다음은 Platform 8.3의 사용자 모드에서 얻은 결과입니다.

새 시스템 개체를 사용하여 표시되는 메시지는 사용자에게 메시지일반적으로 종료되지 않습니다. 저것들. 시스템은 사용자가 표시된 메시지에 응답하지 않고 추가 작업을 계속할 수 있도록 합니다.

그러나 먼저 이러한 메시지는 상당히 눈에 띕니다. 둘째, 메시지는 일반적으로 디렉토리의 요소를 작성하거나 문서를 게시할 때, 즉 일부 확인이 수행될 때 사용자에게 표시됩니다. 그리고 오류가 발견되면 사용자는 이와 동일한 메시지를 보게 됩니다.

따라서 오류가 감지되면 트랜잭션이 취소됩니다. 디렉토리의 요소를 기록하는 것이 금지되거나 문서를 게시하는 것이 금지됩니다.

따라서 일종의 종료 메시지 에뮬레이션이 발생합니다. 사용자가 입력 메시지에 응답할 때까지 작업이 취소되기 때문에 문서 스와이프와 같은 작업을 완료할 수 없습니다.

그러나 다른 한편으로는 문서를 들고 있지 않고 어떤 식으로든 메시지에 반응하지 않고 문서를 닫을 수 있습니다. 따라서 사용자에게 보내는 이러한 메시지는 종료되지 않습니다.

프로세스 상태 알림

프로세스의 대략적인 진행 상황을 표시할 수 있는 특수 기능이 있습니다.

통사론: 상태(<ТекстСообщения>, <Прогресс>, <Пояснение>, <Картинка>)
옵션:<ТекстСообщения>그리고<Пояснение>– 선택 사항, 유형 – 라인.
텍스트는 특수 상태 표시줄에 표시됩니다.
<Прогресс>매개변수도 선택사항이지만 설명적입니다.
유형: 숫자. 진행률 표시줄 값(1에서 100까지).
<Картинка>또한 선택적 매개변수입니다.
이벤트를 처리할 때 유형의 주기적 함수 호출을 사용할 수 있습니다.

이 경우 비문이 변경될 수 있으며 Progress 매개변수의 값이 변경될 수 있습니다.

함수는 하나의 프로시저(함수)와 여러 프로시저에서 모두 호출할 수 있습니다. 이러한 방식으로 프로세스의 실행 상태를 모니터링할 수 있습니다.

알림 메커니즘에 대해 자세히 알아보려면 지금 잠시 휴식을 취하고 8.3.10에서 장기 실행 작업의 진행 상황을 보여주는 새로운 기사를 읽으십시오. 더 이상 초보자 수준에서 이 메커니즘 작동의 모든 미묘함과 함정을 설명하지 않습니다.

이용자에게 알리는 방법에 대해 숙지를 마치겠습니다. 어떤 상황에서 하나 또는 다른 방법을 사용해야 하는지 이해하시기 바랍니다.

귀하의 구성(버전 8.3.3 이상)이 웹 클라이언트를 사용하여 작업하는 경우 다음과 같은 사실에 다시 한 번 주의를 기울이고 싶습니다.

  • 구성 수준에서 모달리티 모드 설정 "사용하지 않음"을 설정해야 합니다.
  • 코드는 비동기 사용자 상호 작용 모델의 메서드를 사용해야 합니다. 이러한 방법은 단어로 시작됩니다. 보여주다또는 시작하려면.

1C: Enterprise 8.3 플랫폼에서 모달 창 사용 거부에 대한 자세한 내용은 사이클의 마지막 기사에서 확인할 수 있습니다. 그리고 우리는 계속해서 마지막으로 우리 자료에서 이미 한 번 이상 언급된 오랫동안 기다려온 Taxi 인터페이스를 연구합니다.