Konfiguracja sprzętu i oprogramowania

Przyciski radiowe, zwykła aplikacja, zarządzane formularze. Programowe dodawanie i zmiana elementów zarządzanych formularzy Dodanie przełącznika do formularza 1c 8.2

Platforma 1C:Enterprise umożliwia programowe dodawanie i modyfikowanie elementów zarządzanego formularza. Zobaczmy, dlaczego może to być potrzebne.

Programowa modyfikacja formularza może być wymagana w kilku przypadkach:

  • Podczas finalizowania typowych konfiguracji w celu ułatwienia późniejszej procedury aktualizacji. W takim przypadku zmieniony zostanie tylko moduł formularza. Moduły znacznie łatwiej aktualizować niż formularz.
  • Podczas implementacji kilku ogólnych algorytmów. Na przykład w podsystemie „Zakaz edycji szczegółów obiektów” dla wszystkich obiektów podłączonych do podsystemu przewidziano tworzenie oprogramowania przyciski umożliwiające edycję szczegółów.
  • Przy wdrażaniu określonych algorytmów. Na przykład pola do edycji dodatkowych szczegółów są tworzone w podręczniku Nomenklatury.

W formularzu zarządzanym możesz programowo dodawać, modyfikować i usuwać:

  • przybory;
  • polecenia lokalne;
  • elementy.

Wszystkie te operacje są możliwe tylko na serwerze.

Zautomatyzowane przekształcanie ma ograniczenia:

  • Możesz usuwać tylko programowo dodane atrybuty/polecenia/elementy. Nie można programowo usuwać obiektów utworzonych w konfiguratorze.
  • Nie można przypisać atrybutu jako głównego.

Zmiana poleceń formularza

Aby zarządzać kompozycją poleceń dla obiektu Zarządzany formularz mieć kolekcję Drużyny

    Dodać (< ИмяКоманды >)

    Ilość ()

    Znajdować (< ИмяКоманды >)

    Kasować (< Команда >)

Kolekcja Commands jest dostępna zarówno na kliencie, jak i na serwerze. Modyfikacja kolekcji (metody Add() i Remove() ) jest możliwa tylko na serwerze. Możesz wyszukiwać i pobierać liczbę elementów (metody Find() i Quantity()) zarówno na kliencie, jak i na serwerze.

Jako przykład pracy z poleceniami formularza stwórzmy nowe polecenie ChangeHistory o tytule „Historia zmian…”, które wywoła procedurę obsługi Historia wyświetlania() . Tworzenie odbywa się po otwarciu formularza.

&Na serwerze
Procedura OnCreateOnServer (awaria, standardowe przetwarzanie)
Zespół = Polecenia. Dodać( „Historia zmian”);
Zespół . Akcja = ;
Zespół . Tytuł = "Historia zmian...";
Koniec procedury
&Na kliencie
Procedura Connected_DisplayHistory (polecenie)
// akcje poleceń
Koniec procedury

Program obsługi poleceń musi znajdować się w formularzu i mieć dyrektywę kompilacji &AtClient .

Zmiana szczegółów formularza

Odczytywanie składu atrybutów formularza jest wykonywane przez funkcję Uzyskaj szczegóły(< Путь >), która zwraca tablicę typu FormAttributes. Parametr funkcji określa ścieżkę do atrybutu rodzica (jako ciąg). Jeśli parametr zostanie pominięty lub zostanie określony pusty ciąg, zwracane są poświadczenia najwyższego poziomu.

Zmiana szczegółów odbywa się metodą EdytujWymagania(<Dodano szczegóły>, <Zdejmowane szczegóły>) obiekt Zarządzany formularz. Opcje Dodano szczegóły oraz Zdejmowane szczegóły przekazywane są tablice z elementami typu Form Requisite.

Uwaga!

Proces zmiany kompozycji detali jest dość zasobochłonny. W rzeczywistości forma jest odtwarzana. W związku z tym praca ze szczegółami formularza odbywa się w trybie wsadowym.

Utwórzmy nowy atrybut formularza o nazwie Kupujący:


AddedAttributes = Nowa tablica;
Dodano szczegóły. Dodaj (nowy atrybut formularza)(„Kupujący”, Nowy TypeDescription („DirectoryReference.Counterparties”), „Klient”);

// Zmiany w składzie atrybutów
);

Zmiana elementów formularza

