1c hiển thị một thông báo trong cửa sổ. Tin nhắn cho người dùng ở dạng được quản lý (một lần nữa). Các thông báo được liên kết với thuộc tính của phần dạng bảng của đối tượng

Trong các chương trình trên nền tảng 1C:Enterprise, thông báo có thể được hiển thị cho người dùng theo nhiều cách khác nhau.

1. Phương pháp Hiển thịCảnh báo.

Hiển thịCảnh báo(< ОписаниеОповещенияОЗавершении> , < ТекстПредупреждения> , < Таймаут> , < Заголовок> )

Khi sử dụng thiết kế này, một cửa sổ cảnh báo sẽ xuất hiện ở giữa giao diện chương trình.

Tùy chọn:

Miêu tảCảnh báo hoàn chỉnh(không bắt buộc)
Loại: Mô tảCảnh báo. Chứa mô tả về quy trình sẽ được gọi sau khi đóng cửa sổ cảnh báo với các tham số sau: Tham số bổ sung - giá trị được chỉ định khi tạo đối tượng Mô tả cảnh báo. Nếu tham số không được chỉ định thì sau khi hoàn thành sẽ không có thủ tục nào được gọi.

Văn bảnCảnh báo(yêu cầu)
Loại: Chuỗi; FormattedString. Văn bản cảnh báo.

Hết thời gian (tùy chọn)
Loại: Số. Khoảng thời gian tính bằng giây trong đó hệ thống sẽ chờ phản hồi của người dùng. Khi hết khoảng thời gian, cửa sổ cảnh báo sẽ đóng lại. Nếu tham số không được chỉ định thì thời gian chờ là không giới hạn. Nếu tham số âm, một ngoại lệ sẽ được đưa ra. Giá trị mặc định: 0.

Tiêu đề (tùy chọn)
Loại: Chuỗi. Chứa tiêu đề của cửa sổ cảnh báo. Mô tả: Hiển thị cửa sổ cảnh báo nhưng không đợi cửa sổ đóng lại.

Tính khả dụng: Máy khách mỏng, máy khách web, máy khách dày, ứng dụng di động (máy khách).

Lưu ý: Nếu bất kỳ mã nào phải được thực thi sau khi người dùng đóng cửa sổ cảnh báo thì mã đó phải được đặt trong một quy trình mô-đun riêng biệt và được mô tả trong một tham số.

2. Cảnh báo phương pháp.

Một cửa sổ cảnh báo xuất hiện ở giữa giao diện chương trình. Tuy nhiên, nếu thuộc tính cấu hình Phương thức sử dụngđược đặt thành Không sử dụng thì phương pháp này không hoạt động.

Tính khả dụng: Máy khách mỏng, máy khách web, máy khách di động, máy khách dày, ứng dụng di động (máy khách).

3. Phương pháp Hiển thịCảnh báo người dùng.

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

Khi sử dụng cách này sẽ xuất hiện thông báo ở góc dưới bên phải giao diện.

Tính khả dụng: Máy khách mỏng, máy khách web, máy khách dày.

4. Phương pháp báo cáo.

Báo cáo(< ТекстСообщения> , < Статус> )

Tính khả dụng: Thin client, web client, mobile client, server, Thick client, kết nối bên ngoài, ứng dụng di động (client), ứng dụng di động (server).

5. Đối tượng Tin nhắn cho người dùng.

Được thiết kế để lưu trữ các thông số tin nhắn cần hiển thị cho người dùng. Nếu thông báo chưa được hiển thị cho người dùng (điều này có thể xảy ra khi làm việc ở phía máy chủ, trong công việc nền, kết nối bên ngoài hoặc dịch vụ Web), bạn có thể nhận được các tin nhắn tích lũy bằng phương thức Nhận tin nhắn cho người dùng.

Của cải: ID điểm đến(ID mục tiêu); DataKey; Cánh đồng; DataPath(DataPath); Chữ.

Phương pháp: Tin nhắn; SetData(SetData).

Thông báo xuất hiện ở cuối giao diện, dạng dòng.

Tin nhắn = MessageToUser mới(); Tin nhắn. văn bản = "Không đủ danh pháp"; Tin nhắn. Trường = "Danh pháp. Số lượng"; Tin nhắn. SetData(DataObject) ; Tin nhắn. Báo cáo() ;

Bài viết tiếp nối chuỗi bài “Những bước đầu phát triển trên 1C”.

Trong đó, chúng ta sẽ xem xét các phương pháp thông báo cho người dùng có trong nền tảng 1C:Enterprise 8, đồng thời tập trung sự chú ý của bạn vào một số tính năng hoạt động của các cơ chế này, những tính năng này có liên quan đến phương thức sử dụng phương thức này; .

Khả năng ứng dụng

Bài viết thảo luận về chức năng:

  • Giao diện trong phiên bản “Phiên bản 8.2” dành cho cấu hình được phát triển trên nền tảng 1C:Enterprise 8.2.19.130
  • Giao diện taxi dành cho cấu hình được phát triển trên nền tảng 1C:Enterprise 8.3.4.496 đến 8.3.9+
  • Giao diện taxi cho cấu hình được phát triển trên nền tảng 1C:Enterprise 8.3.10-8.3.11

Cách hiển thị thông báo tới người dùng trong 1C

Hiển thị thông báo ở chế độ người dùng giải quyết được một số vấn đề:

  • phản ánh tiến trình của quy trình hiện tại (hiển thị giai đoạn thực hiện quy trình; hiển thị các giá trị tính toán thu được trong quá trình vận hành thuật toán);
  • hiển thị lỗi cho người dùng để có thể sửa chữa;
  • đưa ra khuyến nghị;

Các loại tin nhắn:

  • Trình kết thúc, dừng việc thực thi chương trình và không cho phép chương trình tiếp tục cho đến khi người dùng đọc thông báo này và thực hiện một số hành động nhất định. Ví dụ: trên màn hình, người dùng sẽ thấy một câu hỏi mà họ cần trả lời Có hoặc Không. Cho đến khi người dùng phản hồi, chương trình sẽ không thực hiện thêm hành động nào;
  • thông báo giới thiệu được hiển thị đơn giản cho người dùng và cho phép làm việc tiếp theo (tức là được sử dụng trong chế độ cảnh báo).

Thông báo chấm dứt phải là thông báo lỗi và thông báo giới thiệu: khuyến nghị, thông báo về giai đoạn hiện tại của quy trình và hiển thị các giá trị được tính toán (in gỡ lỗi).

Tin nhắn giới thiệu nhằm mục đích cung cấp cho người dùng một số thông tin.

Người dùng cần phải làm quen với nó và có thể thực hiện một số hành động được mô tả trong thông báo này.

Điều rất quan trọng là người dùng thực sự đọc những tin nhắn này, vì vậy chúng chỉ nên chứa những thông tin quan trọng.

