Komputery Okna Internet

Informacje księgowe. Informacje księgowe 1s dokument arkusza kalkulacyjnego odczytaj Excel 95

Większość organizacji w swojej codziennej praktyce korzysta z oprogramowania Excel z pakietu biurowego Microsoft, aby śledzić różne transakcje księgowe w staromodny sposób. Dzieje się tak, gdy firma niedawno przeszła na system 1C, a sekcje raportowania nie zostały jeszcze odpowiednio debugowane lub dostawca woli przesłać cennik w formie tabeli podsumowującej w formacie .xls. Nic dziwnego, że często pojawia się potrzeba zastąpienia ręcznego wprowadzania pozycji systemem zautomatyzowanym. Znacząco skróci to czas wypełniania dokumentów nomenklaturowych i zmniejszy liczbę błędów, co należy wziąć pod uwagę w przypadku kilkudziesięciu, a nawet setek pozycji.


Problem ten można rozwiązać na różne sposoby: niektóre organizacje wolą powierzyć tę pracę swojemu działowi IT, inne zatrudniają programistów pracujących w firmie franczyzobiorcy, ale jest to dość kosztowne i zajmuje dużo czasu.


O wiele bardziej opłacalnym wyjściem z tej sytuacji byłoby zastosowanie odpowiedniej konfiguracji 1C, która całkowicie bezpłatnie przetworzy dane i stanie się uniwersalnym asystentem w integracji dokumentów 1C i arkuszy kalkulacyjnych Excel.


W tej sekcji pomożemy Ci dowiedzieć się, jak skonfigurować ładowanie danych z pliku .xls do jednej z konfiguracji oprogramowania firmy 1C opartej na „1C:Enterprise 8”


Każdy użytkownik profesjonalnej wersji 1C:Enterprise 8 ma już takie przetwarzanie! JEST na dysku!

Typowe przetwarzanie „Ładowanie danych z dokumentu tabelarycznego.epf”, znajdujące się w sekcji: „Wsparcie technologiczne” > „Wsparcie metodologiczne 1C: Enterprise 8” > „Uniwersalne raporty i przetwarzanie” >

D:1CIts\EXE\EXTREPS\UNIREPS82\UploadFromTablePobieranie dokumentu


Należy pamiętać, że od lutego 2010 r. Na dysku ITS to przetwarzanie konfiguracji na platformie 8.1 znajduje się w innej sekcji: „Wsparcie technologiczne” > „Wsparcie metodologiczne 1C:Enterprise 8” > „Platforma 1C:Enterprise 8.1” > „Uniwersalna raporty i przetwarzanie” > „Ładowanie danych z dokumentu arkusza kalkulacyjnego”.

D:1CIts\EXE\EXTREPS\UNIREPS81\UploadFromTablePobieranie dokumentu


Dostępne dane źródłowe:

  • Cennik w programie Excel „PriceOnlineKhimSnab.xls” - Microsoft Office Excel 97-2003 (.xls)
  • Typowa konfiguracja Enterprise Accounting Edition 2.0, wydanie 2.0.12.2, platforma 8.2 (8.2.10.77)
  • Konieczne jest załadowanie nazw produktów i cen do 1C z Excela


Z cennika należy pobrać księgę referencyjną pozycji do 1C: Księgowość 8.

Uruchamiamy program 1C. Aby rozpocząć przetwarzanie, wybierz punkt menu „Plik”> „Otwórz”.

W oknie, które zostanie otwarte, znajdziemy plik przetwarzania

Znajduje się na dysku ITS w katalogu \1CIts\EXE\EXTREPS\UNIREPS82\UploadFromTableDocument

Jeśli wcześniej skopiowałeś plik przetwarzania na swój komputer, możesz go wybrać.


Otworzy się okno


Należy pamiętać, że ładowanie danych będzie odbywać się dwuetapowo: Etap 1 - załadowanie nazw i ustawienie wartości szczegółów nowych elementów katalogu niezbędnych do rozpoczęcia (jednostka miary, stawka VAT, atrybut produktu/usługi). Etap 2 – ładowanie cen.

Ładowanie tytułów

Ustaw „Tryb pobierania” - Prześlij do katalogu „Widok katalogu” - Nomenklatura

W zakładce „Dokument tabeli”.

Kliknij przycisk ex1_b01.jpg „Otwórz plik”, w wyświetlonym oknie wyboru znajdujemy katalog, w którym mamy cennik w Excelu, z którego planujemy załadować dane do 1C.


Plik może początkowo nie być wyświetlany. Ustaw typ pliku na „Arkusz Excel (*.xls)”


Wybierz nasz plik



Wyświetlone zostaną szczegóły karty przedmiotu.

Konfigurowanie opcji ładowania tytułu

Chcemy zwrócić uwagę na aspekt rozpoznawania jednostek strukturalnych podręczników nomenklatury w 1C: Program księgowy w wersji 8, ponieważ jednym z kluczowych punktów w identyfikacji tych elementów jest nazwa. Jeśli stanowiska w bazie informacyjnej nie były początkowo obsadzone, konieczne będzie śledzenie zduplikowanych stanowisk i, jeśli takie istnieją, usunięcie ich.