Zarządzanie kompozycją elementów obiektu Zarządzany formularz mieć kolekcję Elementy. Kolekcja ma kilka metod:

    Wstawić (< Имя>, < ТипЭлемента>, < Родитель>, < Элемент >)

    Dodać (< Имя>, < ТипЭлемента>, < Родитель >)

    Ilość ()

    Znajdować (< Имя >)

    Ruszaj się(< Элемент>, < Родитель>, < МестоРасположения >)

    Kasować (< Элемент >)

Kolekcja Elements jest dostępna zarówno na kliencie, jak i na serwerze. Modyfikuj kolekcję (metody wstawiania () , Dodaj () , Przenieś () i Usuń () ) są dostępne tylko na serwerze. Możesz wyszukiwać i pobierać liczbę elementów (metody Find() i Quantity()) zarówno na kliencie, jak i na serwerze. Elementy kolekcji mogą być:

  • Formularz grupowy;
  • Formularze tabel;
  • Pole formularza;
  • Formularze przycisków.

Możesz programowo przypisać programy obsługi zdarzeń do elementów formularza. W tym celu metoda UstawAkcję(< ИмяСобытия>, < Действие >) .

Przyjrzyjmy się kilku najczęstszym praktycznym przykładom pracy z poleceniami, atrybutami i elementami formularzy.

Dodanie polecenia i związanego z nim przycisku:

// Utwórz zespół
Zespół = Polecenia. Dodać( „Historia zmian”);
Zespół . Akcja = „Historia połączonego_wyświetlania”; // Formularz musi zawierać procedurę o podanej nazwie
Zespół . nagłówek = "Historia zmian...";
// Utwórz przycisk i powiąż go z poleceniem
Element = Przedmioty. Dodać( „Historia zmian”, Type("PrzyciskFormularza" ));
Element.CommandName = „Historia zmian”;

Dodanie atrybutu i związanego z nim pola wejściowego:

// Opis dodanych szczegółów
AddedAttributes = Nowa tablica;
Dodano szczegóły. Dodać(Nowy atrybut formularza („Kupujący”, Opis nowego typu ( „Link referencyjny. Kontrahenci”), "Klient" ));
// Zmiana kompozycji atrybutów
EdytujAtrybuty(DodaneAtrybuty);
// Tworzenie pola wejściowego i linkowanie do atrybutu
Element = Przedmioty. Add("Klient" , Type("FormField" ));
Element . Widok = ViewFormFields. Pole wejściowe;
Element . Ścieżka do danych= "Kupujący" ;

Przypisywanie obsługi zdarzeń do elementu formularza:

PrzedmiotKupujący. Ustaw akcję(„Kiedy to się zmienia” , „Plug-in_BuyerOnChange”);

&Na kliencie
Procedura Plugin_BuyerOnChange(Element )
// Akcje zdarzeń
Koniec procedury

Uwaga!

Procedury, które są instalowane jako programy obsługi zdarzeń z kodu przy użyciu metody UstawAkcję(), zaleca się użycie prefiksu Connected_.

Uwaga!

Możesz pobrać przetwarzanie z przykładami programistycznego wyszukiwania i zmiany szczegółów, poleceń i elementów zarządzanego formularza.

Klyuev V.V.

http://prof1c.kklab.ru

PRACA Z PRZEŁĄCZNIKAMI

Proszę o uwzględnienie wszystkich użytkowników serwisu - materiały zamieszczam w dziale Początkujący !!!

8.2 Zarządzane formularze

Badając zachowanie formularzy zarządzanych, programiści lub twórcy interfejsów stają przed pytaniem - gdzie są przełączniki w formularzach zarządzanych i jak je dodać do formularza. Drobiazg, ale nieprzyjemnie dużo czasu spędza się na takich drobiazgach, choć ten czas można by poświęcić na opracowanie i optymalizację algorytmu, a nie na projektowanie formy.

Stwórzmy więc pustą konfigurację, aby zrozumieć problem, lub wybierzmy dowolną typową.
Przejdź do grupy zawierającej katalogi i dla eksperymentu dodaj nowy katalog. Chcę zauważyć, że konfiguracja musi mieć główny tryb uruchamiania - Aplikacja zarządzana.

Stwórzmy więc nowy katalog i dodajmy właściwości „Props1” z typem „Boolean”

Teraz przejdź do zakładki Formularze i dodaj nowy formularz.

Tak więc tworzony jest formularz zarządzany, teraz pracujmy z formularzem i znajdźmy to samo, gdzie znajduje się przełącznik.
Oto nasza forma, a na niej widzimy nasze rekwizyty, ale w formie checkboxa

