Lỗi trong các phần tử được xác định trước. Cài đặt các phần tử được xác định trước bị thiếu trong dữ liệu 8.3

Xử lý đơn giản để làm việc với các giá trị được xác định trước.

Cho phép bạn so sánh các thành phần bảo mật thông tin với các thành phần được xác định trước trong cấu hình.

Cho phép bạn kiểm tra toàn bộ cấu hình xem có sự hiện diện của các phần tử trùng lặp (một số phần tử bảo mật thông tin được liên kết với một phần tử được xác định trước - lỗi) và các phần tử bị thiếu (các phần tử được xác định trước không liên quan đến các phần tử bảo mật thông tin - lỗi). Như là các phần tử có thể phát sinh trong quá trình trao đổi hoặc lỗi và dẫn đến lỗi trong cấu hình.

Bạn chỉ cần xem các giá trị hiện tại và thực hiện bất kỳ thay đổi cần thiết nào.

Quy trình vận hành:

1. Chúng tôi bắt đầu xử lý.

2. Chọn loại (thư mục, sơ đồ tài khoản, PVC, PVR).

3. Chúng tôi chọn thư mục của loại đã chọn.

4. Tất cả các thành phần được xác định trước có sẵn trong bảo mật thông tin và được mô tả trong cấu hình sẽ xuất hiện trong phần dạng bảng của quá trình xử lý.

Nếu có một số thành phần trong cơ sở dữ liệu được liên kết với một thuộc tính được xác định trước hoặc một số thành phần được mô tả trong cấu hình không được gán các thành phần bảo mật thông tin thì hệ thống sẽ báo cáo điều này khi chọn thư mục. Các mục trùng lặp và bị thiếu sẽ xuất hiện ở đầu danh sách và được đánh dấu bằng màu cam.

5. Chúng tôi đặt giá trị mới cho các phần tử được xác định trước bắt buộc.

Trong trường hợp này, các dòng có phần tử xác định trước biến mất khỏi cấu hình sẽ được đánh dấu màu đỏ. Những đường màu xanh lam là những dòng mà phần tử được xác định trước thay đổi, những đường màu xanh lá cây là những dòng mà phần tử được xác định trước xuất hiện.
Nếu có số lượng trùng lặp lớn, bạn có thể thuận tiện chọn tất cả các dòng thừa bằng chuột và cho biết tất cả các dòng đã chọn sẽ hủy kết nối bằng nút “Hủy trận đấu” (từ phiên bản 1.3.1)

6. Chúng tôi thực hiện việc gán lại bằng cách nhấp vào nút “Gán lại các phần tử”.

Kiểm tra trùng lặp(lỗi "Phần tử được xác định trước không phải là duy nhất"):

Khi bạn nhấp vào nút "Kiểm tra trùng lặp", quá trình xử lý sẽ kiểm tra tất cả sách tham khảo, biểu đồ tài khoản, PVC và PVR và hiển thị danh sách các bảng có phần tử trùng lặp cho biết số lượng phần tử trùng lặp.

Sau đó, bạn cần kiểm tra riêng các đối tượng đã tìm thấy lỗi.

Kiểm tra các mục bị bỏ lỡ(lỗi "Phần tử được xác định trước không có trong dữ liệu"):

Khi bạn nhấp vào nút "Kiểm tra bị thiếu", quá trình xử lý sẽ kiểm tra tất cả sách tham khảo, biểu đồ tài khoản, PVC và PVR và hiển thị danh sách các yếu tố được xác định trước không liên quan đến dữ liệu bảo mật thông tin.

Yêu cầu nền tảng 8.3.3 trở lên để sử dụng.

Phổ thông, có thể được sử dụng với bất kỳ cấu hình nào.

