Okna.  Wirusy.  Laptopy.  Internet.  Biuro.  Narzędzia.  Kierowcy

Uwaga!
Wszelkie przetwarzanie z dysków ITS ma charakter informacyjny i wyłącznie dla zarejestrowanych użytkowników ITS.

Selekcja i obróbka obiektów. (Uniwersalny)

Wyszukuje obiekty w dokumentach i katalogach, które spełniają określone warunki. Przetwarza wyniki wyszukiwania.

Splot bazy informacyjnej. (Uniwersalny)

Wykonuje pakiet zbiorczy bezpieczeństwa informacji typowych konfiguracji:

  • UPP 3.1.
  • BP 1,6.
  • UT 10.3.

Rejestracja zmian do wymiany. (Uniwersalny)

Edytuje, w trybie aplikacji zarządzanej, rejestrację zmian w wymienianych obiektach. Umożliwia zmianę bieżącej rejestracji w różnych węzłach. Zmienia liczbę odebranych i wysłanych wiadomości.

Konwersja dziennika aktywności użytkownika. (Uniwersalny)

Konwertuje dziennik działań użytkownika na program we wbudowanym języku.

Wyszukiwanie pełnotekstowe w danych. (Uniwersalny)

Indeksowanie i wyszukiwanie danych.

Znajdowanie i zastępowanie wartości. (Uniwersalny)

Wyszukuje i zastępuje wartości referencyjne w obiektach bezpieczeństwa informacji.

Zakładanie dziennika technologicznego. (Uniwersalny)

Tworzy lub edytuje plik dziennika procesu. Posiada możliwość skonfigurowania tworzenia zrzutu awaryjnego, skonfigurowania warunków i zdarzeń, po wystąpieniu których informacje zostaną zapisane w tym logu.

Konsola zadań. (Uniwersalny)

Monitoruje zadania w tle i rutynowe. Usuwa, tworzy nowe.

Konwersja przetwarzania zewnętrznego. (Uniwersalny)

Zmiana informacji poufnych. (Uniwersalny)

Selektywna zmiana lub usunięcie bezpieczeństwa informacji z określonych informacji.

Grupowa zmiana danych. (Uniwersalny)

Zmienia szczegóły i części tabelaryczne w dokumentach i podręcznikach.

Przesyłanie i ładowanie użytkowników. (Uniwersalny)

Przesyła i ładuje użytkowników zajmujących się bezpieczeństwem informacji do pliku XML.

Przesyłanie danych do zewnętrznych baz danych. (Uniwersalny)

Przesyła struktury danych do zewnętrznych systemów DBMS przy użyciu ADO w dwóch trybach:

  • Rozładuj wszystko
  • Prześlij zmiany (używane do synchronizacji zmian w działającym IS z odbierającym IS). Tryb ten wykorzystuje mechanizmy planu wymiany.

Obsługuje następujące systemy DBMS:

  • MicrosoftSQL
  • IBM DB2
  • Wyrocznia
  • PostgreSQL
  • MySQL'a

Przesyłanie i ładowanie danych XML. (Uniwersalny)

Przesyła i ładuje dane do bezpieczeństwa informacji, zarówno w całości, jak i częściowo. Służy do przesyłania danych pomiędzy konfiguracjami o podobnym składzie obiektu.

Ładowanie danych z dokumentu arkusza kalkulacyjnego. (Uniwersalny)

Ładuje dane do katalogów i części tabelarycznych z dokumentów tabelarycznych.

Działa w grubym kliencie w normalnym trybie aplikacji.

Poproś o konsolę. (Uniwersalny)

Zapewnia dużą pomoc w raportowaniu i tworzeniu zapytań.

Rozważmy utworzenie raportu zewnętrznego w 1C 8 bez użycia systemu składu danych. Aby utworzyć raport zewnętrzny, skorzystamy z konfiguracji Księgowość 2.0, dane początkowe: „Napisz raport na koncie księgowym 62, w którym w kontekście będą wyświetlane obroty za określony okres Kontrahenci I Umowy kontrahentów.

1. Utwórz raport

Na początek utwórzmy zewnętrzny plik raportu; w tym celu przejdźmy do trybu 1s 8 Konfigurator, przejdźmy do menu Plik -> Nowy lub kliknij ikonę Nowy dokument.

Wybierz element z listy Raport zewnętrzny. Po utworzeniu raportu zewnętrznego nadaj mu nazwę (np Najprostszy raport) i zapisz go na dysku. Dodamy jeszcze dwa szczegóły: Początek okresu I Koniec okresu typ Data, będziemy ich potrzebować, aby ograniczyć przedział czasowy próbkowania danych podczas generowania raportu.

2. Utwórz zewnętrzny układ raportu

Aby wygenerować raport w 1C 8, potrzebujesz układu, jest to szablon do wyświetlania danych, w którym ustawione są wszystkie niezbędne parametry, rysowane są tabele itp. Dodajmy nowy układ; w tym celu wybierz pozycję w drzewie metadanych raportu Układy i naciśnij przycisk Dodać, podczas tworzenia wybierz typ układu dokument arkusza kalkulacyjnego.

Nasz układ będzie miał 4 obszary:

  • Nagłówek – w tym obszarze wyświetlimy nazwę raportu, okres za jaki został wygenerowany oraz nagłówek tabeli;
  • Dane kontrahenta – w tym obszarze w tabeli wyświetlimy dane o kontrahentu;
  • DataCounterparty Agreement – ​​w tym obszarze w tabeli wyświetlimy dane dotyczące umowy z kontrahentem;
  • Stopka – w tym obszarze wyświetlimy wartości sumaryczne dla całego raportu dla pól Przychody i Wydatki.