Thông báo kiểm tra và gỡ lỗi không nên được gửi tới người dùng, bởi vì sớm hay muộn anh ấy sẽ bắt đầu bỏ qua hoàn toàn mọi tin nhắn.

Trong khái niệm về giao diện được quản lý, cách tiếp cận đưa ra thông báo đã thay đổi phần nào. Bây giờ nó được gắn với hình thức mà nó bắt nguồn. Nó không còn có thể được đóng lại để văn bản hoàn toàn vô hình.

Bạn không thể bỏ ghim hộp thông báo khỏi biểu mẫu.

Cú pháp hàm:

Báo cáo (<Текст сообщения>, <Статус>)

Những thứ kia. tham số đầu tiên là chính văn bản.

Tham số thứ hai (trạng thái tin nhắn) là tùy chọn. Bạn có thể chỉ định giá trị cho trạng thái: Bình thường, Quan trọng, Rất quan trọng vân vân.

Giá trị này xác định biểu tượng nào sẽ nằm bên cạnh tin nhắn. Tuy nhiên, điều này chỉ hoạt động trong giao diện bình thường.

Trong khái niệm giao diện được quản lý, biểu tượng luôn là dấu chấm than và không thể ghi đè.

Thực tế là nếu một thông báo được tạo ra tại thời điểm ghi một phần tử thư mục thì tình huống sau có thể xảy ra.

Người dùng nhấp vào một nút Lưu và đóng, trong trường hợp này thông báo sẽ được hiển thị trong cửa sổ tương ứng (ở bên phải biểu mẫu).

Nhưng biểu mẫu sẽ đóng ngay lập tức và người dùng sẽ không thấy bất kỳ thông tin nào được hiển thị cho mình.

Do đó, trong khái niệm ứng dụng được quản lý, nên hiển thị các thông báo giới thiệu bằng cách sử dụng cái gọi là cảnh báo. Ví dụ về việc sử dụng sai hàm Báo cáo trình bày trong hình.

Tuy nhiên, chức năng Báo cáo có thể được sử dụng để hiển thị thông tin về một số lỗi nhất định, chẳng hạn như tại thời điểm đăng tài liệu.

Trong trường hợp này, hệ thống có thể được thông báo rằng không cần phải đóng biểu mẫu và hiển thị cho người dùng những lỗi xảy ra khi đăng tài liệu.

Chức năng Báo cáođược hỗ trợ đầy đủ trong Nền tảng 8.3. Nó có thể được sử dụng và nó sẽ hoạt động (cả ở phiên bản tệp và phiên bản máy khách-máy chủ).

Nhưng cũng cần lưu ý rằng chức năng Báo cáo Có một sự phát triển hơn nữa - đây là một lớp thông báo dành cho người dùng, cho phép, ngoài việc hiển thị một thông báo, còn liên kết nó theo ngữ cảnh với bất kỳ thành phần biểu mẫu nào.

Ví dụ: một thông báo lỗi có thể được gắn với một thành phần biểu mẫu, điều này rất rõ ràng đối với người dùng. Chúng ta sẽ quay lại xem xét vấn đề này sau. Chức năng Báo cáo có một tính năng thú vị.

Do đó, mã chương trình trong Nền tảng 8.3 có thể được thực thi ở cả phía Máy khách và phía Máy chủ.

Trong trường hợp này, mã chương trình máy khách chịu trách nhiệm tương tác với người dùng, tức là. Về phía khách hàng, các biểu mẫu sẽ được mở và các báo cáo sẽ được hiển thị.

Các tài liệu hộp thoại khác nhau cũng chỉ được hiển thị trên máy khách. Chúng không thể được thực thi trên máy chủ vì máy chủ không có khả năng tương tác với người dùng.

Nhưng chức năng Báo cáo có thể được thực thi cả ở phía Máy khách và phía Máy chủ. Trong trường hợp này, việc sử dụng phương pháp Báo cáo trên Máy chủ hoàn toàn không có nghĩa là thông báo sẽ được hiển thị trên Máy chủ, đơn giản là không có nơi nào để hiển thị chúng.

Điều này có nghĩa là nếu chúng ta hiển thị một thông báo trong thủ tục máy chủ bằng phương pháp này, chúng sẽ tích lũy trong một số bộ đệm và chúng sẽ chỉ hiển thị trên màn hình khi thủ tục máy chủ kết thúc và quay trở lại Máy khách.

Lúc này hệ thống sẽ yêu cầu dữ liệu từ bộ đệm và hiển thị trên màn hình.

Tính năng tương tự áp dụng cho lớp Tin nhắn cho người dùng. Hình vẽ minh họa một ví dụ về việc sử dụng phương pháp Báo cáo về phía Máy chủ.

Kết quả của việc sử dụng phương pháp Báo cáo về phía Máy chủ, các thông báo được hiển thị trên màn hình ở phía Máy khách.

Cần có một cơ chế cảnh báo để thông báo cho người dùng rằng “điều gì đó” đã xảy ra trong hệ thống và “điều gì đó” cần sự chú ý của người dùng. Cảnh báo được tạo bởi hai kịch bản:

  1. Bởi chính nền tảng khi ghi lại hoặc thay đổi một đối tượng một cách tương tác
  2. Bởi nhà phát triển khi gọi một phương thức trong mã .

Bản thân thông báo là một cửa sổ nhỏ thường xuất hiện ở góc dưới bên phải và thông báo về hành động đã hoàn thành. Trong vòng vài giây nó dần dần mờ đi và biến mất. Đồng thời, nếu bạn di con trỏ chuột lên thông báo thì nó sẽ không biến mất và bạn có thể đọc kỹ.

Ngoài ra, có thể truy cập thông báo trong khu vực tương ứng của bảng thông tin (nút “Lịch sử” ở phía dưới bên trái của mẫu đơn đăng ký trong tùy chọn giao diện “Phiên bản 8.2”).

Để tạo cảnh báo của riêng bạn, bạn phải sử dụng phương pháp bối cảnh chung ShowUserAlert(). Cú pháp của nó trước phiên bản 8.3.10 được trình bày dưới đây:

Hiển thị cảnh báo người dùng (<Текст>, <НавигационнаяССылка>, <Пояснение>, <Картинка>)

Tham số đầu tiên chứa văn bản sẽ được hiển thị trong thông báo.

Sau đó, với tư cách là tham số thứ hai, bạn có thể chuyển một liên kết điều hướng nhất định tới bất kỳ phần tử nào của cơ sở thông tin (phần tử tương ứng với văn bản tin nhắn của chúng tôi). Khi người dùng nhấp vào cảnh báo, liên kết sẽ được theo dõi.

Sử dụng tham số thứ ba, bạn có thể chuyển phần giải thích cho thông báo, tức là. một số mô tả mở rộng.

Bạn cũng có thể chỉ định một hình ảnh hiển thị trạng thái thông báo.

