DZWON

Są tacy, którzy czytają tę wiadomość przed tobą.
Zapisz się, aby otrzymywać najnowsze artykuły.
E-mail
Nazwa
Nazwisko
Jak chcesz czytać dzwonek?
Bez spamu

Dobry dzień.

Dzisiaj porozmawiamy o innowacji w platformie 8.3 dotyczącej predefiniowanych elementów.

Wstęp

Przypomnę, że wcześniej, w praktyce, bardzo często chciałem zajrzeć do elementu księgi referencyjnej, aby poznać jego predefiniowaną nazwę. Na przykład utworzyłeś dwóch predefiniowanych kontrahentów i nazwałeś ich IPSidorov i OOOMeteor. I uszyli na nich jakąś logikę.

Kiedy wszystko zostało odpluskwione i zadziałało, okazało się, że zadanie zostało ustawione odwrotnie i logika dla jedynego właściciela była potrzebna dla LLC, a logika LLC była potrzebna dla jedynego właściciela. „Nie ma problemu”, mówimy, a w trybie Enterprise zmieniamy nazwy przedmiotów. Dużo trudniej jest dostać się do kodu. Mija rok i jesteś uratowany nowe zadanie: dla SP Sidorowa, ustaw trochę więcej logiki. Wchodzisz do konfiguratora, piszesz logikę, zaczynasz sprawdzać i nic nie działa, bo w konfiguratorze IPSidorov oraz w przedsiębiorstwie - Meteor LLC. Mózg jest zepsuty i chcę zniszczyć tę grabie. Najprostszym i najbardziej intuicyjnym jest wypisanie nazwy predefiniowanego elementu w postaci listy. Oto zasadzka, nazwę predefiniowanej w 8.2 możesz zdobyć tylko metodą. A metoda ma swoją niedogodność, nie można jej uzyskać w żądaniu. Te. pierwszą niedogodnością jest uzyskanie nazwy predefiniowanej przez odniesienie do katalogu.

Druga niedogodność polega na tym, że mamy już element katalogu i musimy go wstępnie zdefiniować. Tworzymy predefiniowany element i otrzymujemy dwa elementy w katalogu. Jeden predefiniowany, drugi działający, do którego odwołują się wszystkie nasze dokumenty. Wymiana linków z pewnością pomaga, ale jeśli baza danych jest duża, to jest to trudne.

Teraz w sprawie

Po pierwsze, odwołanie ma teraz właściwość „Aktualizuj dane predefiniowane”.

Co daje nam to pole? Jeśli jest ustawiony na „Nie aktualizuj automatycznie”, to dodając predefiniowany element, nie zobaczymy go od razu w odwołaniu. Te. metadane nie mają nic wspólnego z danymi. A jeśli nie zostanie utworzony w katalogu, odwołanie się do niego po nazwie przez menedżera katalogów spowoduje błąd składni.

Bardzo ciekawe, ale dlaczego? Jak tworzymy element w referencji? I jak chcesz, możesz stworzyć lub połączyć go z już istniejącym. Teraz wyszukiwanie ma atrybut „PredefinedDataName”. Element katalogu tworzymy programistycznie jak zwykle za pomocą „References.Contractors.CreateElement()” i wypełniamy jego atrybut „PredefinedDataName” równy nazwie wstępnie zdefiniowanego elementu. Lub, jeśli element już istnieje, pobieramy jego obiekt i ponownie wypełniamy w nim "PredefinedDataName". Wszystko.

I na koniec trochę syropu

Ten nowy rekwizyt jest nie tylko do odczytu / zapisu, ale także dostępny w żądaniach. W ten sposób można nałożyć na niego warunki w zapytaniach, określić, czy jest predefiniowany, czy nie.

Dziękuję za uwagę.

Podczas pracy na platformie 1C: Enterprise 8.x często konieczne jest powiązanie w kodzie programu ze zwykłymi (niezdefiniowanymi) elementami katalogów. Na przykład organizacja może mieć pięć rodzajów cen, które są używane w prawie wszystkich mechanizmach. W tym przypadku programowe odniesienie do określonej ceny jest w najlepszym przypadku realizowane albo przez wypisanie kodu w książce referencyjnej, a w najgorszym przypadku przez nazwę elementu.

Byłem świadkiem, jak w raportach, aby uzyskać wymaganą cenę, wybór według rodzaju ceny był używany w zapytaniu po nazwie (patrz następny zrzut ekranu).