Phát hiện ngôn ngữ Tiếng Afrikaans Tiếng Albania Tiếng Ả Rập Armenia Tiếng Azerbaijan Tiếng Basque Tiếng Bengali Tiếng Bêlarut Tiếng Bulgaria Tiếng Catalan Tiếng Trung (Simp) Tiếng Trung (Truyền thống) Croatia Tiếng Séc Đan Mạch Tiếng Anh Tiếng Anh Esperanto Tiếng Estonia Tiếng Philipin Tiếng Phần Lan Tiếng Pháp Galician Tiếng Georgia Tiếng Đức Tiếng Hy Lạp Gujarati Haiti Creole Tiếng Do Thái Tiếng Hindi Tiếng Hungary Tiếng Iceland Tiếng Indonesia Tiếng Ireland Tiếng Nhật Tiếng Kannada Tiếng Hàn Tiếng Lào Tiếng Latinh Tiếng Latvia Tiếng Litva Tiếng Macedonia Tiếng Mã Lai Tiếng Malta Tiếng Na Uy Tiếng Ba Tư Tiếng Ba Lan Tiếng Bồ Đào Nha Tiếng Rumani Tiếng Nga Tiếng Serbia Tiếng Slovak Tiếng Slovenia Tiếng Tây Ban Nha Tiếng Swahili Tiếng Thụy Điển Tiếng Tamil Tiếng Thái Tiếng Thổ Nhĩ Kỳ Tiếng Ukraina Tiếng Urdu Tiếng Việt Tiếng Wales Tiếng Yiddish Tiếng Afrikaans Tiếng Albania Tiếng Ả Rập Tiếng Armenia Tiếng Azerbaijan Tiếng Basque Tiếng Bengali Tiếng Belarus Tiếng Bulgaria Tiếng Catalan Tiếng Trung (Simp) Tiếng Trung (Truyền thống) Croatia Tiếng Séc Đan Mạch Tiếng Hà Lan Tiếng Anh Esperanto Tiếng Estonia Tiếng Philipin Tiếng Phần Lan Tiếng Pháp Tiếng Galicia Tiếng Gruzia Tiếng Đức Tiếng Hy Lạp Gujarati Tiếng Haiti Creole Tiếng Do Thái Tiếng Hindi Hungary Tiếng Iceland Tiếng Indonesia Tiếng Ireland Tiếng Nhật Tiếng Kannada Tiếng Hàn Tiếng Lào Tiếng Latin Latvia Tiếng Litva Tiếng Macedonian Tiếng Mã Lai Tiếng Malta Tiếng Na Uy Tiếng Ba Tư Tiếng Ba Lan Tiếng Bồ Đào Nha Tiếng Rumani Tiếng Nga Tiếng Serbia Tiếng Slovak Tiếng Slovenia Tiếng Tây Ban Nha Tiếng Swahili Tiếng Thụy Điển Tiếng Tamil Tiếng Thái Tiếng Thổ Nhĩ Kỳ Tiếng Ukraina Tiếng Urdu Tiếng Việt Tiếng Wales Tiếng Yiddish

Ngày tốt.

Hôm nay chúng ta sẽ nói về sự đổi mới trong nền tảng 8.3 liên quan đến các thành phần được xác định trước.

Giới thiệu

Hãy để tôi nhắc bạn rằng trước đây trong thực tế, tôi thường muốn xem xét một thành phần thư mục để tìm ra tên được xác định trước của nó. Ví dụ: bạn đã tạo hai đối tác được xác định trước và đặt tên chúng là IPSidorov và OOOMeteor. Và họ đã khâu một số logic vào chúng.