Więc co zrobiliśmy źle?
Przyjrzyjmy się właściwościom właściwości, aby zobaczyć, czy istnieje przełącznik do widoku kontrolki.
I widzimy, że nie ma tu pola zmiany (gdzie popełniliśmy błąd?

Wygląda na to, że wygląd kontrolki na formularzu zależy od typu danych, wróćmy do właściwości formularza, czyli zakładki szczegóły i zmieńmy właściwości naszego atrybutu - czyli jego typ "Boolean", na typ "Number".

Wróćmy teraz do właściwości kontrolki i sprawdźmy, czy widok kontrolki został dodany w jej właściwościach - - - I urra, widzimy tam widok - pole Switch.

Teraz spójrz na formularz, co widzimy:

Widzimy - 3 wartości domyślne, 3 przyciski opcji, ale potrzebujemy dwóch z nich, przejdź ponownie do właściwości właściwości i spójrz tam na właściwości "Liczba kolumn"

Dla 2 - ustaw Liczba kolumn - 2.

To mogłoby trochę powstrzymać zmęczonego programistę))), ale teraz zarówno on, jak i my o tym wiemy!

8.2 Popularne formy.

Nerwowość z przełącznikami w zwykłych formach.
Są takie momenty i zdarzają się), kiedy trzeba zmodyfikować jakiś gotowy formularz, w którym są już jakieś przełączniki i trzeba do tego formularza dodać kolejny przełącznik. Tu pojawia się jakaś nuda, która zajmuje dużo czasu i to nie na programowanie kodu - ale stratę czasu na wyświetlenie tych przełączników użytkownikowi.

Spójrzmy więc na przykład. Istnieje taki dokument do korekty paragonów w 1C SCP - na pewno istnieje. Kiedyś musieliśmy dodać do niego przełączniki, aby rysować nieco inne księgowania do księgowości. W czym problem, wydawałoby się to konieczne, to jest konieczne, zrobimy to. Ale ten formularz ma już 2 przyciski radiowe.

Tak wygląda formularz, w którym musimy dołączyć więcej przełączników


Na karcie Zaawansowane chcielibyśmy umieścić jeszcze dwa przyciski opcji. Tak więc pierwszą akcją jest śmiałe dodanie nowej kontrolki w miejsce, w której musimy ją wstawić.

Wydawałoby się, że wszystko jest proste. Tworzymy nowy atrybut, o typie - „Number” i wstawiamy 2 przełączniki, z których jeden będzie mógł zapisywać dane do atrybutu, a drugi nie.

Dodaj nową kontrolkę - Switch, w tabeli z numerem i opisem włączników dodaj Switch2, ustaw Switch1 jako pierwszy w grupie i wciśnij ok. Stworzone kontrolki umieszczamy na formularzu. Zaktualizuj konfigurację bazy danych (F7) i uruchom w celu debugowania.

Po wykonaniu (podczas tworzenia nowego dokumentu w trybie 1C:Enterprise) widzimy, że bez względu na to, jak bardzo staramy się kliknąć Switch2, nic się nie dzieje. Elementy nie działają tak, jak powinny. Jest tu jedna funkcja.
Wróć do konfiguratora. Wybierz pozycję w menu Formularz -> Ustawienie kolejności przechodzenia... (ważne aby formularz był otwarty na ekranie)


Aby nasze Switche działały, konieczne jest zerwanie automatyczne zamówienie i zadowolić się instrukcją. I umieść w formularzu, aby nasze przełączniki szły - jedna po drugiej w kolejności.

OK. Zaktualizuj konfigurację i spróbuj uruchomić.
W porządku. Wszystko działało.

Opcjonalnie - wideo (brak dźwięku, więc wszystko jest jasne)


1C są tworzone automatycznie przez system podczas używania zastosowane rozwiązanie. Stanowią podstawę prezentacji (wyświetlania) informacji w systemie 1C:Enterprise.

Forma 1C struktura

Formularz w to logiczny opis składu formularza. elementy opisują, jak będzie wyglądać formularz. Rozmieszczanie elementów formularza jest wykonywane przez system automatycznie w momencie jego wyświetlenia.

Wyświetlana część formularza (widoczna dla użytkownika) jest opisana jako drzewo zawierające elementy formularza (patrz rysunek poniżej, pole „Elementy formularza”):

  • grupa zawierająca inne elementy,
  • pola wejściowe,
  • flagi,
  • przełączniki,
  • guziki,
  • tabele zawierające elementy kolumn itp.

„Elementy formy 1C”

[ukryć]

Grupę elementów formularza można przedstawić jako

  1. panel ramy,
  2. panel ze stronami (zakładki),
  3. rzeczywista strona,
  4. panel poleceń.

