Ev / Oyun konsolları / 1s'ye bir excel tablosu nasıl eklenir. Hangisi daha iyi - "1C" veya "Excel"? Bir sorunuz mu var veya bir danışmandan yardıma mı ihtiyacınız var?

1s'ye bir excel tablosu nasıl eklenir. Hangisi daha iyi - "1C" veya "Excel"? Bir sorunuz mu var veya bir danışmandan yardıma mı ihtiyacınız var?

Oldukça sık, potansiyel müşterilerle iletişim kurarken, ofis paketinden yeterli tablo işlevine sahip olduklarını duyuyorum ve 1C programlarındaki noktayı görmüyorlar. Bunun nedeni, bazılarının bu çözümü hala yalnızca muhasebe programlarıyla ilişkilendirmesidir, ki bu doğru değildir.

Excel evrensel ve toplu bir üründür, bununla tartışamazsınız. Dar uzmanlara yönelik "1C" gelişmelerinin aksine, hemen hemen herkes bu programı kullanabilir. "Yeşil" tabloları kullanarak, uygun olacak gerekli işlevselliği keyfi olarak uygulayabilirsiniz: işte tüm karşılıklı yerleşimler, yönetim muhasebesi, hatta düzenlenmiş, geniş bir veri görselleştirme seçimi, programın genişletme yeteneği ile organizasyonun finansal modeli. çeşitli eklentiler kullanarak kendinizi geliştirin - her şey sıfırdan sizin elinizde...

Müşteriler, tedarikçiler, düzenleyici makamlarla ilişkiler, keyfi yapınızı oluşturma, ancak veritabanı hacimli hale geldiğinde ve personel ile ilişkiler hakkında tablodaki gerekli verileri kademeli olarak dikkate alarak işinize yeni başlıyorsanız iyidir. onlarda olmak? Hepsi aynı kendi parametrelerine göre mi düşünülmeli? Kolaylıkla, genellikle bir işletmenin sistemleştirilmesine ve dolayısıyla optimizasyonuna müdahale eden alışkanlıkla karıştırılmamasından yanayım.

Netlik için, örneğin ticarette muhasebe otomasyonunda hangi ihtiyaçların ortaya çıkabileceğini hayal edelim:

1. Belirli bir dönem içindeki satışların analizi.

Satış departmanı başkanı satış verilerini analiz edebilir. Sonuçta, verimsizlik durumunda zamanında ayarlamalar yapmak için planın uygulanıp uygulanmadığını, stratejilerinin ne kadar etkili olduğunu anlaması önemlidir.

2. Depo muhasebesi.
Stoktaki malın mevcudiyetini, hangi malların rezerve edilebileceğini ve hangilerinin stokta olmadığını ve nelerin sipariş edilmesi gerektiğini anlamanın satışlar için de önemli olduğunu açıklamama gerek var mı? Bence burada her şey açık.

3. Karşı taraf veritabanının bakımı.
Mal sahibi, B2C sektörü için tipik olan yalnızca burada ve şimdi satın alabileceğiniz şeyleri satsa bile, tedarikçi tabanı ile biraz farklı ilişkileri vardır - sözleşmeler, birincil ... Tedarikçi ile ilgili her şeyin ne kadar uygun olduğunu hayal edin. otomatik olarak hemen tek bir veritabanında görüntülenir? Depodan sorumlu yönetici, depodaki malların mevcudiyetini anında görür, belgelerden sorumlu diğer bir çalışan ise bunların mevcudiyetini, sözleşme ilişkileri kapsamındaki tüm yükümlülüklerin yerine getirilip getirilmediğini, kimin kime ve ne kadar borçlu olduğunu takip eder. Ve tutarsızlıklar durumunda, verileri belirli bir süre için kontrol edebilir ve bir dakikadan daha kısa sürede sonuç üretebilirsiniz.

4. Kuruluşun karı.
Giderler ve gelirler ile ilgili tüm veriler zaten veri tabanında mevcut olduğundan, bir kar raporu oluşturmak zor olmayacaktır. Bilgilerin zamanında, en azından istenilen tarihe kadar girilmesi şartıyla. Burada temel faktör, kullanıcının kişisel sorumluluğudur.

Çok sayıda müşteriniz ve tedarikçiniz yoksa, Excel size gerçekten uyacaktır, çünkü tabloda kendi şemalarınızı tasarlamak ve bunları doldurmak için bolca zamanınız vardır, ardından belgeleri bilgisayarınızdaki çeşitli klasörlere dağıtır: sözleşmeler, tedarikçiler, müşteriler, çevredeki müşteriler , geliştirilmekte olan müşteriler, silinecek müşteriler - bir klasör içinde klasör oluşturmanın sonsuz ve heyecan verici süreci. Ve çok fazla bilgi varsa, bu durumda veritabanınızın kaydını tutmak uygun mu? Tabii ki, her zaman istisnalar vardır, bazen finansal verileri yalnızca Excel'de tutulan büyük cirolu kuruluşlar vardır. Departmanlar arasında veri alışverişi ve birleştirmeleri ne kadar zaman alıyor? Cevap: çok.

Rasgele bir sistem tarafından düzenlenen çok sayıda Excel belgesinde doğru olanı nasıl hızlı bir şekilde bulacağımı bilmiyorum. Örneğin, vergi gereksinimleri için belgeler gönderirken. Bir muhasebeci, tüm bilgiler dağınık durumdayken düzenleyici makamlara nasıl rapor sunacak? Muhasebe, elbette, dışarıdan temin edilebilir ve bazı işletme sahipleri, ne yazık ki, belirli bir uzmanın dengede olduğu sürece hangi süreçlere sahip olabileceğini umursamayabilir. Ama öyle olsa bile, o halde belge alışverişi süreci nasıl düzenlenir? Taraftaki bir çalışan, doğaçlama bilgi yapısını ne kadar çabuk anlayacak?

