dom - Zagraniczny
Programowe dodawanie i zmiana elementów zarządzanych formularzy. Przyciski opcji, zwykła aplikacja, zarządzane formularze Zmiana elementów formularza

W tym artykule zapoznamy się z głównymi aspektami pracy z zarządzanym formularzem w 1C 8.3. Co to jest formularz i do czego służy? Formularz jest głównym obiektem poprzez który użytkownik wchodzi w interakcję z programem. Oznacza to, że za pomocą formularza użytkownik wprowadza informacje do programu, a niezbędne dla użytkownika informacje są również wyświetlane w formularzu.

Głównym zadaniem programisty dowolnej formy (zarządzanej lub zwykłej) jest zapewnienie użytkownikowi wygodnego mechanizmu interakcji z programem.

Platforma 1C ma możliwość generowania dowolnej formy obiektu, ale zwykle podczas opracowywania rozwiązań aplikacyjnych programiści sami konfigurują formularze.

Kwestie pracy z zarządzanymi formularzami i ogólnie z zarządzaną aplikacją zostały szczegółowo omówione w książce „Podstawy rozwoju w 1C: Taxi. Zarządzanie tworzeniem aplikacji w 12 krokach”. Ta książka będzie prawdziwą pomocą dla tych, którzy dopiero zaczynają zapoznawać się z zarządzaniem tworzeniem aplikacji.

Książka „Podstawy rozwoju w 1C: Taxi” jest idealna dla tych, którzy już rozpoczęli programowanie i mają pewne trudności z tym tematem, a także dla tych, którzy programują od dawna, ale nigdy nie pracowali z formularzami zarządzanymi 1C.

  1. Bez skomplikowanych terminów technicznych;
  2. Ponad 600 stron praktycznych materiałów;
  3. Do każdego przykładu dołączony jest rysunek (zrzut ekranu);

Kod promocyjny na 15% zniżki - 48PVXHeYu

Czasami wydaje się, że nauka języka programowania w 1C jest skomplikowana i trudna. W rzeczywistości programowanie w 1C jest łatwe. Moje książki pomogą Ci szybko i łatwo opanować programowanie w 1C: oraz „Podstawy programowania w 1C: Taxi”

Naucz się programowania w 1C za pomocą mojej książki „Programowanie w 1C w 11 krokach”

  1. Żadnych skomplikowanych terminów technicznych.
  2. Ponad 700 stron praktycznych materiałów.
  3. Do każdego zadania dołączony jest rysunek (zrzut ekranu).
  4. Zbiór zadań do pracy domowej.
  5. Książka napisana jest jasnym i prostym językiem - dla osoby początkującej.
  6. Książka wysyłana jest e-mailem w formacie PDF. Można otworzyć na dowolnym urządzeniu!


Jeżeli ta lekcja pomogła Ci rozwiązać jakiś problem, spodobała Ci się lub okazała się przydatna, możesz wesprzeć mój projekt przekazując dowolną kwotę:

Możesz zapłacić ręcznie:

Yandex.Money - 410012882996301
Pieniądze internetowe — R955262494655

Dołącz do moich grup.

Na ostatniej lekcji przyglądaliśmy się temu dla zwykłego (grubego) klienta. W wersji platformy 1C 8.2. Używają nowych formularzy ekranowych 1C 8.2. Nazywa się je formularzami zarządzanymi 1C 8.2.

Zarządzane formularze 1C 8.2 to przyszłość 1C. Różnią się od zwykłych formularzy 1C 8.2 tym, że są generowane automatycznie przez system na podstawie specjalnych ustawień („zwykłe” formularze są po prostu rysowane przez programistę według własnego uznania).

Różnice w rozwoju zarządzanych formularzy 1C 8.2 od konwencjonalnych są znaczące. Dlatego zebraliśmy się dzisiaj, aby osobno omówić tworzenie i modyfikację zarządzanych formularzy 1C 8.2.

Zarządzane formularze 1C 8.2

Jeśli wcześniej opracowywałeś konfiguracje 1C, po otwarciu edytora formularzy zarządzanych 1C 8.2 od razu zdziwi Cię fakt, że za pomocą myszy nie można w ogóle wpływać na formularz 1C 8.2.

Nie można zmienić formularza 1C 8.2, nie można przenieść elementu, nie można nawet wyświetlić właściwości pola jak poprzednio - klikając dwukrotnie pole w formularzu 1C 8.2.

Teraz podstawą opracowania formularza 1C 8.2 nie jest wiązanie pól ze współrzędnymi w formularzu, ale specjalne ustawienia. Na podstawie tych ustawień system automatycznie generuje kontrolowany formularz 1C 8.2.

