Mua hàng:0983715689 Diễn đàn   Đặt câu hỏi
Hỗ trợ sử dụng Tư vấn mua hàng
Call 04.5148550
Call 04.5148550
Call 04.5148550
Call 04.5148550
Call 04.5148550
Phản hồi, ý kiến góp ý của bạn với 1VS Phản hồi - góp ý
Hotline:(0988-721-127)
(04) 3514-85-50
(04) 3514-85-51
(04) 3514-84-30
Ý kiến nhận xét

Chị Trần Thị Lâm - Kế toán - Công ty cổ phần Tập đoàn Thái An

"...Lúc bắt đầu sử dụng, bên mình cũng gặp nhiều khó khăn vì chưa quen với phần mềm mới. Tuy nhiên khi đã hiểu các nguyên tắc làm việc của 1C thì mình nhận thấy đây là công cụ đắc lực cho người sử dụng trong việc việc kiểm tra, kiểm soát và đưa ra báo cáo giúp đơn giản hóa công việc của mình...".

Anh Trần Quang Thiện - Chủ Nhà sách cô Hường

"... Mình đặc biệt ưa dùng tính năng tổ chức danh mục phân cấp không giới hạn của phần mềm: hàng hóa và khách hàng được ghi nhận theo từng nhóm nhỏ. Điều này không chỉ hỗ đắc lực cho thu ngân bán hàng chính xác và nhanh chóng mà còn rất tiện dụng khi thiết lập và quản lý các chương trình khuyến mại, chiết khấu cho từng nhóm khách hàng theo một hoặc nhiều nhóm sản phẩm...".

1C:Quản lý tổng thể (ARM)


Đăng ký nhận bài viết

  1. Bạn đang dùng giải pháp 1C nào?
    1. 1C:KẾ TOÁN 8
      1181 (98.83%)
    2. 1C:Bán lẻ 8
      305 (25.52%)
    3. 1C:Quản lý thương mại
      140 (11.72%)
    4. 1C:Quản lý tổng thể (ARM)
      93 (7.78%)
    5. 1C:Quản lý văn bản (ECM)
      72 (6.03%)
    6. 1C:Hóa đơn
      67 (5.61%)
    7. 1C:Hiệu thuốc
      54 (4.52%)
    8. 1C:Cửa hàng điện máy
      52 (4.35%)
    9. 1C:Nhà hàng
      47 (3.93%)

Thông tin công nghệ, giải pháp

1С + PHP + JavaScript + AJAX. Những nguyên tắc cơ bản của công nghệ tương tác từ xa.
22/09/2011 - Số lần đọc: 14129

Sức hút với công nghệ Internet càng ngày càng lớn theo từng năm. Các hệ thống thông tin như 1C cũng không đi ra ngoài xu hướng này. Để có thể tương tác từ xa (thông qua internet), trong 1C:DOANH NGHIỆP 8 có một loạt các đối tượng như HTTP-connection và Web-service. Nhưng thực tế thì không phải tất cả các lập trình viên trong cộng đồng phát triển 1C đều chuyên sâu trong vấn đề công nghệ Web. Do vậy, khi xuất hiện nhu cầu nghiên cứu chi tiết hơn thì rất nhiều người trong số họ phải làm quen với những tình huống mà không biết phải bắt đầu từ đâu. Và thông tin trên Internet lại quá nhiều, vậy làm thế nào để hiểu rõ và chọn lựa được giải pháp thiết thực nhất?

Trong bài viết này, chúng tôi sẽ cố gắng lựa chọn những điều "quan trọng" nhất, có thể giúp định hướng và cung cấp cơ sở cho việc nghiên cứu chuyên sâu công nghệ Internet hiện đại sau này. Chúng ta cùng xem xét các thuật ngữ quen thuộc (cũng có thể còn tùy thuộc từng đối tượng) theo những hướng cơ bản: "PHP", "JavaScript", "AJAX"...

1. Internet, Server, Browser

Với khái niệm Internet, chắc hẳn chúng ta đã rất quen thuộc và biết đó là cái gì. Nếu nói một cách ngắn gọn thì Internet là một mạng chung kết nối nhiều máy tính vào một không gian thông tin duy nhất, trong đó mỗi một máy tính có một địa chỉ đơn trị của mình. Bằng địa chỉ này mà các máy tính tìm thấy và trao đổi thông tin với nhau.