Aynı şeyi 1C için söyleyemem çünkü oradaki tüm bilgiler yapılandırılmış ve birbirine bağlı:

    Hem uzak hem de tam zamanlı çalışanlar için standart ve isteğe bağlı tüm belgelerle çalışabileceğiniz tek bir veritabanı;
    Düzenleyici makamlara raporlama, programa zaten yansıyan verilere dayanmaktadır, nihai sonuçları almak için çok sayıda dosya açmaya, birkaç değeri tek bir tabloya indirmeye gerek yoktur.
"1C", iyi bir şekilde, hem tipik muhasebe görevlerini hem de faaliyet alanına bağlı olarak tüm organizasyonel süreçleri otomatikleştirmeyi amaçlayan çok görevli bir sistemdir. Buradaki anahtar kelime sistemdir. İş sisteminizi Excel'de düzenlemeniz için kimse sizi rahatsız etmiyor, ancak zaman ve finansal maliyetleri optimize eden ve işi sistemleştirmeye yardımcı olan neredeyse tüm ihtiyaçları karşılayan çözümler varken neden tekerleği yeniden icat ettiniz?

Excel'in savunmasında

Muhtemelen, "yeşil" tablolarda veri oluşturmaya karşıyım gibi geldi. Hiç de bile. Aslında, kendim sık sık Excel'de bazı işler yapıyorum: keyfi hesaplamalara ihtiyacım olursa, verileri müşterilere göre segmentlere ayırmam gerekirse, 1C'de olmayan parametrelere göre analitik yürütürsem - evet, bu olur - giderim " excel. Basitçe söylemek gerekirse, tablolarda standart dışı analizler yapıyorum, ancak daha sonra her şeyi 1C'de sistemleştiriyorum.

Ardından, 1C'den yüklenen dosyaları görüntülemek için, 1C'deki veriler elektronik tablolarda saklandığından, yine de Excel'e ihtiyacınız vardır. Sizce bu bir kısır döngü mü? Farklı bir şekilde ifade edeceğim: "1C" ve "Excel" iki ortak gibi yan yana gidiyor, ancak her birinin kendi amacı var, birbirlerini iyi tamamlıyorlar, ancak değiş tokuş yapmıyorlar.

Devletimizin yasama sistemini dikkate alarak, özellikle büyük miktarda bilgi söz konusu olduğunda, işin özelliklerini ve yönünü dikkate alarak işlerinizi sistematik hale getirmeniz gerekiyorsa, 1C'ye ihtiyacınız var. Rastgele hesaplamalara, sıfırdan bir strateji oluşturmaya, standart dışı analitik verilerinin görselleştirilmesine ihtiyacınız varsa, Excel hizmetinizdedir. Ancak bu çözümlerle aynı anda çalışmak çok daha uygundur.


Sonuç nedir - "1C" veya "Excel"?

En başta, soru tam olarak otomasyon için finans ise, temel 1C programları bu kadar paraya mal olmasa da, Excel kullanırdım. Büyük bir artı, "yeşil" tablolardan gelen verilerin kayıp olmadan 1C'ye yüklenebilmesidir. Ama büyüdükçe iş süreçleri otomasyon programlarına dikkat etmeni tavsiye ederim. Birçoğu var ve mutlaka "1C" olmayabilir ...

1C'ye geçiş, denetim makamları ile müşteriler ve tedarikçilerle ilişkilerle ilgili konuların otomatikleştirilmesi de dahil olmak üzere kaynaklarınızı optimize etmenin gerekli olduğunu anladığınızda yapılabilir. Genel olarak, bilgi işlemenin çok zaman alacağı ve Excel dosyalarının artık girilen veri hacmiyle başa çıkmayacağı iş verimliliğini artırmak için iş akışlarınızı iyileştirmek için.

Bununla birlikte, her "1C" size uymayabilir, çeşitli faktörleri hesaba katmanız gerekir: işin özellikleri ve kapsamı, ölçek, günlük görevlere duyulan ihtiyaç, en aza indirilmesi gereken rutin. Her şey bireyseldir. Gerçek, dediğim gibi, "1C" ile "Excel" arasında bir yerdedir - birbirine ektir.

Bu konuda, belki de her şey. Ancak herhangi bir sorunuz varsa, lütfen bizimle iletişime geçin, size yardımcı olmaya çalışacağız. Başarılı iş süreçleri, iş arkadaşları!

  • Karşı taraflar arasında bilgi alışverişi yapılırken (fiyat listeleri, mutabakat işlemleri vb.);
  • Ana muhasebenin 1C'de tutulduğu ve bir kısmının Excel tablolarında yapıldığı durumlarda operatörlerin çalışmalarını kolaylaştırmak için;
  • Veritabanının ilk doldurulması sırasında.

Bu işlemi gerçekleştirmek için, hem bilgi teknolojisi desteği (ITS) aboneliğiyle sağlanan standart işlevleri hem de çeşitli bağlantı seçenekleri aracılığıyla uygulanan kendi kendine yazılan işlemleri kullanabilirsiniz. Makalemizde, olası tüm durumları olabildiğince eksiksiz bir şekilde analiz etmeye ve Excel'den 1C'ye veri yükleme ile ilgili mevcut soruların çoğunu yanıtlamaya çalışacağız.

evrensel hareket

ITS disklerinde ve 1C portalında, "Teknolojik destek" -> "Evrensel raporlar ve işleme" menüsüne giderek, "Bir elektronik tablo belgesinden veri yükleme" klasöründe ilgili bir işlem vardır.

Başlatıldığında bir form açılır (Şekil 1):

Formdan da görebileceğiniz gibi, aşağıdaki konfigürasyon nesnelerine bilgi aktarmanıza izin verir:

  1. Dizin;
  2. Belgenin veya referans kitabının tablo kısmı;
  3. Bilgi kaydı.

Anahtarın konumuna bağlı olarak nesne seçim alanı değişir.

Yüklenen dosyayı açtığınızda işleme tablo formu doldurulur.

Tür işleme, aşağıdakilerden yüklemeleri destekler:

  • 1C şirketinin uzmanları tarafından geliştirildi, format dosyalarımxl;
  • lisztxls biçiminde kaydedildiExcel 97-2003;
  • Metin dosyasıTxt;
  • tablolardbf.

