Spis treści:

Podstawy Pythona: Bezpłatny kurs dla wszystkich poziomów Praktyczne projekty i interakcja z nauczycielem Dowiedz się, jakie umiejętności możesz rozwinąć na naszym kursie
Dowiedz się więcejW systemie 1C: Enterprise niemal każda konfiguracja jest zbudowana w oparciu o procedury i funkcje. Elementy te sprawiają, że kod jest przejrzysty, poprawny i ułatwiają dalszą pracę z nim. Chociaż mają podobną strukturę, trudno jest określić, kiedy użyć procedury, a kiedy funkcji. W tym artykule przyjrzymy się bliżej ich przeznaczeniu, różnicom i podstawowym wskazówkom dotyczącym użycia.
Spis treści
- Procedury i funkcje to ważne elementy programowania, które wykonują określone zadania w kodzie.
Procedura to blok kodu, który wykonuje określone zadanie, ale nie zwraca wartości. Służy do wykonywania operacji, takich jak wyświetlanie informacji, zmiana stanu zmiennych lub wykonywanie sekwencji działań. Procedury mogą przyjmować parametry, co pozwala na przekazywanie do nich danych i wykorzystywanie ich do wykonywania pracy.
Funkcja natomiast jest również blokiem kodu, ale z kluczową różnicą – zawsze zwraca wartość. Funkcje służą do obliczania danych i dostarczania wyników, które można wykorzystać w innych częściach programu. Podobnie jak procedury, funkcje mogą przyjmować argumenty, co pozwala na przekazywanie danych do przetworzenia.
Zatem główna różnica między tymi dwiema konstrukcjami polega na tym, że funkcje zwracają wynik, podczas gdy procedury po prostu wykonują działania. Oba narzędzia pomagają organizować kod, czyniąc go bardziej ustrukturyzowanym i zrozumiałym.
- Procedury i funkcje mają różne parametry, które określają ich zachowanie i interakcję ze środowiskiem zewnętrznym. Główne typy parametrów to:
1. **Parametry wejściowe** — są to wartości przekazywane do procedury lub funkcji w celu przetworzenia. Mogą być wymagane lub opcjonalne, w zależności od tego, czy muszą zostać określone podczas wywołania.
2. **Parametry wyjściowe** — służą do zwracania wartości z procedury lub funkcji. Umożliwiają one przekazywanie wyników obliczeń z powrotem do kodu wywołującego.
3. **Parametry przez referencję i przez wartość** — parametry mogą być przekazywane albo przez wartość, co oznacza, że tworzona jest kopia danych, albo przez referencję, co pozwala na bezpośrednią modyfikację oryginalnych danych.
4. **Zmienna liczba parametrów** — niektóre funkcje mogą przyjmować zmienną liczbę argumentów, co zapewnia większą elastyczność w ich użyciu.
Parametry te odgrywają kluczową rolę w określaniu interakcji funkcji i procedur z danymi oraz sposobu ich wykorzystania w różnych kontekstach.
- Praca z parametrami to ważny aspekt, który wymaga uwagi i zrozumienia. Najpierw należy określić, jakie parametry będą używane w zadaniu. Mogą to być wartości liczbowe, ciągi tekstowe lub inne typy danych, w zależności od kontekstu.
Następnie należy określić, w jaki sposób parametry będą przekazywane do programu lub funkcji. Istnieje kilka metod ich przekazywania: argumenty wiersza poleceń, pliki konfiguracyjne lub zmienne środowiskowe. Każda z tych metod ma swoje zalety i wady, a wybór zależy od specyfiki zadania.
Po ustaleniu parametrów i metody ich przekazywania należy zweryfikować ich poprawność. Walidacja danych na etapie odbioru pomoże uniknąć błędów w przyszłości. Na przykład, jeśli oczekiwana jest wartość liczbowa, warto sprawdzić, czy dane wejściowe rzeczywiście odpowiadają temu typowi.
Ważne jest również, aby rozważyć, jak parametry będą używane podczas wykonywania programu. Mogą one wpływać na logikę wykonania lub służyć do dostosowywania zachowania aplikacji. Należy pamiętać, że zmiany parametrów mogą dawać różne rezultaty i warto to przetestować.
Na koniec nie zapomnij udokumentować użycia parametrów. Pomoże to innym programistom (lub Tobie w przyszłości) szybko zrozumieć, jak działa Twój program i jakie ustawienia można zmienić.
- Używanie procedur i funkcji w konfiguracjach 1C:Enterprise jest ważnym elementem programowania, umożliwiającym ustrukturyzowanie kodu i ułatwiającym jego konserwację. Procedury to zestawy instrukcji wykonywanych w celu wykonania określonego zadania, podczas gdy funkcje, oprócz wykonywania akcji, zwracają wartość.
Aby rozpocząć korzystanie z procedur i funkcji, należy je najpierw zdefiniować w module. Moduły mogą być współdzielone lub lokalne, w zależności od miejsca, w którym będą używane. Po zdefiniowaniu procedury lub funkcji możesz ją wywołać w dowolnym miejscu kodu, co sprzyja ponownemu wykorzystaniu kodu i zmniejsza liczbę powtórzeń.
Procedury są zazwyczaj używane do wykonywania czynności, które nie wymagają zwracania wartości, takich jak obsługa zdarzeń czy wykonywanie określonych operacji. Funkcje natomiast najczęściej służą do wykonywania obliczeń i zwracania wyników, które można wykorzystać w innych częściach programu.
Ważne jest, aby pamiętać o parametrach, które można przekazać do procedur i funkcji. Dzięki temu są one bardziej elastyczne i wszechstronne, ponieważ można używać tych samych procedur i funkcji z różnymi danymi wejściowymi.
Po zdefiniowaniu i wywołaniu procedury lub funkcji można łatwo zmienić jej logikę bez wpływu na resztę kodu, co znacznie upraszcza proces konserwacji i modyfikacji systemu. Zatem prawidłowe użycie tych narzędzi w 1C: Enterprise pozwala tworzyć bardziej wydajne i zrozumiałe rozwiązania.
Definicja i różnice między procedurami a funkcjami
Procedura w 1C to fragment kodu, który wykonuje określone czynności, ale nie generuje odwrotnego rezultatu. Konstrukcje te są używane, gdy konieczne jest wykonanie jakiejś czynności: na przykład zapisanie informacji w katalogu, zmiana obiektu lub wyświetlenie powiadomienia użytkownikowi. Działają one jak polecenie wywołujące określone zadanie.
W 1C funkcja to fragment kodu, który nie tylko wykonuje określone operacje, ale także zwraca wynik końcowy. Zazwyczaj takie funkcje służą do wykonywania obliczeń i uzyskiwania wartości, takich jak kwota lub data.
Na przykład procedura może utworzyć dokument sprzedaży i zarejestrować go w bazie danych, podczas gdy funkcja może obliczyć całkowitą kwotę dla tego dokumentu i podać wynik.
W języku 1C istnieją różnice w sposobie pisania procedur i funkcji, ale ich ogólna struktura ma wiele wspólnego.
Używanie procedur i funkcji pozwala podzielić program na mniejsze komponenty, co poprawia czytelność i łatwość obsługi kodu. Typowe algorytmy można wyizolować w osobnych procedurach i funkcjach, co pomaga uniknąć redundancji. Zamiast wielokrotnie pisać te same czynności w różnych częściach programu, wystarczy po prostu wywołać odpowiednią procedurę lub funkcję. Jeśli konieczne jest wprowadzenie zmian w algorytmie, można to zrobić w jednym miejscu.
Używanie procedur i funkcji poprawia czytelność kodu. Gdy nazwy tych elementów jasno odzwierciedlają ich przeznaczenie, łatwiej jest zrozumieć, co dokładnie dzieje się w programie. Ułatwia to późniejszą konserwację.