Cần lưu ý rằng tất cả các tham số này là tùy chọn. Dưới đây là ví dụ về cách sử dụng phương pháp này (trong bộ cấu hình và ở chế độ người dùng trong tùy chọn giao diện “Phiên bản 8.2”).

Trong phiên bản nền tảng 8.3.10.216 dành cho giao diện “Taxi”, cơ chế thông báo đã được cải thiện đáng kể nhằm cải thiện khả năng sử dụng của cả máy khách mỏng và máy khách web. Vì lý do này, các tham số truyền vào phương thức cũng đã thay đổi ShowUserAlert(). Bây giờ cú pháp trông như thế này:

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

Có thể thấy rằng tham số thứ hai, trước đây được gọi là Liên kết điều hướng, có tên mới Hành độngKhi được nhấp vào. Điều này là do thực tế là giờ đây không chỉ có thể gửi một chuỗi có liên kết điều hướng mà còn có thể gửi mô tả cảnh báo. Điều này được minh họa trong ảnh chụp màn hình bên dưới:

Như có thể thấy từ ví dụ, giờ đây chúng ta có khả năng xử lý theo chương trình một lần nhấp vào cửa sổ thông báo, theo logic cần thiết.

Tham số tiếp theo Trạng thái cảnh báo người dùng xuất hiện lần đầu tiên. Nó cho biết trạng thái của cảnh báo (Thông tin hoặc Quan trọng).

Trong trường hợp tùy chọn Quan trọng, nếu người dùng chưa trả lời tin nhắn thì sau khi nó bị ẩn khỏi màn hình, nó có thể được đọc qua Trung tâm thông báo (thông tin thêm về nó bên dưới). Trong trường hợp tùy chọn Thông tin, thông báo sẽ bị xóa mà không được lưu trữ trong trung tâm này. Hãy viết lại mã từ ví dụ của chúng tôi như sau:

Sau khi thực hiện lệnh, chúng ta có được chế độ xem gần đúng của cửa sổ ứng dụng:

Một nút có biểu tượng chuông đã xuất hiện trên thanh công cụ, nút này sẽ mở Trung tâm thông báo nêu trên. Nó tích lũy các cảnh báo quan trọng mới mà người dùng chưa phản hồi.

Nếu có bất kỳ cảnh báo nào ở Center, bên cạnh sẽ xuất hiện một chấm nhỏ màu cam để thu hút sự chú ý của người dùng. Người dùng có thể mở Trung tâm thông báo, đọc văn bản và thực hiện một số hành động nếu cần.

Từ Trung tâm, cảnh báo sẽ bị xóa bằng cách nhấp vào nút xóa, nhưng nếu có một số hành động liên quan đến cảnh báo thì ngay khi người dùng nhấp vào nội dung tin nhắn, nó cũng sẽ biến mất.

Và cuối cùng, tham số cuối cùng được thêm vào là Chìa khóa của sự độc đáo. Bạn có thể sử dụng nó để tìm cảnh báo hiển thị trên màn hình và thay đổi nó. Nếu không có cảnh báo nào với tham số này, một cảnh báo mới sẽ được hiển thị.

Như bạn có thể thấy, các khả năng mà phương pháp tương ứng mang lại thậm chí còn lớn hơn! Nhưng đây không phải là tất cả những thay đổi trong cơ chế thông báo.

Như bạn có thể đã nhận thấy, diện mạo của họ đã thay đổi. Cảnh báo giờ đây trông hiện đại và tiện dụng hơn nhưng không thể di chuyển xung quanh màn hình hoặc thay đổi kích thước. Xin lưu ý rằng trong ví dụ của chúng tôi, văn bản thông báo không hoàn toàn vừa với cửa sổ và người dùng chỉ có thể đọc đầy đủ bằng cách mở Trung tâm thông báo. Vì vậy, bạn không nên viết quá nhiều chữ trong văn bản thông báo.

Các tính năng mới cũng bao gồm hiển thị đồng thời tối đa ba cảnh báo trên màn hình.

Điều này kết thúc quá trình làm quen của chúng tôi với việc tạo ra các cảnh báo bằng phần mềm. Tuy nhiên, hãy nhớ rằng cảnh báo không chỉ được tạo bởi nhà phát triển theo chương trình mà còn bởi chính nền tảng tại thời điểm ghi tương tác hoặc thay đổi đối tượng. Và thực tế này thường gây ra sự hiểu lầm chủ yếu ở những người mới sử dụng: tại sao những cảnh báo dịch vụ này lại cần thiết, nhân tiện, không thể tắt được?

Hãy tưởng tượng tình huống đơn giản này: người dùng đã đặt một bộ lọc trong danh sách nào đó để thuận tiện. Giả sử anh ta làm điều này dưới dạng một danh sách trong thư mục Danh pháp. Sau một thời gian, tôi quyết định giới thiệu một phần tử mới có tên là “Ghế”, phần tử này không tương ứng với bộ lọc đã cài đặt trước đó. Nhập nó, viết nó ra và...? Và anh ấy không thấy nó trong danh sách. Người dùng bình thường sẽ làm gì? Tất nhiên, anh ta sẽ vào lần thứ hai, nhưng sẽ không nhìn thấy nữa. Tiếp theo có thể là lần thứ ba, thứ tư, thứ năm. Khi anh ấy cảm thấy mệt mỏi khi phải lặp đi lặp lại cùng một thứ, cuối cùng anh ấy sẽ hỏi bạn: mọi thứ sẽ đi về đâu?

Đây chính xác là lý do tại sao nền tảng hiển thị các cảnh báo dịch vụ này, thông báo cho người dùng rằng hành động của họ đã hoàn tất. Trong ví dụ của chúng tôi, tại thời điểm ghi tương tác, người dùng sẽ thấy thông báo sau:

Thông báo chấm dứt

Thông báo chấm dứt là những thông báo sẽ không cho phép hoạt động cho đến khi người dùng thực hiện một số hành động nhất định, tức là. cho đến khi nó xử lý tin nhắn.

Chúng ta sẽ nói về khả năng sử dụng thông báo chấm dứt trong Nền tảng 8.3 sau (gần đây họ đã cố gắng không sử dụng chúng, vì vậy ví dụ được xem xét phù hợp hơn với Nền tảng 8.2).

Có hai phương pháp đưa ra thông báo kết thúc Cảnh báoCâu hỏi. Cảnh báo khác với Câu hỏi bởi vì nó có một nút duy nhất ĐƯỢC RỒI.

Một câu hỏi có thể chỉ định các nhóm tùy chọn trả lời khác nhau ( Không thực sự, CóKhôngHủy bỏ, ĐƯỢC RỒI, đồng ýhủy, Lặp lạiHủy, Hủy bỏLặp lạiBỏ qua), được chỉ định bằng tham số.

Hãy hiển thị một số cảnh báo bằng cách sử dụng dòng (ví dụ: trong mô-đun ứng dụng được quản lý):

Cảnh báo(“Căn cứ bây giờ sẽ được mở”);