Cała funkcjonalność formularza jest opisana jako:

  • szczegóły (dane, z którymi działa formularz);
  • komendy (działania do wykonania).

Dostosowywanie wyglądu zarządzanego formularza

Dostosowywanie wyglądu zarządzanego formularza przez użytkownika

Ustawienie wygląd zewnętrzny zarządzany formularz można zaimplementować na poziomie użytkownika. Dla tej funkcji w akcjach formularza znajduje się polecenie „Więcej” - „Zmień formularz” (zarządzanie tylko tymi elementami formularza, które są zdefiniowane na etapie rozwoju lub według standardowych zasad autogenerowania formularza).

„Więcej” – „Zmień kształt”

Polecenie „Więcej” - „Zmień kształt”:

Po kliknięciu „Zmień formularz” zostanie wyświetlone okno ustawień formularza 1C:

[ukryć]

Dodatkowo w trybie użytkownika możliwe jest:


  • zmienić kolejność formularzy, przenieść je z jednej kolumny do drugiej (jeśli pulpit jest zorganizowany w dwie kolumny), ale nie można zmienić liczby kolumn na pulpicie;
  • wyświetlaj informacje w postaci osobnych okienek (podczas wywoływania polecenia nawigacyjnego przytrzymaj klawisz Shift).

Jeśli używane są sekcje, to po wywołaniu polecenia na pasku nawigacyjnym, odpowiadająca mu lista jest wyświetlana w obszarze roboczym, zastępując poprzednią zawartość obszaru roboczego.

Dostosowywanie wyglądu zarządzanego formularza jako programista

Deweloper może wpływać na układ elementów różne instalacje. Potrafi określić kolejność elementów, określić ich szerokość i wysokość, a także użyć:

  • polecenia samej formy;
  • komendy globalne używane w całej konfiguracji;
  • parametryzowalne polecenia, które otworzą inne formularze, biorąc pod uwagę określone dane bieżącego formularza.

Rysunek (zmiana z dewelopera 1C)

[ukryć]

Opracowując formularz 1C, musisz:

  1. w edytorze formularzy podaj w formularzu niezbędne szczegóły i polecenia;
  2. tworzyć elementy formularza, które je wyświetlają, określić kolejność elementów, określić szerokość i wysokość (jeśli to konieczne);
  3. ułóż elementy w grupy (jeśli to konieczne).
  1. Użyj ustawień widoczności opartych na rolach w elementach formularza (przeglądanie i edycja atrybutów według , niestandardowa widoczność pól formularza według ról, użycie poleceń według ról) w przypadku duża liczba role w konfiguracji (od kilkudziesięciu). Zamiast tego należy zastosować następujące podejścia:
    • z silnymi różnicami w wyglądzie i funkcjonalności formy, w zależności od obecności określonych ról dla użytkownika - opracować osobne formularze, wyspecjalizowane dla określonego zestawu praw użytkownika;
    • z niewielkimi różnicami - przeprowadzić kontrolę uprawnień w kodzie. Jednocześnie należy pamiętać, że programowa kontrola widoczności może zmniejszyć szybkość otwierania formularza, co należy wziąć pod uwagę przy wyborze pomiędzy proponowanymi podejściami.
  2. Użyj ustawień widoczności opartych na rolach w interfejsie poleceń konfiguracji, głównym interfejsie poleceń sekcji i obszarze roboczym Strona startowa. Zamiast tego powinieneś użyć ustawień uprawnień w sekcjach interfejsu poleceń i obiektów zawartych w interfejs poleceń lub do miejsca pracy. Poprawia to przewidywalność zachowania zarządzanego interfejsu dla użytkownika, a także ułatwia rozwiązywanie problemów.

Jeszcze dokładna informacja do pracy z formularzami na kursie „Praca z formularzami w 1C:Enterprise 8.3”, http://www.1c.ru/rus/partners/training/uc1/course.jsp?id=161.

1. Pole wejściowe
2. Pole wyboru
3. Przełącznik

Pole wejściowe

Z reguły pole wejściowe jest powiązane z atrybutem obiektu i odzwierciedla jego dane. Jest to prawdopodobnie jeden z najczęstszych elementów, ma kilka sposobów wyboru wartości:

Wybieranie z listy (SelectFromListMode)

Wybór z innego formularza (przycisk Wybierz)

Przyciski sterujące