Khi mọi thứ đã được gỡ lỗi và giải quyết, hóa ra nhiệm vụ được đặt ra ngược lại và logic đối với cá nhân doanh nhân là cần thiết đối với LLC, và logic của LLC là cần thiết đối với cá nhân doanh nhân. “Không vấn đề gì,” chúng tôi nói và ở chế độ doanh nghiệp, chúng tôi đổi tên các thành phần. Rốt cuộc, việc nhập mã khó khăn hơn nhiều. Một năm trôi qua và bạn được giao một nhiệm vụ mới: thiết lập thêm một số logic cho IP Sidorov. Bạn vào bộ cấu hình, viết logic, bắt đầu kiểm tra và không có gì hoạt động, bởi vì... trong bộ cấu hình IPSidorov và trong doanh nghiệp - OOOMteor. Đầu óc hỏng rồi, muốn đập nát cái cào này. Điều đơn giản và rõ ràng nhất là hiển thị tên của một phần tử được xác định trước dưới dạng danh sách. Đây là điểm đáng chú ý: bạn chỉ có thể lấy tên của một tên được xác định trước trong 8.2 bằng phương thức này. Nhưng phương pháp này có những bất tiện riêng, nó không thể được lấy theo yêu cầu. Những thứ kia. Sự bất tiện đầu tiên là lấy tên của tên được xác định trước từ tham chiếu đến thư mục.

Điều bất tiện thứ hai là khi chúng ta đã có sẵn một thành phần thư mục và chúng ta cần xác định trước nó. Chúng tôi tạo một phần tử được xác định trước và nhận hai phần tử trong thư mục. Một cái được xác định trước, cái còn lại đang hoạt động, được tham chiếu trong tất cả các tài liệu của chúng tôi. Việc thay thế các liên kết chắc chắn sẽ có ích, nhưng nếu cơ sở dữ liệu lớn thì sẽ khó khăn.

Bây giờ đến điểm

Đầu tiên là thư mục hiện có thuộc tính "Cập nhật dữ liệu được xác định trước".

Lĩnh vực này cung cấp cho chúng ta những gì? Nếu nó được đặt thành "Không cập nhật tự động", thì bằng cách thêm một phần tử được xác định trước, chúng ta sẽ không thấy nó trong thư mục ngay lập tức. Những thứ kia. siêu dữ liệu không liên quan gì đến dữ liệu. Và nếu bạn không tạo nó trong thư mục thì việc truy cập nó bằng tên của nó thông qua trình quản lý thư mục sẽ gây ra lỗi cú pháp.

Rất thú vị, nhưng tại sao? Làm cách nào chúng ta có thể tạo một phần tử trong thư mục? Bạn có thể tạo nó theo cách bạn muốn hoặc bạn có thể liên kết nó với một cái hiện có. Bây giờ thư mục có thuộc tính "Tên dữ liệu được xác định trước". Chúng tôi tạo một phần tử thư mục theo chương trình như thường lệ thông qua “Directories.Contractors.CreateElement()” và điền thuộc tính của nó “PreDefinDataName” bằng tên của phần tử được xác định trước. Hoặc nếu phần tử đã tồn tại, chúng ta lấy đối tượng của nó và điền lại vào “Tên của dữ liệu được xác định trước”. Tất cả.

Và cuối cùng là một ít xi-rô

Thuộc tính mới này không chỉ có thể đọc và ghi được mà còn có sẵn trong các yêu cầu. Bằng cách này, bạn có thể áp đặt các điều kiện cho nó trong các truy vấn, xác định xem nó có được xác định trước hay không.

Cám ơn vì sự quan tâm của bạn.

Theo tôi, ý tưởng về công việc có lập trình với các yếu tố được xác định trước là rất đúng. Đơn giản là có những sắc thái cần được tính đến khi làm việc.

Trước tiên, bạn cần tự mình hiểu rõ rằng có những phần tử được xác định trước trong cấu hình và có những phần tử được xác định trước trong cơ sở thông tin (IS). Về mặt kỹ thuật, các thành phần bảo mật thông tin được xác định trước là các thành phần phổ biến nhất của thư mục, trong đó thuộc tính “Tên của dữ liệu được xác định trước” cho biết chúng tương ứng với thành phần cấu hình được xác định trước nào. Chúng không khác gì những phần tử thông thường. Theo đó, bất kỳ yếu tố bảo mật thông tin thông thường nào cũng có thể được xác định trước, mọi yếu tố được xác định trước đều có thể được xác định trước. Để làm điều này, chỉ cần nhập giá trị mong muốn vào thuộc tính "Tên dữ liệu được xác định trước".

