Cấu trúc lưu trữ cơ sở dữ liệu (biểu mẫu được quản lý). Cấu trúc lưu trữ cơ sở dữ liệu (biểu mẫu được quản lý) Cấu trúc bảng 1c
Nền tảng 1C là một công cụ cấp cao để làm việc với cơ sở dữ liệu. Nói chung, nhà phát triển không cần phải suy nghĩ về những gì và như thế nào đang xảy ra ở phía DBMS, vì chính nền tảng này sẽ quyết định số lượng bảng sẽ tạo và trường nào sẽ có bên trong chúng.
Tuy nhiên, trong các dự án lớn cần phải làm việc trực tiếp với dữ liệu, chẳng hạn như để phân tích thông tin bằng các công cụ của bên thứ ba hoặc, như trong trường hợp của tôi, để tích hợp cơ sở dữ liệu với các ứng dụng bên ngoài. Trong tình huống như vậy, cần phải có ý tưởng về trường nào của bảng vật lý để tìm kiếm thông tin chúng ta cần.
Chức năng tích hợp chỉ dành cho trường hợp như vậy GetDatabaseStorageStructure(), trả về tất cả dữ liệu cần thiết dưới dạng bảng giá trị. Hơn nữa, một số chi tiết (Trường và Chỉ mục) của bảng này bản thân chúng là bảng giá trị.
Một mặt, thật thuận tiện khi có tất cả dữ liệu trong một cấu trúc, nhưng mặt khác, có thêm khó khăn khi chuyển bảng này sang máy khách (rất tiếc, phương thức Load() không tải các bảng lồng nhau). Do đó, bạn phải chạy qua tất cả các mục trong bảng trong một vòng lặp, điều này dẫn đến công việc chậm hơn với khối lượng lớn.
Do đó, tùy chọn tốt hơn sẽ là chuyển tên đối tượng siêu dữ liệu vào hàm để giảm lượng dữ liệu được trả về. Tuy nhiên, không phải tất cả các bảng DBMS đều được liên kết với siêu dữ liệu cấu hình, vì vậy tôi để lại tùy chọn xem danh sách đầy đủ.
Chức năng xử lý
Khi phần tử cây siêu dữ liệu được kích hoạt, danh sách các bảng, trường và chỉ mục sẽ được điền. Khi bạn bấm đúp vào gốc của cây, tất cả các bảng sẽ được hiển thị, bao gồm cả các bảng dịch vụ (không được khuyến nghị vì khối lượng dữ liệu được tìm kiếm tăng lên).
Trong các phần dạng bảng, các lệnh danh sách và tìm kiếm tiêu chuẩn hoạt động.
Sự khác biệt so với việc triển khai hiện có
Có một số ấn phẩm tương tự, ví dụ, và. Tuy nhiên, điểm bất tiện của chúng là thiếu cây siêu dữ liệu, khiến việc điều hướng trở nên khó khăn. Việc tìm kiếm cũng được thực hiện theo tên của các bảng và trường trong cơ sở dữ liệu chứ không phải ngược lại.
Chức năng gần nhất với ấn phẩm của tác giả (). Ngược lại, quá trình xử lý này chứa cây hoàn chỉnh nhất siêu dữ liệu (gói trao đổi, hằng số, nhật ký tài liệu, v.v.). Bên cạnh đó Cấu trúc dữ liệu được trình bày rõ ràng hơn: danh sách các bảng của đối tượng siêu dữ liệu, danh sách các trường và danh sách chỉ mục được hiển thị theo các phần dạng bảng riêng biệt.
CẬP NHẬT-2018-01-06 (v1.3).Đã khắc phục lỗi xảy ra ở chế độ tương thích 8.3.7 trở lên (hành vi của nền tảng đã thay đổi).
CẬP NHẬT-2012-08-17 (v1.2). Một bản vá đã được tạo để xử lý chính xác các tác vụ thông thường, mục hiển thị sơ đồ các loại tính toán đã được sửa và hành vi khi chuyển đổi loại cấu trúc trong thư mục gốc cấu hình đã được sửa.
tái bút Một số nhà tuyển dụng khi tuyển dụng hỏi về số lượng bảng vật lý và ảo để đăng ký. Sẽ thật tuyệt nếu biết câu trả lời cho những câu hỏi này, đặc biệt vì đây là cấp độ 1C: Chuyên nghiệp. Nếu bạn không chỉ muốn tìm hiểu câu trả lời này mà còn muốn “cảm nhận” những bảng này thì phương pháp này là dành cho bạn!
Cấu trúc trong ngôn ngữ lập trình 1C 8.3 và 8.2 là một tập hợp các cặp “Khóa” và “Giá trị”. Trường “Khóa” có loại chuỗi, trong khi trường “Giá trị” có thể chấp nhận bất kỳ loại dữ liệu nào. Thường được sử dụng để lưu trữ và chuyển một tập hợp các tham số giữa các thủ tục.
Cấu trúc trong ngôn ngữ lập trình 1C có thể được tạo theo hai cách bằng cách sử dụng cấu trúc “Mới”.
Cách thứ nhất:
Cấu trúc = Cấu trúc mới;
Structure.Insert("ParameterKey1", "ParameterValues No.1");
Structure.Insert("ParameterKey2", "ParameterValues No.2");
Cách thứ hai:
Cấu trúc = Cấu trúc mới("ParameterKey1, ParameterKey2", "ParameterValues No.1", "ParameterValues No.2");
Cả hai phương pháp sẽ tạo cấu trúc có thể nhìn thấy trong ảnh chụp màn hình khi gỡ lỗi:
Nhận miễn phí 267 bài học video trên 1C:
Thay đổi
Bạn có thể thêm hoặc thay đổi cấu trúc bằng phương thức “Insert()”.
Structure.Insert("KeyName", KeyValue);
Nếu bạn cần thay đổi giá trị của khóa cũ, hãy nhập tên của nó. Nếu bạn thêm khóa mới, hãy thêm tên duy nhất liên quan đến tất cả các khóa trong cấu trúc.
Để xóa một phần tử bộ sưu tập, bạn cần sử dụng phương thức “Xóa”, trong đó bạn chuyển tên khóa:
Structure.Delete("KeyName");
Cũng có thể xóa tất cả các đối tượng trong một bộ sưu tập:
Cấu trúc.Clear();
Đi qua cấu trúc
Để lặp qua một tập hợp cấu trúc, bạn cần sử dụng cấu trúc “Cho mỗi giá trị khóa từ vòng lặp cấu trúc”.
Ví dụ:
Đối với mỗi khóaÝ nghĩa từ vòng lặp cấu trúc
…… // xử lý, ví dụ, thay đổi giá trị
Chu kỳ cuối;
Trong mỗi chu kỳ, bạn sẽ thấy các trường sau có sẵn cho chúng tôi:
Dữ liệu xác định tính logic hoạt động của hệ thống dựa trên 1C:Enterprise thuộc về cơ sở thông tin. Cơ sở thông tin được lưu trữ trong cơ sở dữ liệu dưới dạng một tập hợp các bảng, trong đó 1C:Enterprise 8.1 có thể sử dụng một trong bốn hệ thống quản lý cơ sở dữ liệu (DBMS):
* Được xây dựng trong trong 1C:Enterprise 8.1 (phiên bản tệp của cơ sở thông tin). Trong trường hợp này, tất cả dữ liệu cơ sở thông tin được lưu trữ trong tệp có tên 1Cv8.1CD. Tệp này có định dạng nhị phân và về cơ bản là cơ sở dữ liệu cho DBMS được tích hợp trong 1C:Enterprise 8.1.
*Máy chủ Microsoft SQL(phiên bản máy khách-máy chủ của cơ sở thông tin). Tất cả dữ liệu cơ sở thông tin được lưu trữ trong cơ sở dữ liệu Microsoft SQL Server.
* PostgreSQL(phiên bản máy khách-máy chủ của cơ sở thông tin). Tất cả dữ liệu cơ sở thông tin được lưu trữ trong cơ sở dữ liệu PostgreSQL.
* IBM DB2(phiên bản máy khách-máy chủ của cơ sở thông tin). Tất cả dữ liệu cơ sở thông tin được lưu trữ trong cơ sở dữ liệu IBM DB2.
Ở cấp độ đối tượng cơ sở dữ liệu (bảng, trường, chỉ mục, v.v.), cả phiên bản tệp và máy khách-máy chủ của cơ sở thông tin đều có định dạng tương tự (khác nhau ở các chi tiết nhỏ). Một số thông tin về định dạng này được bao gồm dưới đây.
Toàn bộ cơ sở thông tin được trình bày trong cơ sở dữ liệu dưới dạng một tập hợp các bảng. Trong số đó có một số bảng nhất thiết phải có trong chế độ xem của bất kỳ cơ sở thông tin nào:
*Cấu hình- Cấu hình cơ bản của cơ sở thông tin. Cấu hình này tương ứng với cấu trúc dữ liệu thực và được 1C:Enterprise 8.0 sử dụng ở chế độ Doanh nghiệp.
*Lưu cấu hình- cấu hình được chỉnh sửa bởi Trình cấu hình. Cấu hình từ ConfigSave được ghi lại thành Config khi thực hiện “Cập nhật cấu hình cơ sở dữ liệu” trong Bộ cấu hình và ngược lại - khi thực hiện thao tác “Cấu hình - Cấu hình cơ sở dữ liệu - Quay lại cấu hình cơ sở dữ liệu” trong Bộ cấu hình.
* Các tập tin chứa thông tin dịch vụ, ví dụ: về cách làm việc với kho lưu trữ cấu hình.
* Thông số chứa các tham số cơ sở thông tin. Trong số đó:
=>
Danh sách người sử dụng cơ sở thông tin.
=>
Thiết lập cơ sở thông tin quốc gia.
=>
Bảng tương ứng giữa các đối tượng siêu dữ liệu và các đối tượng cơ sở dữ liệu (bảng, trường, chỉ mục).
=>
Một số thông tin khác.
*_NămGiảm giá- bù ngày trong cơ sở dữ liệu. Bảng này chỉ được tạo khi sử dụng Microsoft SQL Server.
* Lược đồ DB chứa thông tin về cấu trúc của cơ sở dữ liệu 1C:Enterprise và xác định các đối tượng cơ sở dữ liệu khác được cơ sở thông tin này sử dụng.
Khi 1C:Enterprise khởi động, nó sẽ kiểm tra sự hiện diện của các bảng được liệt kê trong cơ sở thông tin và nếu thiếu bất kỳ bảng nào trong số chúng thì thông báo “cơ sở thông tin đã bị hủy” sẽ hiển thị. Sự vắng mặt của tất cả các bảng được liệt kê có nghĩa là cơ sở thông tin trống. Trong trường hợp sau, các bảng này sẽ được tạo.
Danh sách và cấu trúc của các bảng cơ sở dữ liệu khác được xác định bởi cấu hình cụ thể, cụ thể là các đối tượng siêu dữ liệu được xác định trong đó. Mỗi tên bảng bao gồm một tiền tố chữ cái theo sau là một số. Tiền tố xác định mục đích của bảng và số cho phép bạn phân biệt giữa các bảng có cùng mục đích thuộc về các đối tượng siêu dữ liệu khác nhau. Nếu IBM DB2 được sử dụng làm DBMS thì cấu trúc được mô tả không phải là tên của các bảng mà là bí danh của chúng.
Nếu ít nhất một gói trao đổi được xác định trong cấu hình có đặt cờ "Cơ sở thông tin phân tán" thì các bảng sau sẽ được tạo:
*_ConfigChangeRec- bảng đăng ký thay đổi đối tượng cấu hình.
* _ConfigChangeRec_ExtProps- bảng tên tệp của các thuộc tính bên ngoài được sửa đổi của các đối tượng cấu hình.
Dưới đây là danh sách các đối tượng siêu dữ liệu khác nhau mà mỗi bảng có thể tương ứng.
* Hằng số
=>
_Consts chứa các giá trị hiện tại của tất cả các hằng số được xác định trong cấu hình.
=>
_ConstsChangeRec - bảng đăng ký các thay đổi liên tục. Được tạo nếu có ít nhất một hằng số tham gia vào ít nhất một kế hoạch trao đổi.
* Chia sẻ kế hoạch
=>
_Nút
=>
_Nút
* Thư mục
=>
_Thẩm quyền giải quyết
=>
_Thẩm quyền giải quyết
=>
_ReferenceChangeRec
* Tài liệu
=>
_Tài liệu
=>
_Tài liệu
=>
_Tài liệuThay đổiRec
* Trình tự tài liệu
=>
_Sự liên tiếp
=>
_Ranh giới tuần tự
=>
_Trình tự thay đổiRec
* Nhật ký tài liệu.
=>
_Nhật ký tài liệu
* Chuyển khoản
=>
_Enum
* Sơ đồ các loại đặc điểm
=>
_Chrc
=>
_Chrc
=>
_ChrcChangeRec
* Sơ đồ tài khoản
=>
_Tài khoản
=>
_Tài khoản
=>
_Tài khoản
=>
_AccChangeRec
* Sơ đồ các loại tính toán
=>
_CalcKind
=>
_CalcKind
=>
_CalcKind
=>
_CalcKind
=>
_CalcKindDN
=>
_CalcKind
=>
_CalcKindChangeRec
* Sổ đăng ký thông tin
=>
_Thông tinReg
=>
_InfoRegChangeRec
* Sổ đăng ký tích lũy
=>
_AccumReg
=>
_AccumRegTổng số
=>
_AccumRegDoanh thu
=>
_AccumRegChangeRec
=>
_AccumRegOptions - bảng cài đặt để lưu trữ tổng số thanh ghi tích lũy, một cho tất cả các thanh ghi tích lũy.
* Sổ kế toán
=>
_AcntReg
=>
_AcntRegED
=>
_AcTtl0
=>
_AcTtl
=>
_AcTtlC
=>
_AcntRegChangeRec
=>
_AccntRegOptions - bảng cài đặt để lưu trữ tổng số, một bảng cho tất cả các sổ đăng ký kế toán.
* Sổ đăng ký tính toán
=>
_CalcReg
=>
_CalcRegActPer
=>
_CalcRegChangeRec
=>
_CalcRegRecalc
=>
_CalcRegRecalcChangeRec
* Quy trình kinh doanh
=>
_BPRoutePoint
=>
_Quy trình kinh doanh
=>
_Quy trình kinh doanh
=>
_BusinessProcessChangeRec
* Nhiệm vụ
=>
_Nhiệm vụ
=>
_Nhiệm vụ
=>
_TaskChangeRec
Khi sử dụng IBM DB2, tiền tố bí danh của bảng không bắt đầu bằng dấu gạch dưới mà thay vào đó bắt đầu bằng một phần chữ cái.
Số lượng các bảng này phụ thuộc vào chức năng của cấu hình và có thể khá lớn. Ở chế độ bình thường, 1C:Enterprise không kiểm tra tính khả dụng cũng như tính toàn vẹn và nhất quán của dữ liệu chứa trong chúng. Do đó, điều quan trọng là cơ sở dữ liệu chứa cơ sở thông tin 1C:Enterprise 8.1 phải được bảo vệ khỏi sự truy cập trái phép và việc sửa đổi cơ sở dữ liệu đó chỉ được thực hiện bằng cách sử dụng các công cụ 1C:Enterprise. Để kiểm tra, bạn phải sử dụng chức năng "Quản trị - Kiểm tra và sửa chữa" được tích hợp trong bộ cấu hình.
Điều quan trọng nữa là việc sao lưu và phục hồi cơ sở dữ liệu lưu trữ cơ sở thông tin chỉ được thực hiện một cách tổng thể. Với mục đích này, nên sử dụng các công cụ sao lưu cơ sở dữ liệu được tích hợp trong DBMS được sử dụng. Có thể thực hiện sao lưu phiên bản tệp của cơ sở thông tin bằng cách sao chép tệp 1Cv8.1CD.
Bộ cấu hình có chức năng đặc biệt: Quản trị - Tải lên cơ sở thông tin. Với sự trợ giúp của nó, bạn có thể tải lên tệp được chỉ định (tệp tải lên) tất cả dữ liệu liên quan đến cơ sở thông tin, v.v. Chức năng đảo ngược “Tải cơ sở thông tin” cho phép bạn tải tất cả dữ liệu từ tệp tải lên vào cơ sở thông tin hiện tại thay vì cơ sở thông tin hiện có. Các chức năng này cũng có thể được sử dụng để sao lưu dữ liệu cơ sở thông tin ở cả phiên bản tệp và máy khách-máy chủ.