Máy tính có thể chia làm hai loại: Server và Client. Server thường được hiểu là một máy tính trung tâm nào đó được đặt tại văn phòng và lưu trữ trong ổ cứng ở thư mục mạng các tệp làm việc. Đó là khái niệm thô sơ chỉ đúng được phần nào và chưa đầy đủ.

Server còn là phần mềm mà được cài đặt trên máy tính và cho phép xử lý truy vấn của các máy tính khác ở xa văn phòng, cũng như phản hồi các truy vấn đó. Sự tương tác này được thực hiện theo những qui tắc nhất định, các giao thức (ví dụ HTTP, giao thức phổ biến nhất của Internet, giao thức này sẽ được đề cập tới ở phần dưới). Nếu như trước đây bạn đã nghe thấy các từ như IIS hoặc Apache thì đấy chính là phần mềm của Server (thường gọi là Web-server), nó chịu trách nhiệm xử lý truy vấn và gửi trả lời.

Client là máy tính khởi xướng truy vấn cho Server. Tuy nhiên, nó không chỉ là máy tính, mà cũng giống như trong trường với Server, nó còn là phần mềm. Ví dụ điển hình nhất là trình duyệt Web (Internet Explorer, FireFox, Chrome, Safari...). Tiếp theo, để đơn giản hơn, chúng ta cùng hiểu trình duyệt Web đối với Client, mặc dù trên thực tế nó có thể là một ứng dụng bất kỳ đã kết nối và tương tác với Server.

Bây giờ, chúng ta cùng xem xét quá trình tương tác trực tiếp giữa Client với Server. Client truy vấn cái gì ở Server? Để thuật ngữ chính xác hơn, chúng ta nói, Client truy vấn nguồn tài nguyên. Thực chất thì nguồn tài nguyên bất kỳ: đấy là tệp được lưu trữ trên Server, chỉ phụ thuộc vào kiểu tệp, các phản hồi của Server có thể rất khác nhau. Ví dụ điển hình một truy vấn đơn giản, đó là khi người sử dụng ở dòng địa chỉ trình duyệt đánh địa chỉ nguồn tài nguyên và nhấn phím Enter (ví dụ www.1vs.vn). Theo địa chỉ này, trình duyệt tìm kiếm máy tính trên Internet và gửi truy vấn cho Web-server để nhận tệp chính (đuôi tệp không nhất thiết phải viết, thông thường Web-server sẽ biết, theo địa chỉ đó thì tệp nào là quan trọng). Server tiếp nhận truy vấn, xử lý và gửi trả lại trình duyệt thông tin đã đọc từ tệp chính (thường đấy là luồng dữ liệu HTML, sẽ được đề cập đến ở phần dưới). Trình duyệt nhận thông tin, xử lý mã HTML và vẽ trên cửa sổ của mình một trang đẹp mà người sử dụng nhìn thấy.

Trong quá trình định hướng theo trang, người sử dụng có thể nhấp chuột vào đường dẫn bất kỳ mà nó chỉ sang một nguồn tài nguyên khác và tương tác Client-server sẽ được lặp lại, điều đó dẫn đến việc khởi động lại và cập nhật các trang bằng những dữ liệu mới nhận được từ Server. Sơ đồ tương tác Client-server được thể hiện trong hình vẽ dưới đây.

2. HTTP và HTML

Như đã đề cập trước đó, sự giao tiếp giữa Client và Server diễn ra theo quy tắc nhất định (giao thức). Phổ biến nhất trong số đó là HTTP, có nghĩa là giao thức truyền Hypertext. Nó mô tả cấu trúc truy vấn của Client và phản hồi của Server. Hình vẽ dưới đây cho thấy rõ những gì có trong cấu trúc như vậy.

