Pavel Chistov. Dịch vụ web (SOAP), dịch vụ HTTP, oData (dịch vụ REST tự động) Dịch vụ http 1c khóa học mới

Dịch vụ web trong 1C 8.3 và 8.2 là một đối tượng siêu dữ liệu cho phép bạn tích hợp nền tảng 1C với các hệ thống thông tin khác bằng kiến ​​trúc hướng dịch vụ (SOA).

Hãy xem việc tạo và định cấu hình ví dụ về dịch vụ web cho phép trao đổi hai chiều giữa cơ sở dữ liệu 1C 8 bằng SOAP.

Đầu tiên chúng ta hãy nhìn vào tab Khác:

Nhận miễn phí 267 bài học video trên 1C:

  • Trong lĩnh vực URI không gian tên mô tả vị trí của mã định danh tài nguyên.
  • — mô tả về các loại mà dịch vụ web trong tương lai có thể hoạt động.
  • Tên tập tin xuất bản- tên của tệp *.1CWS sẽ được đặt trên máy chủ web

Cấu trúc của dịch vụ web 1C

Hãy xem cấu trúc của dịch vụ web:

DataExchange chính là dịch vụ web. UnloadData, LoadData - về cơ bản là các hoạt động mô tả các hàm có thể được gọi thông qua giao thức SOAP. ExchangePlanName, NodeCode, v.v. — các giá trị được truyền tới dịch vụ web.

Mô-đun dịch vụ web

Mô-đun này chứa điều thú vị nhất - mô tả các chức năng của dịch vụ web trong tương lai. Trong trường hợp của chúng tôi, chúng tôi mô tả chức năng cho phép bạn nhận và gửi dữ liệu bằng cơ chế trao đổi 1C tiêu chuẩn. Bởi vì Việc trao đổi diễn ra giữa một nền tảng - 1C, sau đó chúng không yêu cầu tuần tự hóa dữ liệu.

Kiểm tra hoạt động của dịch vụ 1C http trên máy chủ web

Chú ý! Bây giờ khóa học cũng được tổ chức vào buổi tối từ 18:30 đến 21:30 theo hình thức hòa nhập.

Trong khóa học, bạn sẽ đạt được các kỹ năng thực tế trong việc sử dụng các cơ chế sau của nền tảng 1C:Enterprise 8:

  • Dịch vụ WEB (giao thức SOAP)
  • định dạng JSON
  • Giao diện oData (dịch vụ REST tự động)
  • dịch vụ HTTP

QUAN TRỌNG!!! Khóa học được thiết kế dành cho các lập trình viên có kỹ năng làm việc với cơ chế XDTO hoặc đã hoàn thành khóa học trước đó.

Mô tả và chương trình khóa học:

Giá khóa học WEB bao gồm:

  • Tất nhiên là 2 tuần, 2 buổi hội thảo trực tuyến với giáo viên
  • chứng chỉ Trung tâm Đào tạo 1C số 3 (có đào tạo thực hành)

Chi phí của khóa học toàn thời gian bao gồm:

  • 2 ngày từ 10:00 đến 17:00 hoặc 4 giờ chiều từ 18:30 đến 21:30
  • ghi chú, tai nghe
  • bữa trưa, cà phê nghỉ giải lao
  • truy cập vào tài liệu video cập nhật trong 2 năm sau khi hoàn thành khóa học
  • chứng chỉ 1C-Trung tâm Đào tạo số 3

Hình thức đào tạo

đào tạo WEB

Định dạng này là gì:Hình thức đề xuất kết hợp nhiều ưu điểm của việc học từ xa với thành phần gặp mặt trực tiếp được thể hiện bằng tài liệu video và tư vấn trực tuyến.
Khóa học WEB bao gồm các video, bài tập thực tế và hội thảo trực tuyến với giáo viên. Tất cả tài liệu khóa học đều có sẵn 24/7 qua Internet để bạn có thể học vào thời gian phù hợp với mình. Khóa học được chia thành các lớp. Trong giờ học, các tài liệu về chủ đề hiện tại sẽ được nghiên cứu, các buổi hội thảo được thực hiện và các câu hỏi được đặt ra cho giáo viên. Vào cuối mỗi bài học, một hội thảo trực tuyến được tổ chức, trong đó giáo viên xem xét tất cả các câu hỏi nhận được, các lỗi điển hình và giải thích giải pháp đúng. Bản ghi của hội thảo trên web có sẵn trong cổng thông tin. Bằng cách này, nhiều lớp học được tổ chức lần lượt. Cuối cùng, có một tác phẩm độc lập cuối cùng và một hội thảo trực tuyến cuối cùng.