Büyük hacimli Excel dosyalarının yüklenmesi uzun zaman alabilir, bu nedenle veri yüklemesinin birkaç aşamada gerçekleşebileceği varsayılırsa veya mevcut bir dosyayı birkaç kez açmanız gerekeceğini kesin olarak biliyorsanız, bilgileri kaydetmek daha iyidir. sinirleri ve zaman biçimini kurtarmak için ondan mxl'de. Bunu doğrudan işleme formundan yapabilirsiniz.

Kaynak dosyada satır gruplamaları, alt başlıklar ve notlar varsa, bunların manuel olarak kaldırılması gerektiğini anlamak önemlidir.

Şimdi "Ayarlar" sekmesine geçelim (Şekil 2):

İncir. 2

Oldukça sık, Excel elektronik tabloları, işlenişlerini hariç tutmak için her türlü ayrıntı ve veriyi (basılı formun adı, karşı tarafın ayrıntıları, gelen belgenin tarihi ve numarası, sütun adları vb.) formdaki program, "E-tablo belgesinin ilk satırı" özelliğinde, aktarılan bilgilerle ilk satırı belirtmelisiniz

Bilgilerin yazılacağı meta veri nesnesini seçtikten sonra, "Ayarlar" sekmesinin tablo bölümü, özelliklerin adları, türlerinin açıklamaları ve diğer bilgilerle otomatik olarak doldurulacaktır. önemli bilgi. "Ayarlar" sekmesinin tablo bölümünün sütunlarının dikkate alınması ayrı bir bölüme ayrılmalıdır.

Ayarlar sütunları

Bayrak - Satırdaki kutuyu işaretleyerek veya işareti kaldırarak, ilgili özniteliğin doldurulup doldurulmayacağı belirlenir.

Özniteliğin gösterimi - meta veri özniteliğinin eşanlamlısı (adı), yapılandırıcıda belirtildiği gibi burada yazılır.

Arama alanı - bu kutuyu işaretlerseniz, işleme ilgili özniteliğe göre öğeleri arayacak ve başarılı olursa mevcut verileri değiştirecektir, ek işlev bu alan - kopyaların görünümüne karşı koruma.

Türlerin açıklaması - bir veya başka bir meta veri özniteliğine sahip veri türünü görüntüler.

İndirme modu - aralarından seçim yapabileceğiniz üç seçenek sunar (Şekil 3):

Şek. 3

  • Arama - ilgili öğe aranır, yoksa yenisi oluşturulabilir;
  • Ayarla - belirli bir değer, alt bir şekilde ayarlanır;
  • Hesapla - bu durumda, "İlişki koşulu/Değer için ifade" sütununda belirtilen ifadenin hesaplanmasının sonucu, oluşturulan öğe alanında ayarlanır.

İkinci durumda, İfade alanını etkinleştirmek formu açacaktır (Şekil 4).

Şekil 4

Sütun numarası - Excel elektronik tablosunun hangi sütunundan doldurmak için veri almanız gerektiğini belirtmek için kullanılan bir alandır.

Varsayılan değer - genellikle, yüklenen dosyanın bir öğeyi kaydetmek için gerekli tüm verileri içermediği bir durum ortaya çıkar, bu durumda, bu alanda bulunan bilgiler doldurulmak üzere doldurulacaktır.

Bağlantı koşulu / Değer için ifade - hesaplanan alanları düşündüğümüzde bu alana zaten kısmen değindik, ayrıca, kaynak verilerin senkronize edileceği koşulu belirtebilirsiniz.

Prensip olarak, "Ayarlar" sekmesinde bulunan tüm bilgiler buradadır.

Yükleme, yazışmalar ve ifadeler için her seferinde çok fazla zaman kaybetmemek için geliştiriciler, ayarlar seçeneğini mxlz uzantılı bir dosyaya kaydetme yeteneği sağladı.

"Doldurma kontrolü" düğmesine tıklayarak aktarılan verilerin doğruluğunu kontrol edebilirsiniz (Şekil 1). Bundan sonra indirme işlemini başlatabilirsiniz. Prosedürün başarıyla tamamlanması veya standart dışı durumlar hakkında ayrıca bilgilendirileceksiniz.

Excel'den veri yüklemek için bilgi tabanları"Yönetim ve ticaret" başka bir mekanizma daha var. Yukarıdaki yöntemden daha az evrenseldir, ancak bir ITS aboneliği gerektirmez ve standart teslimata dahildir.

Bu işleme "Satın Almalar" sekmesinde, "Hizmet" menüsünde bulunabilir, buna "Dosyalardan tedarikçi fiyatları yükleme" denir (Şekil 5)

Şekil 5

İşleme formu şunları içerir:

  1. Bu fiyatın ne zaman alakalı olduğunu gösterecek bir tarih seçim alanı;
  2. Fiyat listesini gönderen karşı tarafı seçme alanı;
  3. Ayarlanacak fiyatların türünü seçmenizi sağlayan bir düğme;
  4. Yüklenen verilerle doldurulabilen tablo şeklinde bir bölüm.

Bu form Şekil 6'da görülebilir.

Şekil 6

Formun üst kısmındaki açıklama, formun ilk sekmesinin nasıl kullanılacağını açıklar.

Karşı taraf seçildikten sonra (tedarikçi, komisyoncu veya satıcı olarak hareket etmesine bağlı olarak), tabloda her bir fiyat türü için ek sütunlar mevcut olacaktır.

Web arayüzü üzerinden çalışırken, bazı tarayıcılar bir tarayıcı eklentisinin yüklenmesini gerektirebilir (Şekil 7). "Kurulumu Başlat" butonuna tıklayıp bağlantımızı yeniden başlatmamız gerekiyor.

Şekil 7

Bundan sonra, panoyu kullanarak bilgileri bir tablodan diğerine aktarabileceğiz. İhtiyacımız olan sütunlar (“Makale”, “Ad”, “Fiyat”) doldurulduğunda “İleri” butonuna basıyoruz ve ikinci sayfaya geçiyoruz (Şekil 8)

Şekil 8