Zduplikowanych nazw trudno uniknąć, szczególnie trudno jest to zrobić pracownikom, którzy będą korzystać z tego typu ładowania nie w celu jednorazowego wpisania danych na listę, ale w celu systematycznego, automatycznego ładowania informacji.


Sprawę komplikuje fakt, że pracownik ma do czynienia z różnymi skrótami i innymi skrótami, podwójną pisownią nazwiska i używaniem różnych znaków interpunkcyjnych.


Przy wielokrotnym użyciu i dużej ilości pobranych informacji zalecamy użycie innego oprogramowania z serii „1C: Enterprise 8”, na przykład „1C: Trade Management 8”, „1C: Small Firm Management 8” lub „1C: Integrated Automation 8”, które posiadają parametr „Artykuł”, który zapewnia niezawodne rozpoznawanie danych ładowanych do katalogów nomenklaturowych i eliminuje możliwość powielania nazw.


Linia „Podstawowa jednostka miary” - w kolumnie „Tryb ładowania” wybierz „Zainstaluj”, w kolumnie „Wartość domyślna” wybierz jednostkę miary (w naszym przypadku - szt.)


Wiersz „Stawka VAT” - w naszym przypadku dla wszystkich pobranych elementów ustawiamy podatek VAT na 18%, w tym celu w kolumnie „Tryb ładowania” wybieramy „Ustaw”, w kolumnie „Wartość domyślna” wybieramy „18%”.


Jeżeli towar ma inną stawkę podatku VAT, co jest wskazane w osobnej kolumnie pobranego cennika, to w kolumnie „Tryb ładowania” ustaw „Wyszukiwanie” i numer odpowiedniej kolumny cennika w „Nr kolumny dokument arkusza kalkulacyjnego”.

Wiersz „Usługa” - w kolumnie „Tryb ładowania” wybierz „Zainstaluj”, w kolumnie „Wartość domyślna” wybierz „Nie” (w naszym przypadku wszystkie pozycje to produkty).


Ustaliliśmy minimalne wartości dla nowych pozycji w katalogu nomenklatury, co umożliwi rozpoczęcie pracy. Aby zamknąć miesiąc, rozłożyć koszty, wygenerować raporty księgowe i podatkowe, należy ustawić wartości „Grupa pozycji” i „Pozycja kosztowa”, w przypadku towarów importowanych ustawić „Kraj pochodzenia” i „Numer deklaracji celnej” , ale można to zrobić później, korzystając z przetwarzania grupowego.


Jeśli jesteś gotowy, aby teraz ustawić wartości tych szczegółów, wskaż. Kliknij „Pobierz” w prawym dolnym rogu, a gdy zostaniesz o to poproszony, kliknij „Tak”.



Sprawdzamy obecność nowych elementów w odpowiedniej grupie skoroszytu pozycji

Otwórz kartę produktu i sprawdź, czy dane zostały poprawnie wczytane


Jeżeli wszystko się zgadza, można przejść do drugiego etapu - wczytania cen z cennika do Excela.


Jeśli planujesz w przyszłości korzystać z tej procedury ładowania danych przy tych samych ustawieniach parametrów ładowania, zalecamy zapisanie bieżących ustawień. W tym celu należy kliknąć przycisk ex1_b03.jpg „Zapisz ustawienia” i wyraźnie nazwać aktualne ustawienie, np. „Wczytanie nazw produktów z cennika Excel”.


Następnym razem możesz wczytać zapisane ustawienia, klikając przycisk „Przywróć ustawienia” i wybierając żądane z listy.

Ładuję ceny

W „Księgowości korporacyjnej” Rev. 2.0 ceny ustalane są za pomocą dokumentu „Ustawianie cen towarów”.

Ustaw „Tryb ładowania” - „Załaduj sekcję tabeli”.

W polu „Link” wybierz „Ustawianie cen artykułów”.


Tutaj możemy wybrać istniejący dokument, do którego chcemy dodać nowe elementy, lub utworzyć Nowy (zalecane), w dokumencie wskazujemy, jaki „Rodzaj ceny” załadujemy (w naszym przykładzie „Detal”).


Kliknij „OK” i na razie zapisz pusty dokument. Teraz wybierz ten nowy zapisany dokument z dziennika w linii „Link”. W polu „Sekcja tabelaryczna” wybierz „Produkty”

Teraz musisz przejść do zakładki „Dokument tabeli”.

Ponownie wybieramy w Excelu nasz cennik, z którego pobraliśmy pozycje i teraz pobieramy ceny (patrz punkt 5).

W 1C istnieją 2 sposoby pracy z plikami MS Excel: poprzez obiekt COM i wbudowane narzędzia 1C wykorzystujące obiekt dokumentu arkusza kalkulacyjnego. Przyjrzyjmy się obu tym metodom bardziej szczegółowo.

1. Pracuj nad obiektem COM.

Ta metoda wymaga zainstalowanego programu MS Excel, a jeśli pracujesz z plikiem na serwerze, to MS Excel musi być zainstalowany na serwerze, jeśli na kliencie, to MS Excel jest również wymagany po stronie klienta.