Như chúng ta thấy, khi Client và Server giao tiếp thực sự sẽ dẫn đến trao đổi các thông tin văn bản phổ biến nhất mà con người có thể đọc được (xem thân truy vấn và trả lời). Dòng đầu tiên của truy vấn là lệnh trực tiếp đối với Web-server từ trình duyệt, nhận được bằng phương thức như vậy nào đó, nguồn tài nguyên như vậy nào đó theo một giao thức như vậy nào đó. Các phương thức chính nhận được nguồn tài nguyên: đó là GET và POST. Về lý thuyết, phương thức GET dùng để đọc các nguồn tài nguyên, còn POST là để thay đổi dữ liệu nguồn tài nguyên, nhưng về mặt kỹ thuật thì ở phương thức GET không cấm thay đổi. Server trả lời truy vấn cho trình duyệt bằng mã trả lời (trong trường hợp này 200 có nghĩa là nguồn tài nguyên đã tìm thấy và trả lại, có nghĩa là OK). Trong các tiêu đề có thông tin hệ thống. Tập hợp các tiêu đề được xác định bởi những điều kiện cụ thể giao tiếp giữa Client và Server. Trong nội dung trả lời có chứa trực tiếp các dữ liệu mà nhờ đó tất cả các tương tác được bắt đầu.

Khi giao tiếp của người sử dụng với thế giới bên ngoài thông qua trình duyệt thì nội dung trả lời thường có mã HTML. HTML là những ký hiệu siêu ngôn ngữ (Hypertext Markup Language) mà trình duyệt hiểu được. Sau khi đọc đoạn mã này trình duyệt đưa ra cho người sử dụng một trang trên màn hình. Tuy nhiên, có thể đoán ra, không có gì ngăn cản trong nội dung phản hồi chuyển những thông tin khác, chẳng hạn như XML hoặc văn bản thường. Như vậy, về nguyên tắc, có xuất hiện hàng loạt các tình huống khi bạn cần tổ chức tương tác từ xa giữa các hệ thống, chỉ trong trường hợp này Client đóng vai trò không phải là trình duyệt, mà trực tiếp là một trong những hệ thống từ xa.

3. PHP và MySQL

Bây giờ chúng ta biết rằng nguồn tài nguyên - đó là một tệp cụ thể, truy cập tới đó theo giao thức HTTP, Client sẽ nhận được phản hồi từ Web-server nội dung của tệp này. Nhưng với sự gia tăng dung lượng thông tin lưu trữ đã nảy sinh vấn đề về cách tổ chức lưu trữ thông tin một cách thích hợp. Rõ ràng, lưu trữ tất cả thông tin trong một hoặc nhiều tệp lớn không phải là một lựa chọn tốt. Thậm chí cũng không phải là sự lựa chọn tốt, khi mà thông tin được chia nhỏ ra thành nhiều tệp rất nhỏ. Ở đây, cơ sở dữ liệu đã giúp đỡ rất nhiều. Một trong những cơ sở dữ liệu phổ biến nhất để lưu trữ thông tin theo phương án Client-server là MySQL. Bằng công cụ MySQL có thể bảm đảm lưu trữ, lấy ra, cũng như quản lý thông tin một cách an toàn.

Để Web-server có thể lấy ra và cung cấp thông tin chính xác cho Client tồn tại ngôn ngữ lập trình Server, đại diện sáng giá nhất đó là PHP. Tất nhiên, ngôn ngữ Server không chỉ có thể lấy ra và cung cấp, mà nó còn có rất nhiều chức năng hữu ích khác, tuy nhiên để dễ hiểu chúng ta giả định là như vậy. Mã PHP được chèn trực tiếp vào nội dung nguồn tài nguyên nên khi Web-server đọc nội dung nguồn tài nguyên để cung cấp cho Client thì mã này được thực hiện (lấy thông tin ra từ cơ sở dữ liệu, thực hiện một số tính toán nào đó…). Kết quả của việc thực hiện là tất cả các mã HTML đều được gửi cho Client.

4. JavaScript, AJAX và Web 2.0

Khi nhận được dữ liệu, trình duyệt sẽ mô tả chúng cho người sử dụng. Đôi khi thông tin được mô tả ở trạng thái tĩnh. Mỗi phần thông tin mới cần phải truy cập đến Server và khởi động lại các trang trình duyệt. Để tăng tính trực tác mà không cần truy cập đến Server, người ta đã nghĩ ra ngôn ngữ Client đặc biệt, nó được đưa vào tất cả các trình duyệt, JavaScript. Nó được sử dụng để điều khiển dữ liệu nhận được từ Server. Trong khi PHP là ngôn ngữ server thì JavaScript chỉ tồn tại trong phần Client. JavaScript thực thi cấu trúc được gọi là kịch bản. Chúng được đặt vào mã HTML và được kết nhập từ nguồn tài nguyên trên Server, nhưng lại được thực hiện trên Client, tức là sau khi nhận dữ liệu và tải về bởi trình duyệt.