Program, veri tabanındaki eşleşmeleri otomatik olarak arayacak ve eğer yoksa, hatayı çözmek için seçenekler sunacaktır. Dış görünüş tabular kısım bir anahtar ile kontrol edilebilir. Ayrıca kullanıcı, yüklenen dosyanın öğelerini veritabanındaki öğelerle bağımsız olarak karşılaştırabilir.

  • Her şeyi kaydedin;
  • Yalnızca veritabanında bulunanlara kıyasla değişenleri kaydedin.

Metin alanına belgeye kaydedilecek bir yorum girebilirsiniz (Şek. 9):

Şekil 9

İşlemden sonra:

  • "Tedarikçi terminolojisi" dizininde (eğer orada değilse) ilgili bir öğe oluşturulacaktır;
  • "Adlandırma" referans kitabının bir unsuru ile eşleştirilecektir;
  • "Öğe fiyatlarını belirleme" belgesi oluşturulacak ve yayınlanacak ve şunları belirtecektir: tedarikçi, fiyat türü ve veri sabitleme tarihi.

"Harici dosyalardan mal yükleme" işlemi benzer şekilde çalışır.

DIY transfer işleme seçenekleri

Bir Excel dosyasından veri çıkarmadaki ana sorun, 1C'nin onu açmak için yerleşik bir açık mekanizmaya sahip olmamasıdır. Birkaç seçenek var Excel bağlantıları 1C'ye:

  • Microsoft ADODB aracılığıyla - kural olarak hem dosya hem de istemci-sunucu veritabanı depolama seçenekleri için geçerli olan oldukça hızlı bir yöntem;
  • Vasıtasıyla Microsoft kullanımı Office - SQL veritabanlarıyla çalışırken bazen başarısız olan bir yöntem, kural olarak, ilk yöntemden biraz daha yavaş çalışır ve Office de gereklidir;
  • Libre Office aracılığıyla - önceki yöntemin aksine ücretsizdir, xls ve xlsx biçimlerine ek olarak kendi tablolarını da destekler, ancak yüklü bir LibreOffice paketi ve yüklenen dosyanın bazı hazırlıkları (tablonun ilk satırı sütunların adlarını içermelidir).

Hadi daha yakından bakalım çeşitli yollar ve seçenekler.

ADODB.Connection aracılığıyla

Genel olarak, ADO, ActiveX Data Object'in kısaltmasıdır ve aşağıdakilere hizmet eder: program erişimiçeşitli veritabanlarına. Üçüncü taraf bir dosyaya (Excel dahil) herhangi bir bağlantı oluştururken en büyük sorun, bağlantı dizesini doğru şekilde oluşturmaktır.

Excel dosyaları için üç seçenek vardır:

Bağlantı dizesi seçenekleri:

  • Sağlayıcı - kullanılan sürücü burada belirlenir;
  • Veri Kaynağı - açacağımız dosyanın adını tanımlar;
  • Genişletilmiş Özellikler - burada tablo için bir başlık satırının gerekip gerekmediğini (HDR = EVET verilerin ilk satırdan, HDR = HAYIR - ikinciden itibaren okunacağını belirtir), dosyanın salt okunur açılıp açılmayacağını belirtebilirsiniz ( ReadOnly) ve diğer bazı ek seçenekler.

Bir bağlantı dizisi oluşturduktan sonra indirilen dosyaya bağlanabiliriz (Şekil 13)

Şekil 13

şimdi kullanabiliriz basit bir istek(Şek.14) indirilen dosyadan bilgi almaya başlayın.

AT bu durum"Sayfa" parametresi, excel çalışma kitabından hangi sayfayla çalışmamız gerektiğini belirler.

Bir sayfada saklanan kayıt kümesi, Recordset nesnesi kullanılarak okunabilir. Bu durumda, sayfanın ilk kaydı BOF (dosyanın başı) parametresi ve son EOF (dosyanın sonu) ile elde edilebilir.

Excel uygulaması ile

Önceki yöntemden temel farkı, veritabanı sürücülerine ek olarak, bağlantının yapıldığı bilgisayarda Excel'in kurulu olmasıdır. Sadece bu durumda tablodan veri okumak için uygulamayı başlatabiliriz (Şekil 16).

Bu COM nesnesinin birkaç alt parametresi vardır, ancak görevin mevcut koşulları altında bizim için asıl olan WorkBooks parametresidir (Şekil 17).

Kitabı başlattıktan sonra, verilerin okunacağı sayfanın belirlenmesi gerekir (Şekil 18).

Bundan sonra, açılan dosyanın tablosunun satır ve sütunlarının döngülerini yineleyebilirsiniz.

Olası hatalar hakkında birkaç kelime

Bir dosyaya bağlanırken aslanın hata payı, dosyanın zaten başka bir uygulama tarafından kullanılıyor olması nedeniyle oluşur. Görev çubuğu, bilgisayarda Excel'in çalıştığını gösteriyorsa, ancak siz veya başka bir kullanıcı onu harici işleme, görsel olarak bu yalnızca "Görev Yöneticisi" aracılığıyla belirlenebilir, bu nedenle aktarım prosedürünün bitiminden önce bağlantıyı kapatmayı unutmayın:

ADO üzerinden çalışma durumunda (Şekil 19);

Şekil 19

  • Uygulama ile çalışma durumunda (Şekil 20).

Pirinç. yirmi.

Bağlantı ve verilerle çalışmayı tamamlama prosedürü, en iyi Deneme-İstisna-Sonlandırma Denemesi yapısı içinde düzenlenir ve istisnai bir durumda bir hata açıklamasına neden olur. Bu bazen işi yavaşlatsa da, hatanın nedeninin belirlenmesini ve nihayetinde onu ortadan kaldırmanın yollarını büyük ölçüde basitleştirir.

1C'de, bir COM nesnesi ve bir elektronik tablo belge nesnesi kullanarak yerleşik 1C araçları aracılığıyla MS Excel dosyalarıyla çalışmanın 2 yolu vardır. Bu yöntemlerin her ikisini de daha ayrıntılı olarak inceleyelim.

1. COM nesnesi üzerinden çalışın.