Przykład (możesz zobaczyć go w formie tekstowej na końcu artykułu):

Należy zauważyć, że wszystkie obiekty, metody i właściwości udostępniane przez obiekt COM „Excel.Application” są obiektami, metodami i właściwościami VBA, języka programowania MS Office.

Notatka:

Czasami trzeba pracować z istniejącym szablonem. Następnie musimy gdzieś przechowywać ten szablon, aby wszyscy potrzebni użytkownicy mieli do niego dostęp. Istnieje jednak prostsze rozwiązanie, zapisz szablon jako układ binarny.

2. Przejrzyj dokument tabelaryczny 1C.

Dokument arkusza kalkulacyjnego 1C obsługuje format MS Excel do nagrywania począwszy od platformy 8, ale do otwierania tylko począwszy od platformy 8.3.6. Co więcej, po otwarciu wszystkie arkusze ładowane są do jednego dokumentu arkusza kalkulacyjnego. Od wersji 8.3.10 podczas ładowania różne arkusze są ładowane jako różne obszary.

Przykładowy wpis jest bardzo prosty i nie wymaga szczególnej uwagi:

Jednak tutaj mamy problem. Podczas nagrywania z 1C w skoroszycie programu Excel wyświetlanie nazw arkuszy jest domyślnie wyłączone.

Problem ten można rozwiązać na 2 sposoby, 1 - w samej książce włącz wyświetlanie arkuszy w ustawieniach (nie wszyscy użytkownicy się na to zgodzą), 2 - zrób to poprzez obiekt COM (znowu potrzebujemy zainstalowanego MS Excel ).

Po tym drobnym uzupełnieniu etykiety arkuszy będą widoczne w pliku MS Excel.

Odczyt MS Excel nie jest takim łatwym zadaniem, ponieważ metoda odczytu jest dostępna tylko na serwerze lub grubym kliencie. W tym celu musimy przesłać plik MS Excel na serwer.

&Na kliencie

Procedura UtwórzDokument()

Wyjątek

Zakończ próbę;

Książka = Excel.WorkBooks.Add(); //Utwórz nowy skoroszyt MS Excel

Arkusz = Książka.Arkusze robocze.Dodaj(); //Dodaj arkusz

Sheet.Name = "Przykład z 1C"; //Ustaw nazwę arkusza

Sheet.Cells(1,1).Value = "Utwórzmy formułę";!}

Arkusz.Komórki(2,1).Wartość = 1;

Arkusz.Komórki(2,2).Wartość = 2;

Arkusz.Cells(2,3).Formuła = "=A2+B2";

Arkusz.Cells(3,1).Value = CurrentDate();

Book.SaveAs("C:\1\Test.xlsx");

Książka.Zamknij();

Koniec procedury

&Na serwerze

Funkcja GetLayoutServer()

Zwróć FormAttributesValue("Obiekt").GetLayout("TemplateForUpload"); //W ten sposób otrzymujemy układ przetwarzania zewnętrznego;

Funkcja końcowa

&Na kliencie

Procedura Praca()

Excel = Nowy obiekt COM("Excel.Application");

Wyjątek

Report("Próba połączenia komponentu Excel nie powiodła się. Być może na tym komputerze nie można zainstalować programu Excel!");

Zakończ próbę;

Układ = GetLayoutServer();

Układ.Write(NazwaPliku Tymczasowego);

Masz pytanie lub potrzebujesz pomocy konsultanta?

Książka = Excel.WorkBooks.Open(TemporaryFileName);

SheetTemplate = Book.WorkSheets(1);

SheetTemplate.Cells(6,1).Value = "Data:";!}

SheetTemplate.Cells(6,2).Value = CurrentDate();

SheetTemplate.NumberFormat = "dd/mm/rr;@"; // Podaj format daty, format ten uzyskano rejestrując makro w MS Excel

SheetTemplate.Columns("B:B").EntireColumn.AutoFit; // Rozciągnij kolumnę tak, aby data była dokładnie dopasowana

Książka.SaveAs(NazwaPliku);

Książka.Zamknij();

Koniec procedury

&Na kliencie

Koniec procedury

&Na kliencie

Procedura WriteTabularDocument()

TabularDocument = Nowy Dokument Tabularny();

TabularDocument.Area("R1C1").Text = "Przykładowy zapis w MS Excel z 1C";

TabularDocument.Write("C:\1\Test2.xls",TabularDocumentFileType.XLSX);

Excel = Nowy obiekt COM("Excel.Application");

Excel.WorkBooks.Open("C:\1\Test2.xls");

Excel.Widoczny = 0;

Excel.ActiveWindow.DisplayWorkbookTabs = 1;

Excel.ActiveWindow.TabRatio = 0,6;

Excel.ActiveWorkbook.Save();

Excel.Aplikacja.Zakończ()

Koniec procedury

BinaryData = Nowe BinaryData("C:\1\test2.xlsx");

Address=PlaceInTemporaryStorage(BinaryData,ThisForm.UniqueIdentifier) ​​​​;

TabularDocument = UploadOnServer(Adres);

Dokument tabelaryczny.Show();

Koniec procedury

&Na serwerze

Funkcja UploadOnServer (adres)