W efekcie otrzymujemy niestabilny raport, który przestanie działać po zmianie nazwy typu ceny. Jeśli powiążesz się z kodem elementu, zawsze istnieje możliwość jego zmiany. Przykładowo, w związku z naruszeniem unikalności kodów katalogowych, administrator może rozpocząć renumerację obiektów, co zmieni kody elementów i raport przestanie działać poprawnie.

Dodatkowo, jeśli powiążesz się z nazwą lub kodem elementów katalogu, to po otrzymaniu linku do elementu, zawsze zostanie przeprowadzone wyszukiwanie w tabeli katalogów. Pomimo tego, że standardowe atrybuty systemowe są indeksowane przez SZBD, ich wyszukiwanie w niektórych przypadkach może pochłaniać znaczne zasoby. Ponadto bardziej racjonalnie byłoby nie wykonywać wyszukiwana fraza zgodnie z tabelą referencyjną, jeśli powiedzmy, że link do elementu jest już „z góry znany”.

Jako wyjście możesz przechowywać referencje do każdego często używanego elementu w wyszukiwaniu „Typy ceny elementu” w oddzielnych stałych i uzyskać z nich wartości w zapytaniu. Jednak w tym przypadku deweloper będzie musiał dodać osobną stałą dla każdego takiego elementu. Sytuacja stanie się znacznie bardziej skomplikowana, jeśli takie elementy znajdą się nie tylko w katalogu „Typy cen przedmiotów”, ale także w innych katalogach („Kategorie obiektów”, „Jakość”, „Nomenklatura” i inne). Wtedy liczba stałych w systemie może wzrosnąć kilkakrotnie!

Oczywiście do każdego z katalogów można dodać predefiniowane elementy i dostęp do nich byłby znacznie łatwiejszy. Jednak zmiana ogólnych obiektów skomplikowałaby proces aktualizacji konfiguracji z pakietów dostawców.

Jest więcej optymalne podejście zarówno z punktu widzenia rozwoju struktury metadanych konfiguracji, jak i od strony wydajności systemu. Dziś porozmawiamy o nim.

Kompleksowe rozwiązanie

Istota rozwiązania uniwersalnego będzie następująca: powstanie referencja, do której deweloper doda predefiniowane elementy. Do słownika została dodana zmienna „Wartość”, której rodzaj zależy od wartości, dla których zostanie utworzona korespondencja „Predefiniowany element słownika -> Wartość powiązana”. Struktura metadanych katalogu wygląda tak (patrz następny zrzut ekranu).

Aby uzyskać predefiniowany przedmiot najlepsza opcja jest użycie metody globalnej „Wstępnie zdefiniowana wartość (<Имя>)" ... Pełna ścieżka do predefiniowanego elementu jest przekazywana do metody jako parametr. Składnia jest podobna do funkcji języka zapytań „WARTOŚĆ ()”.

Dla ułatwienia rozwoju zalecam przeniesienie funkcji, aby pobrać wartość skojarzoną z predefiniowanym elementem do wspólnego modułu. V konfiguracja testowa, dostępny do pobrania pod linkiem na końcu artykułu, utworzono ogólny moduł "Wartości Predefiniowanych Elementów" z funkcją eksportu "GetValuePredefinedElement (<ИмяПредопределенногоЭлемента>)" ... Kod programu funkcji otrzymuje link do predefiniowanego elementu, następnie na żądanie otrzymuje wartości atrybutu „Value”. Poniższy zrzut ekranu przedstawia pełną listę funkcji.

Jak widać, funkcja generuje żądanie do atrybutu „Value” predefiniowanego elementu przekazanego jako parametr. Parametr funkcji to ciąg znaków z nazwą predefiniowanego elementu.
Aby stworzony mechanizm działał poprawnie należy powiązać predefiniowany element ze zwykłym elementem katalogu w trybie użytkownika wybierając odpowiedni element w atrybucie „Value”. Przejdźmy do kwestii wpływu na wydajność.

Wpływ na wydajność

Przeprowadził test szybkości dla obu opcji wyszukiwania: według nazwy i według odniesienia z predefiniowanego elementu. Wyszukiwanie przeszło przez katalog „Produkty” zawierający 20 000 rekordów. Podczas przeprowadzania testów dla baza plików Następujące wyniki zostały osiągnięte:

Wyniki pokazały, że w przypadku pracy w wersji plikowej użycie predefiniowanych elementów w celu uzyskania często używanych elementów z innych katalogów działa prawie 4 razy wolniej!

W trybie pracy klient-serwer wyniki testów pokazują zupełnie inny obraz. Szybkość uzyskiwania linku do żądanego elementu nie zmniejszyła się znacząco (jeden z testów wykazał 0,002 sek. na wyszukiwanie po nazwie i 0,0008 sek. podczas pracy z predefiniowanym elementem), jednak niezawodność programu znacznie wzrosła!

wnioski

W przypadkach, w których często konieczne jest wiązanie do zwykłych elementów katalogu, polecam nie używać wiązania według kodu lub nazwy. Takie podejście zmniejsza niezawodność i wydajność systemu.

W trakcie mojej pracy z platformą wielokrotnie spotykałem się z sytuacjami, kiedy po zmianie nazwy np. na element księgi referencyjnej „Typy nazewnictwa cenowego” zawieszała się większość niestandardowych raportów.

Im więcej algorytmów jest powiązanych ze zwykłymi elementami katalogu poprzez kod lub nazwę, tym mniej stabilny jest system.

Ponadto takie podejście pozwoli Ci nie zmieniać typowych obiektów konfiguracyjnych, jeśli musisz dodać do nich predefiniowany element. W przyszłości ułatwi to nieco proces aktualizacji konfiguracji.

Pliki do pobrania:

  1. Rozładowanie bazy testowej z przykładami z artykułu.

Wszyscy znają różnicę między elementami predefiniowanymi a zwykłymi: „Predefiniowane elementy są tworzone w trybie„ Konfigurator ”i nie można ich usunąć w trybie 1C: Enterprise”. W trybie użytkownika możesz odróżnić predefiniowany element od dodanych przez użytkowników specjalną ikoną (patrz następny zrzut ekranu).

Zasadniczo, predefiniowane elementy są tworzone przez programistów w celu powiązania z nimi algorytmów w różnych obiektach konfiguracyjnych. Na przykład w konfiguracji „Manufacturing Enterprise Management” w odnośniku „Quality” programiści dodali predefiniowany element „Nowy”.

Ten element jest używany w wielu modułach konfiguracyjnych. Tak więc w dokumencie „Przyjęcie towarów i usług”, przy księgowaniu we wszystkich rejestrach, w których występuje wymiar „Jakość”, podmieniana jest wartość elementu predefiniowanego. Poniżej znajduje się zestawienie sposobu wypełniania tabeli transakcji w rejestrze „Towary organizacji”:

// TOWARY W REJESTRZE TowaryOrganizacje. Zestaw ruchów = ruchy. ProduktyOrganizacje; Jeśli typ paragonu = przelewy. Rodzaje towarów dochodowych. W magazynie Wtedy // Pobierz tabelę wartości pasującą do struktury zestawu rekordów rejestru. Przesuń stół = Przesuń zestaw. Rozładuj (); // Wypełnij tabelę ruchu. Ogólny cel. LoadInTableValues ​​(Produkty TableBy, TableMotions); // Brakujące pola. Tabela ruchów. FillValues ​​(Organizacja, „Organizacja”); Tabela ruchów. FillValues ​​(Niezdefiniowane, "Komisarz"); Tabela ruchów. FillValues ​​(Referencje. Jakość. Nowy, "Jakość"); // Jakość wypełnienia z predefiniowanego elementu

Tak więc charakterystyka predefiniowanych elementów i ich przeznaczenie są dość proste. Przyjrzyjmy się, jak są przechowywane w tabelach bazy danych i czym różnią się od zwykłych elementów.

Różnice

W konfiguracji testowej został utworzony katalog "Produkty". Utworzono w nim grupę „Elementy testowe”. Treść grupy można było zobaczyć na zrzucie ekranu na początku artykułu. Dla odniesienia „Produkty” w bazie danych SQL znajduje się odpowiednia tabela „_Reference37” o następującej strukturze:

Ale jak ustalić zgodność atrybutów z drzewem konfiguracyjnym i polami w tabeli SQL?

Użyjemy metoda standardowa kontekst globalny „GetDatabaseStorageStructure()”, który zwróci nam tabelę wartości wraz z opisem struktury tabel.