Bu yöntem MS Excel'in yüklenmesini gerektirir ve sunucuda bir dosya ile çalışıyorsanız, sunucuda MS Excel'in yüklenmesi gerekir, istemcide ise, istemci tarafında da MS Excel gerekir.

Bir örnek (makalenin sonunda metin biçiminde görüntülenebilir):

Unutulmamalıdır ki, "Excel.Application" COM nesnesi tarafından sağlanan tüm nesneler, yöntemler ve özellikler, MS Office programlama dili olan VBA'nın nesneleri, yöntemleri ve özellikleridir.

Not:

Bazen mevcut bir şablonla çalışmanız gerekir. Ardından, gerekli tüm kullanıcıların buna erişebilmesi için bu şablonu bir yerde saklamamız gerekiyor. Ancak daha kolay bir çözüm var, şablonu ikili düzen olarak kaydediyoruz.

2. Elektronik Tablo Belgesi 1C ile çalışın.

1C elektronik tablo belgesi, platform 8'den başlayarak kayıt için MS Excel biçimini destekler, ancak yalnızca platform 8.3.6'dan başlayarak açılır. Ayrıca, açılırken tüm sayfalar tek bir elektronik tablo belgesine yüklenir. 8.3.10 sürümünden itibaren, yükleme sırasında farklı sayfalar farklı alanlar olarak yüklenir.

Kayıt örneği çok basittir ve fazla dikkat gerektirmez:

Ancak burada bir sorunumuz var. Bir Excel çalışma kitabında 1C'den kayıt yaparken, sayfa adlarının görüntülenmesi varsayılan olarak devre dışıdır.

Bu sorun 2 şekilde çözülebilir, 1 - ayarlarda kitabın kendisinde sayfaların görüntülenmesini etkinleştirin (tüm kullanıcılar bunu yapmayı kabul etmeyecektir), 2 - bir COM nesnesi aracılığıyla yapın (yine MS Excel'in yüklü olması gerekir) .

Bu küçük eklemeden sonra, MS Excel dosyasında sayfa etiketleri görünecektir.

MS Excel'i okumak o kadar basit bir iş değildir, çünkü okuma yöntemi yalnızca sunucuda veya kalın istemcide kullanılabilir. Bunun için MS Excel dosyasını sunucuya aktarmamız gerekiyor.

&İstemci

CreateDocument() Prosedürü

İstisna

Denemenin Sonu;

Kitap = Excel.WorkBooks.Add(); //Yeni bir MS Excel çalışma kitabı oluştur

Sayfa = Book.WorkSheets.Add(); //Bir sayfa ekle

Sheet.Name = "1C'den Örnek"; // Sayfa adını ayarla

Sheet.Cells (1,1).Value = "(!LANG:Bir formül oluşturalım";!}

Sheet.Cells(2,1).Value = 1;

Sheet.Cells(2,2).Value = 2;

Sheet.Cells(2,3).Formula = "=A2+B2";

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

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

Kitap.Kapat();

İşlem Sonu

&Sunucuda

GetLayoutServer() işlevi

Geri Dön FormAttributeToValue("Object").GetLayout("Şablon Yükle"); //Harici işleme düzenini bu şekilde elde ederiz;

EndFonksiyonlar

&İstemci

Prosedür Çalışması()

Excel = New COMObject("Excel.Application");

İstisna

Show("Excel bileşenine bağlanma girişimi başarısız. bu bilgisayar!");

Denemenin Sonu;

Düzen = GetLayoutServer();

Layout.Write(GeçiciDosyaAdı);

Bir sorunuz mu var, bir danışmanın yardımına mı ihtiyacınız var?

Kitap = Excel.WorkBooks.Open(TempFileName);

SheetTemplate = Book.WorkSheets(1);

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

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

SheetTemplate.NumberFormat = "gg/aa/yy;@"; // Tarih biçimini verelim, bu biçim MS Excel'de bir makro kaydederek elde edilir

SheetTemplate.Columns("B:B").EntireColumn.AutoFit; // Tarihe tam olarak uyması için sütunu uzat

Book.SaveAs(DosyaAdı);

Kitap.Kapat();

İşlem Sonu

&İstemci

İşlem Sonu

&İstemci

Yordam WriteSpreadsheetDocument()

Elektronik TabloBelgesi = Yeni Elektronik TabloBelgesi();

SpreadsheetDocument.Area("R1C1").Text = "MS Excel'de 1C'den bir giriş örneği";

SpreadDocument.Write("C:\1\Test2.xls",SpreadDocumentFileType.XLSX);

Excel = New COMObject("Excel.Application");

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

Excel.Görünür = 0;

Excel.ActiveWindow.DisplayWorkbookTabs = 1;

Excel.ActiveWindow.TabRatio = 0,6;

Excel.ActiveWorkbook.Save();

Excel.Application.Quit()

İşlem Sonu

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

Adres=PutToTempStorage(BinaryData,ThisForm.UniqueIdentifier) ​​​​;

Elektronik TabloDocument = DownloadOnServer(Adres);

SpreadsheetDocument.Show();

İşlem Sonu

&Sunucuda

Fonksiyon LoadOnServer(Adres)

TempFileName = GetTemporaryFileName("xlsx");

FileData = GetFromTempStorage(Adres);

FileData.Write(GeçiciDosyaAdı);

Elektronik TabloBelgesi = Yeni Elektronik TabloBelgesi();

İade E-tablo Belgesi;

Giriiş.

Birçok kişi Excel'in 1C'den çok daha eski olduğunu biliyor. Bence bu çok başarılı bir ürün ve bu konuda herhangi bir şikayet duymadım. Excel basit ve çok yönlüdür. Yalnızca basit aritmetik işlemleri değil, aynı zamanda karmaşık hesaplamaları, grafikleri vb. Kuruluşların 1C'ye geçmeden önce Excel'de muhasebenin bir bölümünü tuttuğu örnekleri biliyorum. Birçoğu ve şimdi paralel olarak iki program kullanıyor. Bu yazıda, 1C ve Excel arasında veri alışverişi yapmanın yollarını ele alacağız.

Tablo 1C ve Excel.