TemporaryFileName = GetTemporaryFileName("xlsx");

FileData = GetFromTemporaryStorage(Adres);

FileData.Write(NazwaPliku Tymczasowego);

TabularDocument = Nowy Dokument Tabularny();

zwróć dokument tabelaryczny;

Ta metoda jest prosta. Jej istotą jest przedmiot Dokument tabelaryczny ma metody:

  • Zanotować (< ИмяФайла>, < ТипФайлаТаблицы >) wgrać dane do pliku;
  • Czytać (< ИмяФайла>, < СпособЧтенияЗначений >) aby załadować dane z pliku.

Uwaga!

Metoda Write() jest dostępna zarówno na kliencie, jak i na serwerze. Metoda Read() jest dostępna tylko po stronie serwera. Trzeba o tym pamiętać
podczas planowania interakcji klient-serwer.

Spójrzmy na przykład zapisywania dokumentu arkusza kalkulacyjnego do pliku. Konieczne jest utworzenie i wypełnienie obiektu TabularDocument w dowolny sposób oraz rozładunek do pliku odbywa się za pomocą tylko jednej linii:

TabDoc . Write(FilePath, TabularDocumentFileType. XLSX);

Tutaj TabDoc- wygenerowany dokument arkusza kalkulacyjnego, Ścieżka do pliku— nazwa pliku do przesłania, TabularnyDocumentFileType.XLSX— format utworzonego pliku. Obsługiwane są następujące formaty programu Excel:

  • XLS95 – format Excela 95;
  • XLS97 – format Excela 97;
  • XLSX to format programu Excel 2007.

TabDoc = Nowy dokument tabelaryczny;
TabDoc . Read(PathToFile, metoda ReadingTabularDocumentValues.Value);

Tutaj Ścieżka do pliku— ścieżka do pobranego pliku Excel. Metoda odczytu wartości dokumentu tabelarycznego.Wartość określa, jak należy interpretować dane odczytane z dokumentu źródłowego. Dostępne opcje:

  • Oznaczający;
  • Tekst.

Wymiana poprzez OLE

Wymiana za pośrednictwem technologii automatyzacji OLE jest prawdopodobnie najczęstszą opcją programowej pracy z plikami Excel. Pozwala na wykorzystanie wszystkich funkcjonalności jakie daje Excel, ale jest wolniejsza w porównaniu do innych metod. Do wymiany poprzez OLE wymagana jest instalacja MS Excel:

  • Na komputerze użytkownika końcowego, jeśli wymiana następuje po stronie klienta;
  • Na komputerze serwera 1C:Enterprise, jeśli wymiana następuje po stronie serwera.

Przykład rozładunek:

// Utwórz obiekt COM
Excel = Nowy obiekt COM("Excel.Application");
// Wyłącz ostrzeżenia i pytania
Przewyższać . DisplayAlerts = False;
// Utwórz nową książkę
Książka = Excel. Zeszyty ćwiczeń. Dodać();
// Pozycja na pierwszym arkuszu
Arkusz = Książka. Arkusze ćwiczeń(1);

// Zapisz wartość do komórki
Arkusz . Komórki (NumerWiersza,NumerKolumny). Wartość = Wartość Komórki;

// Zapisz plik
Książka . Zapisz jako (nazwa pliku);


Przewyższać . Zrezygnować();
Excel = 0;

Przykłady czytanie:

// -- OPCJA 1 --

// Utwórz obiekt COM
Excel = Nowy obiekt COM("Excel.Application");
// Otwórz książkę
Książka = Excel. Zeszyty ćwiczeń. Otwarty( Ścieżka do pliku);

Arkusz = Książka. Arkusze ćwiczeń(1);

//Zamykam książkę
Książka . Zamknij(0);

// Zamknij Excel i zwolnij pamięć
Przewyższać . Zrezygnować();
Excel = 0;

// -- OPCJA 2 --

// Otwórz książkę
Książka = GetCOMObject( Ścieżka do pliku);
// Pozycjonowanie na żądanym arkuszu
Arkusz = Książka. Arkusze ćwiczeń(1);

// Odczytaj wartość komórki. Zwykle tutaj znajduje się pętla przeglądania komórek
Wartośćkomórki = Arkusz. Komórki (NumerWiersza,NumerKolumny). Wartość;

//Zamykam książkę
Książka . Aplikacja. Qui T();

Dla objazd W przypadku wszystkich wypełnionych wierszy arkusza programu Excel można zastosować następujące techniki:

// -- OPCJA 1 --
Liczba rzędów = arkusz. Komórki(1 , 1 ). Komórki specjalne(11). Wiersz;
Dla RowNumber = 1 według liczby cykli wierszy
Wartośćkomórki = Arkusz. Komórki (NumerWiersza,NumerKolumny). Wartość;
Koniec cyklu;

// -- OPCJA 2 --
Numer wiersza = 0;
Podczas gdy Cykl Prawdy
NumerWiersza =NumerWiersza + 1 ;
Wartośćkomórki = Arkusz. Komórki (NumerWiersza,NumerKolumny). Wartość;
Jeśli NIE wypełniono wartością (CellValue) Następnie
Anulować;
koniecJeśli;
Koniec cyklu;