Để mở mô-đun ứng dụng được quản lý, hãy chọn đối tượng trong cây cấu hình Cấu hình, gọi menu ngữ cảnh và chọn mục Mở mô-đun ứng dụng được quản lý.

Trong trường hợp này, khi ứng dụng được khởi chạy, một cửa sổ theo chế độ sẽ được hiển thị. Một cửa sổ phương thức chồng lên tất cả các cửa sổ tồn tại trong ứng dụng. Không thể thực hiện thêm hành động nào cho đến khi chúng tôi xử lý cửa sổ này.

Chức năng này hoạt động theo cách tương tự Câu hỏi.

Cú pháp:
Câu hỏi(<ТекстВопроса>,<Кнопки>,<Таймаут>,<КнопкаПоУмолчанию>,<Заголовок>,
<КнопкаТаймаута>);

Chỉ có hai tham số đầu tiên được yêu cầu. Đối với tham số thứ hai, kiểu dữ liệu là hỗn hợp ( Chế độ đối thoạiCâu hỏi hoặc Danh sách giá trị). Tham số thứ ba ( <Таймаут> ) đặc trưng cho khoảng thời gian tính bằng giây trong đó hệ thống sẽ chờ phản hồi của người dùng.

Khi hết thời gian, cửa sổ câu hỏi sẽ đóng lại. Tham số tương tự ( <Таймаут> ) cũng có mặt trong hàm Cảnh báo.

Như một ví dụ về việc sử dụng chức năng Câu hỏi Bạn có thể sử dụng mã sau đây, được viết trong mô-đun ứng dụng được quản lý:

Xin lưu ý rằng các phương pháp này ( Cảnh báoCâu hỏi) không có sẵn trên Máy chủ. Và điều này là hợp lý, vì các phương thức giao diện không thể được thực thi trên Máy chủ không có người dùng.

Tính năng sử dụng modal windows trong Platform 8.3

Trong nền tảng 8.3, có các chế độ hoạt động có và không có phương thức. Cài đặt mặc định là Không sử dụng chế độ phương thức.

Trong trường hợp này, việc sử dụng các thông báo kết thúc là không thể. Nếu cần sử dụng các thông báo kết thúc (chức năng Cảnh báoCâu hỏi) bạn nên thay đổi giá trị của thuộc tính cấu hình TRÊN Sử dụng.

Cửa sổ phương thức được hiển thị ở trên cùng và các khối hoạt động với các cửa sổ khác cho đến khi hoàn thành các hành động với cửa sổ phương thức. Ngoài ra, việc thực thi mã chương trình dừng lại ở thời điểm cửa sổ này được gọi. Việc thực thi mã sẽ chỉ tiếp tục sau khi cửa sổ phương thức được đóng lại.

Thứ nhất, các vấn đề khi sử dụng cửa sổ phương thức phát sinh đối với ứng dụng di động. Thứ hai, trong trình duyệt, phương thức cửa sổ được triển khai bằng cách sử dụng các cửa sổ bật lên riêng biệt.

Cửa sổ bật lên thường bị tắt theo cài đặt trình duyệt mặc định. Người dùng buộc phải đặt quyền cho các cửa sổ này.

Các trình duyệt dành cho máy tính bảng và điện thoại trong hầu hết các trường hợp hoàn toàn không hỗ trợ cửa sổ bật lên.

Để thay thế các chức năng Câu hỏiCảnh báo phương pháp mới đã được phát triển: Hiển thịCâu hỏi, Hiển thịCảnh báo.

Các phương thức này cho phép bạn gọi một cửa sổ nhưng không dừng việc thực thi mã chương trình. Về mặt kỹ thuật, điều này đạt được bằng cách hình thành một cửa sổ giả bên trong cửa sổ cha. Cửa sổ giả không chồng lên cửa sổ cha. Sau khi mở một cửa sổ như vậy, mã tiếp tục được thực thi.

Việc nhận và xử lý các giá trị do người dùng nhập được thực hiện theo một quy trình riêng, được gọi khi đóng hộp thoại.

Cú pháp hàm Hiển thịCảnh báo:

Hiển thịCảnh báo(<ОписаниеОповещенияОЗавершении>, <ТекстПредупреждения>, <Таймаут>, <Заголовок>)

Tham số <ОписаниеОповещенияОЗавершении> (không bắt buộc)

Loại dữ liệu: Mô tảCảnh báo.

Chứa mô tả về quy trình sẽ được gọi sau khi đóng cửa sổ cảnh báo.

Cú pháp hàm Hiển thịCâu hỏi:

Hiển thịCâu hỏi(<ОписаниеОповещенияОЗавершении>, <ТекстВопроса>, <Кнопки>, <Таймаут>, <КнопкаПоУмолчанию>, <Заголовок>, <КнопкаТаймаута>)

Ba tham số đầu tiên là bắt buộc.

Dưới đây là một ví dụ về cách sử dụng chức năng.

Tin nhắn lớp tới người dùng

Sự tiện lợi cơ bản của lớp tin nhắn Tin nhắn cho người dùng có phải đây là một thông báo theo ngữ cảnh (không giống như các phương thức Cảnh báoCâu hỏi).

Tin nhắn có thể được gắn với một thành phần màn hình cụ thể. Đối tượng này cũng có sẵn trên Máy chủ.

Xin lưu ý rằng, trước tiên, đối tượng này phải được tạo. Ví dụ: Tin nhắn = MessageToUser mới;

Vì vậy, chúng tôi tạo ra một thể hiện của đối tượng này.

Thứ hai, bạn cần chỉ định nội dung tin nhắn trong một thuộc tính riêng biệt.

Thứ ba, về tài sản Cánh đồng Bạn có thể chỉ định thành phần biểu mẫu nào sẽ đính kèm thông báo này.

Chú ý! Để liên kết với trường biểu mẫu mong muốn, hãy chú ý đến việc khởi tạo các thuộc tính Đường dẫn đến dữ liệuKhóa dữ liệu. Đối với một tài liệu, khi đặt mã vào mô-đun đối tượng, bạn có thể viết:

Message.DataPath = “Đối tượng”;
Message.DataKey = ThisObject.Link;

Để mở mô-đun tài liệu, trong cửa sổ chỉnh sửa đối tượng (tài liệu), hãy chuyển đến tab Khác Nhấn nút Mô-đun đối tượng.

Đối với thử nghiệm, chúng tôi sẽ đặt mã vào mô-đun đối tượng của tài liệu.

Dưới đây là kết quả thu được ở chế độ người dùng cho Nền tảng 8.3.

Cần lưu ý rằng thông báo xuất ra sử dụng đối tượng hệ thống mới Tin nhắn cho người dùng trong trường hợp chung họ không chấm dứt. Những thứ kia. hệ thống sẽ cho phép người dùng tiếp tục các hành động tiếp theo mà không phản hồi các thông báo được hiển thị.