Ngoài việc điều khiển dữ liệu, JavaScript còn có một chức năng tuyệt vời, như tương tác với Server mà không cần khởi động lại trang trình duyệt. Công nghệ như vậy làm giảm đáng kể dung lượng dữ liệu được truyền, vì không cần thiết phải khởi động lại toàn bộ trang mà chỉ cần nhận những dữ liệu cần thiết và sắp đặt chúng vào chỗ cần thiết của trang. Phương pháp này được gọi là AJAX, có thể dịch là không đồng bộ JavaScript XML. Từ "không đồng bộ" có nghĩa là phản hồi của Server có thể diễn ra trong chế độ nền, tức là sau khi gửi truy vấn cho trình duyệt không cần phong tỏa công việc của người sử dụng cho đến khi nhận được phản hồi – người sử dụng vẫn có thể tiếp tục công việc, còn khi phản hồi đến, trình duyệt sẽ nhìn thấy và xử lý nó. Hình vẽ dưới đây trình bày dưới dạng sơ đồ so sánh hai mô hình tương tác Client-server: truyền thống và có sử dụng AJAX.

Trong sơ đồ này cho thấy, sự khác biệt so với mô hình truyền thống, ở mô hình AJAX nguồn tài nguyên Web được tải về một lần, sau đó chỉ tải về khi cần những dữ liệu cần thiết, xử lý và chèn vào mã HTML của trang mà đã được thực hiện trên Client (trong trình duyệt).

Nếu trước đây, nguồn tài nguyên mạng được xem xét chủ yếu như một phương tiện tiếp nhận thông tin thì cùng với sự phát triển công nghệ AJAX đã xuất hiện khả năng điều khiển chúng một cách trực tác, đưa tương tác Client-server lên một cấp độ mới, được hiểu bằng thuật ngữ Web 2.0. Các nguồn tài nguyên, được tạo dựng trên nền tảng công nghệ Web 2.0 khác biệt bởi tính trực tác được nâng cao. Trong thực tế, các nguồn tài nguyên như vậy hoàn toàn có thể thay thế các ứng dụng dành máy tính để bàn. Không nên vượt ra khỏi khuôn khổ ví dụ. Internet-service Google Docs cung cấp chức năng tương tự như các ứng dụng cơ bản trong gói Microsoft Office với sự khác biệt duy nhất là không cần cài đặt bất kỳ chương trình nào vào máy tính - tất cả công việc được thực hiện trong cửa sổ trình duyệt.

Nói về JavaScript cần lưu ý một thực tế là trong đó thực thi chính sách bảo mật rất nghiêm ngặt, được gọi là Same Origin Policy. Bản chất của nó dẫn đến một quy tắc đơn giản: thao tác JavaScript áp dụng cho các dữ liệu được tải về từ một tên miền (địa chỉ) là như nhau. Như vậy, ví dụ, nếu kịch bản được tải từ một nguồn tài nguyên www.site1.com, thử truy cập trực tiếp từ phần Client đến nguồn tài nguyên www.site2.com thì bạn nhận được một lệnh cấm. Tất nhiên vẫn có phương pháp phá vỡ hạn chế này. Nói thêm, các phiên bản hiện nay của JavaScript cho phép bạn thực hiện các truy vấn đến các nguồn tài nguyên ở các địa chỉ khác, nhưng trong trường hợp này, truy vấn phải có các thuộc tính cụ thể (tiêu đề), còn Web-server phải được tùy chỉnh để tiếp nhận truy vấn đó bằng cách đặc biệt. Phương pháp tùy chỉnh này được gọi là CORS (Cross-Origin Resource Sharing) và nó có đặc điểm riêng. Tuy nhiên, không phải lúc nào cũng có khả năng tùy chỉnh Web-server theo nhu cầu, vì vậy nếu bạn gặp trong thực tế, ví dụ, cần nhận được dữ liệu theo công nghệ AJAX từ một nguồn tài nguyên khác - Proxy truy vấn này thông qua Server, vì phần Server không có những hạn chế như vậy. Tức là từ phần Client gửi truy vấn AJAX cho Web-server thì bằng công cụ PHP chuyển hướng truy vấn đến nguồn tài nguyên cần thiết, nhận dữ liệu và trả lại Client.