Khoảng thời gian: 2 tuần

Định dạng này là gì:


Khoảng thời gian:16 giờ học

Định dạng này là gì:Khóa học toàn thời gian là một hình thức kết hợp tất cả các ưu điểm của đào tạo toàn thời gian, đào tạo từ xa và đào tạo cá nhân. Các lớp học được tổ chức trong một lớp học được trang bị đầy đủ, bạn độc lập nghiên cứu tài liệu khóa học (video từng bước) và thực hiện các buổi hội thảo. Đồng thời, trong số khán giả có một giáo viên sẵn sàng trả lời các câu hỏi và giúp giải quyết các vấn đề thực tế bất cứ lúc nào, cũng như kiểm tra tính đúng đắn của việc thực hiện chúng.
Ưu điểm – sự tư vấn riêng của giáo viên về các câu hỏi của bạn, tốc độ hoàn thành tài liệu phù hợp với cá nhân bạn.
Tất cả điều này cung cấp một nghiên cứu sâu hơn về tài liệu khóa học.
Khóa học này có thể được thực hiện từ nơi làm việc của bạn với đầy đủ tác dụng của sự hiện diện của giáo viên nơi học sinh đang ở! Nếu cơ hội này làm bạn quan tâm, hãy gọi cho chúng tôi!

Khoảng thời gian:16 giờ học

Nếu bạn không hiểu gì về công nghệ WEB và những từ như json, get, post, v.v., điều đó không có ý nghĩa gì với bạn và bạn chỉ là một người dùng cuồng nhiệt của 1C, nhưng bạn cần kết bạn với 1C với ứng dụng của bên thứ ba hoặc một trang web thì bài viết này là dành cho bạn.

Hãy để tôi bắt đầu với thực tế là tôi đã từng bị buộc phải tự mình xử lý các dịch vụ Web. Sau đó, bằng cách nào đó, từng chút một, tôi đã nắm vững được vấn đề này và hiểu được cần nhấn cái gì và ở đâu để mọi thứ hoạt động. May mắn thay, cấu hình mà tôi phải làm việc đã chứa đầy các dịch vụ Web và có thể xem qua và thực hiện điều đó bằng cách tương tự, và tôi cũng đã tìm được đủ bài viết về vấn đề này trên Internet. Và vì vậy, bằng cách sử dụng các ví dụ (đối với tôi đây là cách học tốt nhất), tôi đã nắm vững vấn đề này và bây giờ chúng không còn khiến tôi sợ hãi nữa.

VÌ THẾ. Nhiệm vụ chính của bất kỳ sự tích hợp nào, có thể là CD, dịch vụ Web hoặc dịch vụ HTTP, là truyền thứ gì đó từ nơi nào đó, thực hiện điều gì đó với nó và trả về phản hồi. Đây là định dạng mà chúng tôi sẽ xem xét công nghệ mới.

Trong cây siêu dữ liệu, các dịch vụ HTTP nằm ở nhánh General:

Dịch vụ HTTP mới được thêm vào theo cách tương tự như bất kỳ đối tượng siêu dữ liệu nào khác. Tên và từ đồng nghĩa như bạn muốn. Ở đây, chỉ có “URL gốc” là quan trọng - trên thực tế, đây là mã định danh của dịch vụ HTTP trong cơ sở dữ liệu này, tức là. chính xác những gì bạn viết trong thuộc tính này, bạn sẽ chuyển giao cho nhà phát triển bên thứ ba (hoặc chính bạn) dưới dạng liên kết đến dịch vụ.

Tôi không biết ở đây có thể viết bằng tiếng Cyrillic hay không, nhưng để không bị cười nhạo trong thế giới tiến bộ, hãy viết bằng tiếng Latinh).