Nhưng trước hết, những thông điệp này khá đáng chú ý. Thứ hai, các thông báo thường được hiển thị cho người dùng tại thời điểm ghi lại các thành phần của thư mục hoặc xử lý tài liệu, tức là khi một số kiểm tra được thực hiện. Và nếu phát hiện lỗi, người dùng sẽ thấy những thông báo tương tự.

Theo đó, khi phát hiện ra lỗi, giao dịch sẽ bị hủy, tức là. viết một phần tử thư mục đều bị cấm, hoặc đăng một tài liệu đều bị cấm.

Do đó, một kiểu mô phỏng thông báo kết thúc xảy ra. Vì hành động bị hủy cho đến khi người dùng phản ứng với tin nhắn đã nhập nên sẽ không thể hoàn thành hành động, chẳng hạn như đăng tài liệu.

Tuy nhiên, mặt khác, có thể đóng tài liệu mà không cần tiến hành, không phản ứng với tin nhắn dưới bất kỳ hình thức nào. Do đó, những thông báo này cho người dùng sẽ không chấm dứt.

Thông báo trạng thái quá trình

Có một chức năng đặc biệt mà bạn có thể hiển thị tiến trình gần đúng của một quy trình.

Cú pháp: Tình trạng(<ТекстСообщения>, <Прогресс>, <Пояснение>, <Картинка>)
Tùy chọn:<ТекстСообщения>Và<Пояснение>– tùy chọn, loại – Đường kẻ.
Văn bản được hiển thị trên một thanh trạng thái đặc biệt.
<Прогресс>Tham số này cũng là tùy chọn, nhưng trực quan.
Kiểu: Con số. Giá trị chỉ báo tiến trình (từ 1 đến 100).
<Картинка>cũng là một tham số tùy chọn.
Khi xử lý bất kỳ sự kiện nào, các lệnh gọi định kỳ của một hàm như:

Trong trường hợp này, nhãn có thể thay đổi và giá trị của tham số Tiến trình có thể thay đổi.

Một hàm có thể được gọi từ một thủ tục (hàm) hoặc từ một số thủ tục. Bằng cách này bạn có thể theo dõi trạng thái thực hiện của quá trình.

Nếu bạn muốn tìm hiểu kỹ hơn về cơ chế thông báo, hãy dừng lại ngay và đọc bài viết mới của chúng tôi, Hiển thị tiến trình của các hoạt động dài hạn trong 8.3.10. Nó giải thích, không còn ở cấp độ của người mới bắt đầu, tất cả những điều phức tạp và cạm bẫy trong hoạt động của cơ chế này.

Chúng tôi đang kết thúc phần giới thiệu về các cách thông báo cho người dùng. Chúng tôi hy vọng rằng bạn hiểu được trong những tình huống nào nên sử dụng phương pháp này hay phương pháp khác.

Tôi muốn một lần nữa thu hút sự chú ý của bạn đến thực tế là nếu cấu hình của bạn (phiên bản 8.3.3+) liên quan đến việc sử dụng ứng dụng khách web thì:

  • ở cấp độ cấu hình, cài đặt chế độ phương thức phải được đặt thành “Không sử dụng”
  • Mã phải sử dụng các phương thức của mô hình tương tác người dùng không đồng bộ. Những phương pháp như vậy bắt đầu bằng những từ Trình diễn hoặc Bắt đầu.

Bạn có thể đọc thêm về việc từ chối sử dụng cửa sổ modal trong nền tảng 1C:Enterprise 8.3 trong bài viết cuối cùng của loạt bài này. Và chúng tôi tiếp tục và cuối cùng, bắt đầu nghiên cứu giao diện Taxi được chờ đợi từ lâu, giao diện này đã được đề cập nhiều lần trong tài liệu của chúng tôi.

Chào buổi chiều.

Hôm nay chúng ta sẽ nói về một điều đơn giản như tin nhắn cho người dùng.

TRONG 1C Phương thức 8 được di chuyển từ 7.7 - " Báo cáo(...)". Phương pháp này rất đơn giản, nó mở một cửa sổ tin nhắn nếu nó chưa mở và thêm văn bản của tin nhắn vào đó. Như trong 1C 7.7, nó có tham số thứ hai xác định biểu tượng đối diện với tin nhắn. Biểu tượng này xác định tầm quan trọng của thông điệp.

Thời gian trôi qua, chúng tôi đã có trong tay những hình thức có thể điều khiển được. Biểu mẫu được quản lý không có hộp thông báo duy nhất. Tuy nhiên phương pháp này vẫn được hỗ trợ. Trong giao diện mới, tin nhắn sẽ dính vào cửa sổ đang hoạt động. Khi tôi chuyển sang cửa sổ khác, các tin nhắn sẽ biến mất khỏi chế độ xem nhưng khi tôi quay lại, chúng lại xuất hiện. Trong một số trường hợp, điều này không thuận tiện, nhưng bạn không thể làm gì với nó; biểu mẫu được quản lý có nghĩa là không có cửa sổ chính để đính kèm tin nhắn.

Tuy nhiên, vì thông báo được liên kết với một biểu mẫu cụ thể nên điều này cho phép tác giả nền tảng mở rộng chức năng của một thông báo đơn giản. Bạn có thể đã thấy trong các cấu hình thông thường rằng các thông báo hiện đã được tích hợp, nhấp vào thông báo sẽ định vị chúng ta trên một trường cụ thể, nhấp đúp có thể mở một số thành phần khác của cơ sở dữ liệu.

Thực tế là hiện nay người ta thường không sử dụng phương thức ngữ cảnh chung "Báo cáo (...)", mà là đối tượng " Tin nhắn cho người dùng". Đối tượng này có sẵn ở mọi nơi, cả trên máy khách và máy chủ. Nó có một số thuộc tính và một số phương thức.

Nói chung, nếu bạn chỉ cần cung cấp cho người dùng một tin nhắn mà không có bất kỳ tương tác nào thì chỉ cần viết:



Message.Message();

Ba dòng này hoàn toàn giống với phương thức mà chúng ta đã biết và do đó việc sử dụng đối tượng này cho một thông báo như vậy là vô nghĩa.

Các lĩnh vực chính mở rộng khả năng của tin nhắn là:

  • Khóa dữ liệu
  • Cánh đồng

Khóa dữ liệu- một liên kết tới đối tượng cơ sở thông tin mà thông báo này liên quan hoặc một khóa bản ghi. Đó là những gì nó nói trong giấy chứng nhận. Nếu chúng ta chèn một liên kết đến một tài liệu hoặc sách tham khảo ở đây thì việc nhấp đúp sẽ mở đối tượng này, bất kể thông báo được hiển thị ở dạng nào. Theo đó, nếu thông báo xuất hiện dưới dạng tài liệu và khóa dữ liệu chứa liên kết đến nó thì biểu mẫu mới sẽ không mở được.