5. RPC, SOAP và Web-service

Từ tính toán lý thuyết dần dần chúng ta đi đến những vấn đề thực tế hơn. RPC (Remote Procedure Call) được dịch là Gọi các thủ tục từ xa. Đây là lớp công nghệ cho phép hệ thống thông tin tương tác từ xa với nhau. Rất nhiều công nghệ như vậy và các giao thức truyền dữ liệu được sử dụng khác nhau. Chúng ta cùng xem xét SOAP (Simple Object Access Protocol), thực tế hơn theo quan điểm của 1C, bởi vì các Web-service của 1C (nói thêm là không chỉ 1C) được tạo dựng dựa trên chính SOAP.

Phương thức truyền tải (vận chuyển) dữ liệu theo giao thức SOAP chính là HTTP trước đây, điều này đã được đề cập ở phần trên. Trong nội dung thông báo HTTP có sắp đặt dữ liệu dưới dạng XML-text, được tạo ra theo quy tắc nhất định (đặc thù giao thức SOAP). Nội dung truy vấn có chứa XML-text, lệnh và tham số gọi phương thức trong hệ thống thông tin từ xa, còn nội dung phản hồi có chứa dữ liệu XML-text được trả lại bởi phương thức này. Bằng các quy tắc tương tự trong đặc thù ở phía Server hoặc Client mà nội dung XML, thông báo SOAP được diễn giải theo các tham số hoặc đối tượng cụ thể. Nảy sinh một câu hỏi là nếu SOAP – đấy là trao đổi bằng XML thì sau đó cần XML được tạo ra bằng chính cách đặc biệt để làm gì? Tại sao không truyền tải XML thông thường có cùng dữ liệu như vậy? Đơn giản là vì, khi nhận được XML phải phân tích bằng mã lệnh ba tầng, bời vì trước đó không biết XML là gì và cấu trúc của nó thế nào. Giao thức SOAP cho phép xác định trước cấu trúc của dữ liệu được truyền tải, cũng như đăng tải các phương thức của hệ thống thông tin sử dụng được để gọi từ xa, điều đó giúp giải phóng người phát triển khỏi các thủ tục phức tạp gọi các phương thức và phân tích dữ liệu.

Web-service SOAP làm việc theo chính những nguyên tắc này. Tóm lại, bản chất của nó được trình bày như sau: Trong môi trường thông tin ở xa có triển khai Web-service mà được đăng tải trên Web-server. Điều này có nghĩa là Web-service xuất hiện địa chỉ riêng và từ lúc này có thể gọi nó là một nguồn tài nguyên. Trong môi trường giữa phương thức (chức năng, thủ tục) có thiết lập mối liên kết với Web-service này. Nếu từ Client gửi truy vấn đến địa chỉ này theo giao thức HTTP thì Web-server đã nhận được truy vấn này, sau đó chuyển trực tiếp vào môi trường thông tin, đồng thời chuyển đổi các tham số đầu vào sang định dạng thuận tiện. Trong môi trường thông tin tạo phương thức liên kết với Web-service, xử lý và trả lại kết quả xử lý cho Web-server, sau đó trả lại nó cho Client trên theo cùng một giao thức HTTP.

6. 1С: Web-service và HTTP-connection

Như vậy, chúng ta đã xem xét những nguyên tắc cơ bản của công nghệ mà dựa vào đó có tạo dựng các tương tác từ xa giữa các hệ thống thông tin (trao đổi File-server và trao đổi qua E-mail không được xem xét đến). Những nguyên tắc nào trong số đó được sử dụng trong 1C?

