Excel'den 1c 8.3'te yüklenicilerin içe aktarılması. Excel'den "Adlandırma" referansına veri yüklemek mümkün müdür? DIY transfer işleme seçenekleri

Bu soru Novokuznetsk'ten Sergei'den geldi.

Elbette. Belirli bir örnek kullanarak bunu nasıl yapacağımızı düşünelim. Diyelim ki bir Excel elektronik tablomuz var:

"Ad" ve "tam adlandırma" sütunlarından verileri "Nomenclature" dizinine yüklememiz gerekiyor. Görevi biraz karmaşıklaştıralım. Bu verilerin dizinde belirli bir gruba düşmesi gerektiğini varsayalım.

Nomenklatür referans kitabında Bağlantı Elemanları grubunu oluşturalım:

Şimdi "E-tablo belgesinden veri yükleme" işlemine başlamamız gerekiyor (bunu bölümden alabilirsiniz).

"Dosya" menüsünde "Aç" öğesini seçin, açılan pencerede "LoadDataFrom TabularDocument.epf" dosyasını bulun, başlatın. Bu pencere açılacaktır:

"İndirme modu" alanında "Dizine indir" bulunur. "Referans türü" alanında "Terminoloji"yi seçin. Ardından "Dosyayı aç ..." düğmesine basın (okla gösterilmiştir):

Açılan pencerede, altta dosya türünü seçin - "Excel sayfası (* .xls)":

ve indirmemiz gereken excel dosyamızı seçin.

Bu resmi görüyoruz:

"Ayarlar" sekmesine gidin. "E-tablo belgesinin ilk veri satırı" alanına şunu koyduk - 2 o zamandan beri ilk satırda bir tablo başlığımız var ve onu yüklememize gerek yok.
Ardından, "Sütun numaralandırma" - "Manuel sütun numaralandırma"yı ayarlayın:

Onay kutularını "Ad" ve "Tam ad" satırlarına koyduk, yükleme modundan çıktık - "Ara", sırasıyla 2 ve 3 sütun numarasını (Excel e-tablomuzun ikinci ve üçüncü sütunları) ayarlayın:

Şimdi nereye, hangi klasöre indireceğimizi belirtmemiz gerekiyor. "Ebeveyn" satırına bir onay işareti koyduk, indirme modunu seçtik - "Yükle" ve "Varsayılan değer" sütununda, "Adlandırma" referans kitabından "Bağlantı Elemanları" grubumuzu seçin:

Geriye KDV oranını ve ölçü birimini seçmek kalıyor (bunu yapmazsak, dizindeki her bir öğe için düğmeleri ayarlamamız gerekecek). "Temel ölçü birimi" ve "KDV oranı" öğelerinin önüne onay kutularını koyduk, indirme modunu seçin - "Yükle", "Varsayılan değer" sütununda sırasıyla "adet" ve "%18" seçeneğini seçin:

Kurulumu bitirdik. "Tabular belge" sekmesine gidin ve "Doldurma kontrolü" düğmesine basın. Program puan tablosuna şunları yazdı:

Doldurma kontrolü tamamlandı. Kontrol edilen hatlar: 7
Hata hücresi bulunamadı

Her şey. İndirebilirsin. Sağ alttaki "İndir" e tıklayın. Yüklemeden sonra Nomenklatür referans kitabımızı kontrol ediyoruz. Bu resmi görüyoruz:

Bu makalede, bir Excel elektronik tablosundan "Adlandırma" referansına nasıl veri yükleyebileceğinizi belirli bir örnekle gösterdim. Bu basit bir örnekti. Ancak bazıları için son derece zor görünecek.

Her durumda, bunu yapmaya çalışın, sadece bir çalışma tabanında deneme yapmayın, bir demo tabanında veya boş bir tane üzerinde yapmayın veya önceden arşivlenmiş bir kopya oluşturun. Hiçbir zaman işe yaramasa bile, becerilerinizi biraz yükseltecek ve kullanıcı becerilerinizi genişleteceksiniz.

Bu materyalin yardımcı olup olmadığını bilmek ilginç olurdu? Zor değilse, bu makale için kendinizinkini yazın. Bu, gelecekte malzemenin hazırlanmasında bana yardımcı olacaktır.

11
DİKKAT! Aşağıda açıklanan kodları kullanırken _ sembolünü kaldırın, bunun nasıl yapıldığını örneklerle görelim! =) 2 yol biliyorum: 1. Şablon metnini Word düzeninde değiştirerek. 2. Metni şununla yapıştırarak ... 9
Tabloları Excel'den MXL'e dönüştürme - Converter Excel v MXL'i indirin: 8.x için - 7.7 için - // Microsoft Excel dosyasını seçin Prosedür FileNameStartChoice (Element, StdProcessing) StdProcessing = False; DialogFile = Yeni FileDialog (FileDialogMode. 3
Sanırım herkes, ilk bakışta sayfa ekleme yeteneğine sahip olmayan 1C'den tek sayfalık bir excel dosyasına rastladı. Her şey o kadar korkutucu değil - basitçe gizlendiler veya çoğu zaman gösterilmediler bile (yaratılış nedeniyle ... 2
Prosedür SaveTableInFileExcel (Table, FullFileName = "", OpenFileSelectDialogue = True, UploadableColumns = "") EmptyString (FullFileName) VEYA OpenFileSelectDialogue Sonra Dialog = ...

1C 8.3'te, bir elektronik tablo belgesinden, örneğin bir Excel dosyasından bir listeyi toplu olarak yüklemek mümkündür.

Yükleme için harici işleme kullanıyoruz LoadingDataFrom TabularDocument.epf indirilebilen yönetilen formlar (8.2 ve 8.3) için ... Evrenseldir ve yönetilen bir uygulama için yazılmış herhangi bir yapılandırma için uygun olmalıdır.

  • Bir programcıysanız ve Excel'den "kendi" indirmenizi geliştirmek istiyorsanız, aşağıdakiler için ayrıntılı talimatlar;
  • 1C Ticaret Yönetimine bir fiyat listesi yükleme örneği adresinde bulunabilir.

Harici işlemeyi başlatmak için "Dosya" menüsüne, ardından "Aç" a gitmeniz ve bu işlemi kaydedildiği dizinden seçmeniz gerekir:

İşleme 1C 8.3 elektronik tablo belgesinden (yönetilen formlar) veri yükleme

İşlem 1C'de açıldıktan sonra onunla çalışmaya başlayabilirsiniz. Öncelikle nereye ve ne yükleyeceğimize karar vermemiz gerekiyor:

"" referans kitabında bir örnek vermek istiyorum. Verileri xls formatında belirli bir dosya oluşturdum.

İşleme ayrıca aşağıdaki formattaki dosyaları da yükleyebilir:

  • verilerin kopyalanabileceği başka herhangi bir format.

"Adlandırma" referans kitabına yükleyeceğimiz ilk verileri içeren Excel dosyası şöyle görünür:

267 1C video eğitimlerini ücretsiz edinin:

Yükleme ilkesini anlamak için bu kadarı yeterli olduğundan referans kitabındaki tüm alanları yazmadım. Ayrıca bu veriler bu pozisyonlarla çalışmaya başlamak için yeterlidir.

Bu pozisyonlar henüz 1C bilgi tabanında değil ve şimdi onları oraya yükleyeceğiz.

"Aç" simgesine tıklayın (şekilde "Kaynak seçimi" olarak gösterilmiştir) ve veri dosyasını seçin. Bilgilerin basit bir şekilde kopyalanması kullanılabilir. Örnek dosyamı indirebilirsiniz. Veriler otomatik olarak işleme yüklenecektir. Şimdi verilerimizi doğru doldurup doldurmadığımızı kontrol edelim. Bunu yapmak için "Doldurma kontrolü" düğmesine basın.

Gördüğünüz gibi, hatalarımız var! ortadan kaldıracağız. "Ayarlar" sekmesine gidin:

Hataları düzeltmeden önce önemli bir ayrıntıya dikkatinizi çekmek istiyorum. Başlangıçta program, zaten orada olması durumunda bir dizin öğesini aramak için hangi alanı kullanması gerektiğini bilmez. Bu nedenle, bunu belirtmesi gerekiyor. Genellikle benzersiz olduğu için kodla aramayı tercih ederim. "Kod" satırındaki "Arama alanı" sütununda bir onay işareti koyun. Şimdi, bu koda sahip bir kayıt bulunursa, değiştirilecektir, aksi takdirde oluşturulacaktır.

Önemli! Arama alanını belirtmezseniz, yinelenen öğeler görünebilir. Özellikle benzer bir dosyanın ikinci indirilmesinden sonra!

Şimdi bakalım neden "Birim" alanında küfür ediyor. Gerçek şu ki, 1C 8.3'teki ölçü birimleri ayrı bir dizinde saklanır ve işleme varsayılan olarak bu birimi ada göre arar. Ama aslında birim kelimesi "Tam ad" alanında yazılıdır.

Ne yazık ki, işleme yalnızca "Ad" ve "Kod" ile arama yapabilir (bir programcı için olasılıklar daha geniştir). Yukarıdaki resimlere dikkat ederseniz, "Birim" sütununda bir kodum olduğunu göreceksiniz. Ve işlemede, aramanın kodla yapılması gerektiğini belirtmeniz gerekir. “Birimler”in karşısındaki “İletişim koşulu” sütununa çift tıklıyoruz ve “Kod” olarak değiştiriyoruz.

Şimdi hata listesindeki "Hizmet" hakkında bize söylediklerine bakıyoruz. Bir diğer önemli not. Dosyadaki sütunlar, sözlük alanlarının satırlarıyla tam olarak aynı sırada olmalıdır. Ve burada "" en altta ve "Yorum" sütunundan sonraki dosyada.

"Öğe görünümü" satırını yukarı kaldırmak için formun üst kısmında mavi oklar vardır. Gerekli çizgiyi yükseltmek ve Yorumun altına yerleştirmek için Yukarı oku kullanın.

"Veri yükle" ye basıyoruz ve bu sefer her şey hatasız gidiyor:

Excel dosyalarından 1C'ye mal yükleme hakkında video eğitimi:

Örneğin bir Excel dosyasında veri olduğu durumlar vardır ve bunların programa girilmesi gerekir. Manuel giriş çok uzun sürebilir ve hata yapma olasılığı yüksektir.

Bu sorunu çözmek için bir uzmanı çekme fırsatınız yoksa, 1C'den yönetilen formlarda tipik işleme kullanın. İster ITS diskinden, ister bağlantıyı takip ederek indirebilirsiniz. LoadingDataFrom TabularDocument.epf .

İlk adım, bu işlemi "1C: Enterprise" modunda açmaktır. "Dosya" menüsünde, "Aç" öğesine tıklayın ve beliren pencerede, kaydettiğiniz işlemi seçin. "Ctrl + O" kısayol tuşu kombinasyonunu da kullanabilirsiniz.

İşlem açılmazsa, büyük olasılıkla hesabınızda "Harici raporları ve işlemleri aç" hakkı yoktur.

Bu işlemi başarıyla açtıktan sonra ilk adım, verilerin nereye yükleneceğini belirlemektir. Bu örnekte, veriler içine yüklenecektir. Basitçe söylemek gerekirse, 1C 8.3'e Excel formatında bir fiyat listesi yükleyeceğiz. İrsaliyeleri yüklemek için talimatlar çok benzer olacaktır.

Yeni bir "Madde fiyatları belirleme" belgesi oluşturalım veya mevcut olanı kullanabilirsiniz. İçinde sadece "Tarih" ve "Fiyat türü" alanlarını belirteceğiz. Bizim durumumuzda "Toptan fiyat" türü kullanılacaktır. Tablo bölümünü doldurmanıza gerek yoktur. Veri yükleme işlemi ile doldurulacaktır.

İşleme formunda, tablo bölümüne yüklemek için uygun anahtarı seçin. Daha önce oluşturulan "Öğe fiyatlarını ayarlama" belgesi, bağlantı alanında değiştirilir. "Tablolu kısım" alanında - "Ürünler".

Veriler yalnızca belgelerin, dizinlerin vb. tablo bölümlerine değil, aynı zamanda dizinlere ve bilgi kayıtlarının kendilerine de yüklenebilir.

Verileri yüklemek için bir yer seçtikten sonra, işlemin kendisi, altta bulunan elektronik tablo belgesinde gerekli sütun başlıklarını oluşturdu. Programa yüklenen veriler manuel olarak veya harici bir kaynaktan bu tablo bölümüne kopyalanarak belirlenebilir.

Bu örnekte, bir Excel dosyasından indirmenin en uygun yolunu ele alacağız. Aç düğmesine tıklayın ve veri dosyasını seçin. Açmak için aşağıdaki biçimler desteklenir: * .mxl ", * .xls, * .txt, * .dbf. Dosyadaki tüm veriler elektronik tablo işleme belgesine gidecektir.

Doldurma kontrolü ve kontrolü

Harika bir “Yedi kez ölçün, bir kez kesin” diyerek, bu nedenle, bir elektronik tablo belgesinden 1C'ye veri yüklemeden önce bunları kontrol etmeniz gerekir. Bunu yapmak için "Dolgu Kontrolü" düğmesine tıklayın.

Herhangi bir hata tespit edilirse, bu tür satırların sayısını gösteren bir mesaj görünecektir. Bir tutarsızlık bulunan hücrelerde, nedeni olan bir not belirtilecektir.

Bu durumda, programda "Bar 40 * 40 * 300" isimlendirme öğesi bulunamadı. Verileri yüklemeden önce, onu oluşturmalı veya öğeyi mallarla benzer bir dosyadan 1s 8.3'te önceden yüklemelisiniz.

Önyükleme yapılandırması

"Ayarlar" sekmesine daha yakından bakalım. Bu sekme, yüklenen verileri yapılandırmak için tablo bölümünü içerir. Bu tablonun her satırı, karşılık gelen değişkenin ayarını içerir. Özelleştirme için aşağıdaki parametreler mevcuttur:

  • "İşaretleme". Set bayrağı, verilen değişkenin aşırı yüklenmesi gerektiği anlamına gelir.
  • "Sahnelerin sunumu".
  • "Türlerin tanımı". Bir değer türü veya birkaç (bileşik veri türü) alabilir.
  • Önyükleme Modu üç şekilde gelir:
    • "Ara" - değer yalnızca bulunursa ayarlanır.
    • Hesapla - değer, belirtilen ifadeye göre hesaplanır.
    • "Ayarla" - değer açık bir şekilde ayarlanır.
  • Varsayılan değer. Öznitelikte değiştirilecek hiçbir veri bulunmaması durumunda, bu ayardaki değer ayarlanır.
  • Bağlantı Koşulu / Değer için İfade, aramanın gerçekleştirileceği alanı belirler. Kodla arama, genellikle benzersiz olduğu için referans kitaplar için daha yüksek önceliğe sahiptir. Kod bilinmiyorsa, varsayılan ayarı bırakıp ada göre arama yapabilirsiniz. Bu durumda özniteliğin aranacağı dizinde mükerrer satırlar olmamalıdır.

Doldurma konfigürasyonunu ve doğrulamasını ve kontrolünü başarıyla tamamladıktan sonra verileri indirebilirsiniz. Verileri İndir köprüsüne tıklayın. Mesajlar, bu işlemin yürütülmesiyle ilgili bilgileri görüntüler. Bizim durumumuzda her şey yolunda gitti.

Verileri yüklediğimiz belgeye gidelim. Gördüğünüz gibi, tüm değerler doğru bir şekilde dolduruldu.

Örnek olarak Nomenklatür'ü kullanarak Excel'den 1C'ye yükleme hakkında başka bir talimat için videoya bakın:

Bu yöntem basittir. Özü, nesnenin TabularBelge yöntemleri vardır:

  • bir yere yaz (< ИмяФайла>, < ТипФайлаТаблицы >) bir dosyaya veri yüklemek için;
  • Okumak (< ИмяФайла>, < СпособЧтенияЗначений >) bir dosyadan veri yüklemek için.

Dikkat!

Write () yöntemi hem istemcide hem de sunucuda kullanılabilir. Read() yöntemi yalnızca sunucu tarafında kullanılabilir. Hatırla bunu
istemci-sunucu etkileşimini planlarken.

Bir elektronik tablo belgesini bir dosyaya kaydetme örneğini ele alalım. TabularDocument nesnesini herhangi bir şekilde oluşturmak ve doldurmak gereklidir ve boşaltma dosyaya sadece bir satır ile gerçekleştirilir:

TabDoc ... Yaz (FilePath, TabularDocumentFileType. XLSX);

Buraya TabDoc- oluşturulan elektronik tablo belgesi, Dosyanın yolu- yüklenecek dosyanın adı, Tablolu Belge Dosya Türü.XLSX- oluşturulmakta olan dosyanın formatı. Aşağıdaki Excel biçimleri desteklenir:

  • XLS95 - Excel 95 biçimi;
  • XLS97 - Excel 97 biçimi;
  • XLSX - Excel 2007 biçimi.

TabDoc = Yeni Tablo Belgesi;
TabDoc ... Okuma (Dosyaya Giden Yol, Tablolu Belge Değerleri Nasıl Okunur.);

Buraya Dosyanın yolu- indirilen Excel dosyasının yolu. Tablo Belge Değerlerini Okuma Yöntemi. kaynak belgeden okunan verilerin nasıl yorumlanacağını belirler. Seçenekler şunlardır:

  • Anlam;
  • Metin.

OLE üzerinden değişim

OLE otomasyon teknolojisi aracılığıyla değişim, Excel dosyalarıyla programlı olarak çalışmanın belki de en yaygın yoludur. Excel tarafından sağlanan tüm işlevleri kullanmanıza olanak tanır, ancak diğer yöntemlerden daha yavaştır. OLE aracılığıyla değişim için MS Excel'i yüklemeniz gerekir:

  • Son kullanıcının bilgisayarında, eğer değişim istemci tarafında gerçekleşirse;
  • 1C: Enterprise sunucu bilgisayarında, takas sunucu tarafında gerçekleşirse.

Örnek boşaltma:

// Bir COM nesnesi oluştur
Excel = Yeni COMObject ("Excel.Uygulama");
// Uyarıların ve soruların görüntülenmesini devre dışı bırak
Excel ... DisplayAlerts = Yanlış;
// Yeni bir kitap oluştur
Kitap = Excel. Çalışma Kitapları. Ekle ();
// İlk sayfada konumlandırma
Çarşaf = Kitap. Çalışma Sayfaları (1);

// değeri hücreye yaz
Çarşaf ... Hücreler (LineNumber, ColumnNumber). Değer = Hücre Değeri;

// Dosya 'yı kaydet
Kitap ... SaveAs (DosyaAdı);


Excel ... Çıkış yapmak ();
Excel = 0;

Örnekleri okuma:

// -- SEÇENEK 1 --

// Bir COM nesnesi oluştur
Excel = Yeni COMObject ("Excel.Uygulama");
// Kitabı aç
Kitap = Excel. Çalışma kitapları. Açık ( Dosyanın yolu );

Çarşaf = Kitap. Çalışma Sayfaları (1);

// Kitabı kapat
Kitap ... Kapat (0);

// Excel'i kapatın ve belleği boşaltın
Excel ... Çıkış yapmak ();
Excel = 0;

// -- SEÇENEK 2 --

// Kitabı aç
Kitap = GetCOMObject ( Dosyanın yolu );
// İstenilen sayfada konumlandırma
Çarşaf = Kitap. Çalışma Sayfaları (1);

// Hücre değerini oku, genellikle bu hücre geçiş döngüsüdür
Hücre Değeri = Sayfa. Hücreler (LineNumber, ColumnNumber). Değer;

// Kitabı kapat
Kitap ... Uygulama. Qui T ();

İçin kalp ameliyati bir Excel sayfasının tüm doldurulmuş satırlarından aşağıdaki teknikleri kullanabilirsiniz:

// -- SEÇENEK 1 --
Satır Sayısı = Sayfa. Hücreler (1, 1). Özel Hücreler (11). Sıra;
Satır Numarası için = 1 Satır Sayısına Göre Döngü
Hücre Değeri = Sayfa. Hücreler (LineNumber, ColumnNumber). Değer;
Döngü Sonu;

// -- SEÇENEK 2 --
SatırSayısı = 0;
Hakikat Döngüsü sırasında
SatırNumarası = SatırNumarası + 1;
Hücre Değeri = Sayfa. Hücreler (LineNumber, ColumnNumber). Değer;
Değer Doldurulmamışsa (Hücre Değeri) Sonra
iptal;
EndIf;
Döngü Sonu;

Sayfanın tüm satırlarını sırayla geçmek yerine, tüm verileri bir diziye boşalt ve onunla çalışın. Bu yaklaşım, büyük miktarda veri okunurken daha hızlı olacaktır:

Toplam Sütunlar = Sayfa. Hücreler (1, 1). Özel Hücreler (11). Kolon;
Toplam Satır = Sayfa. Hücreler (1, 1). Özel Hücreler (11). Sıra;

Bölge = Sayfa. Aralık (Sayfa. Hücreler (1, 1), Sayfa. Hücreler (TotalRows, TotalColumns));
Veri = Bölge. Değer. Boşalt();

Aşağıdaki tablo, OLE aracılığıyla Excel ile çalışmak için en popüler özellikleri ve yöntemleri göstermektedir:

Eylem kod Bir yorum
Uygulama ile çalışmak
Uygulama penceresinin görünürlüğünü ayarlama Excel ... Gözle görülür= Yanlış;
Uyarı görüntüleme modunun ayarlanması (görüntüleme / görüntüleme) Excel ... Ekran Uyarıları= Yanlış;
Uygulamayı kapatmak Excel ... Çıkış yapmak ();
Bir kitapla çalışmak
Yeni bir kitap oluşturma Kitap = Excel. Çalışma Kitapları. Ekle();
Mevcut bir kitabı açma Kitap = Excel. Çalışma Kitapları. Aç (DosyaAdı);
kitap kaydetme Kitap ... SaveAs (DosyaAdı);
kitabı kapatmak Kitap ... Kapat (0);
Bir sayfa ile çalışma
Geçerli sayfayı ayarlama Çarşaf = Kitap. Çalışma Sayfaları (Sayfa Numarası);
Adı ayarlama Çarşaf ... İsim = İsim;
Ayar koruması Çarşaf ... Korumak();
Korumayı kaldırma Çarşaf ... Korumayı Kaldır();
Sayfa yönlendirmesini ayarlama Çarşaf ... Sayfa ayarı. Oryantasyon = 2; 1 - portre, 2 - manzara
Sol kenarlığı ayarlama Çarşaf ... Sayfa ayarı. LeftMargin = Excel. SantimetreToPoints (Santimetre);
Üst sınırın ayarlanması Çarşaf ... Sayfa ayarı. TopMargin = Excel. SantimetreToPoints (Santimetre);
Sağ kenarlığı ayarlama Çarşaf ... Sayfa ayarı. Sağ Kenar Boşluğu = Excel. SantimetreToPoints (Santimetre);
Alt sınırın ayarlanması Çarşaf ... Sayfa ayarı. BottomMargin = Excel. SantimetreToPoints (Santimetre);
Satırlar, sütunlar, hücrelerle çalışma
Sütun genişliğini ayarlama Çarşaf ... Sütunlar. ColumnWidth = Genişlik;
Satır Silme Çarşaf ... Satırlar. Silmek();
Sütun silme Çarşaf ... Sütunlar. Silmek ();
Bir hücreyi silme Çarşaf ... Hücreler (LineNumber, ColumnNumber). Silmek();
Değerin ayarlanması Çarşaf ... Hücreler (LineNumber, ColumnNumber). Değer = Değer;
Hücreleri birleştirme Çarşaf ... Aralık (Sheet. Cells (RowNumber, ColumnNumber), Sheet.Cells (RowNumber1 ,ColumnNumber1)). Birleştirmek();
Yazı tipini yükleme Çarşaf ... Hücreler (LineNumber, ColumnNumber). Yazı tipi. İsim = Yazı Tipi Adı;
Yazı tipi boyutunu ayarlama Çarşaf ... Hücreler (LineNumber, ColumnNumber). Yazı tipi. Boyut = Yazı Tipi Boyutu;
Kalın yazı tipini ayarlama Çarşaf ... Hücreler (LineNumber, ColumnNumber). Yazı tipi. Gözü pek = 1 ; 1 - kalın, 0 - normal
italik ayar Çarşaf ... Hücreler (LineNumber, ColumnNumber). Yazı tipi. İtalik = 1 ; 1 - italik, 0 - normal
Altı çizili yazı tipini ayarlama Çarşaf ... Hücreler (LineNumber, ColumnNumber). Yazı tipi. Altını çizmek = 2 ; 2 - altı çizili, 1 - değil

Hangi özelliğin değiştirilmesi gerektiğini veya hangi yöntemi çağırmanız gerektiğini öğrenmek için kullanabilirsiniz. makrolar Excel. Gerekli eylemleri içeren bir makro kaydederseniz, kaydedilen makronun VBA program koduna bakabilirsiniz.

COMSafeArray'i kullanma

1C'den Excel'e büyük miktarda veri boşaltırken, hızlandırmak için nesneyi kullanabilirsiniz. COMSafeArray... Sözdizimi yardımcısının tanımına göre, COMSafeArray çok boyutlu bir dizi üzerinde bir nesne sarmalayıcıdır. SafeArray COM'dan. COM nesneleri arasında veri alışverişi yapmak için SafeArray oluşturmanıza ve kullanmanıza olanak tanır. Basit bir ifadeyle, OLE teknolojisini kullanan uygulamalar arasında değiş tokuş yapmak için kullanılabilecek bir değerler dizisidir.

// COMSafeArray oluştur
ArrayCom = Yeni COMSafeArray ("VT_Variant", TotalColumns, TotalStrings);
// COMSafeArray'i doldur
İçin Satırlar = 0 Toplam Satırlarla - 1 Döngü
İçin Sayı = 0 Toplam Sütun - 1 Döngü
ArrayCom ... SetValue (Sayı, Sayfa, Değer);
Döngü Sonu;
Döngü Sonu;
// COMSafeArray'den Excel çalışma sayfası alanına değerler atayın
Çarşaf ... Aralık (Sayfa. Hücreler (1, 1), Sayfa. Hücreler (TotalRows, TotalColumns)). Değer = ArrayCom;

ADO üzerinden değişim

ADO aracılığıyla değiş tokuş edilen bir Excel dosyası, SQL sorguları kullanılarak erişilebilen bir veritabanıdır. MS Excel kurulumu gerekli değildir, ancak erişimin gerçekleştirileceği bir ODBC sürücüsü bulunmalıdır. Kullanılacak ODBC sürücüsü, dosyaya bir bağlantı dizesi belirtilerek belirlenir. Genellikle gerekli sürücü bilgisayarda zaten yüklüdür.

ADO üzerinden değişim, OLE üzerinden değişimden belirgin şekilde daha hızlıdır, ancak yüklemeyi kaldırırken hücreleri, işaretleme sayfalarını, formülleri vb. tasarlamak için Excel işlevselliğini kullanmanın bir yolu yoktur.

Örnek boşaltma:


Bağlantı = Yeni COMObject ("ADODB.Connection");


Birleştirmek ... ConnectionString = "

| Veri Kaynağı = " + DosyaAdı + “;
;
Birleştirmek ... Açık (); // Bağlantıyı aç

// Komut için bir COM nesnesi oluşturun
Komut = Yeni COMObject ("ADODB.Command");
Takım

// Tabloyu oluşturmak için komut metnini atayın
Takım ... Komut Metni = "TABLO OLUŞTUR [Sayfa1] (Sütun1 karakter (255), Sütun2 tarihi, Sütun3 int, Sütun4 kayan nokta)";
Takım ... Uygulamak (); // Komutu yürütün

// Tablo satırı eklemek için bir komut metni atayın
Takım ... Komut Metni = "INSERT INTO [Sayfa1] (Sütun1, Sütun2, Sütun3, Sütun4) değerleri ​​(' '' '' ',' 8/11/2017 '”, '12345', '12345.6789') ”;
Komut.Yürüt (); // Komutu yürütün

// Komutu silin ve bağlantıyı kapatın
Komut = Tanımsız;
Birleştirmek ... Kapat();
Bağlantı = Tanımsız;

Yeni bir sayfa oluşturmak ve yapısını oluşturmak için nesneleri kullanabilirsiniz. ADOX.Katalog ve ADOX.Tablo... Bu durumda, kod şu şekli alacaktır:

// Kitapla çalışmak için bir COM nesnesi oluşturun
Kitap = Yeni COMObject ("ADOX.Catalog");
Kitap ... ActiveConnection = Bağlantı;