Zacznijmy tworzyć obszary układu. Aby utworzyć obszar na układzie, wybierz wymaganą liczbę linii i kliknij Tabela menu -> Nazwy -> Przypisz nazwę(Lub Ctrl + Shift + N). Do regionu Czapka Napiszmy nazwę raportu: Liczy się obrót 62, narysuj za pomocą tego narzędzia Granice nagłówek raportu, a także ustaw parametry Początek okresu I Koniec okresu. Za pomocą parametrów możesz wyświetlić potrzebne dane w raporcie; zajmiemy się tym na kolejnym etapie rozwoju, czyli podczas pisania kodu raportu. Aby utworzyć parametr w układzie, wybierz żądaną komórkę, wpisz w niej nazwę parametru (bez spacji), kliknij go prawym przyciskiem myszy, wybierz element z menu, które zostanie otwarte Właściwości. We właściwościach komórki na zakładce Układ wybierz dopełnienie Parametr.

Następnie nazwa parametru w komórce zostanie ujęta w nawiasy ostre („<>„). W rezultacie obszar Czapka powinno wyglądać tak:

W okolicy Dane Kontrahenta za pomocą narzędzia utworzymy parametry do wyświetlania nazwy kontrahenta oraz przychodów i wydatków dla rachunku 62 Granice Zaprojektujmy obszar jako rząd tabeli.

W okolicy Umowa z kontrahentem danych Stwórzmy parametry do wyświetlania nazwy umowy oraz przychodów i wydatków dla konta 62, za pomocą narzędzia Obramowania zaprojektujemy obszar jako wiersz tabeli. Zróbmy małe wcięcie przed parametrem Umowa Kontrahenta(można to zrobić dzieląc i łącząc komórki. Kliknij komórkę prawym przyciskiem myszy -> Łączyć Lub Podziel komórkę), jest to potrzebne, aby w raporcie było widać, że pozycja dotycząca kontraktu jest niżej w hierarchii niż pozycja dotycząca kontrahenta.

W okolicy Piwnica Utwórzmy parametry sum przychodów i wydatków.

W efekcie powinniśmy otrzymać taki układ:

3. Utwórz formularz raportu

Aby wyświetlić dane, ustaw okres formowania i przycisk Formularz nasz raport będzie wymagał formularza. Aby utworzyć formularz, znajdź element w drzewie metadanych raportu zewnętrznego Formularze i naciśnij przycisk Dodać. Na pierwszej stronie projektanta formularzy nie musisz wprowadzać żadnych zmian, wystarczy kliknąć przycisk Następny.

Na kolejnej stronie projektanta wybierz oba dostępne detale ( Początek okresu, Koniec okresu) do umieszczenia w formularzu.

W efekcie otrzymamy taki formularz:

Ale nie zadowala nas to w tej formie, wprowadźmy w nim pewne zmiany:

  • Przeciągnijmy przycisk Formularz z dolnego panelu raportu na górę (będzie to wygodniejsze dla użytkownika);
  • Rozciągnij kształt w pionie i poziomie;
  • Uporządkujmy pola Początek okresu I Koniec okresu poziomo;
  • Dodajmy do formularza element kontrolny Pole dokumentu arkusza kalkulacyjnego (będzie w nim wyświetlany nasz raport), nadajmy mu nazwę TabDoc;
  • Stwórzmy przycisk wyboru okresu (po kliknięciu wyświetli się okno dialogowe z wygodnym wyborem żądanego okresu). Nie będziemy jeszcze pisać dla niego kodu programu, więc po prostu umieścimy przycisk obok pól kropki.

W rezultacie nasz formularz będzie wyglądał następująco:

4. Programowanie

Po utworzeniu formularza raportu przystępujemy do programowania. Na początek stwórzmy procedurę wyświetlania okna dialogowego wyboru okresu (stworzyliśmy już przycisk do tego na poprzednim etapie). Kliknij przycisk prawym przyciskiem myszy i wybierz element menu Właściwości, we właściwościach przycisku przejdź do zakładki Wydarzenia, gdzie za pomocą przycisku z ikoną lupy utworzymy procedurę Przycisk 1Naciśnij w module formularza.

Pomiędzy formularzem a jego modułem możesz przełączać się za pomocą zakładek znajdujących się na dole formularza

Aby wywołać formularz wyboru okresu skorzystamy ze standardowej procedury Rachunkowość 2.0 ze wspólnego modułu Praca z oknami dialogowymi — HandlerPeriodSettingPress, musisz przekazać mu szczegóły raportu jako parametry Początek okresu I Koniec okresu.

Procedura Przycisk 1Naciśnij (Element) Praca z oknami dialogowymi.PeriodSettingHandlerPress(PeriodStart,PeriodEnd); Koniec procedury

Przejdźmy teraz do napisania kodu, który wygeneruje i wyświetli nasz raport. Moduł formularza ma już procedurę Przycisk GenerujNaciśnij, która zostanie wykonana po naciśnięciu przycisku Formularz, tam napiszemy nasz kod. Zacznijmy od inicjalizacji niezbędnych zmiennych. Na początek utwórzmy zmienną dla pola dokumentu arkusza kalkulacyjnego do którego będziemy wyprowadzać dane, nie jest to konieczne, po prostu zapis wywołań do niego stanie się krótszy, przez co kod programu będzie bardziej zrozumiały w czytaniu.

TabDoc = FormElements.TabDoc;

Uzyskajmy układ raportu zewnętrznego za pomocą funkcji Pobierz układ(<ИмяМакета>) , jako parametr przekażemy nazwę układu i jeśli taki układ istnieje, funkcja go znajdzie.

Układ = GetLayout("Układ" );

Po otrzymaniu układu utwórzmy zmienne dla każdego z jego obszarów, wykorzystajmy do tego metodę układu Pobierz obszar(<ИмяОбласти>) .

AreaHeader = Układ.GetArea("Nagłówek" ); AreaDataAccount = Układ.GetArea( „Dane Wykonawcy”); AreaDataContract = Layout.GetArea("DataContract" ); AreaFooter = Układ.GetArea("Stopka" );