W tabeli wartości „Fields” widzimy zgodność między polami tabeli SQL a atrybutami obiektów w drzewie metadanych. W naszym przykładzie rozważamy strukturę katalogu „Produkty”. Wszystkie katalogi mają standardowy atrybut typu logicznego „Predefined”, który jest ustawiony na TRUE dla wstępnie zdefiniowanych elementów:

Zgodnie z tabelą ze strukturą przechowywania księgi referencyjnej w bazie danych z całą pewnością możemy powiedzieć, że pole „Predefiniowane” odpowiada polu „IsMetadata”. Jeśli spojrzymy na zawartość tabeli „_Reference37” w bazie danych SQL, zobaczymy, co następuje:

We wpisie dla predefiniowanego elementu wartość pola „IsMetadata” jest ustawiona na „0x01”, co odpowiada fladze TRUE. W przypadku zwykłych elementów wartość jest ustawiona na „0x00”. To główna różnica między elementami predefiniowanymi a zwykłymi. Wszystkie inne pola są przechowywane w bazie danych w taki sam sposób, jak w przypadku zwykłych elementów dodanych przez użytkownika.

Predefiniowane elementy mają bardzo ciekawe zastosowania. Za ich pomocą można zabronić usunięcia/oznaczenia usunięcia grupy elementów w księdze referencyjnej i innych obiektów, do których można je dodać. Jeśli spróbujemy usunąć lub oznaczyć do usunięcia grupę „Elementy testowe”. wtedy otrzymujemy następujące błędy:

W ten sposób elementy predefiniowane sprawiają, że grupa, w której są umieszczone, jest również „predefiniowana”.

Ukończenie

Elementy predefiniowane są integralną częścią większości konfiguracji. Ich zastosowanie ułatwia rozbudowę i sprawia, że ​​konstrukcja funkcjonalności jest logicznie bardziej „harmonijna” i spójna.

W czwartej lekcji naszego będziemy dalej zapoznawać się z programem. Dziś jesteśmy na praktyczne przykłady poznać ikatalogi hierarchiczne, a także naucz się tworzyć predefiniowane elementy.

Czas trwania 4 lekcji kursu:

00:19 Zmiany w poradniku pracownika po odrobieniu pracy domowej na 3 lekcję kursu
00:35 Edycja kolejności atrybutów w katalogach
02:54 Tworzenie podręcznika Nomenklatury
03:40 Tworzenie i konfigurowanie katalogu hierarchicznego
05:10 Tworzenie grup Usługi i Produkty w katalogu Nomenklatury
06:05 Wypełnianie podręcznika Nomenklatury
07:14 3 sposoby przeniesienia pozycji katalogu do innej grupy
08:21 Utworzenie katalogu magazynów
09:19 Tworzenie predefiniowanych pozycji katalogu
11:25 Wypełnianie katalogu magazynów
12:20 Weź udział w lekcji testu materiału 4

Katalog hierarchiczny- księga informacyjna z możliwością hierarchicznego uporządkowania jej elementów. Na przykład w katalogu Nomenklatury można utworzyć grupy: Towary, Usługi itp., w których znajdują się elementy należące do tych grup. Ponadto grupy katalogów mogą zawierać inne grupy, tworząc w ten sposób wielopoziomową strukturę hierarchiczną.

Ponadto słowniki obsługują również inny rodzaj hierarchii, w której elementy słowników nie będą należeć do grup, ale do innych elementów tych samych słowników. Ten rodzaj hierarchii ( hierarchia elementów) można wykorzystać np. podczas tworzenia katalogu Podpodziały, gdzie jeden podpodział (poddział w tym przypadku element katalogu, a nie grupa) może zawierać kilka innych podpodziałów. Ten rodzaj hierarchii jest rzadko używany.

Formularze katalogowe- wizualna prezentacja podręcznika. W zależności od tego, jakie dokładnie akcje chcemy wykonać z naszym katalogiem, musimy wyświetlić katalog w "różnych widokach". Tak więc w czwartej lekcji kursu zmodyfikowaliśmy kolejność rekwizytów w formie listy oraz w formie elementu referencyjnego.

System tworzy (generuje) formularze automatycznie, ale w razie potrzeby programista może samodzielnie "narysować" formularze.