Przeczytaj również:
Przewodnik po pracy z tabelami wartości w „1C” dla początkujących użytkowników.
Deklaracja procedury zaczyna się od słowa kluczowego Procedure, po którym następuje jej nazwa i nawiasy zawierające parametry. Wymagane działania są określone w treści procedury, a koniec procedury jest oznaczony słowem kluczowym EndProcedure.
Proces wywołania procedury jest wykonywany w następujący sposób:
Ta procedura wykonuje zawarty w niej kod, ale nie generuje żadnych wyników.
Na przykład:
Funkcja jest definiowana w podobny sposób, ale przy użyciu słowa kluczowego Function. Wymagane obliczenia są wykonywane w funkcji, a operator Return służy do zwracania wyniku. Jeśli ten operator nie zostanie podany, funkcja zwróci wartość Undefined. Funkcje mogą być używane zarówno w wyrażeniach, jak i w operacjach przypisania.
Funkcję można wywołać w następujący sposób:
Na przykład:
W module 1C: Enterprise 8 kolejność procedur i funkcji nie ma znaczenia. Możesz wywołać dowolną procedurę lub funkcję w bieżącym module z innej procedury lub funkcji, niezależnie od ich położenia w kodzie, nawet jeśli wywoływana procedura znajduje się niżej w tekście.
W deklaracji funkcji lub procedury, znajdującej się po nawiasach, możesz dodać słowo „Eksportuj”, jeśli chcesz, aby była ona dostępna z innych modułów. W obrębie tej procedury lub funkcji możesz wywoływać inne procedury i funkcje, zarówno z bieżącego modułu, jak i z modułów zewnętrznych.
Średnik nie jest wymagany na końcu deklaracji procedury lub funkcji. Można go jednak użyć po ostatniej procedurze lub funkcji w module i nie spowoduje to błędu. Jeśli jednak później zdecydujesz się dodać do modułu nowe procedury lub funkcje, może to spowodować wyświetlenie komunikatu o błędzie.