// Sayfadaki veri yapısıyla çalışmak için bir COM nesnesi oluşturun
Tablo = Yeni COMObject ("ADOX.Table");
tablo ... Ad = "Sayfa1";
tablo ... Sütunlar. Ek ("Sütun1", 202);
tablo ... Sütunlar. Ekle ("Sütun2", 7);
tablo ... Sütunlar. Ekle ("Sütun3", 5);
tablo ... Sütunlar. Ekle ("Sütun4", 5);

// Kitapta açıklanan yapıya sahip bir sayfa oluşturun
Kitap ... Tablolar. Ekle (Tablo);
Tablo = Tanımsız;
Kitap = Tanımsız;

Yukarıdaki örnekte, yöntemde

tablo ... Sütunlar. Ekle("Sütun1", 202);

ikinci parametre sütunun türünü belirtir. Parametre isteğe bağlıdır, burada sütun türü için bazı değerler verilmiştir:

  • 5 - adDouble;
  • 6 - adCurrency;
  • 7 - adDate;
  • 11 - adBoole;
  • 202 - adVarWChar;
  • 203 - adLongVarWChar.

Örnek okuma:

// Bağlantı için bir COM nesnesi oluşturun
Bağlantı = Yeni COMObject ("ADODB.Connection");

// Bağlantı dizesini ayarla
Birleştirmek ... ConnectionString = "
Üste Geri Bildirim Ver Çözüm Sağlayıcı = Microsoft.ACE.OLEDB.12.0;
| Veri Kaynağı = " + DosyaAdı + “;
| Genişletilmiş Özellikler = "" Excel 12.0 XML; HDR = EVET ""; ";
Birleştirmek ... Açık (); // Bağlantıyı aç

// Seçimi almak için bir COM nesnesi oluşturun
Seçim = Yeni COMObject ("ADODB.Recordset");
İstek Metni = "[Sayfa1 $]'DAN * SEÇİN";

// İsteğin yürütülmesi
Örnek ... Aç (QueryText, Bağlantı);

// Seçim sonucunu atla
Henüz Örnekleme YAPILMAMIŞTIR. EOF () Döngüsü
Sütun1 değeri = Örnek. Alanlar. Öğe ("Sütun1"). Değer ; // Sütun adına göre başvuru
Sütun2-Değer = Örnek. Alanlar. Ürün (0). Değer; // Sütun indeksine atıfta bulunarak
Örnek ... İleri Taşı ();
Döngü Sonu;

Örnek ... Kapat ();
Örnek = Tanımsız;
Birleştirmek ... Kapat ();
Bağlantı = Tanımsız;

Bağlantı dizesinde, parametre HDR sayfadaki ilk satırın nasıl algılanacağını belirler. Seçenekler şunlardır:

  • EVET - ilk satır sütun adları olarak yorumlanır. Değerlere isim ve kolon indeksi ile ulaşılabilir.
  • HAYIR - ilk satır veri olarak kabul edilir. Değerlere yalnızca sütun dizini ile erişilebilir.

Verilen örneklerde sadece birkaç ADO nesnesi tartışılmıştır. ADO nesne modeli aşağıdaki nesnelerden oluşur:

  • Bağlantı;
  • Emretmek;
  • Kayıt kümesi;
  • Kayıt;
  • Alanlar;
  • Aktarım;
  • Hatalar;
  • parametreler;
  • Özellikleri.

Programlama olmadan yükleyin

1C'den Excel'e veri kaydetmek için, programlamaya başvurmanız her zaman tavsiye edilmez. Enterprise modunda, kullanıcı yükleme için gerekli verileri görüntüleyebilirse, bunları programlamadan Excel'e kaydetmek mümkündür.

Bir elektronik tablo belgesini (örneğin, bir rapor sonucu) kaydetmek için şu komutu çağırabilirsiniz: Kayıt etmek veya Farklı kaydet… ana menü.

Açılan pencerede, kaydedilen dosyanın dizinini, adını ve biçimini seçmeniz gerekir.

Dinamik listelerden (örneğin bir öğe listesi) verileri kaydetmek için şunları yapmanız gerekir:

  1. Komutu kullanarak verileri bir elektronik tablo belgesine çıkarın Daha fazla ⇒ Listeyi göster...;
  2. Elektronik tablo belgesini gerekli biçimde kaydedin.

gastroguru 2017