Zamiast po kolei przechodzić przez wszystkie wiersze arkusza, możesz to zrobić zrzuć wszystkie dane do tablicy i pracować z nim. To podejście będzie szybsze przy czytaniu dużej ilości danych:

RazemKolumny = Arkusz. Komórki(1 , 1 ). Komórki specjalne(11). Kolumna;
RazemWiersze = Liść. Komórki(1 , 1 ). Komórki specjalne(11). Wiersz;

Region = Liść. Zakres (arkusz. Komórki (1, 1), Arkusz. Komórki (TotalRows,TotalColumns));
Dane = Region. Wartość. Rozładować();

Poniższa tabela przedstawia najpopularniejsze właściwości i metody pracy z Excelem poprzez OLE:

Działanie Kod Komentarz
Praca z aplikacją
Ustawianie widoczności okna aplikacji Przewyższać . Widoczny= Fałsz;
Ustawianie trybu wyjścia ostrzeżenia (wyświetlanie/nie wyświetlanie) Przewyższać . Wyświetlanie alertów= Fałsz;
Zamykanie aplikacji Przewyższać . Zrezygnować();
Praca z książką
Tworzenie nowej książki Książka = Excel. Zeszyty ćwiczeń. Dodać();
Otwieranie istniejącego skoroszytu Książka = Excel. Zeszyty ćwiczeń. Otwórz (nazwa pliku);
Ratowanie książki Książka . Zapisz jako (nazwa pliku);
Zamykanie książki Książka . Zamknij(0);
Praca z arkuszem
Ustawianie bieżącego arkusza Arkusz = Książka. Arkusze robocze (Numer arkusza);
Ustalenie nazwy Arkusz . Imię = Imię;
Konfigurowanie ochrony Arkusz . Chronić();
Usuwanie ochrony Arkusz . Wyłącz ochronę();
Ustawianie orientacji strony Arkusz . Ustawienia strony. Orientacja = 2; 1 - portret, 2 - krajobraz
Ustawianie lewej krawędzi Arkusz . Ustawienia strony. LewyMargines = Excel. Centymetry na punkty (centymetry);
Ustawianie górnego limitu Arkusz . Ustawienia strony. GórnyMargines = Excel. Centymetry na punkty (centymetry);
Ustawianie właściwej granicy Arkusz . Ustawienia strony. RightMargin = Excel. Centymetry na punkty (centymetry);
Ustawianie dolnego limitu Arkusz . Ustawienia strony. BottomMargin = Excel. Centymetry na punkty (centymetry);
Praca z wierszami, kolumnami i komórkami
Ustawianie szerokości kolumny Arkusz . Kolumny(NumerKolumny). Szerokość kolumny = szerokość;
Usuń linię Arkusz . Wiersze(Numerwiersza). Usuwać();
Usunięcie kolumny Arkusz . Kolumny(NumerKolumny). Usuwać();
Usuń komórkę Arkusz . Komórki (NumerWiersza,NumerKolumny). Usuwać();
Ustawianie wartości Arkusz . Komórki (NumerWiersza,NumerKolumny). Wartość = wartość;
Łączenie komórek Arkusz . Zakres (arkusz. Komórki (Numer wiersza, Numer kolumny), Arkusz. Komórki (Numer wiersza 1, Numer kolumny 1)). Łączyć();
Ustawianie czcionki Arkusz . Komórki (NumerWiersza,NumerKolumny). Czcionka. Nazwa = nazwa czcionki;
Ustawianie rozmiaru czcionki Arkusz . Komórki (NumerWiersza,NumerKolumny). Czcionka. Rozmiar = rozmiar czcionki;
Ustawianie pogrubionej czcionki Arkusz . Komórki (NumerWiersza,NumerKolumny). Czcionka. Pogrubiony = 1 ; 1 - pogrubiony, 0 - normalny
Ustawianie kursywy Arkusz . Komórki (NumerWiersza,NumerKolumny). Czcionka. italski = 1 ; 1 - kursywa, 0 - normalny
Ustawianie podkreślonej czcionki Arkusz . Komórki (NumerWiersza,NumerKolumny). Czcionka. Podkreślać = 2 ; 2 - podkreślone, 1 - nie

Aby dowiedzieć się, którą właściwość należy zmienić lub którą metodę wywołać, możesz użyć makra Przewyższać. Jeśli zarejestrujesz makro z wymaganymi działaniami, możesz następnie sprawdzić kod VBA zarejestrowanego makra.

Korzystanie z COMSafeArray

Podczas pobierania dużych ilości danych z 1C do Excela możesz użyć obiektu do przyspieszenia COMSafeArray. Zgodnie z definicją zaczerpniętą z asystenta składni, COMSafeArray jest opakowaniem obiektu na tablicy wielowymiarowej Bezpieczna tablica z KOM. Umożliwia tworzenie i używanie SafeArray do wymiany danych pomiędzy obiektami COM. Mówiąc najprościej, jest to tablica wartości, które można wykorzystać do wymiany pomiędzy aplikacjami wykorzystującymi technologię OLE.