Wyczyśćmy pole dokumentu arkusza kalkulacyjnego. Jest to konieczne, aby za każdym razem, gdy generowany jest nowy raport, stare dane zostały usunięte.

TabDoc.Clear();

Teraz, gdy inicjalizacja zmiennych została zakończona, przejdźmy do wypełniania i wyświetlania obszarów układu, jeden po drugim. Zacznijmy od nagłówka. Jeśli pamiętasz, stworzyliśmy w tym obszarze dwa parametry Początek okresu I Koniec okresu, przekażemy tam wartości okresu generowania raportu, w tym celu skorzystamy z właściwości Opcje obszary układu.

AreaHeader.Parameters.PeriodStart = Początek okresu; AreaHeader.Parameters.EndPeriod = EndPeriod;

Żadnych więcej akcji z tym obszarem Czapka Producent nie jest potrzebny, dlatego wyświetlimy jego pole w dokumencie arkusza kalkulacyjnego.

TabDoc.Output(AreaHead);

Następnie napiszemy zapytanie do bazy danych, za pomocą którego zmierzymy obroty konta 62 z rejestru księgowego Samonośne. Zdefiniujmy zmienną, w której będzie się znajdować nasze żądanie.

Żądanie = nowe żądanie;

Zanim zaczniemy pisać tekst żądania, przekażmy mu niezbędne parametry. Ponieważ piszemy prośbę o wystawienie faktury 62 rachunkowości, to przede wszystkim utworzymy dla niego parametr

Request.SetParameter("Account62", Plany kont. Samonośny. Znajdź według kodu("62" ));

Do żądania należy także podać okres generowania raportu. Nie zapominaj, że mamy specjalne szczegóły raportu za okres generowania i przekazujemy je jako parametry.

Request.SetParameter("Początek okresu", Początek okresu); Request.SetParameter("Koniec okresu", Koniec okresu);

Zacznijmy pisać tekst zapytania, zrobimy to za pomocą projektanta zapytań. Wiele tutoriali mówi, że trzeba umieć napisać zapytanie zarówno ręcznie, jak i przy użyciu konstruktora, ale w praktyce tak nie jest. W zadaniach, przed którymi stale staje programista 1C, priorytetem jest szybkie i sprawne pisanie kodu, a ręczne zapisywanie zapytania do bazy danych jest prawie niemożliwe do osiągnięcia; poświęcisz dużo cennego czasu na prawidłowe odtwarzanie wszystkich struktur zapytań i znajdowanie literówek, które zrobiłeś podczas pisania itp. Dlatego nie trać czasu na ręczne pisanie zapytań, ale użyj konstruktora zapytań. Zaoszczędzi to Twój czas i umożliwi pisanie skomplikowanych zapytań bez większego wysiłku. Aby rozpocząć pisanie tekstu żądania, napiszmy w kodzie:

Żądanie.Text = "" ;

Następnie umieść kursor między cudzysłowami, kliknij prawym przyciskiem myszy i wybierz Konstruktor wniosek. Otworzy się okno projektanta zapytań.

Teraz musimy wybrać potrzebną tabelę bazy danych 1C 8. Potrzebujemy tabeli wirtualnej Rewolucje rejestr księgowy Samonośne. Znajdźmy go po lewej stronie okna projektanta

Przenieśmy to w teren Stoły i zacznijmy wypełniać parametry. Dla wszystkich wirtualnych tabel zapytań istnieje specjalny zestaw parametrów, które pozwalają wybrać niezbędne dane z tabeli głównej (w naszym przypadku tabeli głównej Rejestr księgowy Samonośne). Otwórzmy okno parametrów wirtualnej tabeli.

Uzupełnijmy parametry za okres, który przekazaliśmy do żądania. Aby użyć parametru w tekście żądania należy wpisać symbol przed jego nazwą ampersand(&)

Pozostaje wypełnić warunek konta księgowego. księgowość. Aby to zrobić, znajdź linię w parametrach wirtualnej tabeli Stan konta i tam napiszemy

Konto W HIERARCHII (&Konto62)

Konstruktora warunków można także użyć, klikając przycisk z trzema kropkami.

Nie ma potrzeby narzucania żadnych dodatkowych warunków na wirtualny stół, więc kliknijmy przycisk OK w oknie parametrów tabeli wirtualnej. Następnie musimy wybrać z tabeli potrzebne nam pola Samonośny.Obrotowy(mianowicie: Kontrahent, umowa z kontrahentem, dochody i wydatki). Aby zobaczyć listę pól dostępnych w wybranej przez nas tabeli należy kliknąć symbol „+” obok jej nazwy. Następnie przeciągnij wymagane pola do skrajnego prawego obszaru projektanta zapytań, który nazywa się: Pola. Jeśli otworzymy plan kont, zobaczymy to dla konta 62 analityka włączona Dla kontrahenta jest to Subconto1 i przez Umowa z Kontrahentem - Subconto2.

Dlatego z pól wirtualnej tabeli wybieramy Podkonto1 I Subconto2. Ponieważ potrzebujemy przychodów i wydatków według kwoty, wybieramy również pola Kwota ObrótDt I KwotaObrótKt

Uzupełnijmy aliasy wybranych przez nas pól; w tym celu przejdź do zakładki Związki/aliasy i ustaw wymagane nazwy pól.

Ponieważ w naszym raporcie dane będą wyświetlane hierarchicznie (na pierwszym poziomie znajduje się Kontrahent, a na drugim wszystkie jego umowy), sposób wyświetlania danych w hierarchii skonfigurujemy za pomocą Sum. Przejdźmy do zakładki w projektancie Wyniki. Przeciągnij, aby sekwencyjnie grupować pola Kontrahent I Umowa Kontrahenta i w finale Nadchodzący I Konsumpcja.