Điều vô nghĩa có thể xảy ra nếu chúng ta đưa ra một thông điệp dưới dạng một đối tượng chưa được viết ra. Trong trường hợp này chúng tôi có một liên kết trống. Nhưng nền tảng không bị mất và chỉ đơn giản là không mở bất cứ thứ gì, tức là. Bạn vẫn còn trong hình dạng bạn đã vậy.

Cánh đồng- đây là dòng ghi tên trường cần kích hoạt. Và không quan trọng hình thức của đối tượng khác mở ra hay chúng ta vẫn ở dạng hiện tại.

Đây là một ví dụ về cách nó hoạt động:

Giả sử trước khi viết một thành phần thư mục trong mô-đun biểu mẫu, chúng ta kiểm tra tính duy nhất của thuộc tính “Id” và nếu đã tồn tại thì sẽ hiển thị thông báo:


Nếu select.Next() Thì
Từ chối = Đúng;
Tin nhắn = MessageToUser mới;
Message.DataKey = Chọn.Liên kết;
Message.Field = "id";
Message.Text = "Phần có Id này đã tồn tại";
Message.Message();
endIf;

Trong ví dụ này, việc bấm đúp sẽ mở một thành phần thư mục có cùng Id và trường Id sẽ hoạt động và chứa gợi ý:

Có vẻ thuận tiện, chúng ta vừa có thể thay đổi Id của phần tử mới vừa chỉnh sửa phần tử cũ, rất dễ dàng truy cập bằng cách nhấp vào tin nhắn. Nhưng trường trong phần tử hiện tại không được kích hoạt, điều này với số lượng trường lớn có thể hữu ích hơn việc mở biểu mẫu của một đối tượng khác. Suy cho cùng, một đối tượng khác đã được ghi lại và đang được sử dụng, và khả năng xảy ra lỗi trong đó là rất nhỏ. Rất có thể chúng ta cần chỉnh sửa phần tử hiện tại.

Để thực hiện việc này, hãy thay đổi mã của bạn như sau:

//nếu có trùng lặp, mẫu sẽ chứa dữ liệu
Nếu select.Next() Thì
Từ chối = Đúng;
Tin nhắn = MessageToUser mới;
Message.DataKey = Object.Link;
Message.Field = "id";
Message.Text = "Phần có Id này đã tồn tại";
Message.Message();
endIf;

Sự khác biệt duy nhất là ở chỗ Khóa dữ liệu chúng tôi chuyển một liên kết đến phần tử mà chúng tôi đã mở. Thật không may, mã này không hoạt động: (Nhấp đúp sẽ mở một cửa sổ phương thức.

Để điều này hoạt động, có một điều cần lưu ý là bạn cần điền vào " Đường dẫn đến dữ liệu". Tôi không thể giải thích chính xác tại sao, tôi chỉ cần nhớ điều này. Mở một vật thể khác - đường dẫn dữ liệu không cần thiết, hãy đặt mình vào bên trong cái hiện tại - cần thiết. Kết luận - tốt hơn hết bạn nên điền đầy đủ, bạn không thể sai được. Thêm dòng vào mã:

Message.DataPath = "đối tượng";

Và mọi thứ đều đẹp:

Có một sắc thái nữa mà tôi muốn nói đến. Nếu “trường” bị bỏ trống thì việc định vị trên phần tử điều khiển sẽ không xảy ra và chú giải công cụ sẽ không xuất hiện bên cạnh nó. Nếu “trường” được điền không chính xác thì việc định vị sẽ xuất hiện trên toàn bộ biểu mẫu và chú giải công cụ sẽ xuất hiện nhưng ở cuối biểu mẫu mà không tham chiếu đến trường đầu vào thực.

Sắc thái tiếp theo là tin nhắn có phương thức - " SetData". Dựa trên đối tượng, nó điền vào các trường Khóa dữ liệuĐường dẫn đến dữ liệu. Sẽ thuận tiện hơn nhiều khi làm mọi thứ trong một dòng. Thông thường, ở dạng phần tử/tài liệu, chúng ta có một đối tượng. Điều duy nhất cần được viết trên máy chủ là:

Message.SetData(FormAttributValue("Đối tượng"));

Nhưng trong thủ tục được xác định trước của biểu mẫu Trước khi ghi trên máy chủ thực tế đã có một tham số Đối tượng hiện tại. Nhưng trên client chúng ta sẽ không nhận được đối tượng nào cả. Ngay cả trong mô-đun đối tượng (không phải ở dạng), bạn cần viết điều này:

Message.SetData(ThisObject);

Tóm lại, tôi muốn nói một số điều khó chịu về các biểu mẫu được quản lý. Điều này áp dụng cho cả TAXI và UV thông thường. Thực tế là danh sách giao diện được chuyển sang UV rất kém. Một bảng chứa 1000 hàng được vẽ rất chậm và trong trình duyệt web, có thể mất vài phút để mở. Điều này cũng áp dụng cho danh sách tin nhắn. Để thử nghiệm, hãy hiển thị 1000 tin nhắn và thử chuyển đổi giữa các cửa sổ. Hệ thống sẽ chết ngay lập tức. Hơn nữa, có thể thấy rõ cách hệ thống suy nghĩ về đầu ra của tin nhắn. Đi tới một cửa sổ có một loạt tin nhắn trông như thế này:

Nội dung của cửa sổ được hiển thị
- nhấp nháy mạnh và thanh thông báo xuất hiện
-mọi thứ đều bị treo và bạn quan sát cách cuộn trong cửa sổ tin nhắn di chuyển xuống

Những thứ kia. Như trước đây, không thể hiển thị nhật ký xử lý dài hạn trong bảng thông báo, chứa hàng nghìn bản ghi. Tôi khuyên bạn nên giới hạn bản thân ở 10 tin nhắn. Nhật ký phải được xuất ra trên một dòng nhiều dòng; nó được hiển thị gần như ngay lập tức, bất kể số lượng dòng. Tất nhiên, nếu bạn đang kiểm tra tính đầy đủ của các chi tiết của phần bảng, có 1000 hàng trong đó và có lỗi ở mỗi hàng, thì có, bạn sẽ phải đợi :) Mặc dù trong trường hợp này bạn có thể nghĩ về cách hiển thị thông báo riêng, ví dụ như trong trường tài liệu HTML.

Nhưng một số khía cạnh khi làm việc với đối tượng “Thông báo cho người dùng” vẫn chưa được đề cập trong đó. Ví dụ: viết gì vào trường "Trường" nếu tên

props khác với tên trường trên biểu mẫu. Những gì cần viết trong trường "Đường dẫn đến dữ liệu". Và cuối cùng, cái hay nhất là cách làm việc với phần bảng.

Tất cả các nghiên cứu được thu thập trong cơ sở dữ liệu thử nghiệm. Nó chứa một vài cuốn sách tham khảo và một tài liệu. Biểu mẫu tài liệu có một số nút, khi nhấp vào sẽ hiển thị nhiều loại thông báo khác nhau. Bây giờ hãy sắp xếp theo thứ tự từng thời điểm nhé!!!