Kolaylık sağlamak için, birçok kullanıcı 1C tablolarını (yazdırılabilir formlar) Excel formatında (* .xls) kaydeder. Daha sonra ortaya çıkan dosyada çeşitli gruplamalar, sıralamalar, hesaplamalar vb. yapılır. Bunun nedeni, 1C tablolarında Excel tablolarında olduğu kadar büyük bir işlevsellik olmamasıdır. Ancak 1C 8.0 sürümünde tablolarla çalışmayı daha rahat hale getiren yenilikler var.

1C web sitesinde (http://www.1c.ru/), Excel'de 1C tabloları açmanıza ve bir Excel sayfasını 1C tablosu olarak kaydetmenize izin veren kullanışlı bir program vardır. Bu, 1C tablosu Excel biçiminde kaydedilmemişse ve bu tabloyu açmanız gereken bilgisayarda 1C yüklü değilse yararlıdır. Evet ve 1C tablosunu Excel formatında kaydetmeniz gerektiğini sürekli olarak unutmayın, buna gerek kalmayacak.

Programla ilgili tüm bilgilere buradan ulaşabilirsiniz.
Programı buradan indirebilirsiniz (zip arşivi 682 739 bayt).

Yorum: Excel'de ondalık ayırıcı "," şeklindedir. Bu nedenle, 1C tablosunu Excel formatında kaydetmeden önce, içindeki başka bir ayırıcıyı (örneğin, ".") "," ile değiştirin. Aksi takdirde, Excel bu sayılarla hesaplama yapamaz veya hiç bir şekilde sayı olarak görüntülenmez. Örneğin, tablo 1C'de "15.2", Excel'de "15 Şubat" olarak görüntülenecektir.

Excel'den veri alma.

1C'den Excel'e erişim OLE üzerinden yapılır. Örneğin, kod
Teşebbüs
İstisna
Bildir(Hata Açıklama() +
);
Dönüş;
Denemenin Sonu;
"Excel" değişkeni aracılığıyla erişmemize izin verecek çalışan uygulama Excel. Ve sonra zaten veri içeren kitaba (dosyaya), sayfaya ve hücreye erişebilirsiniz. Aşağıda kod örnekleri bulunmaktadır.

Kitap açma (dosya):
Kitap = Excel. çalışma kitapları. Open(PathToFile);
PathToFile, Excel çalışma kitabı dosyasının tam yoludur.

Çalışmak için bir kitap sayfası seçme:
veya
Sayfa = Kitap. Çalışma Sayfaları(SayfaAdı);
SheetNumber kitaptaki sayfanın numarasıdır, SheetName kitaptaki sayfanın adıdır.

Bir sayfa hücresinin değerini alma:
Değer = Sayfa. Hücreler (LineNumber , ColumnNumber ). değer;

Önemli: gerekli işlemleri gerçekleştirmek için alana Excel kodunu eklemeyi unutmayınız. Çıkış yapmak(); , aksi takdirde çalışan işlem eksik kalacak ve bilgisayarın belleğini ve işlemcisini alacaktır.

Excel'e veri çıkışı.

Verileri Excel'e çıkarmak (yüklemek) için, ya var olan bir çalışma kitabını açmanız ya da yeni bir tane oluşturmanız ve veri çıktısı için bir çalışma sayfası seçmeniz gerekir. Mevcut bir kitabı açmak yukarıda açıklanmıştır, ancak yeni bir kitap oluşturmak için aşağıdaki kodu kullanmanız gerekir:
Teşebbüs
Excel = CreateObject("Excel.Uygulama");
İstisna
Bildir(Hata Açıklama() +
"Excel bu bilgisayarda yüklü değil!");
Dönüş;
Denemenin Sonu;
Kitap = Excel. çalışma kitapları. Ekle();

Excel'de bir kitap oluştururken, sayfalar otomatik olarak oluşturulduğundan (Araçlar-> Seçenekler-> Genel-> Yeni bir kitapta Sayfalar), yalnızca çalışmak için sayfayı seçmeniz gerekir:
Sayfa = Kitap. Çalışma Sayfaları(SayfaNumarası);
veya gerekirse kitaba yeni bir sayfa ekleyin:
Sayfa = Kitap. Çarşaflar. Ekle();
Sonraki adım, hücrenin değerini ayarlamaktır:
Çarşaf. Hücreler (LineNumber , ColumnNumber ). değer = değer;
RowNumber, ColumnNumber - hücrenin kesiştiği noktada satır numarası ve sütun numarası.
Ve sonunda, oluşturulan kitabı kaydetmeniz gerekir:
Teşebbüs
Kitap . SaveAs(PathToFile);
İstisna
Bildir(Hata Açıklaması()
+ "Dosya kaydedilmedi!");
Dönüş;
Denemenin Sonu;
PathToFile - Excel çalışma kitabı dosyasının tam yolu (ad dahil).
Önemli: dosya adlarının \ / : * içermemesi gerektiğini unutmayın ? " >< |.

Excel'de değerleri okumak/ayarlamak için yaygın olarak kullanılan yöntemler.

Excel = CreateObject("Excel.Uygulama"); Excel uygulamasına erişim kazanma.
Excel. Görünür = Görünürlük ; 0 - Excel görünmüyor, 1 - görünüyor.
Kitap = Excel. çalışma kitapları. Ekle(); Yeni bir çalışma kitabı (dosya) oluşturma Excel.
Kitap . SaveAs(Dosya adı); Excel çalışma kitabını kaydetme.
Sayfa = Kitap. Çalışma sayfaları. Ekle(); Kitaba yeni bir sayfa ekleme.
Kitap = Excel. çalışma kitapları. Aç(Dosya adı); Mevcut bir çalışma kitabını (dosyasını) açma Excel.
Sayfa = Kitap. Çalışma Sayfaları(SayfaNumarası); Bir sayfayı numberSheetNumber ile çalışma sayfası olarak ayarlama.
Çarşaf. Ad = SayfaAdı ; Çalışma sayfasını adlandırmaSayfaAdı
Çarşaf. Sayfa ayarı . Yakınlaştırma = Ölçek ; Ölçek sayfası seçeneğini belirtir (10'dan 400'e kadar).
Çarşaf. Sayfa ayarı . Oryantasyon = Oryantasyon ; Oryantasyon: 1 - dikey, 2 - yatay.
Çarşaf. Sayfa ayarı . LeftMargin = Excel . SantimetreToPoints ( Santimetre ); Sol kenarlığı ayarlar (santimetre olarak).
Çarşaf. Sayfa ayarı . TopMargin = Excel . SantimetreToPoints ( Santimetre ); Üst sınırı (santimetre cinsinden) belirtir.
Çarşaf. Sayfa ayarı . Sağ Kenar Boşluğu = Excel . SantimetreToPoints ( Santimetre ); Sağ kenarlığı (santimetre cinsinden) belirtir.
Çarşaf. Sayfa ayarı . BottomMargin = Excel . SantimetreToPoints ( Santimetre ); Alt sınırı (santimetre cinsinden) ayarlar.
Çarşaf. Sütunlar (SütunNumarası) . ColumnWidth = Genişlik ; Sütun genişliğini ayarlayın.
Çarşaf. Hücreler (LineNumber , ColumnNumber ) . değer = değer; Bir hücreye veri girme.
Çarşaf. Hücreler (LineNumber , ColumnNumber ) . yazı tipi. Ad = Yazı TipiAdı ; Bir hücrede yazı tipini ayarlama.
Çarşaf. Hücreler (LineNumber , ColumnNumber ) . yazı tipi. Boyut = Yazı Boyutu ; Bir hücrede yazı tipi boyutunu ayarlayın.
Çarşaf. Hücreler (LineNumber , ColumnNumber ) . yazı tipi. Kalın = Kalın ; 1 - kalın yazı tipi, 0 - normal.
Çarşaf. Hücreler (LineNumber , ColumnNumber ) . yazı tipi. İtalik = İtalik ; 1 - eğik yazı tipi, 0 - normal.
Çarşaf. Hücreler (LineNumber , ColumnNumber ) . yazı tipi. Altı çizili = Altı çizili; 2 - altı çizili, 1 - değil.
Çarşaf. Hücreler (LineNumber , ColumnNumber ) . NumberFormat = Biçim ; Hücre veri biçimini ayarlayın.
Çarşaf. Hücreler (LineNumber , ColumnNumber ) . Sınırlar. Çizgi stili = Çizgi Türü ; Hücre kenarlıklarını ayarlayın. 1 - ince katı.

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

  • yakmak (< ИмяФайла>, < ТипФайлаТаблицы >) 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. Bunu hatırlaman gerek
istemci-sunucu etkileşimini planlarken.

Bir elektronik tablo belgesini bir dosyaya kaydetme örneğini düşünün. TableDocument nesnesini herhangi bir şekilde oluşturmak ve doldurmak gereklidir ve boşaltma dosya sadece bir satırla yapılır:

TabDoc . Yaz(FilePath, Elektronik TabloDocumentFileType.XLSX);

Burada TabDoc- oluşturulan elektronik tablo, Dosyanın yolu- yüklenecek dosyanın adı, Elektronik TabloDocumentFileType.XLSX— oluşturulan dosyanın formatı. Aşağıdaki Excel biçimleri desteklenir:

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

TabDoc = Yeni Elektronik Tablo Belgesi;
TabDoc . Read(PathToFile, WayToReadSpreadDocumentValues.Value);

Burada Dosyanın yolu- İndirilen Excel dosyasının yolu. WayToReadValuesSpreadDocument.Value kaynak belgeden okunan verilerin nasıl yorumlanacağını tanımlar. Mevcut seçenekler:

  • Anlam;
  • Metin.

OLE aracılığıyla değişim

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

  • 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 = New COMObject("Excel.Application");
// Uyarıları ve soruları 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);

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

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


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

Örnekler okuma:

// -- SEÇENEK 1 --

// Bir COM nesnesi oluştur
Excel = New COMObject("Excel.Application");
// Açık kitap
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 --

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

// Hücrenin değerini oku, burası genellikle hücre baypas döngüsünün bulunduğu yerdir
CellValue = Sayfa. Hücreler(RowNumber, ColumnNumber). değer;

// Kitabı kapat
Kitap . başvuru. Qui t();

İçin kalp ameliyati Excel sayfasının tüm doldurulmuş satırları, aşağıdaki püf noktalarını kullanabilirsiniz:

// -- SEÇENEK 1 --
Satır Sayısı = Sayfa. Hücreler(1 , 1 ). Özel Hücreler(11 ). Sıra;
RowNumber için = 1 Satır Sayısına Göre Döngü
CellValue = Sayfa. Hücreler(RowNumber, ColumnNumber). değer;
Bitiş Döngüsü;

// -- SEÇENEK 2 --
SatırNumarası = 0 ;
Gerçek Döngü iken
SatırNumarası = SatırNumarası + 1 ;
CellValue = Sayfa. Hücreler(RowNumber, ColumnNumber). değer;
DEĞİLSE ValueFilled(CellValue) O zamanlar
iptal etmek;
EndIf;
Bitiş Döngüsü;

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:

TotalColumns = 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. Range(Sheet. Cells(1 , 1 ), List. Cells(TotalRows, TotalColumns));
Veri = Bölge. değer. boşaltmak();

Aşağıdaki tablo, OLE aracılığıyla Excel ile çalışmak için en çok istenen özellikleri ve yöntemleri listeler:

Eylem kod Yorum
Uygulama ile çalışmak
Uygulama Penceresi 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ülememe) Excel . Ekran Uyarıları= yanlış;
Uygulamayı kapatmak Excel . Çıkış yapmak();
Bir kitapla çalışmak
Yeni bir kitap oluştur Kitap = Excel. çalışma kitapları. Ekle();
Mevcut bir çalışma kitabını açma Kitap = Excel. çalışma kitapları. Aç(DosyaAdı);
kitap kaydetme Kitap . SaveAs(DosyaAdı);
kitap kapanışı Kitap . Kapat (0);
Bir sayfa ile çalışma
Geçerli sayfayı ayarlama Çarşaf = Kitap. Çalışma Sayfaları(Sayfa Numarası);
Ad ayarı Çarşaf . İsim = İsim;
Ayar koruması Çarşaf . Korumak();
Korumanın kaldırılması Çarşaf . Korumayı Kaldır();
Sayfa yönünü 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ırlarla, sütunlarla, hücrelerle çalışma
Sütun genişliğini ayarlama Çarşaf . Sütunlar(SütunNumarası). ColumnWidth = Genişlik;
Bir satırı kaldırma Çarşaf . Satırlar(SatırNumarası). Silmek();
Bir sütunu silme Çarşaf . Sütunlar(SütunNumarası). silmek();
Bir hücreyi silme Çarşaf . Hücreler(RowNumber, ColumnNumber). Silmek();
Bir değer ayarlama Çarşaf . Hücreler(RowNumber, ColumnNumber). Değer = Değer;
Hücreleri birleştirme Çarşaf . Aralık(Sayfa. Hücreler(SatırNumarası, SütunNumarası), Sayfa. Hücreler(SatırNumarası1, SütunNumarası1)). Birleştirmek();
Yazı tipini yükleme Çarşaf . Hücreler(RowNumber, ColumnNumber). Yazı tipi. İsim = Yazı TipiAdı;
Yazı tipi boyutunu ayarlama Çarşaf . Hücreler(RowNumber, ColumnNumber). Yazı tipi. Boyut = Yazı Boyutu;
Kalın yazı tipi ayarı Çarşaf . Hücreler(RowNumber, ColumnNumber). Yazı tipi. Gözü pek = 1 ; 1 - kalın, 0 - normal
italik ayar Çarşaf . Hücreler(RowNumber, ColumnNumber). Yazı tipi. İtalik = 1 ; 1 - italik, 0 - normal
Altı çizili bir yazı tipi ayarlama Çarşaf . Hücreler(RowNumber, ColumnNumber). Yazı tipi. Altını çizmek = 2 ; 2 - altı çizili, 1 - hayır

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'sındaki program kodunu görüntüleyebilirsiniz.

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ı tarafından tanımlandığı gibi, 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çe söylemek gerekirse, bu, OLE teknolojisini kullanan uygulamalar arasında değiş tokuş yapmak için kullanılabilecek bir dizi değerdir.