// Utwórz COMSafeArray
ArrayCom = New COMSafeArray("VT_Variant" , TotalColumns, TotalRows);
// Wypełnij COMSafeArray
Dla Strona = 0 według TotalLines - 1 cykl
Dla Liczba = 0 Łączna liczba kolumn - 1 cykl
ArrayCom . SetValue(liczba, strona, wartość);
Koniec cyklu;
Koniec cyklu;
// Przypisanie obszaru arkusza Excel do wartości z COMSafeArray
Arkusz . Zakres (arkusz. Komórki (1, 1), Arkusz. Komórki (Suma wierszy, Suma kolumn)). Wartość = ArrayCom;

Wymiana poprzez ADO

Plik Excel wymieniany za pośrednictwem ADO jest bazą danych, do której można uzyskać dostęp za pomocą zapytań SQL. Instalacja programu MS Excel nie jest wymagana, należy jednak posiadać sterownik ODBC, za pomocą którego będzie zapewniony dostęp. Używany sterownik ODBC jest określany poprzez określenie parametrów połączenia z plikiem. Zazwyczaj wymagany sterownik jest już zainstalowany na komputerze.

Wymiana przez ADO jest zauważalnie szybsza niż wymiana przez OLE, ale przy wgrywaniu nie ma możliwości wykorzystania funkcjonalności Excela do projektowania komórek, układania stron, ustawiania formuł itp.

Przykład rozładunek:


Połączenie = Nowy obiekt COM("ADODB.Połączenie");


Mieszanina . Ciąg połączenia = "

|Źródło danych=" + NazwaPliku + ";
;
Mieszanina . Otwarty(); // Otwórz połączenie

// Utwórz obiekt COM dla polecenia
Polecenie = Nowy obiekt COM("ADODB.Polecenie");
Zespół

// Przypisywanie tekstu polecenia w celu utworzenia tabeli
Zespół . Tekst polecenia = „UTWÓRZ TABELĘ [Arkusz 1] (kolumna 1 znak (255), data kolumny 2, wartość całkowita kolumny 3, liczba zmiennoprzecinkowa kolumny 4)”;
Zespół . Wykonać(); // Wykonaj polecenie

// Przypisywanie tekstu polecenia w celu dodania wiersza tabeli
Zespół . Tekst polecenia = „WSTAW DO [Arkusza 1] (Kolumna 1, Kolumna 2, Kolumna 3, Kolumna 4) wartości („abvwhere”, „8/11/2017”, „12345”, „12345,6789”)”;
Polecenie.Wykonaj(); // Wykonaj polecenie

// Usuń polecenie i zamknij połączenie
Polecenie = Niezdefiniowane;
Mieszanina . Zamknąć();
Połączenie = Nieokreślone;

Aby utworzyć nowy arkusz i ukształtować jego strukturę, możesz użyć obiektów ADOX.Katalog I ADOX.Tabela. W tym przypadku kod będzie wyglądał następująco:

// Utwórz obiekt COM do pracy z książką
Książka = Nowy obiekt COM("ADOX.Catalog");
Książka . ActiveConnection = połączenie;

// Utwórz obiekt COM do pracy ze strukturą danych w arkuszu
Tabela = Nowy obiekt COM("ADOX.Table");
Tabela . Nazwa = "Arkusz1" ;
Tabela . Kolumny. Dołącz("Kolumna1", 202);
Tabela . Kolumny. Dołącz("Kolumna2", 7);
Tabela . Kolumny. Dołącz("Kolumna3", 5);
Tabela . Kolumny. Dołącz("Kolumna 4", 5);

// Utwórz w skoroszycie arkusz o opisanej strukturze
Książka . Stoły. Dołącz (tabela);
Tabela = Niezdefiniowana;
Książka = Niezdefiniowana;

W powyższym przykładzie w metodzie

Tabela . Kolumny. Dodać(„Kolumna 1”, 202);

drugi parametr określa typ kolumny. Parametr jest opcjonalny, oto niektóre wartości typów kolumn:

  • 5 - adDouble;
  • 6 - reklamaWaluta;
  • 7 - data_ad;
  • 11 - adBoolean;
  • 202 - adVarWChar;
  • 203 - adLongVarWChar.

Przykład czytanie:

// Utwórz obiekt COM dla połączenia
Połączenie = Nowy obiekt COM("ADODB.Połączenie");

// Ustaw ciąg połączenia
Mieszanina . Ciąg połączenia = "
|Dostawca=Microsoft.ACE.OLEDB.12.0;
|Źródło danych=" + NazwaPliku + ";
|Rozszerzone właściwości=""Excel 12.0 XML;HDR=TAK"";";
Mieszanina . Otwarty(); // Otwórz połączenie

// Utwórz obiekt COM, aby otrzymać wybór
Wybierz = Nowy obiekt COM("ADODB.Recordset");
Tekst żądania = „WYBIERZ * Z [Arkusz1$]”;

// Wykonaj żądanie
Próbka . Otwórz (tekst zapytania, połączenie);

// Pomiń przykładowy wynik
To jeszcze nie wybór. Pętla EOF().
Wartość kolumny 1 = wybór. Pola. Element („Kolumna 1”). Wartość ; // Dostęp według nazwy kolumny
Kolumna2Wartość = Wybór. Pola. Pozycja (0). Wartość; // Dostęp według indeksu kolumny
Próbka . Przesuń Dalej();
Koniec cyklu;