Istnieje 5 formularzy (rodzajów formularzy) dla podręczników:

  • kształt elementu- tworzenie lub edytowanie pozycji w katalogu;
  • kształt grupy- tworzenie lub edytowanie grupy katalogów;
  • formularz listy- wyświetlić listę pozycji katalogu;
  • formularz wyboru- służy do wybrania jednego z elementów tego katalogu w polu o określonej formie. Np. w celu wybrania konkretnego magazynu z Katalogu magazynów na dokumencie Przyjęcie towaru w polu Magazyn;
  • formularz wyboru grupy- służy do wybrania jednej z grup tego katalogu w polu określonego formularza.

Predefiniowane pozycje katalogu- elementy katalogu utworzone przez programistę w trybie konfiguratora, do których można uzyskać dostęp z wbudowanego języka 1c według nazwy.

Istnieje zasadnicza różnica między zwykłymi a predefiniowanymi elementami katalogu. Zwykłe pozycje są niespójne w konfiguracji. W trakcie pracy użytkownika można je tworzyć, edytować i usuwać, dlatego nie należy na nich polegać przy wykonywaniu jakichkolwiek algorytmów (kod i nazwa elementu może zostać zmieniona przez użytkownika).Natomiast elementy predefiniowane są trwałe. W trakcie pracy, nawet jeśli użytkownik zmieni nazwę takiego elementu, będzie można uzyskać do niego dostęp z wbudowanego języka 1c. Osiąga się to dzięki temu, że predefiniowany element posiada rekwizyty Nazwa która nie jest dostępna dla użytkownika. Zwykłe elementy katalogu nie posiadają takiego atrybutu.

Ważny! Z technicznego punktu widzenia użytkownik ma możliwość usunięcia predefiniowanego elementu słownika, ale z reguły użytkownicy nie mają prawa do usuwania predefiniowanych elementów słownika.

Praca domowa na czwartą lekcję kursu

Praca domowa na czwartą lekcję kursu będzie dostępna natychmiast po pomyślnym ukończeniu testu teoretycznego.

Sam pomysł na programową pracę z predefiniowanymi elementami moim zdaniem jest bardzo poprawny. Jest tylko kilka niuansów, które należy wziąć pod uwagę podczas pracy.

Po pierwsze, musisz jasno zrozumieć, że w konfiguracji znajdują się predefiniowane elementy, a w infobazie (IB) są predefiniowane elementy. Technicznie predefiniowane elementy bezpieczeństwa informacji są najczęstszymi elementami słowników, w których atrybut „PredefinedDataName” określa, któremu predefiniowanemu elementowi konfiguracyjnemu odpowiadają. Nie różnią się już od zwykłych elementów. W związku z tym każdy zwykły element IB może być predefiniowany, dowolny predefiniowany zwykły. Aby to zrobić, po prostu wprowadź żądaną wartość w rekwizytach. "Predefiniowana NazwaDanych".

Okresowo ta nieruchomość okazuje się nie być wartością, którą podał deweloper. W rezultacie w pracy 1C występują błędy. Od krytycznej, w której praca jest w zasadzie niemożliwa, do niekrytycznej, w której naruszona jest logika algorytmów.

Można ją warunkowo rozróżnić trzy rodzaje błędów:
1. „W danych brakuje predefiniowanej pozycji”;

3. Nieprawidłowe wskazanie predefiniowanego elementu;

1. "W danych brakuje wstępnie zdefiniowanego elementu" - o Brak predefiniowanego elementu opisanego w konfiguracji w danych IB.

Jest to najłatwiejszy rodzaj błędu do debugowania i naprawienia. Jego prostota polega na tym, że platforma wystarczająco poprawnie zgłasza tę sytuację „W danych brakuje predefiniowanego elementu” i jest całkiem jasne, jak to naprawić.

Przy odwołaniu się do brakującego elementu w kodzie „Katalogi.Typy informacji kontaktowych.EmailKontaktosoba” wyświetlany jest komunikat

Podczas odwoływania się do elementu w żądaniu „VALUE (Directory.Types of ContactInformation.EmailContactPerson)” wyświetlany jest następujący komunikat:

Ten błąd występuje, jeśli element jest opisany w konfiguracji, ale element nie jest z nim powiązany w bazie danych.