// COMSafeArray oluştur
ArrayCom = Yeni COMSafeArray("VT_Variant", TotalColumns, TotalRows);
// COMSafeArray'i doldur
İçin Str = 0 Toplam Satır - 1 Döngü
İçin Sayı = 0 Toplam Sütun - 1 Döngü
ArrayCom . SetValue(Sayı, Str, Değer);
Bitiş Döngüsü;
Bitiş Döngüsü;
// COMSafeArray'den Excel sayfa alanı değerleri atama
Çarşaf . Aralık(Sayfa. Hücreler(1 , 1 ), Liste. Hücreler(TotalRows, TotalColumns)). Değer = ArrayCom;

ADO üzerinden değişim

Bir Excel dosyası, ADO aracılığıyla değiştirildiğinde, 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ü gereklidir. Kullanılan ODBC sürücüsü, dosyaya 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 süslemek, sayfaları işaretlemek, formülleri ayarlamak vb. için Excel işlevini kullanmanın bir yolu yoktur.

Örnek boşaltma:


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


Birleştirmek . BağlantıDizesi="

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

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

// Tablo oluşturmak için komut metni 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(); // Komut yürütme

// Tablo satırı eklemek için komut metni atama
Takım . komut metni= "INSERT INTO [Sayfa1] (Sütun1, Sütun2, Sütun3, Sütun4) değerleri ('abvgdeo', '8/11/2017', '12345', '12345,6789')";
Command.Execute(); // Komut yürütme