Đôi khi, thuộc tính này chứa một giá trị không phải là giá trị mà nhà phát triển dự định. Kết quả là xảy ra lỗi trong quá trình hoạt động của 1C. Từ quan trọng, trong đó công việc về cơ bản là không thể, đến không quan trọng, trong đó logic của các thuật toán bị gián đoạn.

Có điều kiện chúng ta có thể phân biệt ba loại lỗi:
1. "Phần tử được xác định trước không có trong dữ liệu";

3. Đặc điểm kỹ thuật của phần tử được xác định trước không chính xác;

1. "Phần tử được xác định trước không có trong dữ liệu" - o sự vắng mặt của thành phần được xác định trước được mô tả trong cấu hình trong dữ liệu bảo mật thông tin.

Đây là loại lỗi dễ dàng nhất để gỡ lỗi và sửa chữa. Sự đơn giản của nó là nền tảng báo cáo khá chính xác tình huống này “Thiếu phần tử được xác định trước trong dữ liệu” và cách khắc phục khá rõ ràng.

Khi truy cập một phần tử bị thiếu trong mã "Thư mục.Các loại thông tin liên hệ.Email của người liên hệ", một thông báo sẽ được hiển thị

Khi truy cập một phần tử trong yêu cầu "VALUE(Thư mục.Các loại thông tin liên hệ.Email của người liên hệ)" thông báo sau sẽ được hiển thị:

Lỗi này xảy ra nếu một phần tử được mô tả trong cấu hình nhưng phần tử đó không được liên kết với nó trong cơ sở dữ liệu.

Để bắt đầu, chúng ta hãy làm rõ rằng tình huống này không phải lúc nào cũng sai. Hoàn toàn có thể sử dụng dữ liệu được xác định trước trong một số loại logic chương trình mà hầu hết người dùng có thể không sử dụng được. Trong trường hợp này, để không làm lộn xộn thư mục cho tất cả người dùng cấu hình, điều hợp lý là xác định các thành phần được xác định trước trong cấu hình, nhưng không tạo chúng trong tất cả các hệ thống bảo mật thông tin mà chỉ dành cho những hệ thống bảo mật thông tin trong đó logic cấu hình cần thiết được sử dụng. Trong trường hợp này, lập trình viên có thể chỉ định thuộc tính “Không cập nhật dữ liệu được xác định trước” cho thư mục và tạo các phần tử theo chương trình khi truy cập chức năng mô-đun. Hoặc cho phép người dùng liên kết độc lập các phần tử mô-đun được xác định trước với các phần tử thông thường hiện có.

Ngoài ra, việc tự động tạo các phần tử được xác định trước không được sử dụng khi làm việc ở chế độ RIB. Vì các phần tử mới phải được chuyển từ cơ sở dữ liệu trung tâm và không được tạo trong các nút có UID khác nhau.

Những thứ kia. Đôi khi lỗi là tham chiếu đến một phần tử chưa khớp, chứ không phải sự hiện diện của chính phần tử đó.

Cần phải phân tích tại sao phần tử đó không được tạo. Có lẽ nó nên được tạo khi một số chế độ chương trình được thực thi. Ví dụ: sau khi hoàn thành trao đổi RIB. Hoặc có lẽ nó chỉ vô tình bị xóa.

Nếu logic cung cấp khả năng điền các phần tử được xác định trước không tự động mà ở một chế độ riêng biệt, thì trước khi sử dụng quyền truy cập theo tên " Thư mục.Các loại thông tin liên hệ.Email của người liên hệ"Để ngăn chặn tình huống đặc biệt, nên kiểm tra xem phần tử đã có trong cơ sở dữ liệu hay chưa. Nếu phần tử bị thiếu, hãy thông báo cho người dùng về điều này và giải thích chế độ nào anh ta cần thực hiện để điền vào phần tử. Để kiểm tra như vậy , bạn có thể chạy truy vấn dữ liệu.