Mọi thứ tôi viết dưới đây đã được thử nghiệm trên 1C:Enterprise 8.3 (8.3.7.1860). Không phải là mới nhất cho đến nay, nhưng tôi đang viết nó như hiện tại.

1. Chỉ là một tin nhắn.

Hãy bắt đầu với điều gì đó đơn giản: chỉ hiển thị một thông báo trong biểu mẫu mà không cần tham chiếu đến các trường, dữ liệu, v.v.

Tôi đã nói về điều này trước đó, nhưng vì tính toàn vẹn của bài viết, tôi sẽ viết lại. Đặc biệt với một số bổ sung.

Message1 = MessageToUser mới;
Message1.Text = "1. chỉ là một tin nhắn mà không có bất kỳ ràng buộc nào";
Message1.Message();

Mã này có thể được thực thi trên cả máy khách và máy chủ. Đây gần như là một dòng tương tự hoàn toàn của dòng:

Report("1.chỉ là một tin nhắn không có bất kỳ ràng buộc nào");

Tại sao giao tiếp không phải bằng thủ tục mà bằng một đối tượng lại đúng hơn. Thực tế là các thông báo được đưa ra trong một tác vụ nền (ví dụ: khi thực hiện một quy trình thông thường theo lịch trình) không được hiển thị ở bất kỳ đâu. Nhưng những gì được truyền đạt bởi đối tượng có thể

nhận trên máy chủ trong phiên máy khách bằng phương thức "GetMessagesToUser(...)" trong khi tác vụ nền vẫn hoạt động.

Ở đây tôi đã nói dối bạn một chút, tôi chưa bao giờ kiểm tra điều này. Rất có thể các thông báo do thủ tục “Báo cáo (...)” đưa ra cũng có thể được lấy từ tác vụ nền, nhưng có thể không. Tài liệu không nói về điều này, có nghĩa là chúng tôi

chúng tôi sẽ không làm điều đó.

Vì vậy, kết luận: bây giờ hãy luôn biến tin nhắn thành một đối tượng, đây là một hình thức tốt của nền tảng mới và hãy quên đi quy trình. Nếu bạn không thích viết một tin nhắn thành ba dòng, thì hãy viết quy trình của bạn trong một mô-đun chung và vui lòng. Nó thậm chí sẽ

giai điệu rất tốt, bởi vì Bạn sẽ nhận được một số lợi ích:

1. Chức năng mở rộng của đối tượng mới (chi tiết hơn bên dưới)

2. Khả năng hiển thị tin nhắn theo cách riêng của bạn. Ví dụ: trong trường văn bản hoặc tệp chứ không phải trong hộp thông báo.

3. Khả năng đăng nhập. Ví dụ: bạn có thể lưu tất cả thư trong cơ sở dữ liệu hoặc vào một tệp hoặc sao chép chúng vào nhật ký, để thực hiện việc này, chỉ cần sửa đổi quy trình mô-đun chung của bạn. Và sau đó cuộc tranh luận là chương trình này không có ý nghĩa gì đối với người dùng

không thông báo sẽ dừng lại mãi mãi.

2. Một thông báo liên quan đến một thuộc tính đối tượng.

Như tôi đã viết ở bài viết trước, để liên kết, bạn cần điền vào các trường “Field” và “PathKData”. Nhưng tôi đã không trình bày chi tiết chủ đề trong bài viết.

Vì vậy, ví dụ 2 trong tài liệu có thuộc tính tiêu đề “Khách hàng”, bạn cần định vị chính mình trên đó và báo cáo điều gì đó trong quy trình khách hàng. Đây là mã thực hiện điều này:

Message2 = MessageToUser mới;
Message2.Text = "2. Tin nhắn liên quan đến thuộc tính tiêu đề Máy khách";
Message2.Field = "Khách hàng";
Message2.DataPath = "đối tượng";
Message2.Message();

Và đây là những sắc thái:

1. Một trường không phải là một trường, bởi vì trong ví dụ của tôi, điều khiển được gọi là "FieldClient" và đối tượng prop là "Client". Dòng Message2.Field = "FieldClient" không hoạt động.

2. Đường dẫn đến dữ liệu không phải là “Object.Client”, mà chỉ đơn giản là “Object”, bởi vì Chúng ta cần hiển thị thông báo không phải ở dạng đối tác mà ở dạng tài liệu hiện tại. "Object.Client" - không hoạt động.

3. Đây là một ví dụ về làm việc với khách hàng. Trong quy trình máy chủ, nó hơi khác một chút. Điều này QUAN TRỌNG, đừng nhầm lẫn giữa việc ràng buộc các tin nhắn trên máy chủ và trên máy khách.

Tôi sẽ đưa ra thêm một ví dụ để bạn có thể cảm nhận được sự khác biệt giữa máy khách và máy chủ. Thực tế là chúng ta có sẵn phương thức đối tượng “SetData(...)”. Trình trợ giúp cú pháp cho biết "Đối tượng cần có

tin nhắn được liên kết." Điều này rất quan trọng. Ví dụ: hãy viết đoạn mã sau:

Message3 = MessageToUser mới;
Message3.SetData(Đối tượng);
Message3.Text = "3. Tin nhắn được liên kết với thuộc tính tiêu đề Number, nhưng nó sẽ không được liên kết, vì Đối tượng không phải là một đối tượng";
Message3.Field = "Số";
Message3.Message();

Mã này sẽ không hoạt động vì... trên máy khách, thuộc tính biểu mẫu “Đối tượng” hoàn toàn không phải là một đối tượng, mà là một thứ khó chịu nào đó, đây là những gì trình gỡ lỗi cho chúng ta biết về biến đối tượng:

Chính xác hơn, tất nhiên người dùng sẽ nhìn thấy thông báo, nhưng việc vỗ tay hai lần vào nó sẽ không dẫn đến điều gì.

Bây giờ hãy thử điều tương tự, nhưng trên máy chủ. Hãy tạo một thủ tục máy chủ "Report4OnServer()" và gọi nó từ máy khách

&Trên máy chủ
Thủ tục Báo cáo4OnServer()
Message4 = MessageToUser mới;
Message4.SetData(FormAttributValue("Đối tượng"));
Message4.Text = "4. Thông báo được liên kết với thuộc tính tiêu đề Tổ chức";
Message4.Field = "Tổ chức";
Message4.Message();
Kết thúc thủ tục

Mọi thứ sẽ ổn ở đây, nhận xét duy nhất về mã là biến “đối tượng” phải được chuyển đổi từ “FormDataStructure” thành một đối tượng thực bằng cách gọi thủ tục “FormAttributValue(...)”.

Kết luận: phương thức "SetData(...)" chỉ có thể được sử dụng trên máy chủ, bởi vì chỉ trên máy chủ mới có thể nhận được một đối tượng.