// Komutu silme ve bağlantıyı kapatma
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 şöyle görünecektir:

// 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 = New COMObject("ADOX.Table");
Masa . Ad = "Sayfa1" ;
Masa . Sütunlar. Append("Column1" , 202 );
Masa . Sütunlar. Append("Sütun2" , 7 );
Masa . Sütunlar. Append("Column3", 5);
Masa . Sütunlar. Append("Column4" , 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

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

ikinci parametre sütun türünü belirtir. Parametre isteğe bağlıdır, burada bazı sütun tipi değerleri 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ı = New COMObject("ADODB.Connection");

// Bağlantı dizesini ayarla
Birleştirmek . BağlantıDizesi="
|Sağlayıcı=Microsoft.ACE.OLEDB.12.0;
|VeriKaynağı=" + DosyaAdı + ";
|Genişletilmiş Özellikler=""Excel 12.0 XML;HDR=YES"";";
Birleştirmek . açık(); // Bağlantıyı aç

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

// İsteği yürüt
Örneklem . Aç(Sorgu Metni, Bağlantı);

// Seçimin sonucunu atla
Örnekleme DEĞİLDİR. EOF() Döngüsü
ColumnValue1 = Seçim. alanlar. Öğe ("Sütun1"). değer ; // Sütun adına göre başvuru
Sütun2 değeri = seçim. alanlar. Öğe(0 ). değer; // Sütun indeksine göre al
Örneklem . MoveSonraki();
Bitiş Döngüsü;

Örneklem . 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. Olası seçenekler:

  • EVET - ilk satır sütunların adları olarak algılanır. Değerlere isim ve kolon indeksi ile ulaşılabilir.
  • HAYIR - İlk satır veri olarak alınır. Değerlere yalnızca sütun dizini ile erişilebilir.

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

  • bağ;
  • emretmek;
  • kayıt seti;
  • 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üleyebiliyorsa, bunları programlamadan Excel'e kaydetmek mümkündür.

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

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

Verileri kaydetmek için dinamik listeler(örneğin, bir öğe listesi) şunları yapmanız gerekir:

  1. Komutu kullanarak bir elektronik tabloya veri çıkışı yapın Daha Fazla ⇒ Listeyi göster...;
  2. Elektronik tablo belgesini gerekli biçimde kaydedin.