Ustawienia składają się z listy elementów formularza 1C 8.2 znajdujących się w edytorze w lewym górnym rogu. Elementy formularza 1C 8.2 obejmują:

  • Przybory
  • Polecenia (nowa koncepcja w 1C 8.2, może wyglądać jak przyciski lub elementy menu)
  • Grupy (do łączenia szczegółów i poleceń).

W związku z tym ustawienia tych elementów nie znajdują się we właściwościach pól, ale we właściwościach tych elementów ustawień (menu prawym przyciskiem myszy, element Właściwości).

Jak działają zarządzane formularze 1C 8.2

Praca z zarządzanymi formularzami 1C 8.2 jest inna dla użytkownika. Mają więcej możliwości, ale są niezwykłe dla tych, którzy pracują z 1C od dłuższego czasu.

Przede wszystkim układ zwykłych elementów w formularzu 1C 8.2 jest inny. Pasek poleceń znajduje się zawsze na górze.

Lewą stronę panelu poleceń można dostosować. Zwykle zawiera takie standardowe przyciski jak Nagraj i Wyślij.

Prawa strona panelu poleceń to nowe standardowe menu formularza 1C Wszystkie akcje. To menu umożliwia dowolne zarządzanie formularzem 1C 8.2, podobnie jak w raporcie ACS ustawienia pozwalają znacząco zmienić wygląd raportu.

Dowolne pozycje menu 1C Wszystkie akcje

W zależności od tego, czy ten formularz 1C 8.1 należy do jednego, czy drugiego, menu jest wypełnione pozycjami, które pozwalają zarządzać tym obiektem. Na przykład, jeśli jest to formularz listy katalogów, dostępne będą polecenia takie jak Utwórz lub Edytuj.

Pozycja Dostosuj listę menu 1C Wszystkie działania

Jeśli w formularzu 1C 8.2 znajduje się lista, w menu znajduje się polecenie Konfiguruj listę i Wyświetl listę.
Jeśli polecenie Lista wyjściowa jest już Ci znane - pozwala zapisać dowolną listę w 1C w Excelu / wydrukować, to drugie polecenie jest nowe.

Jak już zauważyłeś, w panelu poleceń listy nie ma już przycisków wyboru. Zamiast tego pojawił się przycisk Znajdź, którego działanie (jak również aktualnie wyłączone pozycjonowanie kursora na liście podczas pisania) budzi pewne zastrzeżenia.

Funkcjonalności przycisku Znajdź nie można oczywiście porównywać z funkcjami zaznaczania, ale one nie zniknęły!
Znajdują się one teraz w pozycji menu Dostosuj listę. Selekcji można teraz dokonać dowolnym polem, a dodatkowo można dokonać sortowania i formatowania warunkowego w taki sam sposób jak w raportach ACS.

Pozycja Zmień kształt menu 1C Wszystkie akcje

Element Zmień formularz pozwala w podobny sposób zmienić nie tylko listę w formularzu 1C 8.2, ale także sam formularz 1C 8.2.

Użytkownik może niezależnie włączyć lub wyłączyć widoczność pól w formularzu 1C 8.2, szerokość i wysokość, aktywację domyślnego pola podczas otwierania itp.

Korzystanie z zarządzanych formularzy 1C 8.2 i zwykłych formularzy 1C

Domyślnie zwykłe formularze 1C są używane w konfiguracjach dla grubego (zwykłego) klienta 1C, a formularze zarządzane są używane w konfiguracjach dla cienkich i internetowych klientów 1C. Jednak obie formy 1C można stosować w dowolnej konfiguracji, w tym jednocześnie.

W tym celu należy wejść we właściwości konfiguracji (górny element w oknie konfiguracji).

We właściwościach konfiguracji w 1C 8.2 pojawiły się dwa nowe pola wyboru, które pozwalają włączyć niestandardowe korzystanie z formularzy 1C.

Tworzenie zarządzanych formularzy 8.2

Dodawanie nowego formularza 1C 8.2 odbywa się w taki sam sposób jak poprzednio - za pomocą przycisku Ins na klawiaturze lub przycisku Dodaj. Aby wejść do istniejącego, kliknij go dwukrotnie myszką.