3. Thông báo liên kết với thuộc tính phần dạng bảng của đối tượng

Tôi đã bỏ qua chủ đề này trong bài viết trước. Biết các sắc thái được mô tả ở trên, sẽ không có vấn đề gì ở đây. Đây là mã khách hàng đang hoạt động:

Message5 = MessageToUser mới;
Message5.Text = "5. Số lượng trường dòng 1";
Message5.Field = "Sản phẩm.Số lượng";
Message5.DataPath = "đối tượng";
Message5.Message();

Mặc dù các sắc thái gần như giống nhau nhưng sự lặp lại là bài học của mẹ:

1. Trường này không phải là tên của điều khiển; điều khiển của tôi có tên là “ProductsQuantity”, không chỉ là “Quantity”. "Sản phẩm" là tên của phần dạng bảng, không phải thành phần điều khiển được liên kết với phần dạng bảng.

2. Đường dẫn đến dữ liệu là một đối tượng, chỉ là một đối tượng.

3. Số dòng trong ngoặc vuông - đánh số từ đầu và đây là số dòng chứ không phải mã định danh dòng trong thu thập dữ liệu biểu mẫu. Khi dịch chuyển dòng hoặc xóa chúng, mã định danh được chỉ định khi mở biểu mẫu sẽ được lưu và số dòng được tính toán lại.

Đó là nó cho thời gian này. Tôi sẽ đề cập ngay đến những chủ đề chưa được tiết lộ mà tôi sẽ viết sau:

1. Cách liên kết các tin nhắn không phải với đối tượng hiện tại mà với bất kỳ đối tượng nào để khi bạn nhấp đúp, một biểu mẫu khác sẽ mở ra

2. Cách liên kết tin nhắn với một biểu mẫu không có đối tượng

3. Cách nhận thông báo về trạng thái thực thi của một tác vụ nền dài

4. “Khóa dữ liệu” là gì và khi nào bạn nên sử dụng nó?

Dưới đây là cơ sở dữ liệu có ví dụ, trong đó đi tới tài liệu và nhấn lần lượt ba nút. Mã trong mô-đun biểu mẫu tài liệu.

Trong bài chúng ta: tạo cơ sở, tạo xử lý, tạo biểu mẫu.

Bây giờ chúng tôi sẽ cho bạn biết 5 phương thức gửi tin nhắn từ 1C “Xin chào, thế giới!”

Không phải ai cũng biết về ít nhất hai phương pháp :)

Viết văn bản chương trình như thế nào và ở đâu?

Chuyển sang tab của cửa sổ có dạng “Mô-đun”. Bạn sẽ đảm bảo rằng bạn đã có sẵn một số văn bản ở đó (“Thủ tục…”).

Nếu không có văn bản thì:

  • Trong ứng dụng khách dày, bạn đã thêm biểu mẫu để xử lý không chính xác, hãy lặp lại từ đầu
  • Bạn quên thêm nút trong máy khách tối thiểu, hãy lặp lại từ đầu.

Bên trong văn bản có một dòng:

// Chèn nội dung của trình xử lý

Nhiệm vụ của bạn là xóa dòng này và nhập nội dung chương trình vào vị trí của nó. Sau đó, lưu quá trình xử lý và mở nó ở chế độ doanh nghiệp.

Khi bạn nhấp vào Thực thi, các hành động bạn đã nhập sẽ được thực hiện.

Bây giờ chúng ta hãy chuyển sang các phương pháp!

Tin nhắn trong 1C, phương pháp 1 - dễ nhất

Vì vậy, bạn nên thay thế văn bản “// Chèn nội dung của trình xử lý.” viết văn bản chương trình.

Report("Xin chào thế giới!");

Thực ra chỉ có vậy thôi :)

Thông báo ở chế độ Doanh nghiệp trong máy khách dày sẽ ở cuối cửa sổ 1C, trong máy khách mỏng - ở bên phải cửa sổ xử lý.

Đây là phương pháp đơn giản nhất, được các lập trình viên sử dụng rất rộng rãi.

Tin nhắn trong 1C, phương pháp 2 - cũng đơn giản

Alert("Xin chào thế giới!");

Thực ra chỉ có vậy thôi :)

Thông báo ở chế độ Doanh nghiệp ở cả hai tùy chọn máy khách sẽ xuất hiện trong cửa sổ bật lên.

Tin nhắn trong 1C, phương pháp 3 - chỉ xuất hiện trong 1C phiên bản 8.2

ShowUserAlert("Xin chào thế giới!","Xin chào thực sự!");

Phương pháp này chỉ xuất hiện trong phiên bản 1C 8.2. Đây là cửa sổ bật lên ở góc dưới bên phải màn hình và sẽ biến mất theo thời gian.

Tin nhắn trong 1C, phương pháp 4 - lập trình viên

Ném ngoại lệ "Xin chào thế giới!";

Có thể xảy ra lỗi khi thực hiện bất kỳ chương trình nào. Đôi khi lỗi này có thể được tính toán trước (ví dụ: bạn cần tính a = b/c và tại thời điểm thực hiện chương trình, người ta biết rằng c bằng 0).

Trong trường hợp này, có một cách để báo lỗi bằng phương pháp này.

Thông báo ở dạng 1C, phương pháp 5 - công nghệ tiên tiến, chỉ dành cho cấu hình tiêu chuẩn

Mục đích chung.ReportError("Xin chào thế giới!");

Lập trình viên 1C không chỉ phải biết các phương pháp lập trình có sẵn trong nền tảng 1C mà còn cả các phương pháp lập trình có sẵn trong cấu hình tiêu chuẩn.

Những người mới bắt đầu, khi cố gắng thêm bất kỳ cấu hình tiêu chuẩn nào, hãy bắt đầu phát minh lại bánh xe.

Đây là một ví dụ hoàn hảo. Tính năng này có trong nhiều cấu hình tiêu chuẩn (chỉ dành cho máy khách dày!). Có vẻ như kết quả tương đương với hành động của phương pháp 1.
Tuy nhiên, không - trong một số cấu hình (ví dụ như bộ khởi động mềm), các thông báo lỗi sẽ bị trùng lặp trong nhật ký. Ngoài ra, với các cài đặt bổ sung, thông báo trông hoàn toàn khác.

Vì vậy, bây giờ bạn có thể cảm thấy như một lập trình viên thực sự!

Đây chính xác là lập trình 1C. Tất nhiên, lập trình thực sự phức tạp hơn nhiều và đòi hỏi nhiều kiến ​​thức, nhưng giờ đây bạn đã có ý tưởng chung.

Chúc may mắn!

tái bút Phiên bản pdf của bài học có ảnh chụp màn hình để bạn dễ dàng trải nghiệm hơn.

P.P.S. Bài học bao gồm 5 video với các ví dụ về tạo nền tảng cho lập trình, tạo xử lý, lập trình trên client dày và mỏng.