To kończy pracę w konstruktorze zapytań, kliknij przycisk OK i widzimy, że tekst naszego żądania pojawia się w kodzie programu.

Query.Text = "WYBIERZ | Samonośny obrót. Subconto1 AS Kontrahent, | Samonośna umowa z kontrahentem.Subconto2 AS, | Samonośny Obrót.AmountTurnoverDt AS Paragon, | Samonośny obrót. Kwota obrotu Kt AS Wydatek|OD | Rejestr księgowy. Obroty samoksięgowe (&Początek okresu, &Koniec okresu, Konto W HIERARCHII (&Konto 62)) AS Obrót samorozliczeniowy.|WYNIKI | KWOTA(Przychody), | KWOTA(Koszt) |PO | Kontrahent, | Umowa z kontrahentem”;

Po zakończeniu pisania wniosku przystąpmy do wypełniania pól Dane Kontrahenta, DaneUmowaKontrahent I Piwnica. Wszystkie te pola wypełnimy danymi otrzymanymi w trakcie realizacji zapytania. Ponieważ nasze zapytanie zawiera grupy ( Kontrahent I Umowa Kontrahenta) wybierz z niego dane w następujący sposób:

SelectionCounterpart = Request.Execute().Select(BypassQueryResult.ByGrouping);

W ten sposób otrzymamy zapisy z sumami dla wszystkich kontrahentów.

Przed przejściem w pętli przykładowych danych inicjujemy zmienne przeznaczone do obliczenia ogólnych wyników raportu:

Razem przychodzące = 0; Całkowite zużycie = 0;

Aby dane raportu były wyświetlane w sposób hierarchiczny (i rotacje wzdłuż „+”), ustawmy początek automatycznego grupowania wierszy dokumentu arkusza kalkulacyjnego:

TabDoc.StartAutoGroupingRows();

Wszystkie przygotowania zostały zakończone, teraz zacznijmy indeksować wyniki zapytania. Przechodzenie wykonamy za pomocą pętli Do widzenia

Podczas wybierania konta.Next() Cycle EndCycle ;

Na początku cyklu zresetuj parametry Nadchodzący I Konsumpcja region Dane Kontrahenta. Do czego to służy? Wyobraźmy sobie sytuację, w której kontrahent Wujek Wasya, dochód wynosi 10, a wydatek 5 i dla następnego kontrahenta Wujek Petya w tym przypadku nie ma dochodów ani wydatków, jeśli nie zresetujemy parametrów Nadchodzący I Konsumpcja, następnie według kontrahenta Wujek Petya dochód wyniesie 5, a wydatek 10.

AreaDataAccount.Parameters.Receipt = 0; AreaDataAccount.Parameters.Expense = 0;

Następnie wypełniamy obszar Dane Kontrahenta przykładowe dane elementu

FillPropertyValues(AreaAccountData.Parameters,SelectionAccount);

Po uzupełnieniu danych można wyświetlić obszar w dokument arkusza kalkulacyjnego, Ponieważ korzystamy z automatycznego grupowania wierszy, musimy wskazać poziom wiersza w grupowaniu (nasz raport będzie miał dwa poziomy, dla kontrahentów pierwszy dla kontraktów).

TabDoc.Output(AreaDataAccount,1);

Teraz dla tego kontrahenta dokonamy wyboru zgodnie z jego umowami.

Umowa SelectionCounterparty = SelectionCounterparty.Select(BypassQueryResult.ByGroups);

Przechodzenie wykonamy za pomocą pętli Do widzenia.

While SelectionCounterparty Agreement.Next() Loop EndCycle ;

W cyklu umów kontrahentów zresetujmy parametry Nadchodzący I Konsumpcja, wypełnij obszar Umowa dotycząca danych z próbki i wyświetlić ją w dokumencie arkusza kalkulacyjnego na drugim poziomie ewidencji.

AreaDataContract.Parameters.Receipt = 0; AreaDataContract.Parameters.Expense = 0; WypełnijPropertyValues(AreaContractData.Parameters,SelectionCounterpartyAgreement); TabDoc.Output(AreaDataContract,2);

Również w tym cyklu dodamy bieżące wartości do zmiennych w celu obliczenia całkowitych wartości przychodów i wydatków.

TotalReceipt = Całkowity odbiór + Umowa z wybranym kontrahentem.Odbiór; TotalExpense = TotalExpense + Przykładowa umowa z kontrahentem. Koszt;

Na tym kończy się wytwarzanie danych w tym obszarze Dane Kontrahenta, DaneUmowaKontrahent zakończone, pozostaje tylko dokończyć automatyczne grupowanie wierszy dokumentu arkusza kalkulacyjnego.

TabDoc.FinishAutoGroupingRows();

Pełne cykle odpowiedzialne za wysyłanie danych do obszaru Dane Kontrahenta I DaneUmowaKontrahent wyglądać tak:

TabDoc.StartAutoGroupingRows(); Podczas gdy SelectionAccount.Next() pętla AreaDataAccount.Parameters.Receipt = 0 ;

AreaDataAccount.Parameters.Expense = 0 ; Piwnica FillPropertyValues(AreaAccountData.Parameters,SelectionAccount); dokument arkusza kalkulacyjnego.

TabDoc.Output(AreaDataAccount,1);

Umowa SelectionCounterparty = SelectionCounterparty.Select(BypassQueryResult.ByGroups); While SelectionCounterparty Agreement.Next() Pętla AreaDataAgreement.Parameters.Receipt = 0 ; AreaDataContract.Parameters.Expense = 0 ;

WypełnijPropertyValues(AreaContractData.Parameters,SelectionCounterpartyAgreement);

TabDoc.Output(AreaDataContract,2); TotalReceipt = Całkowity odbiór + Umowa z wybranym kontrahentem.Odbiór; TotalExpense = TotalExpense + Przykładowa umowa z kontrahentem. Koszt; Koniec cyklu ; Koniec cyklu ; TabDoc.FinishAutoGroupingRows(); Pozostaje wyświetlić ostateczne dane w obszarze