Realizacja powyższych przykładów nie wymaga dużego wysiłku ze strony dewelopera tzw. np. dla trybu listowego konieczne jest wypełnienie listy elementu wartościami, aby wybrać z innego formularza wystarczy powiązać element kontrolny danymi ze słownika. Ale dla przycisków sterujących będziesz musiał napisać więcej kodu, aby obsłużyć naciskanie każdego przycisku, chociaż nie będzie to świetne:

Procedura pvNomenclature SelectionRegulation(Element, Direction, Standard Processing)
//Wybierz dane dla pola wejściowego
// w tym przypadku odnieś się do Nomenklatury
Żądanie = Nowe żądanie;
Request.Text=
"WYBIERAĆ
| Nomenclature.Reference As Item
| OD
| Katalog Nomenklatura AS Nomenklatura
|ZAMÓW PRZEZ
| Nomenklatura.Kod";
TZNomenklatura = Request.Execute().Upload();

//szukamy bieżącego elementu katalogu określonego w polu wejściowym
BieżącyElement = TKNomenklatura.Find(Element.wartość);

Jeśli bieżąca pozycja = niezdefiniowana, wtedy
// jeśli element nie zostanie znaleziony, ustaw numer indeksu
// poza tabelą wartości, ponieważ pierwszy element w
// tabela wartości ma indeks 0
BieżącyIndeks = -1;
W przeciwnym razie
// jeśli element zostanie znaleziony, pobierz jego indeks
TekIndex = T3Nomenclature.Index(TekElement);
EndIf;

// oblicz nowy indeks w zależności od kliknięcia przycisku
// minus przed zmienną Kierunek jest taki, aby
// kliknięcie na górną strzałkę pokazało element powyżej
// a więc z niższym indeksem
NowyIndeks = BieżącyIndeks-Kierunek;

// pobierz liczbę elementów w katalogu
// odejmij jeden, ponieważ wszystkie kolekcje w 8.1 zaczynają się od 0
Liczba pozycji = Nomenklatura TK Ilość () -1;

Jeśli nowy indeks< 0 Или НовИндекс >Liczba elementów wtedy
// jeśli indeks jest poza tabelą wartości przy zmianie
// tj. jego liczba jest wtedy większa niż największy indeks lub mniejsza niż 0
// nie zmieniaj wartości i poinformuj o tym użytkownika
alert("Osiągnąłeś limit katalogu");
W przeciwnym razie
// przypisz nową wartość, "Produkt" to nazwa kolumny tabeli wartości
Element.value = TKNomenclature.Get(NewIndex).Product;
EndIf;

Koniec procedury

Pole wyboru

W większości programów pole wyboru służy do wyświetlania dwóch stanów: zaznaczonego, niezaznaczonego. W 1s pole wyboru ma trzy stany, w trzecim stanie pole wyboru jest wyświetlane - jako ustawione i zacienione. Te trzy stany są dostępne tylko wtedy, gdy dane flagi są liczbą, przy czym stany mają następujące znaczenie:

Przełącznik

Przełącznik służy do wyboru jednej wartości z niewielkiej liczby możliwych (najlepiej nie więcej niż pięciu), podczas gdy wartości nie można łączyć, Na przykład: odpowiednia do wyboru płci osoby. Inny przykład: powiedzmy, że firma daje jeden z 3 rabatów na produkt, podczas gdy rabaty nie kumulują się:

W takim przypadku wygoda korzystania z przycisków radiowych może polegać na tym, że każdy z nich może mieć jakąś wartość, którą ustawia się we właściwości „Wartość do wyboru”. A następnie "5% rabatu" może przechowywać wartość 5 lub 0,05.

Podczas korzystania z przycisków opcji należy pamiętać o trzech ważnych rzeczach:

      Pierwszy przycisk opcji musi mieć właściwość „FirstInGroup” (w tym przykładzie jest to przycisk opcji „5% rabatu”).

      Przełączniki związane znaczeniem z jedną grupą powinny iść kolejno w ustawieniu kolejności obejścia, bez przerywania przez inne elementy formularza. Kolejność bypassu ustawia się w menu „Formularz -> Ustawienie kolejności bypassu”, dla ten przykład To wygląda tak:

  1. Typ wybranej wartości ustawia przełącznik posiadający właściwość „FirstInGroup”.
Podobał Ci się artykuł? Podziel się z przyjaciółmi!
Czy ten artykuł był pomocny?
tak
Nie
Dziekuję za odpowiedź!
Coś poszło nie tak i Twój głos nie został policzony.
Dziękuję Ci. Twoja wiadomość została wysłana
Znalazłeś błąd w tekście?
Wybierz, kliknij Ctrl+Enter a my to naprawimy!