DZWON

Są tacy, którzy czytają tę wiadomość przed tobą.
Subskrybuj, aby otrzymywać najnowsze artykuły.
E-mail
Nazwa
Nazwisko
Jak chciałbyś przeczytać The Bell?
Bez spamu

Proste przetwarzanie do pracy z predefiniowanymi wartościami.

Umożliwia dopasowanie elementów IS do elementów predefiniowanych w konfiguracji.

Umożliwia sprawdzenie całej konfiguracji pod kątem występowania zduplikowanych (kilka elementów IB powiązanych z jednym predefiniowanym elementem – błąd) i brakujących elementów (predefiniowanych elementów, które nie mają skojarzonych elementów IB – błąd). Taki elementy mogą wystąpić podczas wymiany lub awarii i prowadzić do błędów w konfiguracji.

Możesz po prostu zobaczyć aktualne wartości, możesz dokonać niezbędnych zmian.

Procedura operacyjna:

1. Rozpoczynamy przetwarzanie.

2. Wybierz rodzaj (książka informacyjna, plan kont, PVC, PVR).

3. Wybierz katalog wybranego typu.

4. W części tabelarycznej przetwarzania pojawiają się wszystkie predefiniowane elementy, które są dostępne w IB i opisane w konfiguracji.

Jeśli w bazie danych znajduje się kilka elementów, które są powiązane z jedną predefiniowaną właściwością lub niektóre elementy opisane w konfiguracji nie mają przypisanych elementów IB, system zgłosi to podczas wyboru wyszukiwania. Podwojone i brakujące pozycje pojawią się na górze listy i zostaną podświetlone na pomarańczowo.

5. Ustawiamy nowe wartości dla wymaganych predefiniowanych elementów.

Jednocześnie na czerwono zaznaczane są linie, dla których predefiniowany element znika z konfiguracji. Niebieskie linie, dla których zmienia się predefiniowany element, zielone linie, dla których pojawia się predefiniowany element.
Na w dużych ilościach wygodnie jest zaznaczyć wszystkie duplikaty za pomocą myszy dodatkowe linie i zaznacz dla wszystkich wybranych odłączeń przyciskiem „Unmatch” (od wersji 1.3.1)

6. Przemianę dokonujemy poprzez naciśnięcie przycisku „Dokonaj ponownego przypisania elementów”.

Sprawdzanie duplikatów(błąd "Predefiniowany element nie jest unikalny"):

Po kliknięciu przycisku „Sprawdź duplikaty” przetwarzanie sprawdzi wszystkie katalogi, plany kont, PVC i PVR oraz wyświetli listę tabel z podwojonymi elementami wskazującymi liczbę podwojonych elementów.

Następnie musisz osobno sprawdzić obiekty, dla których znaleziono błędy.

Sprawdzanie pominięte(błąd "W danych brakuje predefiniowanego elementu"):

Po kliknięciu przycisku „Sprawdź brakujące” przetwarzanie sprawdzi wszystkie katalogi, plany kont, PVC i RRP oraz wyświetli listę predefiniowanych elementów, z którymi nie są powiązane dane IS.

Do użycia wymagana jest platforma 8.3.3 lub nowsza.

Wszechstronny, może być używany w dowolnej konfiguracji.

Wykryj język Afrikaans Albański Arabski Ormiański Azerbejdżan Baskijski Bengalski Białoruski Bułgarski Kataloński Chiński (Simp) Chiński (Trad) Chorwacki Czeski Duński Holenderski Angielski Esperanto Estoński Filipiński Fiński Francuski Galicyjski Gruziński Niemiecki Grecki Gujarati Haitański Kreolski Hebrajski Hindi Węgierski Bułgarski Islandzki Indonezyjski Irlandzki Włoski Japoński Kannada Koreański Lao Łaciński Łotewski Litewski Macedoński Malajski Maltański Norweski Perski Polski Portugalski Rumuński Rosyjski Serbski Słowacki Słoweński Hiszpański Suahili Szwedzki Tamil Telugu Tajski Turecki Ukraiński Urdu Wietnamski Walijski Jidysz Afrikaans Albański Arabski Ormiański Azerbejdżański Baskijski Bengalski Białoruski Bułgarski Kataloński Chiński (Simp) Chiński (Trad) Chorwacki Czeski Duński Holenderski Angielski Esperanto Estoński Filipiński Fiński Francuski Galicyjski Gruziński Grecki Niemiecki Gudżarati Haitański Kreolski Hebrajski Hindi Węgierski Islandzki Indonezyjski Irlandzki Włoski Japoński Kannada Koreański Lao Łaciński Łotewski Litewski Macedoński malajski maltański norweski perski polski portugalski rumuński rosyjski serbski słowacki słoweński hiszpański suahili szwedzki tamil telugu tajski turecki ukraiński urdu wietnamski walijski jidysz

