Các mô-đun chung. Các mô-đun chung Dữ liệu dự án có thể được nhập vào hệ thống theo nhiều cách

Hôm nay chúng ta sẽ xem xét các mô-đun phổ biến, chúng là gì, tại sao chúng cần thiết và cách sử dụng chúng. Các chức năng được sử dụng trong nhiều tài liệu có thể được đặt trong một mô-đun chung. Ví dụ: tính số tiền trong phần dạng bảng của tài liệu.

Ví dụ: hãy lấy cấu hình cũ mà tôi đã sử dụng trong các bài viết trước. Chúng tôi có hai tài liệu trong đó: Hàng hóa đến kho và Giao hàng vào kho. Cả hai tài liệu đều có quy trình tính toán số tiền trong một hàng dạng bảng.

Mỗi tài liệu chứa cùng một mã để tính số tiền.

Tài liệu thủ tụcPriceOnChange(Element)
Hàng TabularPart = Elements.Materials.CurrentData;
TabularPartLine.Amount = TabularPartLine.Quantity * TabularPartLine.Price;
Kết thúc thủ tục

Hôm nay chúng ta sẽ chuyển nó sang một mô-đun chung và gọi nó từ tài liệu.

Chúng tôi tạo một mô-đun chung để tính toán số tiền

Và vì vậy hãy bắt đầu, trước tiên bạn cần tạo một mô-đun chung. Để thực hiện việc này, hãy vào phần cấu hình, tìm mục Mô-đun chung, nhấp chuột phải và thêm mô-đun mới, viết tên WorkWithDocuments. Chúng tôi nhập đoạn mã sau vào nó.

Ngoài ra, hãy nhớ chọn các hộp bên cạnh Máy khách (Ứng dụng được quản lý) và Máy chủ trong cửa sổ thuộc tính.

Bây giờ bạn cần thay đổi một chút mã trong mô-đun biểu mẫu tài liệu. Ở bên trái trong cấu hình, chúng tôi tìm tài liệu Hàng hóa đến, mở rộng cửa sổ sang cửa sổ Biểu mẫu, nhấp đúp vào Biểu mẫu tài liệu và trong cửa sổ biểu mẫu mở ra, hãy chuyển đến tab Mô-đun ở dưới cùng. Chúng tôi có mã này

Quy trình này hoạt động khi thay đổi Số lượng trong phần dạng bảng của chứng từ Biên nhận Hàng hóa và tính toán số tiền.

&Trên máy khách



Kết thúc thủ tục

Và quy trình này bắt đầu hoạt động khi Giá thay đổi trong phần dạng bảng của tài liệu Biên nhận Hàng hóa và tính toán số tiền.

&Trên máy khách

Hàng TabularPart = Elements.Materials.CurrentData;
TabularPartLine.Amount = TabularPartLine.Quantity * TabularPartLine.Price;
Kết thúc thủ tục

Thay thế nó bằng cái này

&Trên máy khách
Tài liệu thủ tụcQuantityOnChange(Element)
Hàng TabularPart = Elements.Materials.CurrentData;

Kết thúc thủ tục
&Trên máy khách
Tài liệu thủ tụcPriceOnChange(Element)
Hàng TabularPart = Elements.Materials.CurrentData;
WorkWithDocuments.CalculateSum(TabularPartLine);
Kết thúc thủ tục

Như bạn đã nhận thấy, chỉ có một dòng thay đổi; thoạt nhìn, có vẻ như dòng này đã được thay thế bằng dòng khác. Nhưng đừng quên rằng đây là một ví dụ. Trên thực tế, số lượng mã có thể lớn hơn nhiều, chẳng hạn như nếu bạn thực hiện các phép tính bằng công thức phức tạp, trong trường hợp đó, mã sẽ bị giảm đáng kể.

Chúng tôi thực hiện tương tự đối với chứng từ Xuất hàng khỏi kho, chạy và kiểm tra chức năng của mã. Vậy là tôi và bạn đã làm xong module chung đầu tiên, tôi hy vọng bài viết của mình sẽ có ích cho ai đó.

Mô-đun nền tảng 1C: Enterprise 8.3, 8.2

Các mô-đun chung

Các hàm được khai báo bằng cờ "xuất" trong mô-đun như vậy có thể được gọi từ bất kỳ đâu trong cấu hình. Cuộc gọi được thực hiện thông qua CommonModuleName.FunctionName().

Các mô-đun như vậy không có phần thay đổi.

Việc thực thi các mô-đun chung phụ thuộc vào cài đặt trong thuộc tính của chúng:

Cờ "Toàn cầu"

Nếu cờ này được đặt thì bối cảnh của mô-đun đó sẽ trở thành toàn cục. Nghĩa là, khi truy cập các chức năng xuất của nó, bạn không cần chỉ định tên mô-đun. Nhưng tên của các hàm xuất của nó phải là duy nhất trong bối cảnh cấu hình toàn cục.

Cờ máy chủ

Các chức năng của mô-đun như vậy có thể được thực thi trên máy chủ.

Cờ "Máy khách (ứng dụng thông thường)"

Các chức năng của mô-đun như vậy có thể được thực thi trên máy khách ở chế độ ứng dụng thông thường.

Cờ "Máy khách (ứng dụng được quản lý)"

Các chức năng của mô-đun như vậy có thể được thực thi trên máy khách ở chế độ ứng dụng được quản lý.

Cờ "Cuộc gọi máy chủ"

Cờ này có sẵn cho các mô-đun có bộ cờ "Máy chủ". Cho phép máy khách gọi các chức năng xuất của mô-đun này (sẽ được thực thi trên máy chủ).

Cờ tham gia bên ngoài

Các chức năng xuất của mô-đun như vậy có thể được gọi khi kết nối từ nguồn bên ngoài.

Cờ "Đặc quyền"

Trong mô-đun có cờ này, việc kiểm tra quyền sẽ bị tắt. Thích hợp cho năng suất hoặc hoạt động hành chính.

Tùy chọn tái sử dụng

Nếu bạn bật tùy chọn này, các giá trị trả về của hàm xuất sẽ được lưu vào bộ đệm ngay sau lệnh gọi đầu tiên. Có thể lưu vào bộ nhớ đệm trong suốt thời gian của cuộc gọi (thời gian thực hiện của một quy trình cụ thể) hoặc trong suốt thời gian của phiên người dùng.

Mô-đun ứng dụng

Được thiết kế để xử lý các sự kiện khởi động và chấm dứt ứng dụng. Có hai loại: dành cho các ứng dụng thông thường và được quản lý.

Bạn không nên để nó quá tải vì điều này sẽ ảnh hưởng tới thời gian khởi động ứng dụng.

Mô-đun phiên

Một mô-đun đặc biệt được sử dụng để khởi tạo các tham số phiên. Điều cần thiết là không sao chép mã trong các mô-đun ứng dụng khác nhau.

Nó nên được sử dụng cẩn thận, vì mô-đun có thể được thực thi nhiều lần và cũng có thể được thực thi mà không cần khởi động thêm cơ sở dữ liệu. Thực hiện trước các mô-đun ứng dụng.

Trân trọng, (giáo viên và nhà phát triển).

Mô-đun 1C chung- đối tượng siêu dữ liệu cấu hình cho 1C 8.3 và 8.2, lưu trữ mã chương trình thường được gọi trong cấu hình. Một hàm/thủ tục có thể được gọi từ bất kỳ đâu trong cấu hình (nếu đó là cấu hình xuất).

Cách sử dụng mô-đun chia sẻ

Cách tốt nhất là đặt một thủ tục hoặc hàm trong một mô-đun chung nếu nó được gọi ở nhiều nơi. Thứ nhất, nếu quy trình đã được sửa thì chỉ cần sửa ở một chỗ. Thứ hai, điều này đạt được thứ tự cao hơn trong mã.

Một ví dụ điển hình của mô-đun chung là xử lý đăng lên một số sổ đăng ký, lấy số tiền chênh lệch trong ngày làm việc, tính toán lại tỷ giá hối đoái, tính toán lại số lượng/giá/số tiền trong phần bảng và các chức năng khác.

Thuộc tính của các mô-đun chung