Aspekty definiowania parametrów w procedurach i funkcjach
Podczas wywoływania funkcji lub procedury możliwe jest przekazywanie parametrów. Parametry te umożliwiają korzystanie z różnych danych wejściowych: funkcja wygeneruje wynik na podstawie dostarczonych wartości, a procedura określi odpowiedni algorytm wykonywania działań.
W opisie można określić wartość domyślną, która zostanie użyta, jeśli nie zostanie podana inna specyfikacja. W tym celu należy podać wartość po prawej stronie nazwy parametru za pomocą znaku równości. Jeśli ta wartość nie zostanie podana podczas wywołania parametru, system automatycznie zastosuje wartość domyślną.
Parametry z wartościami domyślnymi są uważane za opcjonalne. Parametry bez wartości domyślnych są uważane za obowiązkowe. Muszą zostać określone podczas wywołania funkcji, w przeciwnym razie wystąpi błąd lub zostanie przekazana wartość Undefined, co często prowadzi do błędów kodu.

Przeczytaj także:
Programowanie w „1C: Enterprise”: przewodnik dla początkujących.
Domyślnie wszystkie argumenty są przekazywane przez referencję, co oznacza, że w funkcji lub procedurze Przekazywana jest sama zmienna, a nie jej duplikat. Jeśli w ramach procedury lub funkcji zostaną wprowadzone zmiany parametru, zostanie to również odzwierciedlone w oryginalnej zmiennej, ponieważ mamy do czynienia z tym samym obszarem pamięci.
Przykład z procedurą:
W tym przypadku zmienna MyNumber uległa zmianom, ponieważ argument został przekazany przez odwołanie.
Przykład z funkcją:
W tej funkcji nie tylko zwracana jest wartość NewResult, ale zmienna MyNumber jest również bezpośrednio modyfikowana, ponieważ parametr został przekazany przez odwołanie.
Aby przekazać parametr przez wartość, należy jawnie użyć słowa kluczowego Value przed nazwą parametru podczas deklarowania funkcji lub procedury. Dzięki temu kopia wartości zostanie przekazana do procedury, a oryginalna zmienna pozostanie niezmieniona.
Przykład z procedurą:
W związku z tym wartość zmiennej MyNumber nie uległa zmianie, ponieważ podczas wykonywania procedury zmodyfikowano jedynie jej kopię.
Przykład z funkcją:
Niektóre procedury obsługi zdarzeń mają specjalną zmienną o nazwie Failure. Początkowo jej wartość jest ustawiona na False. Jeżeli podczas wykonywania procedury obsługi zostanie mu przypisana wartość True, spowoduje to zakończenie procedury.
Przykład:
W tym przypadku dokument nie jest przetwarzany, ponieważ parametr Refusal jest ustawiony na True.