Yêu cầu = Yêu cầu mới; Yêu cầu.Text = "CHỌN | Các loại thông tin liên hệ. Liên kết | TỪ | Thư mục. Các loại thông tin liên hệ CÁCH Loại thông tin liên hệ | WHERE | Các loại thông tin liên hệ. Tên của dữ liệu được xác định trước = "" EmailLiên hệNgười"""; Mục bị thiếuInData = Query.Execute().Empty();

Nếu đây vẫn là lỗi trong dữ liệu cơ sở dữ liệu thì cần phải liên kết với một phần tử được xác định trước của phần tử bảo mật thông tin. Những thứ kia. cần phải giải thích cho hệ thống biết phần tử bảo mật thông tin nào mà mã chương trình sẽ truy cập bằng tên này. Về mặt kỹ thuật, một ràng buộc chỉ đơn giản là xác định tên của một phần tử được xác định trước trong thuộc tính "Tên dữ liệu được xác định trước" của phần tử IS. Để cài đặt nó, chỉ cần chạy mã:

2. "Phần tử được xác định trước không phải là duy nhất" - h các phần tử được xác định trước kép:

Tình huống này là một số thành phần bảo mật thông tin được gắn vào một thành phần được xác định trước. Trong trường hợp này, khi truy cập vào tên được xác định trước, phần tử sẽ được chọn ngẫu nhiên. Tình huống này luôn luôn sai. Khó khăn của nó là nền tảng không báo cáo nó dưới bất kỳ hình thức nào. Các thuật toán bắt đầu hoạt động không chính xác.

Nền tảng sẽ chỉ báo lỗi "Phần tử được xác định trước không phải là duy nhất" khi bạn cố gắng chỉnh sửa phần tử trùng lặp.

Chỉ cần không ai cần chỉnh sửa phần tử thì sẽ không có ai biết về lỗi.

Các bản sao như vậy có thể được tạo, ví dụ: nếu RIB được sử dụng cho thư mục và chế độ “Cập nhật tự động” được chỉ định trong thuộc tính cho dữ liệu được xác định trước. Trong trường hợp này, khi thực hiện trao đổi, một phiên bản của dữ liệu được xác định trước sẽ được tạo khi cấu hình được cập nhật. Phiên bản thứ hai của các phần tử được xác định trước có cùng tên sẽ được chuyển từ cơ sở dữ liệu trung tâm trong quá trình trao đổi.

Ngoài ra, những sự trùng lặp này sẽ phát sinh khi sử dụng xử lý trao đổi giữa các cấu hình nếu các phần tử bảo mật thông tin khác nhau tương ứng với các phần tử được xác định trước trong các cơ sở dữ liệu khác nhau. Trong trường hợp này, một bản sao của dữ liệu được xác định trước đã tồn tại trong cơ sở dữ liệu, bản sao thứ hai sẽ xuất hiện khi tải dữ liệu bằng UID khác. Nếu bạn đang thực hiện truyền dữ liệu, bạn cần quyết định thành phần cơ sở dữ liệu nào được coi là chính và sử dụng chúng trong cơ sở dữ liệu cấp dưới. Trong cơ sở dữ liệu cấp dưới, cần thay thế việc sử dụng các phần tử cũ bằng các phần tử của cơ sở dữ liệu chính.

Những lỗi như vậy trong cơ sở dữ liệu có thể được xác định bằng một truy vấn như:

CHỌN Loại thông tin liên hệ. Tên dữ liệu được xác định trước, SỐ LƯỢNG (Các loại thông tin liên hệ KHÁC NHAU. Liên kết) AS Số lượng thông tin liên hệ được xác định trước TỪ Thư mục. Loại thông tin liên hệ NHƯ Loại thông tin liên hệ NHÓM THEO Loại thông tin liên hệ. Tên dữ liệu được xác định trước CÓ SỐ LƯỢNG (Các loại liên hệ KHÁC NHAU noInformation.Link) > 1