Dobry dzień.

Dziś porozmawiamy o innowacjach w platformie 8.3 w zakresie predefiniowanych elementów.

Wstęp

Przypomnę, że wcześniej w praktyce bardzo często chciałem zajrzeć do elementu directory, aby poznać jego predefiniowaną nazwę. Na przykład utworzyłeś dwóch predefiniowanych kontrahentów i nazwałeś ich IPSidorov i OOOMeteor. I przyszyli im trochę logiki.

Kiedy wszystko zostało odpluskwione i dopracowane, okazało się, że zadanie zostało ustawione odwrotnie i logika dla IP jest potrzebna dla OOO, a logika dla OOO dla IP. „Nie ma problemu”, mówimy, a w trybie korporacyjnym zmieniamy nazwy elementów. W końcu dostanie się do kodu jest znacznie trudniejsze. Mija rok i dostajesz nowe zadanie: dla IP Sidorowa, skonfiguruj trochę więcej logiki. Wchodzisz do konfiguratora, piszesz logikę, zaczynasz sprawdzać i nic nie działa, bo w konfiguratorze IPSidorov, aw przedsiębiorstwie - LLC Meteor. Mózg jest zepsuty i chcę zniszczyć tę grabie. Najprostszym i najbardziej wizualnym jest wyświetlenie nazwy predefiniowany element w formie listy. Oto zasadzka, nazwę predefiniowanej w 8.2 można zdobyć tylko metodą. A metoda jest sama w sobie niedogodnością, nie można jej uzyskać w żądaniu. Tych. pierwszą niedogodnością jest uzyskanie nazwy predefiniowanej przez odniesienie do katalogu.

Druga niedogodność polega na tym, że mamy już element katalogu i musimy go predefiniować. Tworzymy predefiniowany element i otrzymujemy dwa elementy w referencji. Jeden jest predefiniowany, drugi to pracownik, do którego odnoszą 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 interesach

Po pierwsze, katalog 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 katalogu. Tych. metadane nie mają nic wspólnego z danymi. A jeśli nie zostanie utworzony w katalogu, dostęp do niego po nazwie za pośrednictwem menedżera katalogów spowoduje błąd składni.

Bardzo ciekawe, ale dlaczego? Jak tworzymy element w katalogu? I jak chcesz, możesz utworzyć lub połączyć go z już istniejącym. Teraz słownik ma atrybut "PredefinedDataName". Tworzymy element słownika programowo jak zwykle za pomocą "Directories.Accounts.CreateItem()" i wypełniamy jego atrybut "PredefinedDataName" równy nazwie predefiniowanego elementu. Lub, jeśli element już istnieje, pobieramy jego obiekt i ponownie wypełniamy w nim "PredefinedDataName". Wszystko.

I wreszcie syrop

Ten nowy atrybut jest nie tylko czytelny i zapisywalny, ale także dostępny w zapytaniach. 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ę.

Sama idea pracy programistycznej z predefiniowanymi elementami jest moim zdaniem bardzo słuszna. Jest tylko kilka niuansów, które należy wziąć pod uwagę podczas pracy.

Najpierw musisz jasno zrozumieć, że w konfiguracji są predefiniowane elementy, a w infobazie (IB) są predefiniowane elementy. Technicznie predefiniowane elementy IS są najczęstszymi elementami katalogów, w których atrybut "PredefinedDataName" wskazuje, któremu predefiniowanemu elementowi konfiguracji odpowiadają. Nie różnią się od zwykłych elementów. Odpowiednio, dowolny zwykły element bezpieczeństwa informacji można uczynić z góry zdefiniowanym, każdy z góry określony element można uczynić zwykłym. Aby to zrobić, po prostu wprowadź żądaną wartość w rekwizytach. "Predefiniowana NazwaDanych".