Domyślnie utworzony zostanie formularz (zwykły lub zarządzany), który jest zainstalowany w konfiguracji (patrz właściwość Główny tryb uruchamiania we właściwościach konfiguracji. Jeśli w konfiguracji włączyłeś uprawnienia do korzystania z obu typów formularzy - w kreatorze formularzy , który zostanie natychmiast otwarty - możesz wybrać typ formularzy.

Projektant poprosi Cię o wybranie typu formularza - formularz elementowy, formularz listy. Tutaj możesz dodać lub usunąć panele poleceń w formularzu. Najczęściej te ustawienia są domyślnie pozostawiane bez zmian.

Otworzy się formularz, domyślnie wypełniony - dodano do niego wszystkie istniejące szczegóły obiektu 1C. Konkretną listę wymaganych pól możesz zaznaczyć na drugiej zakładce projektanta.

Edytor formularzy składa się z trzech sekcji.

  • W lewym górnym rogu znajduje się lista elementów formularza. Składa się z pól, poleceń i grup, które pozwalają łączyć elementy. Listę poleceń można przeglądać osobno w zakładce Interfejs poleceń.
  • W prawym górnym rogu znajduje się lista dostępnych szczegółów formularza oraz szczegółów obiektu (otwórz krzyżyk obok atrybutu Obiekt).
  • Poniżej znajduje się podgląd powstałego formularza.

Możesz przeciągnąć dostępne szczegóły w lewo i staną się one elementem formularza (polem na formularzu).

Jeśli chcesz dodać przycisk lub element menu, po prawej stronie zakładki Polecenia musisz utworzyć nowe polecenie. To jest opakowanie funkcji w module formularza. Oprócz określenia, która funkcja zostanie wywołana, można przypisać jej reprezentację - na przykład obrazek, a także zależność widoczności od opcji funkcjonalnej.

Polecenia są również przeciągane w lewo. Jeśli rodzicem jest pasek poleceń, będzie to przycisk paska poleceń, w przeciwnym razie będzie to tylko przycisk.

Możesz nie tylko przeciągnąć i upuścić atrybuty obiektu/formularza na listę elementów formularza (pola), ale także po prostu je dodać (przycisk Dodaj lub Ins). W szczególności możesz utworzyć nowy obiekt formularza – Grupę.

Grupą może być panel poleceń (kursor musi znajdować się na linii Formularz). Następnie przeciągasz do niego polecenia, które stają się przyciskami.

Grupa może mieć charakter „regularny”. Jest to zatem sposób grupowania pól zarówno w pionie, jak i w poziomie. Nazwę grupy można usunąć we właściwościach.

Grupą może być panel (strona). Grupą dodaną najwyżej jest panel, a grupami zagnieżdżonymi tego typu są strony. Pola są już przeciągnięte na strony.

Niepotrzebne elementy formularza usuwa się poprzez usunięcie elementów formularza z listy.
Położenie pola na formularzu określa się poprzez kolejność na liście elementów (pionowo) lub za pomocą grup (poziomo). Szerokość i wysokość ustawia się we właściwościach elementu formularza.

Właściwości elementu formularza zostały znacznie rozszerzone i zawierają wiele przydatnych rzeczy - zarówno kontrolę wyglądu (przyciski Zaznacz i Wyczyść), jak i sprawdzenie wartości domyślnych.

Właściwości samego formularza, w tym jego wymiary, ustawiane są w elemencie głównym formularza o tej samej nazwie Form.

Programy obsługi zdarzeń (odpowiedzi na działania użytkownika) są teraz podzielone na dwa typy. Stare – tak jak poprzednio, są one wskazane we właściwościach formularza i pól (np. OnChange i OnOpening formularza). Nowe stały się poleceniami i są używane w elementach menu i przyciskach.

Wszyscy wiemy, że firma 1C miała wiele różnych wersji platformy 1C, teraz w momencie pisania tego artykułu będziemy zainteresowani jedną z najnowszych wersji, są to wersje 1C 8.2 i 1C 8.3. Jeśli musiałeś pracować w obu tych wersjach, najprawdopodobniej tak zauważyłem różnice w interfejsach tych wersji dla użytkowników różnią się jedynie wyglądem. Zasadniczo wybór aplikacja zwykła lub zarządzana informuje system, które formularze wyświetlić, aby je uruchomić, regularne lub kontrolowane, a także który klient aplikacji będzie domyślnie używany, gruby czy cienki. Bardziej szczegółowe informacje na temat klientów można znaleźć w artykule „Czym są grubi i cieni klienci w 1C, a także ich różnice”.

Zwykła aplikacja 1C (zwykłe formularze, zwykły interfejs, wersja 1C 8.2)

W 1C 8.2 można pracować tylko za pomocą zwykłych formularzy, w zwykłym trybie aplikacji. Poniższy obrazek przedstawia bazę danych w trybie działania „zwykłej aplikacji 1C” (formularze regularne).

Zarządzana aplikacja 1C (zarządzane formularze, zarządzany interfejs, wersja 1C 8.3)

Na platformie 1C 8.3 możemy pracować zarówno ze zwykłymi formularzami (w trybie zgodności), jak i zarządzanymi. Ponadto zarządzane formularze mają dwa typy wyświetlania, jest to standardowy i taksówkowy. Poniżej pokazano przykład konfiguracji 1C 8.3 ze standardowymi zarządzanymi formularzami, a po nim interfejs „Taxi”.

Jaka jest różnica między zwykłą a zarządzaną aplikacją 1C?

Jak już się dowiedzieliśmy zwykła aplikacja i aplikacja zarządzana to rodzaje uruchamiania programu 1C. Ponadto, w zależności od wartości typu uruchomienia 1C ( aplikacja zwykła lub zarządzana), domyślnie zostanie załadowany określony interfejs ( formularze regularne lub zarządzane), stąd istnieje tak wiele synonimów tego pojęcia. Pragniemy zauważyć, że różnice w interfejsach są dość znaczne, a zarządzany interfejs został całkowicie przeprojektowany. Zasadniczo są to wszystkie różnice, które widzą zwykli użytkownicy programu 1C. Jeśli chodzi o programistów, zarządzany interfejs wymaga pisania zmodyfikowanego kodu, ponieważ rozwój jest już prowadzony w 1C 8.3, a nie w 1C 8.2, stąd wszystkie wynikające z tego konsekwencje. Kod należy również podzielić na klienta i serwer, co sygnalizuje się za pomocą odpowiednich dyrektyw w konfiguratorze.

Oraz obiekt przesyłania danych do struktury kodu, kontrolowana forma w środowisku 1C 8.2.

Wstęp

Zacznijmy od krótkiego opisu koncepcji „formy zarządzanej” i powiązanych koncepcji platformy 1C. Koneserzy platform mogą pominąć tę sekcję.

W 2008 roku udostępniona została nowa wersja platformy 1C: Enterprise 8.2 (zwana dalej Aplikacją Zarządzaną), która całkowicie zmienia całą warstwę pracy z interfejsem. Obejmuje to interfejs poleceń, formularze i system okien. Jednocześnie zmienia się nie tylko model rozbudowy interfejsu użytkownika w konfiguracji, ale zaproponowana jest także nowa architektura rozdzielająca funkcjonalność pomiędzy aplikacją kliencką a serwerem.
Zarządzana aplikacja obsługuje następujące typy klientów:

  • Gruby klient (normalny i zarządzany tryb uruchamiania)
  • Cienki klient
  • Klient sieciowy
Zarządzana aplikacja wykorzystuje formularze zbudowane w oparciu o nową technologię. Nazywają się Formularze zarządzane. Aby ułatwić przejście, obsługiwane są także poprzednie formularze (tzw. Formularze Regularne), jednak ich funkcjonalność nie jest rozwijana i są one dostępne tylko w trybie uruchamiania grubego klienta.
Główne różnice zarządzanych formularzy dla programisty:
  • Deklaratywny, a nie „piksel po pikselu” opis struktury. Konkretne rozmieszczenie elementów następuje automatycznie po wyświetleniu formularza.
  • Cała funkcjonalność formularza opisana jest jako Detale I zespoły. Szczegóły to dane, z którymi współpracuje formularz, a polecenia to czynności, które należy wykonać.
  • Formularz działa zarówno na serwerze, jak i na kliencie.
  • W kontekście klienta prawie wszystkie typy aplikacji są niedostępne, w związku z czym niemożliwa jest zmiana danych w bazie danych.
  • Dla każdej metody lub zmiennej formularza należy ją określić dyrektywa kompilacji, określenie miejsca wykonania (klient lub serwer) i dostęp do kontekstu formularza.
Wymieńmy dyrektywy dotyczące kompilacji metod formularzy:
  • &Na kliencie
  • &Na serwerze
  • &Na serwerzeBez kontekstu
  • &OnClientOnServerBez kontekstu
Zilustrujmy powyższe. Zrzut ekranu przedstawia przykład zarządzanego formularza i jego modułu w trybie deweloperskim. Znajdź opis deklaratywny, właściwości, dyrektywy kompilacji itp.

Wszystkie dalsze dyskusje będą dotyczyły prawej strony ilustracji, tego, jak ustrukturyzować kod modułu i jakie zasady pozwolą na wdrożenie efektywnej interakcji klient-serwer.

Zdefiniujmy problem

Minęło kilka lat, odkąd nowa wersja platformy 1C jest aktywnie wykorzystywana i wiele rozwiązań (konfiguracji) zostało wydanych zarówno przez 1C, jak i jej wielu partnerów.
Czy przez ten czas programiści wypracowali wspólne rozumienie zasad interakcji klient-serwer podczas tworzenia formularzy i czy w nowych realiach architektonicznych zmieniło się podejście do wdrażania modułów oprogramowania?

Przyjrzyjmy się strukturze kodu (modułowi formularza) w kilku postaciach tej samej standardowej konfiguracji i spróbujmy znaleźć wzorce.
Przez strukturę rozumiemy fragmenty kodu (najczęściej są to bloki komentarzy) przydzielane przez programistę metodom grupującym i dyrektywom kompilacji dla tych metod.
Przykład 1:
Sekcja procedur obsługi zdarzeń Metoda - na kliencie Metoda - na serwerze Metoda - na kliencie Sekcja procedur i funkcji serwisowych Funkcje sterujące wejściami pomocniczymi
Przykład 2:
Procedury i funkcje serwisowe Dokumenty płatnicze Wartości Obsługa zdarzeń
Przykład 3:
Procedury serwisowe na serwerze Procedury serwisowe na kliencie Procedury serwisowe na serwerze bez kontekstu Obsługa zdarzeń nagłówkowych Obsługa zdarzeń poleceń
Przykład 4:
Procedury ogólnego przeznaczenia Obsługa zdarzeń formularzy Procedury podsystemu „informacje kontaktowe”.
Zasadniczo brakuje struktury kodu, lub delikatnie mówiąc, jest ona podobna do tej, która była w Forms 8.1:

  • Słowa niemające charakteru informacyjnego „Ogólne, służbowe, pomocnicze”.
  • Nieśmiałe próby oddzielenia metod klienta i serwera.
  • Metody są często pogrupowane według elementów interfejsu „Praca z częścią tabelaryczną Produkty, Informacje kontaktowe”.
  • Dowolny układ metod i grup kodów. Na przykład moduły obsługi zdarzeń mogą znajdować się na górze w jednym formularzu, na dole w innym, w ogóle nie podświetlone w trzecim itd.
  • I nie zapominajmy, że to wszystko w ramach jednej konfiguracji.
  • Tak, istnieją konfiguracje, w których słowa „Ogólne, Służbowe, Pomocnicze” są zawsze w tych samych miejscach, ale…
Dlaczego potrzebujesz struktury kodu?
  • Uproszczenie konserwacji.
  • Uprość naukę.
  • Zapisywanie ogólnych/ważnych/skutecznych zasad.
  • ...Twoja opcja
Dlaczego istniejący standard programistyczny od 1C nie pomaga?
Przyjrzyjmy się zasadom opublikowanym na dyskach ITS oraz w różnych „Przewodnikach programisty…”, które są zalecane przy pisaniu zarządzanego formularza.
  • Zminimalizuj liczbę wywołań serwera.
  • Maksymalna moc obliczeniowa na serwerze.
  • Niekontekstowe wywołania serwera są szybsze niż kontekstowe.
  • Program z myślą o komunikacji klient-serwer.
  • i tak dalej.
To hasła jak najbardziej prawdziwe, ale jak je wdrożyć? Jak zminimalizować liczbę połączeń, co oznacza programowanie w trybie klient-serwer?

Wzorce projektowe czyli mądrość pokoleniowa

Interakcja klient-serwer jest wykorzystywana w różnych technologiach oprogramowania od dziesięcioleci. Odpowiedź na pytania postawione w poprzedniej sekcji jest znana od dawna i streszcza się w dwóch podstawowych zasadach.
  • Zdalna fasada(zwany dalej Interfejsem Zdalnego Dostępu)
  • Obiekt przesyłania danych(zwany dalej Obiektem Przekazywania Danych)
Słowo od Martina Fowlera, jego opis tych zasad:
  • Każdy obiekt potencjalnie przeznaczony do zdalnego dostępu musi posiadać interfejs o niskiej szczegółowości, co zminimalizuje liczbę połączeń wymaganych do wykonania określonej procedury. ... Zamiast żądać faktury i wszystkich jej pozycji osobno, musisz przeczytać i zaktualizować wszystkie pozycje faktury w jednym żądaniu. Ma to wpływ na całą strukturę obiektu... Pamiętaj: interfejs zdalnego dostępu nie zawiera logiki domeny.
  • ...gdybym była troskliwą mamą, zdecydowanie powiedziałabym mojemu dziecku: „Nigdy nie pisz obiektów do przesyłania danych!” W większości przypadków obiekty przesyłania danych to nic innego jak nadęty zestaw pól... Wartość tego obrzydliwego potwora leży wyłącznie w możliwości przesyłać wiele informacji przez sieć podczas jednego połączenia- technika mająca ogromne znaczenie w przypadku systemów rozproszonych.
Przykłady szablonów na platformie 1C
Interfejs programowania aplikacji dostępny dla programisty podczas tworzenia zarządzanego formularza zawiera wiele przykładów tych zasad.
Na przykład metoda OpenForm(), typowy „szorstki” interfejs.
OpeningParameters = Nowa struktura("Parametr1, Parametr2, Parametr3", Wartość1, Wartość2, Wartość3); Formularz = OpenForm(NazwaFormularza, Parametry Otwarcia);
Porównaj ze stylem przyjętym w wersji 8.1.
Formularz = GetForm(NazwaFormularza); Form.Parametr1 = Wartość1; Form.Parametr2 = Wartość2; Formularz.Open();

W kontekście zarządzanego formularza istnieje wiele „obiektów przesyłania danych”. Możesz wybrać systemowe I zdefiniowane przez programistę.
Systemowe modelują obiekt aplikacji na kliencie w postaci jednego lub większej liczby elementów danych formularza. Nie da się ich utworzyć bez odniesienia się do szczegółów formularza.

  • Struktura formularzy danych
  • Kolekcja DataForms
  • DataFormStructureWithCollection
  • Drzewo kształtów danych
Konwersja obiektów transferu danych systemowych na typy aplikacji i odwrotnie odbywa się za pomocą następujących metod:
  • WartośćWFormieDane()
  • WartośćDanychFormularza()
  • KopiujDaneFormularza()
  • ValueInFormAttributes()
  • Atrybuty formularzaWartość()
Często podczas dostosowywania istniejącego rozwiązania stosuje się konwersję jawną. Metody mogą oczekiwać (używać funkcji) parametrów wejściowych, takich jak ValueTable, a nie FormDataCollection, lub metoda została zdefiniowana w kontekście obiektu aplikacji i stała się niedostępna do bezpośredniego wywołania z formularza.
Przykład 1C v8.1:
// na kliencie w kontekście formularza FillUserCache(DepartmentLink)
Przykład 1C v8.2:
// na serwerze w kontekście formularza ProcessingObject = Form AttributesValue("Object"); ProcessingObject.FillUserCache(DepartmentRef); Wartość–FormAttributes(Object Processing, „Obiekt”);

Obiekty przesyłania danych, których strukturę ustala programista, stanowią niewielki podzbiór typów dostępnych zarówno po stronie klienta, jak i serwera. Najczęściej jako parametry i wyniki metod interfejsu „zgrubnego” wykorzystuje się:

  • Typy pierwotne (string, number, boolean)
  • Struktura
  • Korespondencja
  • Szyk
  • Linki do obiektów aplikacji (unikalny identyfikator i reprezentacja tekstowa)
Przykład: metoda przyjmuje listę zleceń zmiany statusu i zwraca klientowi opis błędów.
Funkcja &OnServerWithoutContext ServerChangeOrderStatus(Zamówienia, NewStatus) Błędy = Nowe dopasowanie(); // [zamówienie] [opis błędu] Dla każdego zamówienia z cyklu StartTransaction(); Spróbuj DocOb = Order.GetObject(); …. inne akcje, możliwe nie tylko za pomocą zamówienia... Wyjątek CancelTransaction(); Errors.Insert(Order, ErrorDescription()); Zakończ próbę; Koniec cyklu; Błąd zwrotu; EndFunction // ServerChangeOrderStatus()

Strukturyzacja kodu

Główne cele, jakie powinien odzwierciedlać moduł formularza zarządzanego oraz podejścia do rozwiązania.
  • Wyraźne oddzielenie kodu klienta i serwera. Nie zapominajmy, że w momencie realizacji są to dwa oddziałujące na siebie procesy, z których każdy znacząco różni się dostępną funkcjonalnością.
  • Czytelna identyfikacja interfejsu zdalnego dostępu, które metody serwera można wywołać od klienta, a które nie? Nazwy metod interfejsu zdalnego zaczynają się od przedrostka „Serwer”. Dzięki temu w trakcie odczytywania kodu od razu widać przekazanie kontroli na serwer, a także ułatwia korzystanie z pomocy kontekstowej. Należy pamiętać, że oficjalna rekomendacja (ITS) sugeruje nazewnictwo metod z przyrostkami, na przykład ChangeOrderStatusOnServer(). Powtarzamy jednak, że nie wszystkie metody serwera można wywołać z klienta, dlatego ważniejsza jest dostępność logiczna, a nie lokalizacja kompilacji. Dlatego przedrostkiem „Serwer” oznaczamy jedynie metody dostępne dla klienta, nazwijmy przykładową metodę ServerChangeOrderStatus().
  • Czytelność. Kwestia gustu, zamówienie przyjmujemy gdy moduł zaczyna się od procedur tworzenia formularza na serwerze i metod zdalnego dostępu.
  • Łatwość konserwacji. Musi być jasne miejsce na dodanie nowego kodu. Co ważne, na końcu modułu dodawane są szablony metod tworzone automatycznie przez konfigurator. Ponieważ procedury obsługi zdarzeń dla elementów formularza są najczęściej tworzone automatycznie, odpowiedni blok jest umieszczany na końcu, aby nie przeciągać każdej procedury obsługi w inne miejsce w module.
Poniżej znajduje się podstawowa struktura modułu realizującego wymienione cele.
  • Opcja graficzna – wyraźnie pokazuje główny przebieg wykonania.
  • Opcja tekstowa jest przykładem projektu szablonu umożliwiającego szybkie wstawienie struktury do nowego modułu formularza.

//////////////////////////////////////////////////////////////////////////////// // <(c) Автор=""Data=""/> // <Описание> // // /////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// ////////// // NA SERWERZE //********** ZDARZENIA NA SERWERZE ********** &Na serwerze Procedura w przypadku utworzenia na serwerze (awaria, przetwarzanie standardowe) ///////////// /wstaw zawartość procedury obsługi Koniec procedury //********** INTERFEJS ZDALNEGO DOSTĘPU ******* //********** LOGIKA BIZNESOWA NA SERWERZE ******* ///////// /////////////////////////////////////// /////// /////////////////// // WSPÓLNE METODY KLIENTA I SERWERA /////////////// /////// //////////////////////////////////////// ///// //////// // NA KLIENCIE //********** LOGIKA BIZNESOWA NA KLIENCIE ********** //********** ZESPÓŁ * ****** //********** WYDARZENIA KLIENTA ********** ////////////////////////// ///// ////////////////////////////////////////// // / / GŁÓWNE OPERATORY PROGRAMÓW

Powiązane pytania
Podsumowując, zarysujemy kilka obszarów, o których warto pomyśleć podczas programowania interakcji klient-serwer.
  • Opcje implementacji interfejsu zdalnego dostępu. Asynchronia, poziom szczegółowości...
  • Buforowanie. 1C podjął nieudaną decyzję architektoniczną, wprowadzając buforowanie tylko na poziomie wywoływania metod wspólnych modułów i nie zapewniając możliwości kontroli (czas istotności, resetowanie na żądanie).
  • Niejawne wywołania serwera. Nie zapomnij o funkcjach technologicznych, wiele „nieszkodliwych” operacji na kliencie prowokuje platformę do kontaktu z serwerem.

Głównym problemem jest to, że w ciągu 10-15 lat skompilowano już dużo kodu dla zwykłych formularzy. Nikt nie chce tego wszystkiego przepisywać na serwerze klient-serwer + sporo osób jest przeszkolonych do pracy z interfejsem. Obowiązkowe przejście na BP 3.0 rozpoczynające się w przyszłym roku wywołuje panikę w umysłach programistów i księgowych. Informacje zwrotne będą bardzo nieprzyjemne. Poza tym rośnie poprzeczka wejścia do zawodu, programowanie jest trudniejsze, a standardowe stało się jeszcze trudniejsze. Jaki jest koszt nowego algorytmu w standardowych dokumentach? UV wygląda świetnie, gdy masz 2-3 przyciski na dokumentach, UV świetnie nadaje się do pracy na urządzeniach mobilnych, ale tylko 0,01% firm z niego korzysta. Będziesz musiał zmienić, jeśli 1C nie wymyśli czegoś nowego, ale będzie to długie i bolesne dla wszystkich. A same firmy będą musiały zapłacić pieniądze.

Ja też do tej pory doświadczyłem tylko negatywnych rzeczy z kontrolowanych form, oto jeszcze kilka wad tej innowacji:

  • Nic? No cóż, natknąłem się na to kilka razy, np. pisząc i dołączając zewnętrzny formularz do wydruku do pliku ZUP conf, przetwarzanie tam jest całą epicką, pełną instrukcji w Internecie i stron z kodem powinno.
    na grubym kliencie jest jedna procedura z parametrami tj. rozwój to kwestia minut.
    a hamulce są cienkie, widoczne gołym okiem
  • A co do możliwości przygotowania łatwych w obsłudze formularzy - to jest sztuka dla sztuki, ale jaki jest tego praktyczny sens, szczególnie w przypadku wersji plikowej?
  • Rzeźbiłem w UV przez 3 lata, ale teraz wróciłem do prostych form i uwierz mi, to przejście było dość trudne psychologicznie, ale jest to mój świadomy wybór, ponieważ to, co 1c oferuje w UV, jest całkowicie UG…. może za kilka lat 1c dokona przełomu, ale teraz szuka tylko miejsca, gdzie mógłby dokonać tego przełomu...
  • Otwieranie UV w konfiguratorze trwa znacznie dłużej.
    Od tego momentu otwieranie formularzy w wersji 8.1 przypomina przesiadanie się z ciężarówki do samolotu!
  • Problemów jest więcej dla wszystkich, użytkownicy są zszokowani nowym interfejsem (nie wszyscy się do tego przyznają, ale w mniejszych sprawach są znacznie głupsi), połowa programistów nie nadawała się do profesjonalizmu, przeciętnemu specjalistowi trudniej jest znaleźć pracę i jak wyprodukować produkt wysokiej jakości. A najfajniejszym motywem marketingowym UV jest to, że szybują wszędzie tam, gdzie przejście następuje za pomocą prostej aktualizacji, ale wszyscy zapominają, że od początku trzeba nadrobić zaległości w najnowszych wydaniach! Ale w zasadzie podoba mi się ten pomysł!
  • Nie wiem, z mojego doświadczenia wynika, że ​​jest odwrotnie. Tam, gdzie bomy w ścisłych formach uderzają automatycznie od kilku lat, w nowych standardach UV co miesiąc zaczyna się „dlaczego, gdzie jest teraz 1C po aktualizacji tego przycisku i dlaczego teraz to nie działa”, co, jak widzisz , nie dodaje prędkości.
  • - jest więcej kodu
    - kod stał się bardziej złożony
    — modyfikacja standardowych jest znacznie trudniejsza
    - użytkownicy którym dałem UT11 nie znaleźli żadnych korzyści w porównaniu do 10.x
    — ale znaleźli pewne spowolnienia i brak niektórych funkcji, takich jak wyszukiwanie (z jakiegoś powodu chcieli wyszukiwania do przodu i do tyłu, a nie zaznaczania)
    Moim zdaniem poświęcenia są zbyt duże na rzecz klienta WWW i tabletów. Co więcej, osobiście nie widziałem jeszcze prawdziwej pracy z klientem internetowym, który musi skutecznie korzystać ze zdalnego dostępu
  • Zamieszanie klient-serwer powinno zapewnić wzrost wydajności i skalowalności, a jednocześnie koszty obejmują wzrost kodowania.
    Nie wszyscy jednak odczuli wzrost, stąd rozczarowanie. Jednocześnie wszyscy skupiali się na kosztach kodowania.
    P.S. Właściwie to lubię te kontrolowane, spokojnie z nich czerpię. Ale te typowe stały się wypaczone.
  • W domu (zwykły komputer) prowadzę picie według indywidualnych przedsiębiorców.
    8.3, BP3, w kratkę. Główne wrażenie jest takie, że nie pracuję, tylko cały czas czekam. reakcja hemoroidalna. SALT do konta jest po prostu zdumiewający - przypomina kartę do konta na rok w megaholdingu.
  • UT11 to dziki hamulec, horror i ogólnie koszmar.
    UT10 leci w porównaniu do UT11.
    Jeśli chodzi o UV - robaki są infekowane od lat, wszystko jest krzywe, kolumny nigdy nie mieszczą się na jednym ekranie, rozciąganie jest w wielu przypadkach okropne.
    I nadal mogę wymienić wiele minusów, ale o plusach prawdopodobnie nie powiem nic. Po prostu ich nie ma.
    Firmy specjalnie skończyły na tych formach, ponieważ rozwój kosztuje więcej, nie było specjalnych i nie ma normalnych.

Zalet jest niewiele, ale oczywiście istnieją...

plusy:

Odpowiedź była tam od dawna, co podał UP:

klient wieloplatformowy

  • praca na złych liniach komunikacyjnych
  • możliwość pracy przez przeglądarkę (bez konieczności instalowania klienta)
 


Czytać:



Tworzenie struktury finansowej przedsiębiorstwa Rozważmy bardziej szczegółowo główne typy centralnych instytucji finansowych

Tworzenie struktury finansowej przedsiębiorstwa Rozważmy bardziej szczegółowo główne typy centralnych instytucji finansowych

Głównym zadaniem budowania struktury finansowej jest podział obowiązków i uprawnień pomiędzy menedżerami zarządzającymi przychodami...

Starożytne wieloryby urodziły się na lądzie Zygoriz: ogólny opis gatunku

Starożytne wieloryby urodziły się na lądzie Zygoriz: ogólny opis gatunku

Starożytne wieloryby rodziły na lądzie Przodkowie wielorybów rodzili swoje ząbkowane dzieci głową do przodu, podobnie jak gatunki zamieszkujące ląd. Rodziny archeocetów uwielbiały leżeć na...

Zarządzenie w sprawie zachęt dla pracowników

Zarządzenie w sprawie zachęt dla pracowników

Postawa administracji wobec pracownika i ocena jego działań znajdują odzwierciedlenie w zarządzeniu o awansie personelu. W nich...

Wniosek o rejestrację państwową zakończenia przez osobę fizyczną działalności jako indywidualny przedsiębiorca w związku z podjętą przez nią decyzją o zakończeniu tej działalności

Wniosek o rejestrację państwową zakończenia przez osobę fizyczną działalności jako indywidualny przedsiębiorca w związku z podjętą przez nią decyzją o zakończeniu tej działalności

Artykuł 22.3. Procedura rejestracji państwowej po zakończeniu przez osobę fizyczną działalności jako przedsiębiorca indywidualny 1....

obraz kanału RSS