Próbka . Zamknąć();
Próbka = Niezdefiniowana;
Mieszanina . Zamknąć();
Połączenie = Niezdefiniowane;

W ciągu połączenia parametr HDR określa, jak będzie postrzegana pierwsza linia na arkuszu. Możliwe opcje:

  • TAK - pierwsza linia traktowana jest jako nazwa kolumny. Dostęp do wartości można uzyskać po nazwie i indeksie kolumny.
  • NIE - pierwsza linia traktowana jest jako dane. Dostęp do wartości można uzyskać tylko poprzez indeks kolumny.

Te przykłady obejmują tylko kilka obiektów ADO. Model obiektowy ADO składa się z następujących obiektów:

  • połączenie;
  • Komenda;
  • zestaw rekordów;
  • Nagrywać;
  • Pola;
  • Strumień;
  • Błędy;
  • parametry;
  • Nieruchomości.

Przesyłaj bez programowania

Aby zapisać dane z 1C do Excela, nie zawsze zaleca się uciekanie się do programowania. Jeśli w trybie Enterprise użytkownik może wyświetlić dane potrzebne do pobrania, wówczas można je zapisać w Excelu bez programowania.

Aby zapisać dokument arkusza kalkulacyjnego (na przykład wynik raportu), możesz wywołać polecenie Ratować Lub Zapisz jako… menu główne.

W oknie, które zostanie otwarte, musisz wybrać katalog, nazwę i format zapisanego pliku.

Aby zapisać dane z list dynamicznych (na przykład listy pozycji), należy:

  1. Wyprowadź dane do dokumentu arkusza kalkulacyjnego za pomocą polecenia Więcej ⇒ Lista...;
  2. Zapisz dokument arkusza kalkulacyjnego w wymaganym formacie.

Konfiguracja: 1c księgowość

Wersja konfiguracji: 3.0.44.177

Data publikacji: 20.01.2017

Program 1C: Księgowość oferuje teraz możliwość rutynowego przesyłania i pobierania danych z dokumentów arkuszy kalkulacyjnych Excel, bez korzystania z przetwarzania lub zmian konfiguracji przez osoby trzecie. Załadunek i rozładunek jest na tyle łatwy, że doświadczeni użytkownicy szybko pokochają ten wygodny mechanizm, a nowi szybko go opanują.

Pobierz z Excela 1C: Księgowość 8.3 wyd. 3.0

Na przykład mamy ten dokument arkusza kalkulacyjnego Excel do ładowania listy artykułów i cen (sprzedaż detaliczna i zakupy).

Przyjść do .

U góry kliknij Nazewnictwo i ceny - pobierz. W tym miejscu ukryte jest ładowanie i rozładowywanie dokumentów arkusza kalkulacyjnego.

Pobieranie obsługuje formaty xls (stary format Excel 97-2003) i xlsx (nowy format), a także formaty mxl i ods. Teraz wybieramy nasz plik z nomenklaturą i czekamy na jego załadowanie.

Dokument arkusza kalkulacyjnego został załadowany w takiej formie, w jakiej widzieliśmy go w Excelu, teraz przypiszemy kolumny i usuniemy niepotrzebne.

Kliknij proszę podać szczegóły i wybierz żądany element z listy.

Wybierz wiersz zawierający niepotrzebne wpisy, czyli nagłówek tabeli, i kliknij Usuń linię.

Teraz usuwamy kolumnę z ceną zakupu, zwróć na to uwagę przetwarzanie może wypełnić tylko 1 rodzaj ceny na raz!!! Następnie możesz wykonać tę operację ponownie i załadować drugi rodzaj ceny, dla pierwszego ładunku Detaliczny dla drugiego zakupu.

Wypełnij puste dane, Typ ceny, Ustaw ceny dla. Przyciski Wszystkie, Znaleziono, Nowe, Duplikaty znacznie ułatwią wyszukiwanie i pomogą porównać pozycje. Wypełnij i kliknij Pobierać po czym dane zostaną załadowane do 1C: Księgowość.

Na liście produktów pojawiły się nowe pozycje, wypełnione i z przypisanymi cenami. Jeśli chcesz załadować inny rodzaj ceny, wykonaj wszystkie kroki ponownie, ale wybierz kolumnę z inną ceną, sam 1C znajdzie już utworzone pozycje i nie będzie próbował ich powielać, ale po prostu doda nowy rodzaj ceny.

Jak widać, pobranie spowodowało utworzenie 2 dokumentów służących do ustalania cen towarów, ceny zakupu i ceny detalicznej. Różnica między tym leczeniem polega na tym Ładowanie z Excela do 1C: Księgowość 8.3, Faktem jest, że jest to standardowe przetwarzanie, które działa bezawaryjnie i uwzględnia wszystkie funkcje wypełniania dokumentu.

Przesyłanie do Excela z 1C: Księgowość 8.3 wyd. 3.0

