Mxl niż otworzyć. Mxl niż otworzyć okno dialogowe zapisywania plików 1s 8.3
Czas płynie nieubłaganie do przodu, a platforma 1C 8 działa jeszcze szybciej niż tym razem.
Zarządzane formularze nazywane są teraz „interfejsem TAXI”, okna modalne są zabronione, a tryb korzystania z synchronicznych wywołań rozszerzeń i komponentów zewnętrznych całkowicie zatrzymał funkcjonalność większości tych rozszerzeń i komponentów zewnętrznych, a w dodatku połowy starych metod .
Ogólnie rzecz biorąc, chłopaki, sprawy wyglądają tak - wielu z was czytało artykuł wspaniałego P. Chistova na temat pracy z plikami w wersji 8.3
Jeśli jeszcze tego nie zrobiłeś, marsz! ()
Istota mechanizmu pracy z plikami w skrócie:
1) Na kliencie wybierz plik
2) Wrzucamy to do czarnej skrzynki
3) Zapisz zawartość czarnej skrzynki na serwerze
Problem w tym, że trzeba to zrobić szczególnie, w nowy sposób i z duszą.
Dlatego Twoje
Wybrany plik.Istnieje()
i inne pogańskie rzeczy nie będą tu działać.
Więc chodźmy!
Oto lista kodów, która umożliwia pobranie pliku z klienta
Opis alertu = Nowy opis alertu("ProcessFileSelection", ThisForm); OpenFileDialog = NewFileSelectDialog(FileSelectDialogMode.Open); FileOpenDialog.MultipleSelect = Fałsz; StartFilePlace(AlertDescription, FileOpenDialog, True, UniqueIdentifier);
Interesuje nas metoda” StartPlaceFiles", co tak naprawdę wywołuje okno wyboru pliku i umieszcza ten plik w magazynie tymczasowym. Nie ma sensu zawracać sobie głowy opisem magazynu tymczasowego, po prostu pamiętaj - to jest miejsce, w którym umieszczane są wszystkie wybrane przez nas pliki postać danych binarnych (czarna skrzynka).
&W procedurze klienta ProcessFileSelection(PlacedFiles, Dodatkowe parametry) Eksportuj, jeśli PlacedFiles = Niezdefiniowane Następnie wróć;
koniecJeśli; Dla każdego TransferredFile z PlacedFiles Cykl PathToFile = TransferredFile.Name;").
Record.FileName = ParseLine(PathToFile, "\"); Items.OpenFile.Header = Entry.FileName;", myślę, że nikt nie będzie się kłócił. Pobierz plik z magazynu tymczasowego i umieść go w atrybucie o typie " Items.OpenFile.Header = Entry.FileName;" można wykonać w następujący sposób:
NewValueStorage(GetFromTemporaryStorage(Adres));
Jedno już ustaliliśmy, teraz druga sprawa jak pobrać plik z tego magazynu wartości (który, przypomnę, znajduje się na serwerze) i zapisać go na dysku klienta?
Przede wszystkim musimy uzyskać link nawigacyjny do atrybutu z typem „ Items.OpenFile.Header = Entry.FileName;", gdzie umieszczamy plik w postaci danych binarnych.
Bądź ostrożny! Ten link nawigacyjny nie ma już nic wspólnego z tymczasowym przechowywaniem! Za pomocą metody możesz sprawdzić typ łącza nawigacyjnego
To jest adres tymczasowego przechowywania (adres)
Tradycyjnie, lista kodów wywołująca okno dialogowe zapisywania pliku
Opis alertu = Nowy opis alertu("Przetwarzanie zapisywania pliku", ThisForm); Plik = Nowy opis pliku transferu (nazwa pliku, adres); OdbierzFiles = Nowa tablica; OdbierzPliki.Dodaj(Plik); OpenFileDialog = NewFileSelectDialog(FileSelectDialogMode.Save); FileOpenDialog.MultipleSelect = Fałsz; StartReceivingFiles(DescriptionAlerts, ReceivingFiles, OpenFileDialog, True);
Wartość zmiennej " Plik„To kolejna cecha tę metodę. Tutaj warto zwrócić uwagę na „ Nazwa pliku„Faktem jest, że umieszczając plik w magazynie tymczasowym, tracona jest informacja o jego nazwie i rozszerzeniu. Dlatego nie zapomnij zapisać gdzieś poprawnej nazwy pliku lub przynajmniej jego rozszerzenia, aby nie zaprzątać sobie głowy pytanie później” Czy jest to dokument Word czy MP3?"
Metoda „ Rozpocznij odbieranie plików„podobny do metody” StartPlaceFiles". Po prostu jeden otwiera okno dialogowe umożliwiające wybranie pliku, a drugi odwrotnie, otwiera okno dialogowe umożliwiające zapisanie pliku.
To w zasadzie tyle.
Podczas korzystania z tej metody nie ma potrzeby ustawiania żadnej modalności i zgodności wywołań synchronicznych we właściwościach konfiguracyjnych.
Artykuł napisałem bardziej jako przypomnienie dla siebie.
Czas płynie nieubłaganie do przodu, a platforma 1C 8 działa jeszcze szybciej niż tym razem.
Zarządzane formularze nazywane są teraz „interfejsem TAXI”, okna modalne są zabronione, a tryb korzystania z synchronicznych wywołań rozszerzeń i komponentów zewnętrznych całkowicie zatrzymał funkcjonalność większości tych rozszerzeń i komponentów zewnętrznych, a w dodatku połowy starych metod .
Ogólnie rzecz biorąc, chłopaki, sprawy wyglądają tak - wielu z was czytało artykuł wspaniałego P. Chistova na temat pracy z plikami w wersji 8.3
Jeśli jeszcze tego nie zrobiłeś, śmiało maszeruj! ()
Istota mechanizmu pracy z plikami w skrócie:
1) Na kliencie wybierz plik
2) Wrzucamy to do czarnej skrzynki
3) Zapisz zawartość czarnej skrzynki na serwerze
Problem w tym, że trzeba to zrobić szczególnie, w nowy sposób i z duszą.
Dlatego Twoje
Wybrany plik.Istnieje()
i inne pogańskie rzeczy nie będą tu działać.
Więc chodźmy!
Oto lista kodów, która umożliwia pobranie pliku z klienta
Opis alertu = Nowy opis alertu("ProcessFileSelection", ThisForm); OpenFileDialog = NewFileSelectDialog(FileSelectDialogMode.Open); FileOpenDialog.MultipleSelect = Fałsz; StartFilePlace(AlertDescription, FileOpenDialog, True, UniqueIdentifier);
Nas interesuje metoda „ StartPlaceFiles„, co w rzeczywistości wywołuje okno dialogowe wyboru pliku i umieszcza ten plik w magazynie tymczasowym. Nie ma sensu zawracać sobie głowy opisem magazynu tymczasowego, wystarczy pamiętać – to tutaj umieszczane są wszystkie wybrane przez nas pliki w postaci danych binarnych (czarna skrzynka).
&W procedurze klienta ProcessFileSelection(PlacedFiles, Dodatkowe parametry) Eksportuj, jeśli PlacedFiles = Niezdefiniowane Następnie wróć;
Zrozumienie, co się tam znajduje i jak przechowywać w tym tymczasowym magazynie, jest prawie niemożliwe. Dostęp do naszego pliku można uzyskać wyłącznie poprzez link nawigacyjny, który jest przypisywany automatycznie (patrz zmienna „ Dla każdego TransferredFile z PlacedFiles Cykl PathToFile = TransferredFile.Name;“).
Z faktem, że pliki muszą być przechowywane w atrybucie lub zasobie o typie „ Items.OpenFile.Header = Entry.FileName;„Nie sądzę, że ktokolwiek będzie się kłócił. Pobierz plik z magazynu tymczasowego i umieść go w atrybucie typu „ Items.OpenFile.Header = Entry.FileName;” można wykonać w następujący sposób:
NewValueStorage(GetFromTemporaryStorage(Adres));
Jedno już ustaliliśmy, teraz druga sprawa, jak pobrać plik z tego magazynu wartości (który, przypomnę, znajduje się na serwerze) i zapisać go na dysku klienta?
Przede wszystkim musimy uzyskać link nawigacyjny do atrybutu typu „ Items.OpenFile.Header = Entry.FileName;„, gdzie umieszczamy plik w postaci danych binarnych.
Bądź ostrożny! Ten link nawigacyjny nie ma już nic wspólnego z tymczasowym przechowywaniem! Za pomocą metody możesz sprawdzić typ łącza nawigacyjnego
To jest adres tymczasowego przechowywania (adres)
Tradycyjnie, lista kodów wywołująca okno dialogowe zapisywania pliku
Opis alertu = Nowy opis alertu("Przetwarzanie zapisywania pliku", ThisForm); Plik = Nowy opis pliku transferu (nazwa pliku, adres); OdbierzFiles = Nowa tablica; OdbierzPliki.Dodaj(Plik); OpenFileDialog = NewFileSelectDialog(FileSelectDialogMode.Save); FileOpenDialog.MultipleSelect = Fałsz; StartReceivingFiles(DescriptionAlerts, ReceivingFiles, OpenFileDialog, True);
Wartość zmiennej „ Plik„To kolejna cecha tej metody. Warto tu zwrócić uwagę na „ Nazwa pliku„. Faktem jest, że umieszczenie pliku w magazynie tymczasowym powoduje utratę informacji o jego nazwie i rozszerzeniu. Dlatego nie zapomnij zapisać gdzieś poprawnej nazwy pliku lub przynajmniej jego rozszerzenia, abyś nie musiał martwić się pytaniem „ Czy jest to dokument Word czy MP3?“
Metoda „ Rozpocznij odbieranie plików”podobny do metody” StartPlaceFiles„. Jeden po prostu otwiera okno dialogowe wyboru pliku, podczas gdy drugi, przeciwnie, otwiera okno dialogowe zapisywania pliku.
To w zasadzie tyle.
Podczas korzystania z tej metody nie ma potrzeby ustawiania żadnej modalności i zgodności wywołań synchronicznych we właściwościach konfiguracyjnych.
Artykuł napisałem bardziej jako przypomnienie dla siebie.
Platforma technologiczna 1C:Enterprise 8 umożliwia zapisywanie dowolnych plików w bazie informacji, pobieranie ich stamtąd i wykorzystywanie na różne sposoby. Przyjrzyjmy się tym operacjom na przykładach.
Przed przesłaniem pliku do bazy informacyjnej 1C należy uzyskać pełny adres pliku na dysku. Praca z oknami dialogowymi wyboru pliku jest opisana w .
Aby przechowywać pliki, użyj atrybutu (lub rejestru zasobu) z typem Wartości przechowywania.
Przesyłanie dowolnego pliku do bazy informacyjnej 1C
Dowolny plik można przedstawić jako dane binarne i załadować do niego Przechowywanie wartości.
Podczas konwersji danych binarnych na obiekt Wartości przechowywania zastosowany projekt nowe wartości pamięci masowej (dane, kompresja) z dwoma parametrami:
- Dane— dane binarne, które należy przechowywać w pamięci
- Kompresja— stopień kompresji algorytmu deflacji. Liczba całkowita z zakresu -1...9. -1 to domyślny poziom kompresji. 0 – brak kompresji, 9 – maksymalna kompresja. Wartość domyślna: -1. Parametr jest opcjonalny; jeśli nie został określony, kompresja nie jest stosowana.
//Konwertuj plik na dane binarne
Plik = Nowe dane binarne (ścieżka) ;
//Tworzyć nowy obiekt Wartości przechowywania
DataStorage = NewValueStorage(File, NewDataCompression(9) ) ;
Zapisywanie dowolnego pliku z bazy danych 1C na dysku
Aby zapisać plik z bazy danych 1C na dysku, musisz określić ścieżkę i nazwę pliku. Aby to zrobić, istnieje okno dialogowe zapisywania pliku, z którym praca jest opisana w.
//Pobierz dane binarne z magazynu
//Data Storage - atrybut obiektu typu Value Storage
//Zapisz odebrane dane na dysku
//Zmienna Path zawiera pełny adres pliku na dysku
Dane. Zapis(ścieżka) ;
Przeglądanie pliku znajdującego się w bazie informacyjnej 1C
Aby obejrzeć plik zapisany w bazie danych, należy mieć zainstalowaną na komputerze aplikację otwierającą ten plik.
//Pobierz nazwę pliku tymczasowego z wymaganym rozszerzeniem
//W zmiennej Extension należy podać rozszerzenie pliku, na przykład „pdf”
Ścieżka = GetTemporaryFileName(rozszerzenie) ;
//Odbierz dane z magazynu
//Data Storage - atrybut obiektu typu Value Storage
Dane = magazyn danych. Dostawać() ;
//Zapisz dane do pliku tymczasowego
Dane. Zapis(ścieżka) ;
//Próba otwarcia pliku w zamierzonej aplikacji
//Jeśli aplikacja nie zostanie znaleziona, pojawi się systemowe okno dialogowe „Otwórz za pomocą…”.
UruchomAplikację(Ścieżka) ;
Program „1C:Enterprise - Praca z plikami” jest osobnym programem oprogramowanie, który jest dystrybuowany bezpłatnie. Przeznaczony jest do przeglądania i edycji plików 1C:Enterprise na komputerach, na których nie jest zainstalowany system 1C:Enterprise.
Obsługiwane są następujące formaty plików:
- (*.txt);
- (*.mxl);
- (*.htm, *.html);
- (*.grs);
- (*.geo);
Podczas procesu instalacji program rejestruje rozszerzenia mxl, grs i geo, dzięki czemu aby przeglądać i edytować te pliki, wystarczy kliknąć je myszką:
Obsługiwane jest uruchamianie programu z wiersz poleceń. W takim przypadku istnieje możliwość określenia pliku do przetworzenia. Przykładowo, aby przetworzyć plik „Remains.mxl”, wystarczy uruchomić komendę:
„D:\Program Files\1cv82fv\bin\1cv8fv.exe” D:\FileWorkshop\Remainings.mxl
„1C:Enterprise - Praca z plikami” obsługuje tryb podobny do zaimplementowanego w systemie 1C:Enterprise. W ten sposób użytkownik może na przykład wizualnie porównać dwa raporty sald:
Opcje dostawy
Istnieją dwie opcje dostawy programu 1C:Enterprise - Praca z plikami:
- rosyjskojęzyczny;
- międzynarodowy.
Różnica między dostawą międzynarodową a dostawą w języku rosyjskim polega na tym, że obejmuje ona te same, z których korzysta system 1C:Enterprise.
Ponadto w przypadku dostaw międzynarodowych można użyć przełącznika wiersza poleceń /L do określenia używanego języka interfejsu. Na przykład, aby przetworzyć plik „Remainings.mxl” w programie z angielski interfejs (en), po prostu uruchom polecenie:
"D:\Program Files\1cv82fv\bin\1cv8fv.exe" /Len D:\FileWorkshop\Remainings.mxl