Truy vấn này sẽ trả về danh sách các phần tử được xác định trước có liên quan đến nhiều phần tử bảo mật thông tin.

Nếu có các phần tử như vậy, cần phải loại bỏ kết nối với phần tử được xác định trước cho một trong số chúng. Những thứ kia. Cần phải xác định rõ ràng cho hệ thống yếu tố bảo mật thông tin nào mà mã chương trình nên đề cập đến khi sử dụng tên này.Để làm điều này, chỉ cần chạy mã.

3. Đặc điểm kỹ thuật của phần tử được xác định trước không chính xác.

Lỗi là phần tử được xác định trước tương ứng với phần tử không được logic chương trình cung cấp. Những lỗi như vậy là khó chẩn đoán nhất. Không giống như hai loại đầu tiên, cấu hình không thể tự động kiểm tra các lỗi này. Chúng chỉ có thể được xác định bằng cách phân tích tính logic của công việc. Nếu nghi ngờ, bạn có thể kiểm tra xem có sử dụng đúng phần tử hay không.

Để làm điều này, chỉ cần chạy một trong các lệnh.

//Xác định phần tử bảo mật thông tin được liên kết với Thông báo được xác định trước mong muốn (Thư mục.Các loại thông tin liên hệ.Email của Người liên hệ) //Xác định phần tử được xác định trước mà Thông báo đã chọn được đính kèm (Liên kết tới Phần tử.Tên của dữ liệu được xác định trước )

Nếu xác định được những lỗi như vậy thì cần loại bỏ kết nối không chính xác với phần tử cũ và thêm kết nối với phần tử mới. Mã hoạt động tương tự như mã sửa hai loại lỗi đầu tiên.

Vâng, nói ngắn gọn về các lỗi trong quá trình làm việc chương trình hoặc ở chế độ cấu hình:

"Phần tử được xác định trước không thuộc về<Имя справочника>" - xảy ra lỗi khi cố gắng viết một phần tử được xác định trước có tên không khớp với tên trong bộ cấu hình.

"Các đối tượng không được xác định trước không thể có bản ghi chế độ xem conto được xác định trước" - xảy ra lỗi khi cố gắng làm cho một thành phần của biểu đồ tài khoản được xác định trước không được xác định trước. Để loại bỏ lỗi, cần xóa cờ “Được xác định trước” khỏi mỗi dòng liên hệ phụ của phần tử.

"Các đối tượng không được xác định trước không thể có bản ghi được xác định trước của các loại tính toán hàng đầu"- xảy ra lỗi khi cố gắng tạo một phần tử được xác định trước trong sơ đồ các loại tính toán không được xác định trước. Để loại bỏ lỗi, cần bỏ hộp kiểm “Được xác định trước” cho từng dòng thuộc loại tính toán hàng đầu của phần tử.

"Các phần tử được xác định trước không phải là duy nhất"- lỗi được tạo ra trong bộ cấu hình khi cập nhật cơ sở thông tin cho bản phát hành cấu hình không có chế độ tương thích với 8.3.4. Cần kiểm tra các bản sao và loại bỏ chúng trước khi cập nhật.

"Tên của phần tử được xác định trước không phải là duy nhất" - lỗi xảy ra khi có một số thành phần được xác định trước có cùng tên trong cấu hình khi cập nhật lên nền tảng8.3.6.2332 trở lên. Cần phải loại bỏ sự trùng lặp trong cấu hình.

Để làm việc với dữ liệu được xác định trước, tôi khuyên bạn nên xử lý. Nó có thể thực hiện bất kỳ hành động nào với dữ liệu được xác định trước và cũng có thể kiểm tra toàn bộ cấu hình xem có lỗi của hai loại đầu tiên (các phần tử trùng lặp và bị thiếu) trong tất cả các đối tượng bảo mật thông tin (thư mục, biểu đồ tài khoản, PVC, PVR) .