Na początek wyjaśnijmy, że ta sytuacja nie zawsze jest zła. Jest całkiem możliwe użycie predefiniowanych danych w jakiejś logice programu, która dla większości użytkowników może nie być używana. W tym przypadku, aby nie przytłaczać podręcznika dla wszystkich użytkowników konfiguracji, logiczne jest zdefiniowanie predefiniowanych elementów w konfiguracji, ale nie tworzenie ich we wszystkich systemach bezpieczeństwa informacji, a tylko dla tych systemów bezpieczeństwa informacji, w których używana jest wymagana logika konfiguracji. W takim przypadku programista może określić właściwość „Nie aktualizuj predefiniowanych danych” dla książki referencyjnej i programowo tworzyć elementy podczas uzyskiwania dostępu do funkcjonalności modułu. Lub aby umożliwić użytkownikowi samodzielne powiązanie predefiniowanych elementów modułu ze zwykłymi elementami, które posiada.

Również nie używany automatyczne tworzenie predefiniowane elementy podczas pracy w trybie RIB. Ponieważ nowe elementy powinny być przenoszone z centralnej bazy, a nie tworzone w węzłach o różnych UID.

Te. czasami błędem jest odwoływanie się do niedopasowanego przedmiotu, a nie samej obecności takiego przedmiotu.

Musisz przeanalizować, dlaczego przedmiot nie został utworzony. Być może należy go utworzyć, gdy wykonywany jest jakiś tryb programu. Na przykład po dokonaniu wymiany w RIB. A może został przypadkowo usunięty.

Jeśli logika przewiduje wypełnianie predefiniowanych elementów nie automatycznie, ale w osobnym trybie, to przed użyciem wywołania według nazwy " Katalogi.Rodzaje kontaktuInformacje.E-mailKontaktOsoba„aby zapobiec wyjątkowi, warto sprawdzić, czy element jest już w bazie danych. Jeżeli elementu nie ma, to poinformuj o tym użytkownika i wyjaśnij, jaki tryb musi wykonać, aby zapełnić element. Do takiego sprawdzenia, możesz uruchomić zapytanie na danych.

Żądanie = Nowe żądanie; Request.Text = "SELECT | Rodzaje informacji kontaktowych.Link | FROM | Directory.Rodzaje informacji kontaktowych AS Rodzaje informacji kontaktowych | WHERE | Rodzaje informacji kontaktowych. PredefinedData Name =" " E-mailOsoba kontaktowa"" "; ElementNoNo.VD = Request.Run (). Puste ();

Jeżeli nadal jest to błąd w danych bazy danych, to konieczne jest powiązanie z predefiniowanym elementem elementu IB. Te. konieczne jest wyjaśnienie systemowi, do jakiego elementu bezpieczeństwa informacji kod programu powinien się odnosić pod tą nazwą. Technicznie rzecz biorąc, powiązanie to po prostu określenie nazwy predefiniowanego elementu we właściwości "Predefiniowana nazwa danych„Element IB. Aby go zainstalować wystarczy uruchomić kod:

2. "Predefiniowany element nie jest unikalny" - h advoi predefiniowane elementy:

Sytuacja ta polega na tym, że kilka elementów IB jest powiązanych z jednym predefiniowanym elementem. W takim przypadku, odwołując się do predefiniowanej nazwy, element zostanie wybrany losowo. Ta sytuacja jest zawsze zła. Jego trudność polega na tym, że platforma w żaden sposób o tym nie komunikuje. Tyle, że algorytmy zaczynają działać niepoprawnie.

Struktura zgłosi błąd „Predefiniowany element nie jest unikalny” tylko podczas próby edycji zduplikowanego elementu.

Dopóki nikt nie będzie musiał edytować elementu, nikt nie będzie wiedział o błędzie.

Takie duplikaty można tworzyć, na przykład, jeśli RIB jest używany dla książki referencyjnej, a tryb „Aktualizuj automatycznie” jest określony we właściwościach dla danych predefiniowanych. W takim przypadku, gdy dokonywana jest wymiana, po zaktualizowaniu konfiguracji zostanie utworzona jedna instancja wstępnie zdefiniowanych danych. Druga instancja predefiniowanych pozycji o tej samej nazwie zostanie przeniesiona z centralnej bazy danych podczas wymiany.

Ponadto te duplikaty wystąpią podczas korzystania z przetwarzania wymiany między konfiguracjami w przypadku, gdy w różne bazy z góry określonym elementom odpowiadają różne elementy bezpieczeństwa informacji. W takim przypadku jedna kopia predefiniowanych danych już istnieje w bazie danych, druga pojawi się przy wczytywaniu danych z innym UID. Jeśli wykonujesz transfery danych, musisz zdecydować, które elementy bazy danych są uważane za podstawowe i używać ich w podrzędnej bazie danych. W bazie podrzędnej konieczne jest zastąpienie wykorzystania starych elementów elementami bazy głównej.

Takie błędy w bazie danych można wykryć za pomocą zapytania formularza:

WYBIERZ Rodzaje informacji kontaktowych .Predefiniowana nazwa danych, ILOŚĆ (RÓŻNE RODZAJE INFORMACJI KONTAKTOWYCH.Link) JAKO NumerZdefiniowane z katalogu.Typy informacji kontaktowych JAKO Rodzaje informacji kontaktowych.

To zapytanie zwróci listę predefiniowanych elementów z więcej niż jednym elementem IB.

Jeśli takie elementy występują, konieczne jest usunięcie połączenia z predefiniowanym dla jednego z nich. Te. konieczne jest jednoznaczne określenie dla systemu, do którego elementu IS kod programu powinien się odwoływać używając tej nazwy. Aby to zrobić, wystarczy wykonać kod.

3. Nieprawidłowe wskazanie predefiniowanego elementu.

Błąd polega na tym, że predefiniowany element odpowiada niewłaściwemu elementowi, który zapewnia logika programu. Takie błędy są najtrudniejsze do zdiagnozowania. W przeciwieństwie do dwóch pierwszych typów, nie można automatycznie sprawdzić konfiguracji pod kątem tych błędów. Można je zidentyfikować tylko analizując logikę pracy. W razie wątpliwości możesz sprawdzić, czy używany jest właściwy przedmiot.

Aby to zrobić, po prostu wykonaj jedno z poleceń.

// Definiowanie elementu IB, który jest powiązany z wymaganym predefiniowanym raportem (Directories.Types of ContactInformation.EmailContactPerson) // Definiowanie predefiniowanego elementu, z którym powiązany jest wybrany raport (ElementRef.Name of PredefinedData)

Jeśli takie błędy zostaną znalezione, konieczne jest usunięcie nieprawidłowego linku ze starym elementem i dodanie linku z nowym elementem. Kod operacyjny jest podobny do kodu korygującego dla dwóch pierwszych typów błędów.

Cóż, krótko o błędach, kiedy praca programistyczna lub w trybie konfiguratora:

"Predefiniowany element nie należy do<Имя справочника>" - błąd pojawia się przy próbie napisania predefiniowanego elementu o nazwie, która nie pasuje do nazwy w kokonfiguratorze.

"Obiekty niepredefiniowane nie mogą mieć predefiniowanych wpisów typu subconto" - błąd pojawia się przy próbie zmiany elementu predefiniowanego planu kont. W celu wyeliminowania błędów konieczne jest odznaczenie flagi „Predefiniowany” dla każdego wiersza umowy podwykonawczej elementu.

"Obiekty niepredefiniowane nie mogą mieć predefiniowanych rekordów wiodących typów obliczeń"- błąd pojawia się przy próbie niezdefiniowania predefiniowanego elementu wykresu typów obliczeń. W celu wyeliminowania błędów konieczne jest odznaczenie flagi „Predefiniowany” dla każdej linii wiodącego typu obliczeń elementów.

"Predefiniowane elementy nie są unikalne"- podczas aktualizacji wyświetla się błąd w konfiguratorze baza informacji dla wydania konfiguracji bez trybu zgodności 8.3.4. Konieczne jest sprawdzenie duplikatów i wyeliminowanie ich przed aktualizacją.

"Nazwa predefiniowanego elementu nie jest unikalna" - błąd występuje, jeśli w konfiguracji podczas aktualizacji do platformy istnieje kilka predefiniowanych elementów o tej samej nazwie8.3.6.2332 i nowsze. Konieczna jest eliminacja duplikatów w konfiguracji.

Do pracy z predefiniowanymi danymi polecam przetwarzanie. Wie, jak wykonać dowolne czynności z predefiniowanymi danymi, a także potrafi sprawdzić konfigurację jako całość pod kątem występowania błędów dwóch pierwszych typów (zduplikowane i brakujące elementy) we wszystkich obiektach bezpieczeństwa informacji (podręczniki, plany kont, PCW). , PVR).

DZWON

Są tacy, którzy czytają tę wiadomość przed tobą.
Zapisz się, aby otrzymywać najnowsze artykuły.
E-mail
Nazwa
Nazwisko
Jak chcesz czytać dzwonek?
Bez spamu