i wyprowadź sam obszar do

W artykule zostaną omówione następujące opcje dodatkowych zewnętrznych obiektów, które można podłączyć:

  • Dodatkowa obróbka zewnętrzna części tabelarycznych;
  • Dodatkowe zewnętrzne formy drukowe;
  • Dodatkowe raporty zewnętrzne;
  • Dodatkowe przetwarzanie zewnętrzne.

Czym są dodatkowe przetwarzanie zewnętrzne, raporty i formularze drukowane?




Na początek chciałbym porozmawiać ogólnie o czym są te zewnętrzne przetwarzanie, raporty i drukowane formularze?. Dość często podczas pracy ze standardową konfiguracją, czy to 1C ZUP, 1C Enterprise Accounting, czy inną konfiguracją, potrzebna jest pewna funkcjonalność, której nie zapewniają programiści 1C. Na przykład możesz potrzebować drukowany formularz, który nie jest regulowany, ale służy wewnętrznym potrzebom organizacji. Lub wymagane w określony sposób proces (zmiana, dostosowanie) dane dostępne w bazie danych. Na przykład zmiana niektórych szczegółów w dokumentach na wymagany okres, co jest niewygodne w przypadku ręcznej zmiany, gdy jest duża ilość informacji.

W tym przypadku istnieją dwie opcje. Pierwszy, możemy modyfikować samą konfigurację, sam program. Potem przestanie być typowy i nie będzie możliwości jego aktualizacji za pomocą dość prostych metod, o których pisałem. Aktualizacja niestandardowej konfiguracji to dłuższy i poważniejszy proces, dlatego przy takim podejściu najprawdopodobniej będziesz musiał co miesiąc płacić specjalistowi 1C za aktualizację programu. Drugi Opcją jest opracowanie lub poproszenie o opracowanie zewnętrznego przetwarzania lub formularza drukowanego (raportu). Jest to zasadniczo moduł zewnętrzny, który jest również opracowany w języku programowania 1C w Konfiguratorze, ale nie wprowadza zmian w standardowej konfiguracji. Istnieje niezależnie od samej konfiguracji. Do ich przechowywania służą specjalne katalogi: pozycja menu głównego „Serwis” -> „Dodatkowe raporty i przetwarzanie”.

Dodatkowe przetwarzanie zewnętrzne do wypełniania części tabelarycznych

Seminarium „Lifehacks dla 1C ZUP 3.1”
Analiza 15 hacków życiowych do księgowości w 1C ZUP 3.1:

LISTA KONTROLNA do sprawdzania obliczeń płac w 1C ZUP 3.1
WIDEO - comiesięczna samokontrola księgowości:

Obliczanie płac w 1C ZUP 3.1
Instrukcje krok po kroku dla początkujących:

Przyjrzyjmy się teraz indywidualnie, jakie możliwości da nam każdy z czterech dostępnych modułów zewnętrznych. Zacznijmy od obróbka zewnętrzna części tabelarycznych. Wydaje mi się, że to przetwarzanie tabelarycznych części dokumentów najpełniej ilustruje, jak można całkiem poważnie zmodyfikować program, bez uciekania się do edycji standardowej konfiguracji, a poprzestając jedynie na przetwarzaniu zewnętrznym.

Aby było to jaśniejsze, podam konkretny przykład z mojej praktyki, w którym rozwiązuję problem, z którego korzystałem obróbka zewnętrzna części tabelarycznych. W konfiguracji „1C Zarządzanie wynagrodzeniami i personelem” wersja 2.5 znajduje się dokument „Płatność za święta i weekendy”(Dokument ten został szczegółowo opisany). Dokument ten w swojej standardowej formie umożliwia automatyczne wypełnianie przez pracowników części tabelarycznej „Praca w święta”.

Księgowa poprosiła o wprowadzenie możliwości wypełnienia tego dokumentu przez pracowników, których dni pracy zaplanowano na weekendy, tj. „Praca w weekend”.

Ten plik został przesłany do katalogu „Obróbka zewnętrzna części tabelarycznych”(punkt menu „Serwis” -> „Dodatkowe raporty i przetwarzanie” -> „Dodatkowa zewnętrzna obróbka części tabelarycznych”). Tworząc element tego katalogu, wskazano, jakiego dokumentu dotyczy pobrane przetwarzanie - „Opłata za święta i weekendy organizacji”, a także której części tabelarycznej - „Pracownicy”. W naszym przykładzie dokument posiada jedną część tabelaryczną, natomiast w innych dokumentach może ich być kilka, dlatego konieczne jest konkretne wskazanie, którego z nich dotyczy przetwarzanie.

W wyniku dodania tego przetwarzania do katalogu „Dodatkowa obróbka zewnętrzna przy wypełnianiu części tabelarycznych” w samym dokumencie „Płatność za święta i części weekendowe” pojawi się przycisk „Wypełnij” z rozwijaną listą, w której możliwe będzie rozpoczęcie tego przetwarzania. W naszym przypadku na rozwijanej liście dostępny jest przycisk „Wypełnianie niedziel”. Jego naciśnięcie uruchamia algorytm zawarty w przetwarzaniu. W tym przykładzie część tabelaryczna zostanie wypełniona pracownikami, których dzień pracy przypada na dzień wolny. Należy pamiętać, że ten przycisk nie istniał wcześniej (zrzut ekranu powyżej).

Mechanizm ten pozwala na rozwiązanie bardzo szerokiego spektrum problemów bez konieczności modyfikowania samej konfiguracji. Dlatego dość często wykorzystuję tę możliwość do realizacji zadań klientów.

Opcjonalne zewnętrzne płyty drukarskie

Seminarium „Lifehacks dla 1C ZUP 3.1”
Analiza 15 hacków życiowych do księgowości w 1C ZUP 3.1:

LISTA KONTROLNA do sprawdzania obliczeń płac w 1C ZUP 3.1
WIDEO - comiesięczna samokontrola księgowości:

Obliczanie płac w 1C ZUP 3.1
Instrukcje krok po kroku dla początkujących:

Ta opcja jest bardzo podobna do poprzedniej. Najprawdopodobniej widziałeś i wiesz, że prawie każdy dokument, a nawet niektóre elementy podręczników mają drukowane formularze. Z reguły znajdują się w prawym dolnym rogu postaci elementu katalogu lub dokumentu. Czasem standardowe drukowane formularze nie wystarczą. Na przykład organizacja może mieć własną formę umowy o pracę. Przypominam, że standardowy drukowany formularz „Umowa o pracę” znajduje się w formularzu „Pracownicy”.

Do drukowanych formularzy katalogu możesz dodawać własne. W tym celu tworzony jest zewnętrzny formularz drukowany z rozszerzeniem „.epf”. Następnie tworzony jest dla niego element katalogu „Dodatkowe zewnętrzne płyty drukarskie”(punkt menu „Narzędzia” -> „Dodatkowe raporty i przetwarzanie”), a do tego elementu katalogu dodawany jest plik z rozszerzeniem „.epf”. Konieczne jest także wskazanie, dla jakiego dokumentu lub księgi referencyjnej dodawane jest przetwarzanie.

W rezultacie w ramach drukowanych formularzy elementów katalogu „Pracownicy” pojawi się inny formularz - „Umowa o pracę (Alpha LLC)”, który wcześniej nie istniał. A o jego wyglądzie i wypełnieniu danymi programista decyduje w pliku „.epf”.

Ta możliwość dodawania niezbędnych drukowanych formularzy do dokumentów i podręczników jest również bardzo często pożądana i moim zdaniem jest dość wygodną funkcjonalnością programów na platformie 1C Enterprise.

Dodatkowe raporty zewnętrzne

W takim przypadku możesz się rozwijać raport zewnętrzny. Jest to plik w formacie „.erf”. To właśnie ten plik określi wygląd raportu, jakich danych konfiguracyjnych będzie używał i jakich poprosi od użytkownika (na przykład okres, wybór przez pracownika lub przez dział). Plik jest tworzony w konfiguratorze 1C w języku programowania 1C.

Raport zewnętrzny można zapisać w ramach konfiguracji korzystając z podręcznika „Dodatkowe raporty zewnętrzne” (punkt menu „Narzędzia” -> „Dodatkowe raporty i przetwarzanie”). Nie są one powiązane z konkretnym dokumentem lub podręcznikiem; ta informacja nie jest wymagana.

W przypadku tej opcji przechowywania raport jest uruchamiany z tego samego katalogu (po dwukrotnym kliknięciu).

Raport zewnętrzny możesz także uruchomić korzystając z pozycji menu „Plik” -> „Otwórz”. Z tej opcji można skorzystać, jeśli wygodniej jest przechowywać raporty zewnętrzne nie w ramach programu, ale po prostu w folderach komputera.

Dodatkowe przetwarzanie zewnętrzne

Zabiegi zewnętrzne mają w przybliżeniu takie samo znaczenie jak raporty zewnętrzne. Jednak w przeciwieństwie do raportów, które służą do przeglądania danych bazy danych w przyjaznym dla użytkownika formacie, przetwarzanie ma na celu zmianę, edycję lub przekształcanie danych bazy danych. Zakres problemów rozwiązywanych za pomocą przetwarzania zewnętrznego jest dość szeroki.

Na przykład, przetwarzanie w celu przesłania wyciągów płacowych. Pomimo obecności w ZUP standardowego przetwarzania (przeczytaj o tym), czasami może on nie być odpowiedni dla konkretnego banku i rozwijane jest zewnętrzne przetwarzanie, które konwertuje i pobiera informacje w wymaganym formacie.

Przyniosę ci kolejny przykład zupełnie prosty, ale dość popularny zabieg. Jeżeli w 1C ZUP nie prowadzisz w ciągu roku dokumentu „Przeniesienie podatku dochodowego od osób fizycznych do budżetu”, to przy generowaniu podatku dochodowego od 2 osób za rok pole „Przeniesione” dla każdego pracownika będzie wynosić zero, czyli zwykle niezgodne ze stanem faktycznym. Wpisywanie dokumentu „Przeniesienie podatku dochodowego od osób fizycznych do budżetu” za cały rok może być dość uciążliwe, biorąc pod uwagę specyfikę samego dokumentu. Możesz jednak wykonać przetwarzanie zewnętrzne, które w wygenerowanym 2-NDFL po prostu wypełni pole „Wymienione” dla każdego pracownika, w oparciu o wartości w polu „Obliczone”. Księgowym zazwyczaj bardzo podoba się ta opcja.

Przetwarzanie zewnętrzne ma dokładnie te same dwie opcje przechowywania i uruchamiania: albo użyj katalogu „Dodatkowe przetwarzanie zewnętrzne”(pozycja menu „Narzędzia” -> „Dodatkowe raporty i przetwarzanie”), lub pozycja menu głównego „Plik” -> „Otwórz”.

To wszystko na dziś!

Aby jako pierwszy dowiedzieć się o nowych publikacjach, subskrybuj aktualizacje mojego bloga:

Aby połączyć przetwarzanie zewnętrzne, raporty i formularze drukowane dla platformy 1C:Enterprise 8.2, opracowano nowy standard pracy w aplikacji zarządzanej (standard ze standardowego podsystemu bibliotek 8.2). Pojawiły się „chipy”, których wcześniej nie było, a mianowicie:

    Rozszerzono rodzaj przetwarzania: wypełnianie obiektu, tworzenie obiektów powiązanych. Teraz w dokumentach możesz dodać własne przyciski do wypełnienia całego dokumentu, a także własne przyciski do wprowadzania danych na bazie.

    Jedno przetwarzanie może zawierać listę kilku operacji (poleceń), tj. możesz wykonać jedną obróbkę, gdzie jednocześnie będzie kilka pozycji menu: wydruk i dowód dostawy, wydruk paragonu sprzedaży, wydruk karty gwarancyjnej. (Nota autora: wcześniej w starym standardzie, żeby zrobić takie rzeczy, trzeba było zrobić wszystko na raz (nawet jeśli nie było to konieczne) i nie trzeba było zamykać, ani rysować własnego formularza, który miał niezbędne przyciski do wybierania wymagana operacja)

    Można wprowadzać i wypełniać obiekty w oparciu o kilka obiektów jednocześnie, a nie tylko jeden

    Możesz ustawić harmonogram wykonywania poleceń serwera (na serwerze).

    Możesz ustawić tryb na „Bezpieczny” lub „Niebezpieczny”, tj. prowadzić przetwarzanie z uwzględnieniem praw ograniczonych lub je ignorować (jak przy pełnych uprawnieniach)

    Możesz ustawić tryb użytkowania: Nie używaj, debugowanie, używaj. „Nie używaj” - nie działa, „Debugowanie” - widoczne tylko dla administratorów, „Używaj w działaniu”.

    Można go używać w formularzach obiektowych i listowych

    Możesz powiązać przetwarzanie lub raport ze wszystkimi obiektami jednocześnie.

    Możesz skonfigurować szybki dostęp do niektórych poleceń przetwarzania zewnętrznego.

    Istnieje możliwość określenia, w jakich sekcjach interfejsu mają pojawiać się dodatkowe przetwarzanie i raporty.

Co więc można podłączyć do standardowych konfiguracji?

Z punktu widzenia platformy możesz połączyć:

  • przetwarzanie zewnętrzne (pliki z rozszerzeniem „epf”);
  • raporty zewnętrzne (pliki z rozszerzeniem „erf”).

Z punktu widzenia obszaru aplikacyjnego (konfiguracji) można połączyć przetwarzanie zewnętrzne i raporty za pomocą formularza*:

  • Dodatkowe przetwarzanie
    • Tylko dodatkowa obróbka. Istnieje możliwość dostosowania
  • Dodatkowy raport
    • Tylko dodatkowy raport
  • Wypełnianie obiektu
    • Własne przyciski do wypełniania obiektów (dokumentów), wcześniej były tylko przyciski do wypełniania części tabelarycznej.
  • Formularz do druku
    • Dodatkowy formularz do wydruku (dodano przycisk „Dodatkowe formularze do druku”)
  • Raport
    • Raport dołączony do obiektów (katalogów i dokumentów).
  • Tworzenie połączonych obiektów
    • Własne dane wejściowe na podstawie (do pozycji menu „Wprowadź na podstawie” dodano przycisk „Utwórz powiązane obiekty…”)

*na przykładzie redakcji „Zarządzanie małą firmą” wyd. 1,2"

Przyjrzyjmy się, jak to wszystko działa. Aby połączyć przetwarzanie zewnętrzne i raportowanie, istnieje standard opisujący interfejs interakcji z przetwarzaniem zewnętrznym i raportowaniem, istnieją ogólne wymagania dla wszystkich typów i istnieją specyficzne dla każdego rodzaju przetwarzania lub raportu.

Zacznijmy od ogólnych wymagań dotyczących wszystkich rodzajów przetwarzania i raportowania. Aby utworzyć wtyczkę zewnętrznego przetwarzania lub raportu, należy zadeklarować w module obiektowym funkcję eksportu InformationOnExternalProcessing(), która musi wypełnić strukturę opisującą zachowanie. Przykład tej funkcji:

Eksport informacji o funkcjiOnExternalProcessing().
RegistrationData = Nowa struktura;
Dane rejestracyjne.Insert("Nazwa", "Przykład wykorzystania przetwarzania zewnętrznego 8.2.");
RejestracjaData.Insert("Tryb awaryjny", Prawda);
RegistrationData.Insert("Wersja", "1.0");

//Dodatkowe przetwarzanie
//Dodatkowy raport
//Wypełnianie obiektu
//Raport
//Wydrukuj formularz
//Tworzenie powiązanych obiektów
RegistrationData.Insert("Widok", "Dodatkowe przetwarzanie");

Dane rejestracyjne.Insert("Informacja", "Przetwarzanie odbywa się zgodnie z nowym standardem podłączenia przetwarzania zewnętrznego 8.2. Przykład przetwarzania ""Hello Word"" ");

///////////// polecenia ////////////////////////
tzCommand = Nowa tabela wartości;
tzCommand.Columns.Add("Identyfikator");
tzCommand.Columns.Add("Widok");
tzCommand.Columns.Add("Modyfikator");
tzCommand.Columns.Add("Pokaż alert");
tzCommand.Columns.Add("Użycie");


stringCommands.Identifier = "1";
stringCommands.View = "polecenie ""Witaj, słowo"" (OpenForm)";

stringCommands.Use = "OpenForm";

CommandString = tzCommand.Add();
stringCommands.Identifier = "2";
stringCommands.View = "polecenie""Witaj Word""(CallClientMethod)";
stringCommands.ShowAlert = Prawda;
stringCommand.Use = "MetodaWywołaniaKlienta";

CommandString = tzCommand.Add();
stringCommands.Identifier = "3";
stringCommands.View = "polecenie""Witaj Word""(CallServerMethod)";
stringCommands.ShowAlert = Prawda;
stringCommand.Usage = "Metoda serwera wywołań";

RegistrationData.Insert("Polecenia", tzCommands);