Bardzo przydatną funkcją w wersji 3.0.44.177 i nowszych jest przesyłanie do programu Excel z wersji 1C: Księgowość 8.3; to przetwarzanie pomoże Ci stworzyć cennik firmy lub natychmiast przekazać listę towarów dostawcom lub nabywcom wraz z cenami.

Wszystko jest w katalogu Nomenklatura - Nazewnictwo i ceny - Rozładunek.

W punkcie Kolumny, wybierz kolumny, które chcesz zbudować w dokumencie Excel. Wybór służy do wybierania elementów według grup, właściwości, nazw... itd.

Aby wgrać do Excela dodamy nową kolumnę, a mianowicie stawkę VAT, nie wydaje się to bardzo potrzebne, ale ćwiczymy.

Jak załadować dokument arkusza kalkulacyjnego do programu księgowego 1C 8.3?

W 1C 8.3 można zbiorczo pobrać listę pozycji z dokumentu arkusza kalkulacyjnego, na przykład z pliku Excel.

Do ładowania używamy zewnętrznego przetwarzania LoadDataFromTabularDocument.epf dla zarządzanych formularzy (8.2 i 8.3). Jest uniwersalny i powinien nadawać się do dowolnej konfiguracji napisanej dla zarządzanej aplikacji.

Aby rozpocząć przetwarzanie zewnętrzne należy przejść do menu „Plik”, następnie „Otwórz” i wybrać to przetwarzanie z katalogu, w którym zostało zapisane:

Przetwarzanie Ładowanie danych z dokumentu arkusza kalkulacyjnego 1C 8.3 (formularze zarządzane)

Po otwarciu przetwarzania w 1C możesz rozpocząć z nim pracę. Przede wszystkim musimy zdecydować, gdzie i co pobierzemy:

Podajmy przykład w podręczniku „Nomenklatura”. Tworzymy plik z danymi w formacie xls.

Processing może także ładować pliki w następującym formacie:

  • dowolny inny format, z którego można kopiować dane

Tak wygląda plik Excel z danymi źródłowymi, który wrzucimy do skoroszytu „Nomenklatura”:

Nie spisaliśmy wszystkich pól w katalogu, ponieważ to wystarczy, aby zrozumieć zasadę ładowania. Dodatkowo te dane wystarczą, aby rozpocząć pracę na tych stanowiskach.

Pozycje te nie znajdują się obecnie w bazie danych informacyjnych 1C i teraz je tam prześlemy.

Kliknij ikonę „Otwórz” (oznaczoną na rysunku jako „Wybierz źródło”) i wybierz plik z danymi. Możesz zastosować proste kopiowanie informacji. Dane zostaną automatycznie załadowane do przetwarzania. Sprawdźmy teraz, czy poprawnie uzupełniliśmy nasze dane. W tym celu należy kliknąć przycisk „Kontrola napełniania”.

Jak widać, mamy kilka błędów! Wyeliminujemy to. Przejdź do zakładki „Ustawienia”:

Zanim poprawimy błędy, zwróćmy uwagę na jeden ważny szczegół. Program początkowo nie wie, w którym polu szukać elementu katalogu, jeśli już tam jest. Dlatego musi to wskazać. Na przykład wyszukujemy według kodu, ponieważ zazwyczaj jest on unikalny. W kolumnie „Pole wyszukiwania” w wierszu „Kod” umieść znacznik wyboru. Teraz, jeśli zostanie znaleziony rekord z takim kodem, zostanie on zastąpiony, w przeciwnym razie zostanie utworzony.

Ważny! Jeśli nie określisz pola wyszukiwania, mogą pojawić się zduplikowane elementy. Zwłaszcza po drugim pobraniu podobnego pliku!

Zobaczmy teraz, dlaczego „Jedność” przeklina na boisku. Faktem jest, że jednostki miary w 1C 8.3 są przechowywane w osobnym katalogu, a przetwarzanie domyślnie szuka tej jednostki według nazwy. Ale w rzeczywistości jednostka słowa jest zapisana w polu „Imię i nazwisko”.

Niestety przetwarzanie może wyszukiwać jedynie po „Nazwie” i „Kodzie” (dla programisty możliwości są szersze). Jeśli zwrócisz uwagę na powyższe zdjęcia, zobaczysz, że w kolumnie „Jednostka” znajduje się kod. Podczas przetwarzania należy wskazać, że wyszukiwanie powinno odbywać się według kodu. Kliknij dwukrotnie kolumnę „Warunek komunikacji” obok „Jednostki” i zmień ją na „Kod”.

Zobaczmy teraz, co mówią nam o „Usłudze” na liście błędów. Jeszcze jedna ważna uwaga. Kolumny w pliku muszą być ułożone ściśle w tej samej kolejności, co wiersze pól katalogu. A u nas „Typ elementu” znajduje się na samym dole, a w pliku za kolumną „Komentarz”.

Aby przesunąć linię „Typ elementu” w górę, u góry formularza znajdują się niebieskie strzałki. Za pomocą strzałki „W górę” podnieś żądaną linię i umieść ją pod „Komentarzem”.

Kliknij „Wczytaj dane” i tym razem wszystko przebiegnie bez błędów:

Na podstawie materiałów: programmist1s.ru