Một trong những tính năng chính của mô-đun chia sẻ từ các mô-đun khác là bạn không thể khai báo các biến dùng chung.

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

Chúng ta hãy xem xét kỹ hơn bảng thuộc tính của mô-đun chung:

  • Toàn cầu- nếu cờ được đặt, các chức năng và thủ tục từ mô-đun này sẽ khả dụng trong bối cảnh chung. Những thứ kia. chúng có thể được gọi ở bất kỳ đâu trong cấu hình bằng cách truy cập mà không cần tên của mô-đun chung. Tuy nhiên, một điều kiện được thêm vào - tên của các thủ tục và hàm trong mô-đun chung này phải là duy nhất trong bối cảnh chung.
  • Máy chủ— các thủ tục và chức năng của mô-đun chung này có thể được thực thi trên máy chủ.
  • Tham gia bên ngoài— mã chương trình của mô-đun chung này có thể được thực thi khi được kết nối bằng nguồn bên ngoài (ví dụ: COM).
  • Khách hàng (ứng dụng được quản lý)— các quy trình và chức năng của mô-đun chung này có thể được sử dụng trong máy khách dày ở chế độ ứng dụng được quản lý.
  • Khách hàng (ứng dụng thông thường)— mã chương trình của mô-đun chung này có thể được sử dụng trong máy khách dày ở chế độ ứng dụng thông thường.
  • Cuộc gọi máy chủ— cờ cho phép máy khách sử dụng các thủ tục và chức năng từ mô-đun chung này.
  • — nếu được đặt thành True, việc kiểm tra quyền truy cập sẽ bị tắt trong mô-đun chung này.
  • Tái sử dụng— xác định cài đặt cho các giá trị trả về; nếu tùy chọn này được bật thì sau lần thực hiện đầu tiên, hệ thống sẽ ghi nhớ giá trị cho các tham số đầu vào này và sẽ trả về giá trị được tạo sẵn. Có thể nhận các giá trị sau: không được sử dụng- tắt, trong suốt thời gian của cuộc gọi- trong thời gian của một thủ tục nhất định, trong suốt thời gian của phiên— cho đến khi người dùng đóng phiên (chương trình).