////////////// cel (w jakich obiektach jest używany) ////////////////////////
//do drukowania formularzy, wypełniania, wprowadzania powiązanych obiektów
//ArrayAssignments = Nowa tablica;
//Tablica przypisań.Add("Dokument.*"); // wszystkie dokumenty są przypisane
//Array of Assignments.Add("Document.Advance Report");
//Array of Assignments.Add("Document.Zamówienie kupującego");
//Dane rejestracyjne.Insert("Miejsce docelowe", Tablica miejsc docelowych);

Zwróć dane rejestracyjne;

Funkcja końcowa

Zatem jak widać funkcja wypełnia strukturę Dane Rejestracyjne, która posiada następujące elementy (parametry):

    Nazwa – skrócona nazwa zabiegu

    Wersja - informacja o wersji przetwarzania

    Tryb awaryjny – odpowiada za to, czy przetwarzanie powinno odbywać się z uwzględnieniem praw użytkownika. Jeśli ustawione na False, przetwarzanie lub raportowanie będzie wykonywane bez uwzględnienia ograniczeń praw (tak jak w przypadku pełnych praw). Ta funkcja pojawiła się właśnie w wersji 8.2, gdzie podczas tworzenia przetwarzania zewnętrznego i raportów drugi parametr określa tryb.

    Typ – rodzaj przetwarzania lub raportu. Możliwe wartości wymieniłem na początku artykułu, a możliwe wartości do ustawienia w kodzie wskazane są w komentarzach

  • Polecenia – tabela wartości zawierająca listę użytych poleceń. Kolumny tabeli wartości:
    • Identyfikator – dowolny ciąg znaków (identyfikator polecenia)
    • Widok - opis polecenia
    • Modyfikator - ciąg znaków (używany w przypadku dodatkowych formularzy drukowanych)
    • Pokaż powiadomienie – okno powiadomienia pojawi się przed rozpoczęciem i po zakończeniu wykonywania (dla poleceń klienta i serwera bez formularza)
    • Użycie – tryb rozpoczęcia przetwarzania:
      • OpenForm – otworzy się formularz przetwarzania
      • CallClientMethod – wywołaj metodę eksportu klienta formularza
      • Call ServerMethod – wywołaj metodę eksportu z modułu przetwarzającego

W zależności od rodzaju przetwarzania lub raportu, a także od trybu uruchomienia polecenia „Użyj”, wywoływane są metody zdefiniowane w module formularza lub module obiektowym. Inna jest także lista przekazywanych parametrów. Załączam przykłady wywołań i wykorzystania wszelkich rodzajów przetwarzania.

Przejdź do górnego menu Praca->->.

Pojawi się formularz listy katalogów przetwarzania zewnętrznego. W górnym menu naciśnij przycisk Dodać.

Pojawi się formularz Dodaj nowy obiekt. Kliknij przycisk Otwórz i wybierz plik z żądanym przetwarzaniem. Po wybraniu żądanego pliku, jeśli to konieczne, określ nazwę przetwarzania (pole Nazwa). Następnie musisz kliknąć OK, aby zapisać wprowadzone zmiany.

Następnie okno tworzenia elementu katalogu zostanie zamknięte i nastąpi powrót do formularza listy, który zawiera już nowe przetwarzanie.

To wszystko! Proces dodawania przetwarzania do konfiguracji został zakończony. Aby później otworzyć to przetwarzanie, przejdź starą ścieżką: Praca->Dodatkowe raporty i przetwarzanie->Dodatkowe przetwarzanie zewnętrzne.

Dla BP 3.0, ZUP 3.0, UT 11, ERP 2.0.

Przetwarzanie zewnętrzne dla 1C:Enterprise 8 jest dostępne w kilku typach. W tej instrukcji pokażę jak dołączyć przetwarzanie do modyfikacji grupowej i przetwarzanie do wypełniania konkretnych obiektów.

W pierwszym przypadku dodamy przetwarzanie w celu wypełnienia katalogu nomenklatury z Excela.

Przejdźmy do odpowiedniej sekcji programu:


Konieczne jest ustawienie flagi umożliwiającej korzystanie z dodatkowych raportów i przetwarzania po kliknięciu hiperłącza do listy obiektów zewnętrznych:

Na liście kliknij Tworzyć:


W otwartym oknie dialogowym wybierz żądany plik do przetworzenia:


Karta nowego obiektu zewnętrznego w programie została wypełniona, pozostaje jedynie ją skonfigurować zakwaterowanie(sekcje programu, z których będzie dostępna obróbka):


Wybierz dowolną sekcję (lub kilka) do umieszczenia:


Napisz i zamknij zewnętrzną kartę obiektu:


Otwórzmy teraz przetwarzanie z interfejsu:


Lista jest pusta, kliknij Dostosuj listę:


Wybierz naszą obróbkę:


Jest już dostępny do wyboru. Aby otworzyć przetwarzanie, musisz kliknąć Wykonać:


Zobaczmy teraz, jak dodane jest przetwarzanie w celu wypełnienia (modyfikowania) określonych obiektów. Weźmy dla przykładu przetwarzanie zewnętrzne, które dołącza skany do wybranych elementów katalogów lub dokumentów systemowych. Początek dodawania takiego przetwarzania nie różni się od poprzedniej opcji. Różnica polega na tym, że w tym przypadku lokalizacja jest wypełniana automatycznie (a nie przez sekcję programu, a przez typy obiektów bazy danych):


W razie potrzeby listę miejsc docelowych można dostosować ( nie dodawaj dodatkowego miejsca docelowego, ale usuń niepotrzebne):


Aby zaakceptować zmianę należy również spisać zewnętrzną kartę obiektu.

Aby skorzystać z przetwarzania należy udać się do konkretnego obiektu bazy danych (z listy miejsc docelowych) i kliknąć Wpisać w panelu poleceń i wybierz polecenie:



Jeśli zauważysz błąd, zaznacz fragment tekstu i naciśnij Ctrl+Enter
UDZIAŁ: