Jak nazywa się program Excel w 1c. Co jest lepsze - 1C czy Excel? Przesyłaj bez programowania

Istnieją różne sposoby otwierania pliku Excel w 1C i odwrotnie. Początkujący użytkownicy będą preferować prostsze operacje, zapisując dokument w innym formacie lub korzystając ze specjalnych programów. Warto jednak poświęcić trochę wysiłku i nauczyć się pracować z narzędziami programowymi, aby przeglądać i przetwarzać dane z jednego programu do drugiego. Te podstawowe umiejętności programowania pomogą Ci uniknąć rutynowych zadań w przyszłości.

Jak otwierać dokumenty Excel w 1C i odwrotnie

Edytor arkuszy kalkulacyjnych Microsoft Excel ma lepszą funkcjonalność niż oprogramowanie księgowe 1C. Dlatego użytkownicy 1C wolą wykonywać pewne operacje w edytorze arkuszy kalkulacyjnych, a następnie zwracać dane do programu księgowego. I nie jest to zaskakujące, ponieważ wcześniej księgowość wielu firm była prowadzona wyłącznie przy użyciu programów Microsoft. Jednak przy obecnym poziomie automatyzacji procesów biznesowych przedsiębiorstw nie można zrezygnować ze specjalistycznych programów. Aby nawiązać interakcję między różnymi aplikacjami, istnieją następujące proste sposoby:

    Jeśli masz do czynienia z plikami oprogramowania, które nie są zainstalowane na Twoim obecnym komputerze, najłatwiej jest użyć specjalnej aplikacji do konwersji tabel Excela do formatu 1C i odwrotnie. Można go znaleźć na stronie internetowej produktu 1C.

    Jeśli na twoim komputerze jest zarówno 1C, jak i Excel, możesz ręcznie otworzyć plik w jego „natywnej” aplikacji, a następnie zapisać go w formacie innego programu. Ta opcja jest zwykle dostępna podczas zapisywania formularza lub układu do wydrukowania.

    Użytkownicy 1C 7.7 mogą dokonać aktualizacji do wersji 1C 8, która ma ulepszony edytor tabel.

Jak 1C i Excel mogą programowo współdziałać

Interakcję między 1C a Excelem można przeprowadzić na poziomie programu przy użyciu technologii OLE Automation opracowanej przez Microsoft. Umożliwia dostęp do obiektów COM bezpośrednio z interpreterów skryptów różnych programów. Mówiąc najprościej, OLE pozwala przenieść część pracy z jednego programu do drugiego, a następnie przywrócić ją do oryginalnej aplikacji. Właśnie tego księgowi potrzebują od edytora arkuszy kalkulacyjnych Microsoftu.

Nie musisz być programistą, aby korzystać z narzędzi OLE. Choć pierwszej znajomości linii kodu będą towarzyszyć błędy, sprawdzanie pomoże je zidentyfikować, a zdobyte doświadczenie pomoże ich uniknąć w przyszłości. Poniżej znajdują się najpopularniejsze polecenia (nazywane są listami) służące do pracy z danymi Excel w programach księgowych i odwrotnie.

Jak programowo otworzyć plik Excel w 1C

Jeśli więc na komputerze, pomiędzy którym chcesz wymieniać dane, są zainstalowane oba programy, możesz programowo zorganizować interakcję. Aby to zrobić, musisz uruchomić obie aplikacje, a następnie użyć OLE, aby ustanowić dostęp z 1C do Excela:

  • Wyjątek

    Report(ErrorDescription() + „Na tym komputerze nie jest zainstalowany program Excel!”);

  • Koniec próby.

Dostęp do edytora tabel jest zainstalowany, teraz za pomocą następujących poleceń musisz uzyskać dostęp do:

    konkretny dokument:

    • Książka = Excel.WorkBooks.Open(FilePath)

    • Arkusz = Książka.WorkSheets(NumerArkusza);

  • w tym z określonym numerem arkusza:

    w tym z określoną nazwą arkusza:

    • Arkusz = Książka.WorkSheets(NazwaArkusza);

    • Wartość = Arkusz.Komórki(Numerwiersza,NumerKolumny).Wartość;

Aby odczytać dane z pierwszej strony pliku, użyj następujących zestawień:

    Excel = CreateObject("Excel.Application");

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

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

    TotalColumns = Arkusz.Cells(1,1).SpecialCells(11).Kolumna;

    TotalRows = Arkusz.Komórki(1,1).SpecialCells(11).Row;

    Dla wiersza = 1 według pętli TotalRows

    • Dla kolumny = 1 według cyklu TotalColumns

      Wartość = Abbr(Arkusz.Komórki(Wiersz,Kolumna).Wartość);

      Koniec cyklu;

    Koniec cyklu;

Pamiętaj, że ścieżka do pliku musi być podana w całości. Podczas zapisywania nazwy dokumentu nie można zawierać znaków takich jak \, /, :, *, ?, ", >,< и |.

Jak programowo otworzyć plik 1C w programie Excel

Aby zapisać dane w programie Excel należy:

    lub otwórz istniejący dokument:

    • Book = Excel.WorkBooks.Open(Path to File) - analogicznie do odczytu pliku Excel z 1C;

    lub dodaj nowy:

    • Skoroszyt = Excel.WorkBooks.Add();

    Możesz utworzyć nowy arkusz w nowym dokumencie:

    • Arkusz = Książka.Arkusze.Dodaj();

    i dodaj nową wartość do komórki:

    • Sheet.Cells(RowNumber, ColumnNumber).Value = Wartość; (sposoby zapisywania wartości za pomocą OLE są szczegółowo opisane w Internecie).

  • Book.SaveAs(FilePath);

    Wyjątek

    Report(ErrorDescription()+"Plik nie został zapisany!");

    Koniec próby.

Po zakończeniu pracy z edytorem arkuszy kalkulacyjnych zakończ pracę za pomocą specjalnego polecenia (Excel.Application.Quit();). Ta metoda pomoże zaoszczędzić zasoby komputera podczas dalszej pracy.

Niebezpieczeństwa podczas wymiany danych między 1C a Excelem

1C i Excel zostały opracowane przez różne firmy i wykorzystują różne sposoby przetwarzania danych. Dlatego przenosząc tabele z jednego programu do drugiego, pamiętaj o następujących pułapkach:

    Różne separatory w liczbach ułamkowych. Microsoft oddziela liczby dziesiętne za pomocą przecinka. Dlatego przenosząc tabele z programu księgowego, nie zdziw się obfitością dat i innym zamieszaniem. Tyle, że program księgowy może zastosować kropkę w zapisie ułamków zwykłych, co edytor arkuszy kalkulacyjnych Microsoftu zinterpretuje jako separator daty, a 15,5 zamieni się na 15 maja. Aby przetworzyć dane księgowe w edytorze arkuszy kalkulacyjnych, separator należy zastąpić przecinkiem.

    Podczas przesyłania danych z Excela do 1C stałe Excela, których nie ma w programie księgowym, mogą być wyświetlane niepoprawnie. Aby je rozszyfrować, należy przejść do Pomocy edytora arkuszy kalkulacyjnych lub do trybu debugowania i sprawdzić wyrażenie numeryczne różnych stałych.

Jeśli potrzebujesz wymienić dużą ilość danych lub nie możesz pozbyć się błędów, zwróć się o pomoc do specjalistów firmy Setby. Pomożemy Ci rozwiązać Twoje problemy na poziomie programu i zrozumieć polecenia niezbędne w Twojej pracy.

Dość często komunikując się z potencjalnymi klientami, słyszę, że funkcjonalność tabeli z pakietu biurowego jest dla nich wystarczająca i nie widzą sensu w programach 1C. Dzieje się tak dlatego, że niektórym nadal kojarzy się to rozwiązanie wyłącznie z programami dla księgowych, co nie jest prawdą.

Excel to produkt uniwersalny i masowy, nie można z tym polemizować. Prawie każdy może korzystać z tego programu, w przeciwieństwie do rozwiązań 1C, które są skierowane do wąskich specjalistów. Korzystając z „zielonych” tabel, możesz swobodnie wdrażać niezbędną funkcjonalność, co będzie wygodne: oto model finansowy organizacji ze wszystkimi wzajemnymi rozliczeniami, rachunkowością zarządczą, nawet regulowaną, duży wybór wizualizacji danych, możliwość samodzielnego rozszerzaj możliwości programu za pomocą różnych dodatków - wszystko w Twoich rękach, wszystko od zera...

Dobrze, jeśli dopiero zaczynasz działalność, stopniowo uwzględniając niezbędne dane w tabeli dotyczące relacji z klientami, dostawcami, organami regulacyjnymi, budując własną dowolną strukturę, ale co dalej, gdy baza danych stanie się obszerna, a personel liczby w dziesiątkach? Nadal liczysz według własnych parametrów? Jestem zwolennikiem, aby nie mylić wygody z przyzwyczajeniem, które często przeszkadza w usystematyzowaniu biznesu, a w konsekwencji w jego optymalizacji.

Dla jasności wyobraźmy sobie, jakie potrzeby mogą wyniknąć w zakresie automatyzacji księgowości, na przykład dla handlu:

1. Analiza sprzedaży w danym okresie.

Kierownik działu sprzedaży może analizować dane sprzedażowe. Ważne jest, aby rozumiał, czy plan jest realizowany, jak skuteczne są jego strategie, aby w przypadku nieskuteczności mógł w porę skorygować pracę.

2. Księgowość magazynu.
Czy muszę wyjaśniać, że w przypadku sprzedaży ważne jest również zrozumienie dostępności towarów w magazynie, które towary można zarezerwować, a których nie ma w magazynie i co należy zamówić? Myślę, że tutaj wszystko jest jasne.

3. Prowadzenie bazy kontrahentów.
Nawet jeśli właściciel sprzedaje tylko to, co da się kupić tu i teraz, co jest typowe dla sektora B2C, to ma on nieco inną relację z bazą dostawców – kontrakty, pierwotne... Wyobraź sobie, jak wygodnie jest, gdy wszystko, co jest związane z dostawca jest automatycznie czy jest od razu wyświetlany w jednej bazie danych? Kierownik magazynu od razu widzi dostępność towaru w magazynie, inny pracownik odpowiedzialny za dokumenty monitoruje informację o jego dostępności, czy wszystkie zobowiązania wynikające ze stosunków umownych są wypełniane, kto jest winien i ile. A w przypadku rozbieżności można uzgodnić dane za pewien okres, generując wynik w mniej niż minutę.

4. Zysk organizacji.
Wygenerowanie raportu zysków nie będzie trudne, ponieważ wszystkie dane o wydatkach i dochodach znajdują się już w bazie danych. Pod warunkiem terminowego wprowadzenia informacji, co najmniej w wymaganym terminie. Podstawowym czynnikiem jest tu osobista odpowiedzialność użytkownika.

Jeśli nie masz wielu klientów i dostawców, Excel będzie Ci naprawdę odpowiadał, ponieważ jest mnóstwo czasu na zaprojektowanie własnych diagramów w tabeli i ich wypełnienie, a następnie rozmieszczenie dokumentów w różnych folderach na komputerze: umowy, dostawcy, klienci, klienci w sąsiedztwie, klienci w fazie rozwoju, klienci do usunięcia – niekończący się i fascynujący proces tworzenia folderów w folderze. A jeśli jest dużo informacji, czy wygodne jest śledzenie bazy danych? Oczywiście zawsze są wyjątki; czasem zdarzają się organizacje o dużych obrotach, których dane finansowe są przechowywane wyłącznie w Excelu. Ile czasu zajmuje im wymiana i łączenie danych pomiędzy działami? Odpowiem: dużo.

Nie wyobrażam sobie, jak szybko znaleźć to, czego potrzebujesz w dużej liczbie dokumentów Excela zorganizowanych w dowolny system. Np. przy dostarczaniu dokumentów na potrzeby urzędu skarbowego. W jaki sposób księgowy będzie przedstawiał raporty organom regulacyjnym, gdy wszystkie informacje są rozproszone? Księgowość można oczywiście zlecić na zewnątrz i część właścicieli firm niestety może nie zwracać uwagi na to, jakie procesy może posiadać dany specjalista, byle tylko równoważył salda. Ale nawet jeśli tak, to jak zorganizowany jest proces wymiany dokumentów? Jak szybko pracownik zewnętrzny zrozumie zaimprowizowaną strukturę informacji?

Nie mogę powiedzieć tego samego o 1C, ponieważ wszystkie zawarte tam informacje są uporządkowane i powiązane:

    Jedna baza danych zarówno dla pracowników zdalnych, jak i etatowych, w której możesz pracować ze wszystkimi standardowymi i niestandardowymi dokumentami;
    Raportowanie do organów regulacyjnych generowane jest na podstawie danych, które są już odzwierciedlone w programie, nie ma potrzeby otwierania wielu plików, łączenia kilku wartości w jedną tabelę, aby uzyskać ostateczne wyniki.
„1C” w dobrym tego słowa znaczeniu to system wielozadaniowy, nastawiony zarówno na typowe zadania księgowe, jak i na automatyzację wszystkich procesów organizacyjnych, w zależności od obszaru działalności. Głównym słowem jest tutaj system. Nikt Ci nie przeszkadza w organizacji systemu biznesowego w Excelu, ale po co wymyślać koło na nowo, skoro istnieją rozwiązania, które pokrywają niemal wszystkie potrzeby optymalizacji czasu i kosztów finansowych, pomagając usystematyzować Twoją pracę?

W obronie Excela

Pewnie wydawało Ci się, że jestem przeciwnikiem konstruowania danych w „zielonych” tabelach. Zupełnie nie. W rzeczywistości sam często wykonuję pewne interesy w Excelu: jeśli potrzebuję dowolnych obliczeń, jeśli muszę segmentować dane według klienta, przeprowadzając analizy w oparciu o parametry, których nie ma w 1C - tak, to się zdarza - idę do „ Excel”. Mówiąc najprościej, w tabelach wykonuję obliczenia i niestandardowe analizy, ale potem i tak wszystko systematyzuję w 1C.

A następnie, aby wyświetlić pobrane pliki z 1C, nadal będziesz potrzebować Excela, ponieważ dane w 1C są przechowywane w arkuszach kalkulacyjnych. Czy masz wrażenie, że to błędne koło? Powiem inaczej: „1C” i „Excel” idą obok siebie jak dwaj partnerzy, ale każdy z nich ma swój własny cel, dobrze się uzupełniają, ale nie zastępują.

Jeśli chcesz usystematyzować swoje sprawy, biorąc pod uwagę system prawny naszego państwa, biorąc pod uwagę specyfikę i kierunek działalności, szczególnie jeśli chodzi o duże ilości informacji, potrzebujesz 1C. Jeśli potrzebujesz dowolnych obliczeń, zbudowania strategii od podstaw, wizualizacji niestandardowych danych analitycznych, to Excel jest do Twojej dyspozycji. Ale znacznie wygodniej jest pracować z tymi rozwiązaniami jednocześnie.


Jaki jest efekt końcowy – „1C” czy „Excel”?

Na samym początku, jeśli pytanie dotyczy finansów na automatyzację, chociaż podstawowe programy 1C nie kosztują tak dużo pieniędzy, użyłbym Excela. Ogromnym plusem jest to, że dane z „zielonych” tabel można załadować do 1C bez strat. Ale w miarę skalowania radziłbym zwrócić uwagę na programy automatyzujące procesy biznesowe. Jest ich sporo i niekoniecznie musi to być 1C...

Przejście na „1C” można przeprowadzić, gdy zrozumiesz, że musisz zoptymalizować swoje zasoby, w tym zautomatyzować kwestie związane z relacjami z klientami i dostawcami oraz organami nadzorczymi. Ogólnie rzecz biorąc, dostosuj swoje procesy pracy, aby zwiększyć efektywność biznesową, gdy przetwarzanie informacji zajmie dużo czasu, a pliki Excel nie będą już w stanie poradzić sobie z ilością danych wejściowych.

Jednak nie każde „1C” może być dla Ciebie odpowiednie, musisz wziąć pod uwagę różne czynniki: specyfikę i zakres działalności, skalę, potrzebę codziennych zadań, rutynę, którą należy zminimalizować; Wszystko jest indywidualne. Prawda, jak już powiedziałem, leży gdzieś pomiędzy „1C” a „Excel” - uzupełniają się.

To chyba wszystko. Jeśli jednak masz jakieś pytania, skontaktuj się z nami, postaramy się Ci pomóc. Udane procesy biznesowe, koledzy!

Ta metoda jest prosta. Jego 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 programu Excel, jednak 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 odbywa się 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ść w komórce
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 przechodzić kolejno 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=" + Nazwa Pliku + ";
;
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:

// Tworzenie obiektu 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 dodania;
  • 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=" + Nazwa Pliku + ";
|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 = Nieokreślone;

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 wymagane 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.

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 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óć wartość 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(nazwa pliku);

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;

Podobało się? Polub nas na Facebooku