Okresowo ta właściwość nie zawiera wartości podanej przez dewelopera. W rezultacie w pracy 1C występują błędy. Od krytycznych, w których praca jest w zasadzie niemożliwa, do niekrytycznych, w których naruszona jest logika algorytmów.

Warunkowo możliwe jest rozróżnienie trzy rodzaje błędów:
1. „W danych brakuje predefiniowanego elementu”;

3. Nieprawidłowe wskazanie predefiniowanego elementu;

1. "W danych brakuje predefiniowanego elementu" - oh brak predefiniowanego elementu opisanego w konfiguracji w danych IS.

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

Podczas uzyskiwania dostępu do brakującego elementu w kodzie „Katalogi. Rodzaje informacji kontaktowych. Adres e-mail osoby kontaktowej” wyświetlany jest komunikat

Podczas uzyskiwania dostępu do elementu w zapytaniu „VALUE(Catalog.KindsofContactInformation.EmailContactPerson)” wyświetlany jest następujący komunikat:

Taki 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śniamy, że ta sytuacja nie zawsze jest błędna. 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 zaśmiecać katalogu dla wszystkich użytkowników konfiguracyjnych, logiczne jest zdefiniowanie predefiniowanych elementów w konfiguracji, ale nie tworzenie ich we wszystkich IBach, a tylko dla tych IB, w których używana jest wymagana logika konfiguracyjna. W takim przypadku programista może określić właściwość „Nie aktualizuj predefiniowanych danych” dla katalogu i programowo utworzyć elementy podczas uzyskiwania dostępu do funkcjonalności modułu. Lub zezwól użytkownikowi na 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.

Tych. czasami błędem jest odwoływanie się do niedopasowanego elementu, a nie do samego istnienia takiego elementu.

Konieczne jest przeanalizowanie, dlaczego element nie został utworzony. Może zaistnieć konieczność jego utworzenia, gdy wykonywany jest jakiś tryb programu. Na przykład po dokonaniu wymiany w RIB. A może został po prostu 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 informacji kontaktowych.Adres e-mail osoby kontaktowej" aby zapobiec wyjątkowi, należy sprawdzić, czy element jest już w bazie danych. Jeśli elementu brakuje, poinformuj o tym użytkownika i wyjaśnij, jaki tryb musi wykonać, aby wypełnić element. Do takiego sprawdzenia , możesz wysłać zapytanie o dane.

Żądanie = Nowe żądanie; Query.Text = "SELECT | Typy informacji kontaktowych. Link | FROM | Katalog. Typy informacji kontaktowych AS Typy informacji kontaktowych | WHERE | Typy informacji kontaktowych. Nazwa predefiniowanych danych = "" E-mailOsoba kontaktowa"""; ElementMissingData = Query.Execute().Empty();

Jeżeli nadal jest to błąd w danych bazy danych, to konieczne jest powiązanie z predefiniowanym elementem elementu IB. Tych. konieczne jest wyjaśnienie systemowi, do jakiego elementu IS kod programu powinien się odwoływać pod tą nazwą. Technicznie rzecz biorąc, powiązanie to po prostu określenie nazwy predefiniowanego elementu w „Predefiniowana nazwa danych"elementu IB. Aby go zainstalować, po prostu uruchom następujący kod:

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

Ta sytuacja polega na tym, że kilka elementów IB jest powiązanych z jednym predefiniowanym elementem. W takim przypadku, przy dostępie do predefiniowanej nazwy, element zostanie wybrany losowo. Ta sytuacja jest zawsze zła. Jego złożoność polega na tym, że platforma w żaden sposób o tym nie informuje. Tyle, że algorytmy zaczynają działać niepoprawnie.

Platforma zgłosi tylko błąd „Wstępnie zdefiniowany element nie jest unikalny” podczas próby edycji zduplikowanego elementu.

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

Takie duplikaty mogą być tworzone na przykład, jeśli dla katalogu jest używany RIB, a tryb „Aktualizuj automatycznie” jest określony we właściwościach dla danych predefiniowanych. W takim przypadku, podczas przeprowadzania wymiany, jedna instancja predefiniowanych danych zostanie utworzona podczas aktualizacji konfiguracji. Druga instancja predefiniowanych elementów o tej samej nazwie zostanie przeniesiona z centralnej bazy podczas wymiany.

Ponadto te duplikaty wystąpią podczas korzystania z przetwarzania wymiany między konfiguracjami, jeśli, w różne bazy predefiniowane elementy odpowiadają różnym elementom IS. W takim przypadku jedna instancja predefiniowanych danych znajduje się już w bazie danych, druga pojawi się podczas ładowania danych z innym UID. Jeśli przeprowadzasz migracje 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 musisz zastąpić użycie starych elementów elementami bazy głównej.

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

SELECT Typy informacji kontaktowych Nazwa predefiniowanych danych, ILOŚĆ (RÓŻNE typy informacji kontaktowych. Link) AS Liczba predefiniowanych danych FROM Directory Typy informacji kontaktowych AS Typy informacji kontaktowych GROUP BY Rodzaje informacji kontaktowych Nazwa predefiniowanych danych POSIADAJĄCY ILOŚCI (RÓŻNE rodzaje informacji kontaktowych. Link) > 1

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

Jeśli takie elementy występują, konieczne jest usunięcie połączenia z predefiniowanym dla jednego z nich. Tych. 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ć, po prostu wykonaj kod.

3. Błędne wskazanie predefiniowanego elementu.

Błąd polega na tym, że predefiniowany element nie odpowiada elementowi dostarczanemu przez logikę programu. Takie błędy są najtrudniejsze do zdiagnozowania. W przeciwieństwie do pierwszych dwóch typów, konfiguracja nie może być automatycznie sprawdzana 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 element.

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

//Zdefiniuj element IB, który jest powiązany z wymaganym predefiniowanym raportem(Directory.Types of Contact Information.Email of ContactPerson) //Zdefiniuj predefiniowany element, z którym powiązany jest wybrany raport(ReferenceToElement.PredefinedDataName)

W przypadku wykrycia takich błędów konieczne jest usunięcie nieprawidłowego linku do starego elementu i dodanie linku do nowego elementu. Kod operacji jest podobny do kodu korekcji dwóch pierwszych rodzajów błędów.

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

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

"Niezdefiniowane obiekty nie mogą mieć wstępnie zdefiniowanych wpisów typu podwymiaru" - błąd pojawia się przy próbie uczynienia predefiniowanego elementu planu kont niezdefiniowanym. W celu wyeliminowania błędów konieczne jest usunięcie flagi „Predefiniowany” z każdej linii podkontaktu elementu.

"Niezdefiniowane obiekty nie mogą mieć predefiniowanych wpisów obliczania potencjalnych klientów"- występuje błąd przy próbie uczynienia predefiniowanego elementu planu typów obliczeniowych niezdefiniowanym. W celu wyeliminowania błędów konieczne jest usunięcie flagi „Predefiniowany” z każdej linii wiodącego typu obliczeń elementu.

"Predefiniowane elementy nie są unikalne"- podczas aktualizacji wyrzucany jest błąd w konfiguratorze baza informacji w wersji konfiguracyjnej bez trybu zgodności 8.3.4. Przed aktualizacją należy sprawdzić duplikaty i je wyeliminować.

"Wstępnie zdefiniowana nazwa elementu nie jest unikalna" - błąd pojawia się, gdy 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 . Może wykonywać dowolne akcje z predefiniowanymi danymi, a także sprawdzać konfigurację jako całość pod kątem występowania błędów dwóch pierwszych typów (podwojonych i brakujących elementów) we wszystkich obiektach IS (katalogach, planach kont, PVC, PVR).

DZWON

Są tacy, którzy czytają tę wiadomość przed tobą.
Subskrybuj, aby otrzymywać najnowsze artykuły.
E-mail
Nazwa
Nazwisko
Jak chciałbyś przeczytać The Bell?
Bez spamu