Przeczytaj także:
Język 1C zawiera typ system, biblioteki, środowisko programistyczne i aspekty estetyki kodu, a także odzwierciedla poziom profesjonalizmu programistów.


Metody efektywnego zarządzania parametrami
Nazwy parametrów powinny jasno wskazywać na ich cel i odnosić się do odpowiedniego obszaru. Takie podejście sprzyja lepszemu zrozumieniu kodu bez potrzeby dodatkowych wyjaśnień.
Parametry powinny być umieszczone w rozsądnej kolejności: parametry główne (lub ogólne) powinny być wymienione jako pierwsze, a następnie parametry wyjaśniające.
Niepoprawnie:
Prawidłowo:
Parametry opcjonalne powinny być umieszczone po parametrach wymaganych.
Przykład:
Unikaj dodawania zbyt wielu parametrów do funkcji. Za optymalne uznaje się użycie nie więcej niż siedmiu argumentów, z których tylko trzy mogą mieć wartości domyślne. W przeciwnym razie wywołania funkcji staną się skomplikowane i trudne do zrozumienia.
Optymalnym rozwiązaniem w przypadku długich list parametrów byłoby połączenie ich w struktury lub ponowne rozważenie działania funkcji.
Niedopuszczalny wzorzec: nadmierna liczba cech.
W tym przypadku istnieje dziewięć parametrów, z których cztery są opcjonalne. Może to prowadzić do nieporozumień podczas ich używania.
Można podać przykład: parametry są łączone w jedną strukturę.
W takim przypadku kod staje się bardziej zrozumiały: łatwo prześledzić, który parametr jest powiązany z czym, a kolejność właściwości nie ma znaczenia. Podczas dodawania nowych parametrów zmiany w kodzie wywołującym będą minimalne.
Efektywne wykorzystanie procedur i funkcji w 1C: konfiguracje korporacyjne
Procedury i funkcje to kluczowe elementy, na których opiera się logika aplikacji 1C. Pomagają one organizować kod, minimalizować jego powtarzalność i kontrolować procesy biznesowe.
Procedury są używane, gdy wymagane jest przetwarzanie informacji, na przykład przetwarzanie dokumentów lub wyników obliczeń. Służą również do modyfikacji interfejsu, w tym ukrywania lub wyświetlania elementów formularza oraz komunikatów użytkownika. Ponadto procedury pomagają kontrolować kolejność działań w ramach logiki biznesowej.
Na przykład:
Funkcje są używane, gdy konieczne jest wykonanie obliczeń i uzyskanie określonego wyniku, niezależnie od tego, czy jest to suma, ilość, data czy ciąg znaków. Ponadto umożliwiają one wyizolowanie pewnych operacji logicznych do osobnych modułów, co zapewnia możliwość ich wielokrotnego wykorzystania.
W sekcjach związanych z obiektami (takich jak Dokument, Katalog, Rejestr):
- przygotowywanie dokumentów;
- weryfikacja informacji podczas wprowadzania danych;
- definiowanie parametrów regulacyjnych.
W modułach formularzy:
- reakcja na działania użytkownika w interfejsie (na przykład kliknięcie przycisku lub zmiana parametrów);
- wywoływanie funkcji serwera w celu interakcji z bazą danych;
- wypełnianie komórek tabeli i kontrolek.
W modułach wspólnych:
- zapisywanie uniwersalnych funkcji, które mogą być używane przez różne obiekty, na przykład funkcji zaokrąglania kwot lub przetwarzania dat.
Aby zobaczyć listę funkcji i procedur dostępnych w bieżącym module, wystarczy kliknąć ikonę z lupą oznaczoną napisem Proc lub skorzystać z kombinacji klawiszy Ctrl + Alt + P. Następnie pojawi się okno nawigacyjne, w którym możesz wybrać interesującą Cię procedurę lub funkcję i przejść do jej kodu źródłowego.

Elementy są wyświetlane w Kolejność, w jakiej są umieszczane w module. Aby posortować listę alfabetycznie, wystarczy aktywować opcję Sortuj.
Oprócz funkcji i procedur, każdy moduł posiada listę standardowych modułów obsługi zdarzeń, takich jak OnOpen(), OnClose() i OnWriteOnServer(). Zestaw tych modułów obsługi zdarzeń może się różnić w zależności od typu elementu. Po dwukrotnym kliknięciu żądanego modułu obsługi zdarzeń w module automatycznie zostanie utworzony szablon odpowiedniej procedury przeznaczonej do obsługi zdarzenia.
Aby uzyskać więcej ekscytujących informacji o kodzie, dołącz do naszego kanału Telegram. Czekamy na Ciebie wśród naszych subskrybentów!
Przeczytaj również:
- Ten przewodnik, oparty na systemie 1C: Enterprise, jest przeznaczony dla osób, które dopiero zaczynają zapoznawać się z programowaniem w tym środowisku. Omówimy kluczowe kwestie niezbędne do udanego rozpoczęcia tworzenia aplikacji.
Przede wszystkim warto zauważyć, że 1C: Enterprise to nie tylko platforma, ale cały ekosystem, który pozwala tworzyć i zarządzać różnymi aplikacjami biznesowymi. Aby rozpocząć, należy zainstalować odpowiednie oprogramowanie na komputerze. Ważne jest, aby zapoznać się z interfejsem i podstawowymi funkcjami, ponieważ ułatwi to dalszą pracę.
Po instalacji zalecamy zapoznanie się z wbudowanymi podręcznikami i dokumentacją, które pomogą lepiej zrozumieć strukturę i możliwości platformy. Warto zwrócić uwagę na język programowania 1C, zwany 1C:Language. Ma on własne funkcje i składnię, które należy opanować do pisania skryptów i przetwarzania danych.
Zacznij od prostych zadań: twórz nowe obiekty, pracuj z formularzami, definiuj i używaj procedur obsługi zdarzeń. Oprócz ćwiczeń praktycznych warto rozważyć materiały szkoleniowe i kursy, które pomogą pogłębić Twoją wiedzę.
Nie zapomnij o społeczności programistów 1C, gdzie możesz zadawać pytania i otrzymywać porady od bardziej doświadczonych kolegów. Tworzenie aplikacji w 1C: Enterprise może początkowo wydawać się trudne, ale dzięki praktyce i wytrwałości można opanować wszystkie podstawowe aspekty i tworzyć skuteczne rozwiązania biznesowe.
- „Zwykli programiści nie piszą kodu po rosyjsku”: cztery irytujące mity na temat 1C.
- „Do pracy z 1C nie potrzeba żadnych specjalnych talentów, ale cierpliwość będzie bardzo przydatna”: historia Andrieja Lisyury.