Bản thân thuộc tính Mẫu rất quan trọng ở đây:

Bằng cách sử dụng mẫu, sau này bạn có thể tham khảo dữ liệu đã được chuyển cho bạn. VẬY: tất cả dữ liệu bạn muốn nhận từ bên ngoài có thể được chia thành 2 khối - bắt buộc và tùy chọn.

Chúng tôi đẩy dữ liệu/tham số cần thiết vào mẫu, vì vậy nếu người truy cập dịch vụ không điền chúng, dịch vụ sẽ ưu tiên phát sinh lỗi và khi phát triển văn bản của mô-đun xử lý, bạn sẽ chắc chắn rằng dữ liệu này Là những. Cách thực hiện: tại dòng Mẫu trong ngoặc nhọn “()”, xen kẽ với dấu “/”, chúng ta viết tên các biến. Ví dụ: chúng tôi chắc chắn cần một bài viết - sau đó chúng tôi viết /(artikul). Nếu chúng ta cần lấy bài viết, tên và tên người dùng, chuỗi mẫu sẽ trông như thế này: /(artikul)/(name)/(user), v.v. Mỗi tham số trong văn bản của mô-đun xử lý có thể được lấy như sau: Yêu cầu.ParametersURL["<имя параметра>"]. Nếu không có cái nào bắt buộc thì mẫu sẽ trông như thế này: /*.

Dữ liệu tùy chọn mà chúng tôi muốn nhận thông qua dịch vụ KHÔNG được mô tả trong mẫu. Khi xây dựng link truy cập dịch vụ, chúng được mô tả ở cuối link sau dấu “?”, cách nhau bằng ký tự dấu “&” và có cấu trúc<имя параметра>=<значение параметра>. Trong văn bản của mô-đun xử lý, chúng có thể được truy cập bằng cấu trúc sau: request.RequestParameters.Get("<имя параметра>"). NHƯNG: điều quan trọng cần nhớ là vì chúng không bắt buộc nên chúng có thể không tồn tại; do đó, chúng tôi kiểm tra giá trị cho Không xác định.

Tiếp theo, chúng ta thêm một phương thức mới cho mẫu của mình. Thuộc tính phương thức HTTP rất quan trọng ở đây. Có một số lượng lớn trong số đó, NHƯNG chúng tôi sẽ không đi sâu vào chi tiết. Để thực hiện bất kỳ nhiệm vụ nào của bạn, bạn chỉ cần 2: GET và POST.

Cách chọn: Nếu những gì chúng tôi mô tả ở hai đoạn trước là đủ cho công việc của bạn, tức là. Bạn có thể lấy tất cả dữ liệu bạn cần bằng cách sử dụng các tham số bắt buộc và tùy chọn của chính yêu cầu, sau đó chúng tôi thực hiện GET. Trong trường hợp này, trong bất kỳ trình duyệt nào, nếu bạn nhập chính xác vào thanh địa chỉ, bạn sẽ thấy kết quả dịch vụ HTTP của mình - LỢI NHUẬN! Nếu đột nhiên để dịch vụ của bạn hoạt động, bạn cần dữ liệu ở dạng phức tạp hơn (ví dụ: xml hoặc thứ gì khác), thứ gì đó không thể nhét vào thanh địa chỉ đơn giản, thì hãy lấy POST. Mặt khác, việc kiểm tra dễ dàng thông qua thanh địa chỉ trình duyệt, như với GET, sẽ không hoạt động, nhưng trên Internet, bạn có thể dễ dàng tìm thấy một số trang web nơi bạn có thể kiểm tra dịch vụ bằng phương thức POST (ví dụ: trang https:/ /www.hurl.it). Nếu phương thức POST được chọn, thì ngoài URL (địa chỉ), yêu cầu còn có phần nội dung để bạn có thể nhét bất cứ thứ gì bạn muốn và trong trình xử lý phương thức, hãy truy cập nó thông qua cấu trúc request.GetBodyAsString(). Bất kỳ mẫu nào cũng có thể có cả phương thức GET và POST. Họ sẽ có các trình xử lý khác nhau tương ứng và 1C, tùy thuộc vào cách gửi yêu cầu, sẽ chọn phương thức này hay phương thức khác.

Trình xử lý dịch vụ HTTP là một hàm luôn trả về giá trị kiểu HTTPServiceResponse, được xây dựng bởi hàm tạo New HTTPServiceResponse(<КодСостояния>). <КодСостояния>- đây là một con số, để không phải lo lắng về việc chọn nội dung cần viết, chúng tôi viết: 200 - nếu mọi thứ đều ổn và bạn trả về một giá trị logic nào đó, 400 - nếu có lỗi và bạn trả về mô tả lỗi . Loại này có nhiều phương thức khác nhau (bạn có thể đọc nó trong trợ lý cú pháp, mọi thứ đều được viết rõ ràng ở đó). Một lần nữa, bạn luôn có thể trả về mọi thứ bạn cần dưới dạng chuỗi - phương thức SetBodyFromString(). (một mẹo nhỏ: nếu bạn trả về html và muốn trình duyệt hiển thị đẹp mắt trên màn hình khi bạn nhập địa chỉ dịch vụ của mình vào thanh địa chỉ, trong thuộc tính Headings phản hồi hãy viết: Answer.Headers.Insert("Content-Type ","text/html; charset=utf-8") - do đó bạn chỉ ra rằng đây không chỉ là một tập hợp các ký tự mà còn là HTML và nó phải được hiển thị tương ứng)

Sau khi bạn đã hoàn tất mọi thứ, dịch vụ HTTP cần được xuất bản. Việc này được thực hiện trên máy tính có cài đặt máy chủ web (tôi sẽ không viết về cài đặt, có rất nhiều bài viết) thông qua menu:

Quản trị - Xuất bản trên máy chủ web.

Có một tab Dịch vụ HTTP. Chọn các hộp và nhấp vào "Xuất bản"

Công ty " 1C» đang tích cực phát triển nền tảng 1C:Enterprise và bổ sung thêm các tính năng mới sau mỗi lần phát hành. Sau khi bắt đầu phát triển nhánh 8.3, rất nhiều sản phẩm mới bắt đầu xuất hiện và do bận rộn liên tục nên bạn không có thời gian để thử hết. Cách đây không lâu tôi cách phát triển một ứng dụng di động chính thức(vâng, trên "1C:Enterprise") và hôm nay tôi muốn nói về việc tạo dịch vụ HTTP bằng nền tảng.

Khả năng phát triển dịch vụ HTTP xuất hiện như một phần của cấu hình trong phiên bản 8.3.5 . Trong thời gian này, thành phần này đã được cập nhật nhiều lần và ngày nay bạn hoàn toàn có thể sử dụng nó mà không sợ xuất hiện các lỗi “trẻ con”. Tôi chưa có cơ hội sử dụng chức năng của nền tảng 1C:Enterprise để tạo các dịch vụ http trong điều kiện thực tế, cho đến nay kinh nghiệm của tôi chỉ giới hạn ở các dự án giáo dục. Tuy nhiên, tôi thấy triển vọng sử dụng cơ chế dịch vụ http ở một trong những dự án đang hoạt động. Trong loạt ghi chú ngắn này, tôi sẽ cố gắng đưa ra những ví dụ điển hình về việc sử dụng dịch vụ http trong cấu hình cho nền tảng " 1C:Doanh nghiệp».

Tạo một dịch vụ http đơn giản trong 1C:Enterprise 8.3

Hôm nay chúng ta sẽ xem xét một ví dụ về dịch vụ http đơn giản nhất, sau đó chúng ta sẽ cải thiện và phức tạp hóa nó. Mục đích của bài học là hiểu và trải nghiệm sự đơn giản của sự sáng tạo dịch vụ http dựa trên nền tảng 1C:Enterprise 8.3.

Hãy bắt đầu với việc xây dựng vấn đề. Dịch vụ được tạo trong khuôn khổ ghi chú chỉ có thể thực hiện hai việc: chấp nhận yêu cầu GET và trả về phản hồi ở định dạng JSON. Nhiệm vụ này rất đơn giản và việc thực hiện điều gì đó tương tự trong PHP/ASP .NET chỉ là vấn đề với một vài dòng mã. Nhìn về phía trước, tôi sẽ nói rằng trong 1C:Enterprise chúng tôi sẽ cần số tiền tương tự (được thôi, đừng cười vào những điều kỳ quặc của nền tảng 1C).

Chúng ta sẽ nói về các trường hợp sử dụng của dịch vụ http trong một bài đăng riêng, nhưng hiện tại chúng ta sẽ chỉ tạo một dịch vụ http mới. Để thuận tiện, chúng tôi sẽ tạo một cơ sở thông tin mới với cấu hình trống. Hãy thêm một hệ thống con vào nó mà chúng ta sẽ gọi là “ Kiểm tra dịch vụ HTTP" Bây giờ chúng ta hãy mở phần “Chung” trong cây cấu hình và tìm nhóm “ dịch vụ HTTP» và thêm dịch vụ web đầu tiên. Trong cửa sổ tạo dịch vụ mới, hãy điền vào các trường:

  • Tên- Dịch vụ Web đầu tiên;
  • Từ đồng nghĩa- Dịch vụ web đầu tiên;
  • URL gốc- Dịch vụ của chúng tôi;

Hãy chú ý đến lĩnh vực này " URL gốc" Tên được chỉ định ở đây sẽ được sử dụng khi truy cập dịch vụ. Không nên có khoảng trắng ở đây và không nên sử dụng bảng chữ cái Cyrillic. Chúng tôi đã sắp xếp vấn đề này rồi đi tới phần “ Hệ thống con" và thêm dịch vụ http vào hệ thống con duy nhất hiện có.

Bước tiếp theo là mô tả mẫu URL. Hãy chuyển đến tab thích hợp và thêm một mẫu có tên " Hiển thị danh sách dịch vụ" Trong Property Inspector chúng ta sẽ tìm thấy thuộc tính " Vật mẫu"và viết vào đó" /danh sách" Bằng cách này, chúng tôi sẽ thiết lập đường dẫn tương tác với dịch vụ http sẽ diễn ra. Mẫu có thể chứa các ký tự đặc biệt cho phép bạn chỉ định các tham số được truyền (cả bắt buộc và không), nhưng đối với ví dụ đầu tiên, chúng tôi sẽ giới hạn ở một " /danh sách" Khi đi theo con đường này, phương pháp duy nhất của chúng tôi sẽ hoạt động và cung cấp cho khách hàng một bộ dữ liệu.

Tuyệt vời, đã có mẫu rồi, bây giờ đến phần phương pháp. Hãy thêm vào mẫu của chúng tôi, chúng tôi sẽ gọi getServicesList. Trong trình kiểm tra thuộc tính, chúng ta cần chỉ định phương thức HTTP. Giá trị được chỉ định xác định loại yêu cầu nào mà phương thức của chúng tôi sẽ đáp ứng. Nhiệm vụ hiện tại có thể thực hiện được bằng cách sử dụng “ LẤY”.

Dịch vụ của chúng tôi gần như đã sẵn sàng, tất cả những gì còn lại là đăng ký trình xử lý sự kiện cho phương thức được xây dựng getServicesList. Bạn có thể tạo trình xử lý sự kiện thông qua trình kiểm tra thuộc tính. Trong phần thân của trình xử lý, chúng tôi viết:

Hàm OutputIndexgetServicesList(Request) ArrayServices = Mảng mới; Mảng Services.Add(Cấu trúc mới("tiêu đề, mô tả", "Dịch vụ số 1", "Mô tả dịch vụ số 1")); Mảng Services.Add(Cấu trúc mới("tiêu đề, mô tả", "Dịch vụ số 2", "Mô tả dịch vụ số 2")); Mảng Services.Add(Cấu trúc mới("tiêu đề, mô tả", "Dịch vụ số 3", "Mô tả dịch vụ số 3")); Mảng Services.Add(Cấu trúc mới("tiêu đề, mô tả", "Dịch vụ số 4", "Mô tả dịch vụ số 4")); EntryJSON = EntryJSON mới; RecordJSON.SetString(); WriteJSON(WriteJSON, ArrayServices); StringForResponse = JSONRecord.Close(); Phản hồi = HTTPServiceResponse mới (200); Response.Headers.Insert("Content-type", "application/json; charset=utf-8"); Response.SetBodyFromString(StringForResponse, TextEncoding.UTF8, UseByteOrderMark.NotUse); Trả lời Trả lời; Chức năng cuối cùng

Chúng ta hãy xem đoạn mã trên chi tiết hơn một chút. Lúc đầu tôi mô tả một mảng bao gồm các cấu trúc. Chúng tôi cần mảng này hoàn toàn để trình diễn. Chúng tôi sẽ chuyển đổi tất cả nội dung của nó thành JSON và cung cấp cho khách hàng. Đang khởi tạo một đối tượng thuộc loại Mục nhập JSON. Hãy chắc chắn gọi phương thức SetString(), bởi vì chúng ta cần chuyển văn bản JSON thành một biến chuỗi. Tiếp theo chúng ta gọi phương thức toàn cục ViếtJSON(), mà chúng ta truyền vào một đối tượng thuộc loại Mục nhập JSON và mảng cần chuyển đổi. Tiếp theo ta lấy kết quả vào biến “ LineForResponse" và chuẩn bị phản hồi HTTP.

Để đáp lại, chúng tôi thêm vào (xem phương pháp " SetBodyFromString") JSON kết quả. Thế là xong, mã demo đã sẵn sàng và bạn có thể chuyển sang phần thử nghiệm.

Xuất bản dịch vụ HTTP trong 1C:Enterprise 8.3

Hãy xuất bản dịch vụ HTTP đã tạo để kiểm tra kết quả công việc đã thực hiện. Đối với thử nghiệm đơn giản nhất, máy chủ web phải được cài đặt trên hệ thống của bạn. Đối với tôi vai trò của một dịch vụ web được thực hiện bởi Apache. Chúng tôi sẽ bỏ qua các bước cần thiết để cài đặt/cấu hình máy chủ web và chuyển sang vấn đề xuất bản dịch vụ HTTP.

Để xuất bản, bạn phải vào menu “Quản trị” và chọn “ Xuất bản lên máy chủ web" Trong cửa sổ hiện ra, điền vào:

  • Tên là tên của giải pháp của chúng tôi. Nó sẽ được sử dụng trong URL khi truy cập vào bảo mật thông tin đã công bố. Ví dụ: nếu bạn chỉ định kiểm tra ở đây, bảo mật thông tin của bạn sẽ có sẵn tại http://localhost/test. Tôi hài lòng với lựa chọn thử nghiệm.
  • máy chủ web- Điền tự động. Tôi sử dụng Apache 2.2 làm máy chủ web;
  • Mục lục– đường dẫn đến thư mục chứa tệp cấu hình của IS đã xuất bản;
  • Bỏ chọn " Xuất bản máy khách mỏng và máy khách web», « Xuất bản giao diện OData chuẩn», « Xuất bản dịch vụ WEB theo mặc định»;
  • Trên tab Dịch vụ HTTP, hãy chọn “ Xuất bản dịch vụ HTTP theo mặc định" và trong phần dạng bảng, chúng tôi đánh dấu dịch vụ đã tạo.

Kiểm tra dịch vụ HTTP

Để kiểm tra dịch vụ http đã tạo, hãy khởi chạy trình duyệt và thử truy cập nó. Nếu bạn lặp lại tất cả các bước của tôi thì đường dẫn sẽ trông như thế này:

Http://localhost:9090/services/hs/our-services/list

Điều đáng chú ý là cảng 9090 , được chỉ định bằng dấu hai chấm sau tên máy chủ. Nếu bạn đã cài đặt Apache với cài đặt mặc định thì nó sẽ lắng nghe trên cổng 80, do đó, bạn không cần chỉ định bất cứ điều gì. Kết quả là URL sẽ như thế này:

Http://localhost/services/hs/our-services/list

Hãy thử điều hướng qua nó và nếu mọi thứ hoạt động chính xác, bạn sẽ nhận được một trang có dữ liệu ở định dạng JSON:

[ ( tiêu đề: "Dịch vụ số 1", mô tả: "Mô tả dịch vụ số 1", ( tiêu đề: "Dịch vụ số 2", mô tả: "Mô tả dịch vụ số 2"), ( tiêu đề: "Dịch vụ Số 3", mô tả: "Mô tả dịch vụ số 3", ( tiêu đề: "Dịch vụ số 4", mô tả: "Mô tả dịch vụ số 4")]

Đây là nơi chúng ta có thể kết thúc việc xem xét ví dụ demo, nhưng cuối cùng tôi muốn phân tích URL thành các phần tử thành phần của nó để hiểu rõ lý do tại sao chúng tôi nhận được chính xác một liên kết như vậy.

Vì vậy, phần đầu tiên phải rõ ràng - localhost. Đây là tên máy chủ nơi máy chủ web được cài đặt. Tiếp theo là liên kết (dịch vụ) tới công bố bảo mật thông tin. Tiếp theo là hs, phần tử đường dẫn này cho biết chúng ta quan tâm đến việc tương tác với dịch vụ http. Hai thành phần cuối cùng là URL gốc của dịch vụ của chúng tôi và mẫu URL.

Thay vì một kết luận

« 1C:Doanh nghiệp 8.3» cho phép bạn tạo đơn giản dịch vụ HTTP với chi phí lao động tối thiểu, đó là điều mà lẽ ra bạn phải bị thuyết phục sau khi đọc đoạn ghi chú ngắn này. Chức năng này mở rộng đáng kể các tùy chọn ứng dụng của nền tảng. Trong các bài viết sau, chúng tôi sẽ nói về các trường hợp sử dụng công nghệ thực tế và xem xét việc triển khai các giải pháp khác nhau trong thực tế.

Trong nền tảng 1C Enterprise 8.3, có thể tạo các dịch vụ HTTP

Bằng cách sử dụng ngôn ngữ tích hợp, giờ đây bạn có thể tạo phản hồi cho yêu cầu. Đồng thời, bạn có quyền truy cập thuận tiện vào nội dung, tiêu đề và dòng nguồn lời yêu cầu và cũng có thể tạo mã, nội dung và tiêu đề trả lời theo ý riêng của bạn.

So với các dịch vụ web có sẵn trên nền tảng SOAP, dịch vụ HTTP có một số ưu điểm:

  • Dễ dàng lập trình cho khách hàng các dịch vụ đó;
  • Có khả năng truyền ít dữ liệu hơn;
  • Có khả năng tải tính toán thấp hơn;
  • Các dịch vụ HTTP được định hướng theo "tài nguyên", trong khi các dịch vụ SOAP được định hướng theo "hành động".

Cơ sở dữ liệu thể hiện việc triển khai các dịch vụ http

http-service Danh sách hóa đơn

Dịch vụ http sử dụng các mẫu URL và thực hiện xử lý thuộc tính URL tham số sự vật HTTPServiceRequest
Ví dụ này cho thấy cách bạn có thể tạo cơ sở đệm giữa cơ sở làm việc và địa điểm công ty
Kết nối được thực hiện với cơ sở dữ liệu demo " Quản lý thương mại 11", trong đó trước tiên đối với thư mục "Đối tác", bạn cần đặt một thuộc tính bổ sung có tên Mật khẩu web , nơi chúng tôi sẽ lưu trữ mật khẩu truy cập.
Các tham số URL sau sẽ được gửi tới yêu cầu http: TIN làm thông tin đăng nhập và mật khẩu.
Khi xử lý yêu cầu, kết nối được thực hiện thông qua ComConnector tới UT (đảm bảo phanh) và việc lấy mẫu được thực hiện từ đó
Tôi không giả vờ rằng giải pháp này nhanh hay an toàn, đây chỉ là một ví dụ

Vì thế. Một nhánh mới đã xuất hiện trong cây siêu dữ liệu - Dịch vụ HTTP
Tạo một dịch vụ mới, chỉ định tên và URL gốc (danh sách)
URL gốc sẽ được sử dụng để gọi dịch vụ http của chúng tôi
Tiếp theo, thêm Mẫu URL vào dịch vụ http, chỉ định “/(Đăng nhập)/(Mật khẩu)” làm mẫu.
Mẫu này sẽ cho phép bạn nhận cấu trúc tham số tương ứng và giá trị của chúng trong tham số URL khi xử lý yêu cầu http.
Bây giờ, hãy thêm một phương thức có tên "get" vào mẫu URL của chúng ta, chọn GET làm phương thức http
Mở trình xử lý và viết mã
Trình xử lý phương thức là một hàm phải trả về giá trị kiểu HTTPServiceResponse

Trạng thái đặt hàng dịch vụ http

Ví dụ này triển khai việc xử lý các biến được truyền bằng phương thức POST và tạo phản hồi dưới dạng trang HTML.
Lần này dữ liệu được lấy mẫu từ cơ sở dữ liệu nơi đặt hs, do đó nó hoạt động nhanh hơn đáng kể so với dịch vụ http trước đó.
Khi triển khai một hệ thống làm việc, bạn nên tạo các đối tượng trong cơ sở dữ liệu (bằng một dịch vụ) và định cấu hình di chuyển dữ liệu từ cơ sở dữ liệu nguồn (ví dụ: bằng một quy trình nền riêng biệt). Khi xử lý yêu cầu http, việc lấy mẫu được thực hiện trực tiếp từ cơ sở dữ liệu nơi nó được đặt.

Sự xuất bản

Có rất nhiều thông tin về cách cài đặt và cấu hình máy chủ web.
Tôi đã sử dụng bản dựng httpd-2.2.25-win32-x86-openssl-0.9.8y.exe từ đây
Được cài đặt bằng phương pháp "Tiếp theo-Kết thúc" :)
Việc xuất bản các dịch vụ http được đặt ở cùng một nơi với việc xuất bản các dịch vụ web đã và đang và không có gì đặc biệt khác biệt.
Sau khi cài đặt máy chủ web ở chế độ "Trình cấu hình", hãy chuyển đến menu "Quản trị" - "Xuất bản trên máy chủ web"
Trên tab "Dịch vụ HTTP", đặt tên ấn bản, máy chủ web, thư mục xuất bản và đánh dấu các dịch vụ của chúng tôi (trong trường hợp của tôi, tên là "web", máy chủ web Apache 2.2)
Khi xuất bản, các khối tương ứng sẽ tự động được ghi vào tệp cấu hình httpd.conf và máy chủ được khởi động lại (ở lần xuất bản đầu tiên)
Gọi dịch vụ http
Ví dụ: http://mysite/web/hs/list, Ở đâu
trang web của tôi- địa chỉ máy chủ (nếu máy chủ web được cài đặt cục bộ, bạn có thể sử dụng 127.0.0.1)
mạng lưới- tên được chỉ định trong khi xuất bản (bí danh)
hs- một đoạn đường dẫn bắt buộc cho máy chủ biết rằng hoạt động sẽ diễn ra với các dịch vụ http
danh sách- url gốc của dịch vụ web

Kiểm tra

Danh sách hóa đơn

http://127.0.0.1/web/hs/list/7705260681/pswMP (Đừng quên thiết lập thuộc tính bổ sung trong UT cho mật khẩu)

Giả định rằng để truy cập vào sổ đăng ký tài liệu, người dùng sử dụng liên kết trực tiếp chứa INN và mật khẩu

Tình trạng đặt hàng

http://127.0.0.1 /web/hs/kiểm tra

Yêu cầu và phản hồi được đặt tại cùng một URL. Khi vào trang, phương thức GET được kích hoạt, trả về dạng html

Khi bạn nhấp vào "Kiểm tra", số đơn hàng sẽ được gửi bằng phương thức POST đến cùng một URL, phản hồi sẽ được trả về với cùng một biểu mẫu yêu cầu, được bổ sung dữ liệu về đơn hàng được yêu cầu.

Tệp đính kèm chứa bản tải xuống cơ sở dữ liệu cho 1C 8.3. Cấu hình bao gồm 2 dịch vụ http (từ ấn phẩm), thiết lập kết nối com với cơ sở dữ liệu demo UT 11 và tài liệu “Đặt hàng”.

Những gì bạn cần để khởi chạy và thử nghiệm

  • máy chủ web
  • bất kỳ trình duyệt web nào
  • phát hành hiện tại1C: Doanh nghiệp 8.3