Trước hết, cần lưu ý là từ nền tảng 1C 8.1 đã xuất hiện SOAP Web-service mà phần lớn là tăng các chức năng của hệ thống. Cùng với Web-extension, hoàn toàn có thể xem xét làm cơ sở để tạo các giao diện Web như 1C. Về vấn đề này, có một bài viết thú vị "Ví dụ sử dụng Web-service 1С từ trình duyệt", trong đó có xem xét chi tiết việc sử dụng công nghệ AJAX và Web-service để xây dựng giao diện Web cho 1C. Bạn đừng lo lắng, trong nền tảng 1C:DOANH NGHIỆP 8.2 đã có khả năng làm việc với 1C từ trình duyệt và có thể nói chủ đề này không còn là vấn đề đối với công nghệ 1C. Tuy nhiên giao diện được điều khiển 8.2 tuân theo khuôn mẫu chặt chẽ và trên thực tế người phát triển không thể nào làm thay đổi nó. Để tạo ra các giao diện đẹp, có nhiều chức năng, tiện dụng và mạnh cần sử dụng các công nghệ vừa mô tả.

Giao diện "1C:Quản lý thương mại" trên trình duyệt (Nhấn vào ảnh để xem với kích thước to hơn).

Web-service cũng có thể được sử dụng để trao đổi giữa hai cơ sở dữ liệu. Có thể trao đổi thông báo XML tùy ý mà có thể làm tăng tính bảo mật của tương tác như vậy, khác với việc sử dụng trao đổi dựa vào kết nhập/kết xuất tệp, khi tệp đang trên đường đi có thể bị đánh tráo. Ví dụ, có thể kết xuất các bút toán từ cơ sở dữ liệu tiền lương sang kế toán, hóa đơn giao hàng từ cấu hình quản lý thương mại sang kế toán…

Nếu Web-service là thượng tầng đối với giao thức HTTP thông qua giao thức SOAP thì đối tượng HTTP-connection cho phép tạo truy vấn trực tiếp và nhận phản hồi trực tiếp từ Web-server theo giao thức HTTP. Ví dụ như: kết xuất danh mục hàng hóa ra cửa hàng trực tuyến. Bằng HTTP-connection, có thể thực hiện việc gửi truy vấn POST có dữ liệu về hàng hoá (ví dụ, dưới dạng XML, được đưa vào nội dung truy vấn) đến địa chỉ mà chúng ta đã biết (điều này có thể là trang .php được xác định bởi chính chúng ta). Về phía Web-server, trong đó có cửa hàng trực tuyến, chúng ta phân tích XML nhận được bằng mã PHP và sắp đặt dữ liệu về hàng hóa vào cơ sở dữ liệu (chẳng hạn như MySQL). 

Phòng Công nghệ 1VS



Tin tức khác


Báo chí viết về 1VS
25/12/2015
Giải đáp vướng mắc trong lập Báo cáo tài chính năm 2015:

"Nội dung chính của sự kiện là tập trung hướng dẫn rà soát từng tài khoản trước khi lập báo cáo tài chính, chỉ ra những điểm cần lưu ý, hay sai sót, và những rủi ro về thuế khi lập báo cáo tài chính năm 2015. Trong đó, có nêu rõ những khác biệt giữa các đơn vị thực hiện theo quyết định 48 và thông tư 200".

10/08/2015
Ứng dụng dịch vụ đám mây cho các giải pháp kế toán và quản lý 1C - Đài Truyền hình Kỹ thuật số VTC (VTC1):
Điện toán đám mây là xu thế tất yếu của nền công nghệ hiện đại. Với việc đưa lên mây nhiều giải pháp như kế toán, bán hàng, quản lý tổng thể doanh nghiệp... dịch vụ đám mây của 1C được nhiều doanh nghiệp ứng dụng để tự động hóa công tác quản lý trong nhiều lĩnh vực. 
01/06/2015
Phần mềm kế toán 1C: Một dữ liệu cho hàng trăm khách hàng - Báo Tài chính điện tử:
"... Thứ nhất, đám mây 1C của chúng tôi sử dụng cơ chế chia tách dữ liệu Multitenancy. Với cơ chế này, 1VS chỉ cần quản lý 1 dữ liệu phần mềm duy nhất dùng chung cho hàng trăm, hàng nghìn khách hàng của mình. Trong đó, có chia tách thành các vùng dữ liệu riêng của mỗi khách hàng, đảm bảo tính riêng tư của từng vùng dữ liệu. Nhờ công nghệ này, chúng tôi giảm được tới mức tối thiểu về thời gian, công sức và chi phí cho việc bảo trì sản phẩm trong đám mây.".