Nếu bạn đang bắt đầu học lập trình 1C, chúng tôi khuyên bạn nên tham gia khóa học miễn phí (đừng quên

Các mô-đun phần mềm chứa mã thực thi bằng ngôn ngữ 1C, cần thiết để phản hồi theo một cách nhất định đối với hành động của hệ thống hoặc người dùng khi các công cụ phát triển trực quan không đủ. Chúng ta cũng có thể mô tả các phương thức (thủ tục và chức năng) của riêng mình trong các mô-đun phần mềm.

Thông thường một mô-đun phần mềm bao gồm ba phần:

  • vùng khai báo biến;
  • khu vực mô tả các thủ tục và chức năng;
  • văn bản chính của chương trình.

Ví dụ về cấu trúc mô-đun chương trình:

//********************* KHU VỰC KHAI THÁC BIẾN **********************

Perem Họ Xuất khẩu; / /đây là biến toàn cục
Thay đổi tên, từ viết tắt; // đây là một biến mô-đun
Tên đầy đủ của Perem; // đây cũng là một biến mô-đun và có thể được truy cập

// từ bất kỳ thủ tục và chức năng nào của mô-đun của chúng tôi

//*************** KHU VỰC MÔ TẢ THỦ TỤC VÀ CHỨC NĂNG ****************

Thủ tục Thủ tục1 ()
Tổng số biến; / /Kết quả là một biến cục bộ (biến thủ tục)

Tổng cộng = Họ + " "+ Tên + " "+ Tên đệm;

Kết thúc thủ tục

Hàm Hàm1()

// toán tử hàm

Return(Họ + " "+ FirstName);

Chức năng cuối cùng

//********************* VĂN BẢN CHÍNH CỦA CHƯƠNG TRÌNH *************************

Họ = "Ivanov";
Tên = "Ivan";
Từ viết tắt = "Ivanovich";

//******************************************************************************

Trong một mô-đun phần mềm cụ thể, bất kỳ khu vực nào cũng có thể bị thiếu.
Vùng khai báo biếnđược đặt từ đầu văn bản mô-đun đến câu lệnh Thủ tục hoặc Hàm đầu tiên hoặc bất kỳ câu lệnh thực thi nào. Phần này chỉ có thể chứa các câu lệnh khai báo biến.

Khu vực mô tả các thủ tục và chức năngđược đặt từ câu lệnh Thủ tục hoặc Hàm đầu tiên đến bất kỳ câu lệnh thực thi nào bên ngoài phần nội dung của mô tả thủ tục hoặc hàm.

Vùng văn bản chương trình chínhđược đặt từ câu lệnh thực thi đầu tiên bên ngoài phần thân của thủ tục hoặc hàm cho đến cuối mô-đun. Phần này chỉ có thể chứa các câu lệnh thực thi. Vùng văn bản chương trình chính được thực thi tại thời điểm khởi tạo mô-đun. Thông thường, trong một phần của chương trình chính, sẽ hợp lý khi đặt các toán tử để khởi tạo các biến với bất kỳ giá trị cụ thể nào phải được gán trước lệnh gọi thủ tục hoặc hàm đầu tiên của mô-đun.

Các mô-đun phần mềm được đặt ở những vị trí trong cấu hình có thể yêu cầu mô tả các thuật toán vận hành cụ thể. Các thuật toán này phải được chính thức hóa dưới dạng các thủ tục hoặc hàm mà chính hệ thống sẽ gọi trong các tình huống xác định trước (ví dụ: khi mở biểu mẫu thư mục, khi nhấn nút trong hộp thoại, khi thay đổi một đối tượng, v.v.) .

Mỗi mô-đun phần mềm riêng lẻ được hệ thống coi là một tổng thể duy nhất, do đó tất cả các quy trình và chức năng của mô-đun phần mềm đều được thực hiện trong một ngữ cảnh duy nhất.

Bối cảnh thực thi mô-đun được chia thành máy khách và máy chủ. Ngoài ra, một số mô-đun phần mềm có thể được biên dịch ở cả phía máy khách và phía máy chủ.

Mô-đun ứng dụng (được quản lý hoặc thường xuyên)

Mô-đun ứng dụng mô tả các thủ tục (trình xử lý) các sự kiện được khởi tạo khi bắt đầu và kết thúc hệ thống. Ví dụ: khi ứng dụng bắt đầu chạy, bạn có thể cập nhật một số dữ liệu cấu hình và khi thoát khỏi ứng dụng, bạn có thể hỏi liệu có đáng để thoát khỏi chương trình hay không. Ngoài ra, mô-đun này chặn các sự kiện từ thiết bị bên ngoài, chẳng hạn như giao dịch hoặc tài chính. Điều đáng chú ý là mô-đun ứng dụng chỉ được thực thi khi ứng dụng được khởi chạy tương tác, tức là khi cửa sổ chương trình được khởi chạy. Điều này không xảy ra nếu ứng dụng được khởi chạy ở chế độ kết nối com.
Trong nền tảng 1C 8 có hai mô-đun ứng dụng khác nhau. Đây là mô-đun Ứng dụng thông thường và mô-đun Ứng dụng được quản lý. Chúng được kích hoạt khi các ứng dụng khách khác nhau được khởi chạy. Do đó, mô-đun Ứng dụng được quản lý được kích hoạt khi máy khách web, máy khách mỏng và máy khách dày được khởi chạy ở chế độ ứng dụng được quản lý. Và mô-đun ứng dụng thông thường được kích hoạt khi máy khách dày được khởi chạy ở chế độ ứng dụng thông thường. Cài đặt chế độ khởi chạy ứng dụng được chỉ định trong thuộc tính cấu hình "Chế độ khởi chạy cơ bản".

Một mô-đun ứng dụng có thể chứa cả 3 phần - khai báo biến, mô tả các thủ tục và hàm, cũng như văn bản chính của chương trình. Mô-đun ứng dụng được biên dịch ở phía máy khách, điều này hạn chế rất nhiều việc chúng tôi sử dụng nhiều loại dữ liệu. Bạn có thể mở rộng ngữ cảnh mô-đun ứng dụng bằng cách sử dụng các phương thức của các mô-đun phổ biến có tập thuộc tính “Cuộc gọi máy chủ”. Tất cả các biến và phương thức mô-đun ứng dụng được đánh dấu là xuất sẽ có sẵn trong bất kỳ mô-đun cấu hình nào chạy ở phía máy khách. Tuy nhiên, dù có vẻ hấp dẫn nhưng bạn không nên đặt một số lượng lớn các thủ tục và chức năng ở đây. Càng có nhiều mã trong một mô-đun nhất định thì thời gian biên dịch càng dài và do đó, thời gian khởi chạy ứng dụng càng lâu.

Như đã lưu ý ở trên, mô-đun ứng dụng xử lý các sự kiện khởi động và kết thúc ứng dụng. Để xử lý từng sự kiện này trong mô-đun ứng dụng, có một cặp trình xử lý Before... và When... Sự khác biệt giữa chúng như sau: khi thực thi mã trong trình xử lý Before..., hành động vẫn chưa đã diễn ra và chúng tôi có thể từ chối thực hiện nó. Đây chính là mục đích của tùy chọn Từ chối. Trong trình xử lý On.., hành động đã diễn ra và chúng tôi không thể từ chối khởi chạy hoặc thoát ứng dụng.

Mô-đun kết nối bên ngoài

  • có thể chứa cả 3 khu vực
  • nằm ở phần gốc của cấu hình

Mục đích của mô-đun tương tự như mục đích của mô-đun ứng dụng. Nó xử lý các sự kiện bắt đầu và kết thúc của ứng dụng. Mô-đun kết nối bên ngoài được kích hoạt khi ứng dụng được khởi chạy ở chế độ kết nối com. Bản thân quá trình nối bên ngoài không phải là một quá trình tương tác. Ở chế độ này, công việc theo chương trình với cơ sở thông tin diễn ra và cửa sổ ứng dụng không mở, điều này đặt ra một số hạn chế nhất định đối với việc sử dụng các phương pháp dành cho công việc tương tác. Ở chế độ này, không thể sử dụng các lệnh gọi đến biểu mẫu hộp thoại, cảnh báo và tin nhắn tới người dùng, v.v. Đơn giản là họ sẽ không bị xử tử.

Giống như trong mô-đun ứng dụng, cả ba lĩnh vực đều có sẵn ở đây: khai báo biến, mô tả các thủ tục và hàm cũng như văn bản chính của chương trình. Sự khác biệt chính so với mô-đun ứng dụng là ở chế độ kết nối com, tất cả hoạt động với cơ sở thông tin đều diễn ra ở phía máy chủ, do đó mô-đun kết nối bên ngoài được biên dịch ở phía máy chủ. Theo đó, các biến và phương thức xuất của các mô-đun máy khách thông thường không có sẵn trong đó.

Mô-đun phiên

  • chạy ở phía máy chủ
  • nằm ở phần gốc của cấu hình

Đây là một mô-đun chuyên môn cao được thiết kế dành riêng cho việc khởi tạo các tham số phiên. Tại sao bạn cần tạo mô-đun của riêng mình cho việc này? Việc sử dụng nó là do bản thân ứng dụng có thể được khởi chạy ở các chế độ khác nhau (dẫn đến việc thực thi mô-đun ứng dụng được quản lý, mô-đun ứng dụng thông thường hoặc mô-đun kết nối bên ngoài) và việc khởi tạo các tham số phiên phải được thực hiện bất kể của chế độ khởi động. Để không viết cùng một mã chương trình trong cả ba mô-đun này, chúng tôi cần một mô-đun bổ sung chạy bất kể chế độ khởi chạy ứng dụng.

Trong mô-đun phiên, có một sự kiện duy nhất “SettingSessionParameters”, sự kiện này được thực thi đầu tiên, ngay cả trước sự kiện mô-đun ứng dụng BeforeSystemStartOperation. Phần khai báo biến và phần chương trình chính không có trong đó. Bạn cũng không thể khai báo phương thức xuất. Mô-đun được biên dịch ở phía máy chủ.

Các mô-đun chung

  • có thể chứa một khu vực mô tả các thủ tục và chức năng
  • được thực thi ở phía máy chủ hoặc phía máy khách (tùy thuộc vào cài đặt mô-đun)
  • nằm trong nhánh cây của đối tượng cấu hình “General” - “General module”

Các mô-đun chung nhằm mô tả một số thuật toán phổ biến sẽ được gọi từ các mô-đun cấu hình khác. Mô-đun chung không chứa vùng khai báo biến và văn bản chương trình chính. Bạn có thể khai báo các phương thức xuất trong đó, tính khả dụng của phương thức này sẽ được xác định bởi cài đặt mô-đun (ở phía nào nó được thực thi: ở phía máy chủ hoặc phía máy khách). Do không có phần mô tả biến nên các biến toàn cục không thể được xác định trong các mô-đun chung. Bạn có thể sử dụng một mô-đun ứng dụng cho việc này.

Hoạt động của một mô-đun chung phụ thuộc vào các tham số được đặt (toàn cục hay không, các cờ biên dịch khác nhau, liệu cuộc gọi máy chủ có khả dụng hay không, v.v.). Dưới đây là một số mẹo để thiết lập các mô-đun phổ biến:

Cách tốt nhất là không sử dụng cờ Toàn cầu ở mọi nơi. Điều này sẽ giảm thời gian khởi động của ứng dụng và cũng cải thiện khả năng đọc mã (tất nhiên, nếu mô-đun chung có tên hoàn toàn có ý nghĩa);
- Không nên sử dụng nhiều hơn một cờ biên dịch. Không có nhiều phương thức cần được thực thi trong các ngữ cảnh khác nhau và nếu các phương thức đó vẫn được yêu cầu thì có thể phân bổ một mô-đun chung riêng biệt cho chúng;
- cờ “Máy chủ cuộc gọi” chỉ có ý nghĩa nếu mô-đun được biên dịch “Trên máy chủ”. Vì vậy, tất cả các cờ biên dịch khác cần được loại bỏ để tránh nhiều vấn đề khác nhau;
- nếu các phương thức mô-đun liên quan đến việc xử lý, đọc và ghi dữ liệu lớn vào cơ sở dữ liệu, thì để tăng tốc độ làm việc, tốt hơn hết bạn nên tắt kiểm soát quyền truy cập bằng cách đặt cờ “Đặc quyền”. Chế độ này chỉ khả dụng cho các mô-đun chia sẻ được biên dịch trên máy chủ.

Mô-đun biểu mẫu

  • có thể chứa cả 3 khu vực
  • được thực thi ở phía máy chủ và máy khách

Mô-đun biểu mẫu được thiết kế để xử lý các hành động của người dùng với biểu mẫu này (xử lý sự kiện nhấn nút, thay đổi thuộc tính của biểu mẫu, v.v.). Ngoài ra còn có các sự kiện liên quan trực tiếp đến chính biểu mẫu đó (ví dụ: mở hoặc đóng biểu mẫu). Mô-đun của biểu mẫu được quản lý và biểu mẫu thông thường khác nhau trước hết ở chỗ mô-đun của biểu mẫu được quản lý được phân chia rõ ràng theo ngữ cảnh. Mọi thủ tục hoặc hàm đều phải có chỉ thị biên dịch. Nếu chỉ thị biên dịch không được chỉ định thì thủ tục hoặc hàm này sẽ được thực thi ở phía máy chủ. Ở dạng bình thường, tất cả mã được thực thi ở phía máy khách.

Cấu trúc của biểu mẫu được quản lý chứa một phần để khai báo các biến, mô tả các thủ tục và hàm cũng như văn bản chính của chương trình (được thực thi tại thời điểm khởi tạo biểu mẫu). Chúng ta có thể truy cập các sự kiện của biểu mẫu tiêu chuẩn thông qua danh sách các thủ tục và chức năng dự kiến ​​của biểu mẫu (Ctrl+Alt+P) hoặc thông qua bảng thuộc tính của chính biểu mẫu đó.

Nếu một biểu mẫu được gán một thuộc tính chính thì các thuộc tính và phương thức của đối tượng ứng dụng được sử dụng làm thuộc tính chính sẽ có sẵn trong mô-đun biểu mẫu.

Mô-đun đối tượng

  • có thể chứa cả 3 khu vực
  • chạy ở phía máy chủ

Mô-đun này có sẵn cho hầu hết các đối tượng cấu hình và thường dùng để xử lý các sự kiện liên quan trực tiếp đến đối tượng. Ví dụ: các sự kiện ghi và xóa đối tượng, kiểm tra việc hoàn thành chi tiết đối tượng, đăng tài liệu, v.v.

Một số sự kiện mô-đun đối tượng trùng lặp với các sự kiện mô-đun biểu mẫu. Ví dụ: các sự kiện liên quan đến bản ghi. Tuy nhiên, cần hiểu rằng các sự kiện mô-đun biểu mẫu sẽ được thực thi riêng trong một biểu mẫu đối tượng cụ thể, nghĩa là khi một biểu mẫu cụ thể được mở. Và các sự kiện của mô-đun đối tượng sẽ được gọi trong mọi trường hợp, ngay cả tại thời điểm làm việc theo chương trình với đối tượng. Do đó, nếu bạn cần các phương thức được liên kết với một đối tượng mà không bị ràng buộc với một dạng cụ thể của đối tượng thì tốt hơn nên sử dụng mô-đun đối tượng cho việc này.

Mô-đun quản lý đối tượng

  • có thể chứa cả 3 khu vực
  • chạy ở phía máy chủ

Mô-đun quản lý đối tượng chỉ xuất hiện bắt đầu từ phiên bản 1C 8.2. Mô-đun quản lý tồn tại cho tất cả các đối tượng ứng dụng và được thiết kế để quản lý đối tượng này dưới dạng đối tượng cấu hình. Mô-đun trình quản lý cho phép bạn mở rộng chức năng của một đối tượng bằng cách giới thiệu các thủ tục và hàm (viết) không liên quan đến một phiên bản cụ thể của đối tượng cơ sở dữ liệu mà liên quan đến chính đối tượng cấu hình đó. Mô-đun quản lý đối tượng cho phép bạn đặt các thủ tục và hàm chung cho một đối tượng nhất định và truy cập chúng từ bên ngoài, chẳng hạn như từ quá trình xử lý (tất nhiên, nếu thủ tục hoặc hàm này có từ khóa Xuất). Điều này mang lại cho chúng ta điều gì mới? Nói chung, không có gì ngoại trừ việc tổ chức các thủ tục theo đối tượng và lưu trữ chúng ở những nơi riêng biệt - Mô-đun quản lý đối tượng. Chúng ta cũng có thể đặt thành công các thủ tục và chức năng này trong các mô-đun chung, nhưng 1C khuyên bạn nên đặt các thủ tục và chức năng chung của các đối tượng trong Mô-đun quản lý đối tượng. Ví dụ về việc sử dụng các quy trình và chức năng của Mô-đun Trình quản lý đối tượng: điền ban đầu các chi tiết riêng lẻ của một thư mục hoặc tài liệu trong các điều kiện nhất định, kiểm tra việc hoàn thành các chi tiết của thư mục hoặc tài liệu trong các điều kiện nhất định, v.v.

Mô-đun lệnh

  • có thể chứa một phần mô tả các thủ tục và chức năng
  • được thực hiện ở phía khách hàng

Lệnh là các đối tượng phụ thuộc vào đối tượng ứng dụng hoặc toàn bộ cấu hình. Mỗi lệnh có một mô-đun lệnh trong đó thủ tục CommandProcess() được xác định trước có thể được mô tả để thực thi lệnh đó.

Bài viết tiếp tục loạt bài “Những bước đầu tiên trong quá trình phát triển trên 1C”, thảo luận chi tiết các vấn đề sau:

  • Mô-đun phần mềm là gì và nó bao gồm những phần nào?
  • Mô-đun ứng dụng dùng để làm gì? Tại sao lại có hai người trong số họ? Khi nào cái nào khởi chạy? Sự tinh tế của công việc là gì?
  • Những sự kiện nào liên quan đến việc bắt đầu vận hành hệ thống, xử lý chúng như thế nào và ở đâu?
  • Mô-đun kết nối bên ngoài dùng để làm gì? Khi nào và làm thế nào để sử dụng nó?
  • Khi nào mô-đun phiên được sử dụng?
  • Các mô-đun phổ biến là gì? Tính chất và quy luật hoạt động của nó là gì? Tại sao nên sử dụng thuộc tính “Tái sử dụng các giá trị trả về”?
  • Khi nào mô-đun biểu mẫu được sử dụng và những sự kiện nào có thể được xử lý trong đó?
  • Mô-đun đối tượng dùng để làm gì? Nó bao gồm những phần nào? Làm cách nào tôi có thể xem các sự kiện mô-đun có sẵn?
  • Sự tinh tế khi làm việc với các mô-đun quản lý giá trị (đối với hằng số) và mô-đun tập bản ghi (đối với các thanh ghi) là gì?
  • Sự khác biệt giữa mô-đun đối tượng và mô-đun quản lý là gì? Khi nào bạn nên sử dụng cái sau?

Khả năng ứng dụng

Bài viết thảo luận về nền tảng 1C:Enterprise 8.3.4.496. Tài liệu này cũng phù hợp với các bản phát hành nền tảng hiện tại.

Các mô-đun trong "1C:Enterprise 8.3"

Mô-đun là những đối tượng chứa mã chương trình.

Có khá nhiều loại mô-đun trong Nền tảng, mỗi loại đều có mục đích và tính năng riêng.

Bất kỳ dòng mã nào cũng phải có trong một mô-đun nào đó. Có các mô-đun mục đích chung và mô-đun đối tượng. Một số mô-đun có thể được biên dịch trên cả Máy khách và Máy chủ và một số mô-đun chỉ có thể được biên dịch trên Máy chủ.

Một mô-đun có thể bao gồm một số phần. Phần mô tả biến mô tả các biến cục bộ của mô-đun này, sau đó có thể được sử dụng trong bất kỳ quy trình nào.

Trong mỗi quy trình, bạn có thể truy cập một biến mô-đun. Ngoài ra, trong chính thủ tục đó có thể có một khai báo biến khác có cùng tên. Đây sẽ là một biến cục bộ của thủ tục này.

Mặc dù có cùng tên nhưng đây là hai biến khác nhau: một biến được sử dụng bên trong một thủ tục cụ thể và biến còn lại được sử dụng bên ngoài thủ tục đó.

Trong một số mô-đun, các biến có thể có vị trí biên dịch (có sẵn) trên Máy chủ hoặc Máy khách. Ví dụ:

Phần mô tả các biến được theo sau bởi phần thủ tục và hàm, trong đó các phương thức cục bộ của mô-đun này được chỉ ra. Một số mô-đun phải chỉ định nơi thủ tục hoặc hàm sẽ được biên dịch.

Về nguyên tắc, chỉ thị biên dịch có thể được bỏ qua. Trong trường hợp này, chỉ thị biên dịch mặc định là Server. Tuy nhiên, để thuận tiện cho việc phân tích mã chương trình, nên chỉ ra rõ ràng nơi một quy trình nhất định sẽ được biên dịch. Thứ tự các thủ tục được mô tả không quan trọng.

Ở cuối mô-đun, sau khi mô tả tất cả các thủ tục và chức năng, có một phần của chương trình chính, có thể chứa một số toán tử và khởi tạo các biến cục bộ của mô-đun biểu mẫu. Phần này được thực thi khi truy cập mô-đun.

Vì vậy, ví dụ, khi mở một biểu mẫu phần tử, phần chương trình chính của mô-đun biểu mẫu sẽ được thực thi trước tiên.

Cần lưu ý rằng phần khai báo biến và phần chương trình chính không tồn tại cho tất cả các mô-đun (tức là các phần này không hợp lệ trong một số mô-đun). Phần mô tả các thủ tục và chức năng có thể tồn tại trong bất kỳ mô-đun nào.

Mô-đun ứng dụng

Mô-đun này được thiết kế để xử lý các sự kiện khởi động và kết thúc ứng dụng. Ví dụ: khi khởi chạy ứng dụng, bạn có thể tải xuống tỷ giá tiền tệ từ Internet. Khi chấm dứt một ứng dụng, bạn có thể xác nhận với người dùng rằng họ có ý định thoát.

Ngoài ra, trong mô-đun ứng dụng còn có các trình xử lý đặc biệt cho phép bạn chặn các sự kiện bên ngoài từ thiết bị.

Đây có thể là sự kiện từ đầu đọc thẻ từ hoặc cơ quan đăng ký tài chính. Và những sự kiện này cũng có thể được xử lý theo một cách nào đó.

Xin lưu ý rằng mô-đun ứng dụng giám sát quá trình khởi chạy tương tác của hệ thống.

Mô-đun ứng dụng sẽ không hoạt động nếu chương trình 1C được khởi chạy, chẳng hạn như ở chế độ kết nối com. Trong trường hợp này, cửa sổ chương trình không được tạo.

Cần lưu ý rằng trong Nền tảng 8.3 có hai mô-đun ứng dụng khác nhau: mô-đun Ứng dụng được quản lý và mô-đun Ứng dụng thông thường. Các sự kiện mô-đun ứng dụng được quản lý được xử lý khi Ứng dụng được quản lý Máy khách mỏng và Dày và Máy khách web được khởi chạy.

mô-đun ứng dụng thường xuyên hoạt động khi chạy Thick Client ở chế độ ứng dụng thường xuyên, chứa giao diện lệnh thông thường ở dạng Thực đơn chính.

Nếu ứng dụng đang chạy trong Được quản lý, và ở chế độ ứng dụng thường xuyên, khi đó cần mô tả các thủ tục xử lý như đối với module Ứng dụng được quản lý, và cho mô-đun ứng dụng thường xuyên.

mô-đun Ứng dụng được quản lý có thể được chọn từ menu ngữ cảnh của nút cấu hình gốc.

Mô-đun này cũng có thể được mở từ bảng thuộc tính của thành phần cấu hình gốc.

Để mở một mô-đun ứng dụng thường xuyên, bạn nên tham khảo phần cài đặt cấu hình (lệnh Tùy chọn trên thực đơn Dịch vụ).

Biểu mẫu sẽ mở Tùy chọn. Trên dấu trang Là phổ biến chế độ chỉnh sửa cấu hình phải được chỉ định Ứng dụng được quản lýứng dụng thường xuyên.

Trong trường hợp này mô-đun ứng dụng thường xuyên nó cũng có thể mở từ các thuộc tính của nút gốc.

Danh sách các sự kiện có thể được xử lý Được quản lýứng dụng thường xuyên là giống nhau.

Mô-đun này có thể chứa phần khai báo biến, phần mô tả các thủ tục và hàm tùy ý và phần chương trình chính. Nhưng ngoài các thủ tục và hàm tùy ý, các trình xử lý sự kiện đặc biệt có thể được đặt trong mô-đun.

Có thể xem danh sách các trình xử lý có sẵn bằng cách gọi danh sách các thủ tục và chức năng của mô-đun hiện tại khi mô-đun mở.

Cửa sổ Thủ tục và Chức năng mở ra hiển thị tất cả các thủ tục và chức năng của mô-đun này, cũng như các sự kiện mà trình xử lý chưa được tạo.

Có hai sự kiện liên quan đến việc khởi động hệ thống (“trước” và “tại”). Hai sự kiện liên quan đến việc tắt hệ thống (“trước” và “tại”). Và cũng có thể xử lý các sự kiện bên ngoài (ví dụ: các sự kiện của thiết bị thương mại).

Khi trình xử lý sự kiện “trước” được thực thi, hành động đó được coi là chưa diễn ra. Khi trình xử lý sự kiện “at” được thực thi, hành động đó đã được hoàn thành.

Sự kiện Trước khi khởi động hệ thống xảy ra khi Enterprise 8.3 được khởi chạy nhưng bản thân ứng dụng vẫn chưa xuất hiện trên màn hình. Sự kiện này có tham số sau: từ chối.

Nếu tham số này nhận giá trị ĐÚNG VẬY, thì ứng dụng sẽ không khởi động. Sự kiện Khi khởi động hệ thống giả định rằng hành động đã được hoàn thành, cửa sổ đã được tạo và trong trường hợp này, chẳng hạn, chúng ta có thể hiển thị một số biểu mẫu đặc biệt. Không còn có thể từ chối việc ra mắt.

Tương tự, trước khi tắt hệ thống, ứng dụng vẫn mở và bạn có thể từ chối đóng nó. Khi hệ thống tắt, cửa sổ ứng dụng đã đóng. Chỉ có thể thực hiện các hành động bổ sung, chẳng hạn như xóa một số tệp hoặc gửi email.

Trong mô-đun Ứng dụng được quản lý Các chỉ thị biên dịch các thủ tục và chức năng không được chỉ định vì mô-đun được biên dịch hoàn toàn ở phía Máy khách. Điều này có nghĩa là trong các quy trình và chức năng của mô-đun, chúng ta sẽ không thể truy cập trực tiếp, chẳng hạn như sách tham khảo.

Nếu từ mô-đun Ứng dụng được quản lý cần thực hiện cuộc gọi Máy chủ, thì để làm được điều này, bạn sẽ cần tạo một cuộc gọi đặc biệt với một lá cờ .

Trong mô-đun ứng dụng thường xuyên Không có hạn chế nào như vậy vì mô-đun này sẽ được biên dịch khi tải Máy khách Dày. Hầu hết tất cả các loại dữ liệu đều có sẵn trong Thick Client.

Các thủ tục, chức năng và biến của một mô-đun ứng dụng có thể được mô tả dưới dạng xuất.

Vì mô-đun được biên dịch hoàn toàn trên Máy khách, điều này có nghĩa là trong các thủ tục máy khách, chúng ta có thể truy cập phương thức này và thuộc tính này.

Ví dụ: bạn có thể gọi một thủ tục hoặc hàm của một mô-đun ứng dụng từ mô-đun biểu mẫu của một đối tượng. Tuy nhiên, nên sử dụng Common Modules để mô tả các thuật toán chung. Mục đích chính của mô-đun ứng dụng là xử lý điểm bắt đầu và điểm kết thúc.

Bằng cách tương tự với một mô-đun ứng dụng, mô-đun này được thiết kế để xử lý sự kiện mở chương trình và sự kiện tắt máy.

Không giống như mô-đun ứng dụng, được khởi tạo tại thời điểm khởi chạy tương tác của ứng dụng, mô-đun kết nối bên ngoài hoạt động ở chế độ kết nối COM, tức là. khi đối tượng 1C:Enterprise 8 được tạo và kết nối với cơ sở dữ liệu cụ thể.

Mô-đun này có các sự kiện: Khi khởi động hệ thốngKhi tắt hệ thống.

Mô-đun kết nối bên ngoài có thể được mở bằng cách sử dụng menu ngữ cảnh ở cấp đối tượng cấu hình gốc hoặc bảng thuộc tính cho nút gốc.

Bản thân quá trình kết nối bên ngoài là một quá trình làm việc theo chương trình với cơ sở thông tin chứ không phải mang tính tương tác. Theo đó, tại thời điểm này, bạn không thể sử dụng biểu mẫu hộp thoại hoặc hiển thị thông báo cảnh báo vì không có giao diện người dùng.

Trong Mô-đun kết nối bên ngoài, có thể mô tả các biến xuất và phương thức xuất sẽ có sẵn ở phía xảy ra lệnh gọi bên ngoài tới 1C:Enterprise 8.3.

Vì không có giao diện người dùng trong một kết nối bên ngoài nên Mô-đun kết nối bên ngoài được biên dịch hoàn toàn trên Máy chủ.

Mô-đun phiên

Mô-đun này là cần thiết để khởi tạo các tham số phiên. Tham số phiên là các biến toàn cục nhanh có giá trị có sẵn ở bất kỳ đâu trong cấu hình.

Bạn có thể mở Mô-đun phiên thông qua menu ngữ cảnh hoặc thông qua bảng thuộc tính của nút gốc.

Mô-đun phiên cung cấp một sự kiện Cài đặtSessionParameter.

Khi ứng dụng khởi động, thủ tục này được gọi đầu tiên. Các tham số phiên là cần thiết cho bất kỳ hoạt động ứng dụng nào: cả khi khởi chạy tương tác và khi khởi chạy ở chế độ kết nối bên ngoài.

Mô-đun phiên mô tả các hành động khác nhau để khởi tạo các tham số phiên tùy thuộc vào các điều kiện khác nhau.

Mô-đun này, theo quy tắc, mô tả một số thủ tục được gọi từ thủ tục Cài đặtSessionParameter. Vì vậy, tất cả các thủ tục này được tách thành một mô-đun riêng biệt.

Mô-đun phiên luôn chạy ở chế độ đặc quyền. Điều này có nghĩa là sẽ không có kiểm tra quyền nào được thực hiện khi truy cập cơ sở dữ liệu. Mô-đun phiên được biên dịch trên Máy chủ, tức là. Có thể truy cập bất kỳ phương thức máy chủ nào (bao gồm cả việc đọc các giá trị từ cơ sở dữ liệu).

Trong Mô-đun phiên, chỉ có thể xác định các thủ tục và chức năng, tức là không có phần mô tả biến và không có phần chương trình chính. Bạn không thể xác định phương thức xuất trong Mô-đun phiên.

Nếu, khi khởi động hệ thống, cần thực hiện một số hành động trên Máy chủ, chẳng hạn như tạo một phần tử của thư mục, thì có thể sử dụng Mô-đun phiên như một tùy chọn, bởi vì nó được biên dịch trên Máy chủ và luôn được thực thi một cách đáng tin cậy khi khởi động hệ thống. Tuy nhiên, những điểm sau đây phải được tính đến:

  • thủ tục Cài đặtSessionParameterđược thực thi không chỉ khi khởi động hệ thống mà còn khi truy cập các tham số phiên chưa được khởi tạo. Những thứ kia. trình xử lý SetSessionParameters có thể được gọi liên tục trong quá trình vận hành ứng dụng;
  • nếu số phần tử trong mảng tham số phiên bằng 0 (mảng tham số bắt buộc có kiểu dữ liệu Không xác định), thì đây là thời điểm ứng dụng được khởi chạy;
  • vì Mô-đun phiên hoạt động ở chế độ đặc quyền và sẽ không kiểm tra quyền truy cập, bạn nên làm việc thật cẩn thận với các đối tượng cơ sở dữ liệu, vì người dùng có thể có quyền truy cập vào dữ liệu không được cung cấp cho anh ta;
  • Khi hệ thống khởi động, vẫn chưa biết chắc chắn liệu ứng dụng có được khởi chạy hay không. Trong trường hợp này, các hành động không cần thiết có thể được thực hiện trong trình xử lý sự kiện SetSessionParameters.

Các mô-đun này thể hiện mô tả về một số thuật toán chung, tức là các thủ tục và chức năng có thể được gọi từ nhiều nơi khác nhau.

Các phương pháp liên quan đến logic có thể được nhóm thành các Mô-đun chung khác nhau. Các mô-đun này được tạo bên trong nhánh General.

Bạn có thể thêm bất kỳ số lượng mô-đun phổ biến nào. Để cung cấp các phương thức Mô-đun chung ở nơi khác trong cấu hình, chúng phải được xác định bằng từ khóa Xuất. Các quy trình máy khách của các mô-đun phổ biến sẽ có sẵn trên Máy khách và các quy trình máy chủ – trên Máy chủ.

Trong Mô-đun chung, chỉ có phần mô tả các thủ tục và chức năng. Những thứ kia. trong Mô-đun chung bạn không thể mô tả các biến và bạn không thể mô tả một phần của chương trình chính.

Nếu cần một biến toàn cục, bạn có thể sử dụng tham số phiên hoặc biến xuất mô-đun ứng dụng.

Đối với các mô-đun chung, bạn có thể đặt một số tham số sẽ ảnh hưởng đến hoạt động của mô-đun này. Nếu thuộc tính Toàn cầu được đặt cho mô-đun Chung thì các phương thức xuất được khai báo trong mô-đun này sẽ có thể truy cập trực tiếp từ bên ngoài mà không cần bất kỳ hướng dẫn bổ sung nào.

Những thứ kia. các mô-đun chung sẽ tham gia vào việc hình thành bối cảnh cấu hình toàn cầu.

Tài sản Toàn cầuđối với các mô-đun chung, nó có thể hữu ích. Tuy nhiên, bạn không nên sử dụng nó ở mọi nơi cho tất cả các module thông thường.

Những thứ kia , được đánh dấu bằng dấu Toàn cầu, sẽ được biên dịch khi khởi động hệ thống. Càng nhiều mô-đun như vậy, chương trình sẽ khởi động càng chậm.

Nếu lá cờ Toàn cầumô-đun chung không được chỉ định thì việc biên dịch mô-đun này sẽ được thực hiện tại thời điểm gọi lần đầu tiên đến nó (tức là sau khi hệ thống khởi động).

Ngoài ra, việc sử dụng các mô-đun chung toàn cầu sẽ ảnh hưởng đến việc hiểu mã. Các phương thức của một mô-đun chung không toàn cục được gọi thông qua tên mô-đun chung và tên của phương thức, ví dụ:
Mô-đun tính toán chi phí.DistributeIndirectCosts();

Trong trường hợp này, tên của các Mô-đun chung phải phản ánh nội dung của các quy trình được mô tả trong đó. Việc chỉ định tên của Mô-đun chung khi gọi một thủ tục sẽ giúp hiểu rõ hơn về mã.

mô-đun chung V. Bảng thuộc tính bạn có thể đặt thuộc tính Đặc quyền.

Mô-đun đặc quyền không kiểm soát quyền truy cập. Điều này là cần thiết nếu mô-đun chung Cần phải thực hiện xử lý dữ liệu hàng loạt, lấy dữ liệu từ cơ sở dữ liệu.

Việc kiểm soát quyền truy cập sẽ làm tăng thời gian truy cập cơ sở dữ liệu và các thuật toán hàng loạt thường cần phải hoạt động nhanh nhất có thể.

Ví dụ, tính lương là một hoạt động sử dụng nhiều nguồn lực. Nó cần phải được thực hiện càng nhanh càng tốt. Để làm điều này, các thuật toán tính lương được đặt ở vị trí đặc quyền. .

Đồng thời, mọi thủ tục đảm bảo hoàn thiện hồ sơ trả lương đều nằm ngoài phạm vi này. Các mô-đun chung. Chính trong các thủ tục này, việc kiểm soát quyền truy cập được thực hiện.

Bằng cách này, có thể đạt được những cải tiến hiệu suất đáng kể. Điều này đặc biệt đúng khi sử dụng cơ chế kiểm soát quyền truy cập theo từng hàng vào các bản ghi bảng.

Nếu Mô-đun chung có đặc quyền thì các quy trình của mô-đun này chỉ có thể được biên dịch trên Máy chủ.

Có những tình huống khi một số đối tượng không thể truy cập được đối với người dùng, chẳng hạn như một thư mục nhất định. Nhưng khi tiến hành bất kỳ một tài liệu nào thì việc tham khảo sách tham khảo này là cần thiết.

Những thứ kia. Cần phải tạm thời mở rộng quyền của người dùng và sau đó đưa họ trở lại trạng thái ban đầu. Hiệu ứng này có thể đạt được bằng cách sử dụng đặc quyền Các mô-đun chung.

Để làm điều này trong một đặc quyền mô-đun chung bạn nên tạo một quy trình truy cập dữ liệu cần thiết.

Thủ tục này sẽ được gọi từ tài liệu tương ứng. Những thứ kia. người dùng thực sự được cấp quyền mở rộng tại thời điểm thủ tục này được gọi.

Các mô-đun chung Có thể chỉ định vị trí biên dịch. Các cờ được sử dụng để xác định xem Mô-đun chung sẽ khả dụng trên Máy khách (ứng dụng được quản lý), trên Máy chủ hay ở chế độ Kết nối bên ngoài.

Ngoài ra, nếu bạn chuyển chế độ chỉnh sửa cấu hình sang Ứng dụng được quản lý và ứng dụng thông thường thì sẽ có thể thực hiện được một bối cảnh biên dịch khác - Máy khách (ứng dụng thông thường).

Vì vậy, có bốn tùy chọn cho hoạt động của chương trình. Tùy theo ứng dụng đang chạy, tùy theo công việc trên Client hay trên Server mà Common Modules nhất định sẽ có sẵn hoặc không có sẵn.

Ngoài khả năng chỉ định các cờ biên dịch, có thể chỉ định các chỉ thị biên dịch cho các thủ tục và chức năng nằm trong Mô-đun chung.

Nếu một lệnh biên dịch được chỉ định cho một phương thức thì mặc dù Mô-đun chung có sẵn trong tất cả các ngữ cảnh được chỉ định, nhưng tính khả dụng của phương thức cụ thể đó sẽ bị giới hạn bởi lệnh biên dịch.

Trong trường hợp này, quy trình không thể được truy cập trong ngữ cảnh mà toàn bộ mô-đun không thể truy cập được.

Nếu bạn không chỉ định chỉ thị biên dịch cho một thủ tục (hàm), nó sẽ được biên dịch trong tất cả các ngữ cảnh được xác định cho mô-đun.

Những thứ kia. Về cơ bản, nhiều bản sao của thủ tục sẽ được tạo ra. Việc lựa chọn một phiên bản được biên dịch cụ thể tùy thuộc vào nơi thủ tục được gọi (theo quy tắc gọi gần nhất). Cần lưu ý rằng mã của quy trình như vậy phải được viết có tính đến tính khả dụng của nó trong tất cả các ngữ cảnh được xác định cho mô-đun.

Các mô-đun chung có thể truy cập đồng thời trong nhiều ngữ cảnh khác nhau được thiết kế chủ yếu để tạo các thủ tục có thể truy cập được trong nhiều ngữ cảnh.

Khi tạo một Mô-đun chung, cách tốt nhất là không chỉ định các chỉ thị biên dịch. Những thứ kia. Tính khả dụng của các thủ tục và chức năng phải được xác định bởi các thuộc tính của chính mô-đun đó.

Với cách tiếp cận này, các thủ tục máy khách sẽ được đặt trong các Mô-đun chung riêng biệt và các thủ tục máy chủ sẽ được đặt trong các Mô-đun chung riêng biệt.

Các mô-đun có nhiều cờ biên dịch được đặt rất hiếm khi được sử dụng trong thực tế. Đây là một số hành động phổ biến có sẵn trên cả Máy khách và Máy chủ. Thông thường đây là một số tính toán đơn giản.

Quan trọng! Máy khách có thể truy cập các phương thức máy chủ xuất của Mô-đun chung, nhưng chỉ khi Mô-đun chung này chỉ được biên dịch trên Máy chủ. Trong trường hợp này, một cờ đặc biệt được cung cấp để cung cấp quyền truy cập từ Khách hàng .

Đối với các mô-đun Common không toàn cục, có thể lưu vào bộ đệm các giá trị được hàm trả về. Những thứ kia. Sau lệnh gọi hàm đầu tiên, hệ thống có thể ghi nhớ kết quả thực hiện của hàm đó. Nếu hàm này được gọi lại với cùng tham số, hệ thống sẽ trả về giá trị từ bộ đệm.

Mục đích của cơ chế này là tăng tốc độ các cuộc gọi lặp lại. Để định cấu hình hành vi này, bạn cần phải Bảng thuộc tính mô-đun, hãy đặt giá trị thích hợp cho thuộc tính Tái sử dụng các giá trị trả về.

Theo mặc định, thuộc tính này được đặt thành Không sử dụng. Các giá trị có thể khác: bộ đệm Trong cuộc gọi, hoặc Trong suốt thời gian của phiên.

Thuộc tính này chỉ hợp lý khi sử dụng cho những hàm có kết quả chỉ phụ thuộc vào tham số đầu vào. Cơ chế này chỉ khả dụng cho các Mô-đun chung không toàn cầu.

Nếu giá trị của tham số tương ứng Trong khoảng thời gian của cuộc gọi được chọn, bộ đệm sẽ hoạt động miễn là quy trình mà phương thức Mô-đun chung được gọi đang chạy. Nếu giá trị Trong khoảng thời gian của phiên được chọn thì có điều kiện giả định rằng bộ đệm sẽ hoạt động trong khi người dùng đang làm việc.

Tuy nhiên, có những hạn chế về thời gian nhất định. Bộ đệm sẽ tự động bị xóa 20 phút sau khi giá trị được nhập vào bộ đệm.

Mô-đun biểu mẫu

Mô-đun này được thiết kế để xử lý các hành động của người dùng. Ví dụ: mô tả thuật toán về cách chương trình phản ứng khi nhấn nút. Hoặc, ví dụ, tại thời điểm nhập một giá trị vào một trường, hãy kiểm tra ngay tính chính xác.

Ngoài các sự kiện liên quan đến điều khiển biểu mẫu (nút, trường nhập), còn có các sự kiện liên quan trực tiếp đến chính biểu mẫu đó.

Ví dụ: bạn có thể xử lý sự kiện mở biểu mẫu và thực hiện một số khởi tạo ban đầu. Bạn cũng có thể xử lý sự kiện đóng biểu mẫu và kiểm tra xem người dùng đã nhập chính xác mọi thứ hay chưa.

Có các hình thức kiểm soát và các hình thức thông thường. Mô-đun của các biểu mẫu này khác nhau chủ yếu ở chỗ mô-đun biểu mẫu được quản lý được phân chia rõ ràng theo ngữ cảnh. Mỗi thủ tục (chức năng) phải có một chỉ thị biên dịch. Ở dạng bình thường, tất cả mã được sử dụng trên Máy khách.

Trong mô-đun biểu mẫu được quản lý, bạn có thể khai báo các thủ tục và hàm, bạn có thể khai báo các biến và bạn có thể mô tả một phần của chương trình chính.

Mã chương trình của chương trình chính sẽ được thực thi tại thời điểm khởi tạo biểu mẫu, tức là. khi người dùng bắt đầu mở nó. Hình này hiển thị danh sách các sự kiện tiêu chuẩn cho một biểu mẫu được quản lý.

Danh sách các sự kiện của biểu mẫu được quản lý cũng hiển thị trực tiếp trong danh sách thuộc tính của chính biểu mẫu đó. Danh sách này được gọi trong trình chỉnh sửa biểu mẫu được quản lý.

Trong biểu mẫu được quản lý, bạn có thể xử lý sự kiện ghi của mục. Sự kiện này chỉ xuất hiện đối với các biểu mẫu đối tượng (thư mục, tài liệu và một số thứ khác). Nếu biểu mẫu không bị ràng buộc với một đối tượng cụ thể thì sẽ không có sự kiện ghi.

Đối với mô-đun có dạng thông thường, danh sách các sự kiện tiêu chuẩn có phần nhỏ hơn, bởi vì ở dạng được quản lý, nhiều sự kiện được tạo để ghép nối (một sự kiện được thực thi trên Máy khách và sự kiện khác trên Máy chủ). Ở dạng bình thường, tất cả mã được thực thi trên Máy khách.

Mô-đun đối tượng

Các mô-đun này điển hình cho các thư mục, tài liệu, sơ đồ cho các loại tính toán, biểu đồ tài khoản và nhiều đối tượng khác. Mô-đun đối tượng được thiết kế để xử lý các sự kiện tiêu chuẩn. Ví dụ: một sự kiện để nhập một phần tử thư mục, một sự kiện để viết một phần tử, xóa, đăng một tài liệu, v.v.

Về nguyên tắc, sự kiện ghi cũng tồn tại trong Mô-đun biểu mẫu. Tuy nhiên, sự kiện ghi trong Mô-đun biểu mẫu xảy ra trong quá trình ghi tương tác khi làm việc với một biểu mẫu cụ thể.

Sự kiện ghi trong Mô-đun đối tượng sẽ được thực thi trên bất kỳ thao tác ghi nào từ bất kỳ dạng nào của đối tượng đã cho. Ngoài ra, nếu đối tượng được viết theo chương trình, sự kiện mô-đun của đối tượng sẽ kích hoạt.

Trong sự kiện ghi của Mô-đun đối tượng, bạn có thể xây dựng tất cả các kiểm tra về tính chính xác của dữ liệu được ghi, vì quy trình này sẽ được thực thi hoàn toàn tại thời điểm ghi.

Mô-đun của đối tượng này có thể được gọi thông qua menu ngữ cảnh, từ Bảng thuộc tính đối tượng và từ cửa sổ chỉnh sửa đối tượng.

Hình dưới đây hiển thị danh sách các sự kiện mô-đun thư mục có sẵn.

Trong Mô-đun đối tượng, bạn có thể đặt một phần để mô tả các biến, mô tả các hàm tùy ý có thể không liên quan đến một sự kiện, cũng như một phần của chương trình chính.

Ví dụ: trong phần chương trình chính, bạn có thể khởi tạo các biến cục bộ của một mô-đun nhất định. Mã chương trình này sẽ được thực thi khi mô-đun đối tượng này được truy cập.

Cần lưu ý rằng tất cả các thủ tục của Mô-đun đối tượng đều được biên dịch trên Máy chủ. Theo đó, không cần phải có các chỉ thị biên dịch cho các thủ tục và chức năng của Mô-đun đối tượng. Một số đối tượng cấu hình không có Mô-đun đối tượng.

Điều này là do đặc điểm của chính các đối tượng. Những đối tượng như vậy bao gồm Hằng sốĐăng ký. Vì Không thay đổi không có mô-đun đối tượng, nhưng có một mô-đun rất giống được gọi là Mô-đun quản lý giá trị.

TRONG Mô-đun quản lý giá trị bạn có thể xử lý các sự kiện viết Hằng số và điền xử lý xác minh.

Toàn bộ bối cảnh của mô-đun được thực thi trên Máy chủ.

Đối với các thanh ghi có Mô-đun Recordset.

Mô-đun này cũng có khả năng xử lý các sự kiện ghi và thực hiện kiểm tra tỷ lệ sử dụng.

Trong Mô-đun đối tượng, Mô-đun quản lý giá trị (dành cho hằng số) và Mô-đun bản ghi (dành cho sổ đăng ký), bạn có thể mô tả các phương thức có thể xuất được và những phương thức này sẽ có thể truy cập được từ bên ngoài.

Những thứ kia. Ngoài việc sử dụng các phương thức cố định của một lớp đối tượng, bạn có thể tạo các phương thức bổ sung cho một đối tượng trong Mô-đun đối tượng. Mô-đun này sẽ mô tả quy trình tương ứng với từ khóa Xuất khẩu.

Sau đó sẽ có thể truy cập thủ tục này từ bên ngoài. Hơn nữa, phương pháp này sẽ được hiển thị trong chú giải công cụ ngữ cảnh. Các phương thức mới trong chú giải công cụ ngữ cảnh được đánh dấu bằng phông chữ màu xanh lam (biểu tượng màu xanh lam P() về các thủ tục và f() cho các chức năng).

Tương tự, bạn có thể tạo một thuộc tính mới bằng cách khai báo một biến với từ khóa Xuất khẩu. Thuộc tính này cũng có thể được truy cập từ bên ngoài.

Bằng cách này, có thể mở rộng chức năng của các đối tượng (để xác định các phương thức và thuộc tính mới). Tuy nhiên, các thuộc tính là động và không được lưu trong cơ sở dữ liệu.

Nếu bạn cần sử dụng một thuộc tính cho một đối tượng sẽ được lưu trữ trong cơ sở dữ liệu, bạn nên tạo một thuộc tính đối tượng.

Mô-đun quản lý

Mô-đun này tồn tại cho nhiều đối tượng (thư mục, tài liệu, sổ đăng ký, v.v.). Mô-đun được mở thông qua menu ngữ cảnh cho đối tượng hoặc thông qua Bảng thuộc tính, hoặc thông qua cửa sổ chỉnh sửa.

Trong Mô-đun quản lý, bạn có thể ghi đè một số sự kiện tiêu chuẩn. Xử lýNhậnLựa chọnDữ liệu, khi một phần tử được chọn từ thư mục, một số thao tác lọc hoặc kiểm tra bổ sung có thể được thực hiện.

Ngoài ra, bạn có thể tạo các phương thức bổ sung trong Mô-đun Trình quản lý và chỉ ra rằng chúng là các phương thức xuất. Trong trường hợp này, có thể truy cập các phương thức này từ bên ngoài.

Để thực hiện cuộc gọi này, cần phải có kiểu dữ liệu Trình quản lý thư mục.

Sự khác biệt giữa các phương thức xuất của Mô-đun quản lý và Mô-đun đối tượng là để truy cập phương thức của Mô-đun đối tượng, trước tiên bạn cần lấy chính đối tượng đó (nghĩa là bằng cách nào đó lấy được một liên kết rồi chuyển liên kết này thành một đối tượng) .

Sau này, các biến và phương thức xuất của Mô-đun đối tượng sẽ có sẵn. Đối với Mô-đun quản lý, lệnh gọi đơn giản hơn, ví dụ:
Thư mục.Đối tác.MethodName

Đây là hai lời kêu gọi khác nhau. Chuyển đổi từ tham chiếu sang đối tượng (phương thức Nhận đối tượng) là một hành động khá nghiêm trọng đối với hệ thống, vì khi nhận một đối tượng, tất cả dữ liệu của đối tượng này đều được đọc, có thể khá dài.

Sự khác biệt thứ hai đó là Mô-đun đối tượngđược gọi trong ngữ cảnh của một phần tử cụ thể. Theo đó, chúng ta có thể giả định rằng nó có thể áp dụng cho một phần tử nhất định (trong hầu hết các trường hợp, đây chính xác là logic đã được đặt ra).

Đối với Mô-đun Trình quản lý, nó mô tả một số hành động chung cho một nhóm hoặc cho tất cả các thành phần của một thư mục hoặc một số tài liệu. Ví dụ: nếu bạn cần in một mục thư mục, bạn có thể sử dụng Mô-đun đối tượng.

Nhưng trong Mô-đun quản lý, có thể tạo ra một cơ chế phổ quát hơn để in một nhóm phần tử, cùng với những thứ khác.

Ngoài ra, việc truy cập vào Module đối tượng vẫn là một hành động dài hơn. Vì vậy, tốt hơn hết bạn nên giải quyết vấn đề này trong mô-đun quản lý.

Điều này kết thúc phần làm quen của chúng tôi với các mô-đun trong cấu hình hệ thống 1C:Enterprise. Nếu chúng ta tóm tắt ngắn gọn tất cả những điều trên, thì điểm mấu chốt là những kết luận sau:

  • Mô-đun phần mềm là một phần của cấu hình chỉ có thể chứa văn bản bằng ngôn ngữ 1C tích hợp
  • Các mô-đun phần mềm được phân loại theo loại chúng tôi đã thảo luận trong bài viết này. Mỗi chế độ xem được xác định bởi vị trí của nó và bối cảnh chương trình có sẵn.
  • Cấu trúc của mô-đun bao gồm một số phần được sắp xếp theo một trình tự nhất định. Thành phần của các phần được xác định bởi loại mô-đun.

Cũng lưu ý rằng chúng tôi đã cố tình bỏ qua một loại mô-đun, đó là mô-đun lệnh. Nó không có gì đáng chú ý và chúng tôi mời bạn làm quen với chức năng của nó.

Cho đến nay, chúng tôi đã xem xét tất cả mã chương trình của mình một cách riêng biệt với giải pháp ứng dụng và theo quy định, chúng tôi đã viết nó trong một số cấu hình thử nghiệm nhỏ của riêng mình. Bạn có biết rằng “bạn không thể cứ đi” và bắt đầu chỉnh sửa mã của cấu hình tiêu chuẩn không? KHÔNG? Vậy thì ở bài viết tiếp theo chúng tôi sẽ giải thích tất cả!