1c da excel dasturining nomi nima. Qaysi biri yaxshiroq - 1C yoki Excel? Dasturlashsiz yuklash

1C da Excel faylini ochishning turli usullari mavjud va aksincha. Yangi boshlanuvchilar hujjatni boshqa formatda saqlash yoki maxsus dasturlardan foydalanish orqali oddiy operatsiyalarni afzal ko'radi. Ammo ma'lumotlarni bir dasturdan ikkinchisiga ko'rish va qayta ishlash uchun bir oz kuch sarflash va dasturiy vositalar bilan ishlashni o'rganishga arziydi. Ushbu asosiy dasturlash qobiliyatlari kelajakda odatiy vazifalardan qochishingizga yordam beradi.

1C da Excel hujjatlarini qanday ochish mumkin va aksincha

Microsoft Excel elektron jadval muharriri funksionallik jihatidan 1C buxgalteriya dasturlari mahsulotlaridan ustundir. Shuning uchun, 1C foydalanuvchilari elektron jadval muharririda ba'zi operatsiyalarni bajarishni afzal ko'rishadi va keyin ma'lumotlarni buxgalteriya dasturiga qaytarishadi. Va bu ajablanarli emas, chunki ilgari ko'plab kompaniyalarning buxgalteriya hisobi faqat Microsoft dasturlari yordamida amalga oshirilgan. Ammo korxonalarning biznes jarayonlarini avtomatlashtirishning hozirgi darajasi bilan ixtisoslashtirilgan dasturlardan voz kechish mumkin emas. Turli xil ilovalar o'rtasida o'zaro aloqani o'rnatish uchun quyidagi oddiy usullar mavjud:

    Joriy kompyuteringizda o'rnatilmagan dasturiy mahsulotlarning fayllari bilan shug'ullanishingiz kerak bo'lganda, eng oson yo'li Excel jadvallarini 1C formatiga va aksincha o'zgartirish uchun maxsus dasturdan foydalanishdir. Uni 1C mahsulotining veb-saytida topish mumkin.

    Agar sizning kompyuteringizda ham 1C, ham Excel bo'lsa, faylni "mahalliy" ilovasida qo'lda ochishingiz va keyin uni boshqa dastur formatida saqlashingiz mumkin. Odatda bu variant chop etiladigan yoki tartibni saqlashda mavjud.

    1C 7.7 foydalanuvchilari takomillashtirilgan jadval muharririga ega 1C 8 versiyasiga yangilashlari mumkin.

1C va Excel qanday qilib dasturiy jihatdan o'zaro ta'sir qilishi mumkin

1C va Excel o'rtasidagi o'zaro ta'sir Microsoft tomonidan ishlab chiqilgan OLE Automation texnologiyasidan foydalangan holda dastur darajasida amalga oshirilishi mumkin. Bu sizga turli xil dasturlarning skript tarjimonlaridan COM ob'ektlariga to'g'ridan-to'g'ri kirish imkonini beradi. Oddiy qilib aytganda, OLE sizga ishni bir dasturdan ikkinchisiga o'tkazish va keyin ishni asl ilovaga qaytarish imkonini beradi. Bu Microsoft elektron jadval muharriridan buxgalterlarga aynan shu narsa kerak.

OLE vositalaridan foydalanish uchun dasturchi boʻlish shart emas. Kod satrlari bilan birinchi tanishish xatolar bilan birga bo'lsa-da, tekshirish ularni aniqlashga yordam beradi va to'plangan tajriba kelajakda ularni oldini olishga yordam beradi. Quyida buxgalteriya dasturlarida Excel ma'lumotlari bilan ishlash uchun eng mashhur buyruqlar (ular ro'yxatlar deb ataladi) va aksincha.

Qanday qilib 1C da Excel faylini dasturiy ravishda ochish mumkin

Shunday qilib, agar ikkala dastur ham kompyuteringizda o'rnatilgan bo'lsa, ular o'rtasida ma'lumot almashmoqchi bo'lsangiz, u holda siz o'zaro ta'sirni dasturiy ravishda tashkil qilishingiz mumkin. Buni amalga oshirish uchun siz ikkala dasturni ishga tushirishingiz kerak va keyin 1C dan Excelga kirishni o'rnatish uchun OLE dan foydalaning:

  • Istisno

    Report(ErrorDescription() + "Bu kompyuterda Excel o'rnatilmagan!");

  • Urinishning oxiri.

Jadval muharririga kirish o'rnatildi, endi siz quyidagi buyruqlar yordamida kirishingiz kerak:

    maxsus hujjat:

    • Kitob = Excel.WorkBooks.Open(FilePath)

    • Sheet = Book.WorkSheets(SheetNumber);

  • shu jumladan ma'lum bir varaq raqami bilan:

    shu jumladan ma'lum bir varaq nomi bilan:

    • Sheet = Book.WorkSheets(SheetName);

    • Qiymat = Sheet.Cells(RowNumber, ColumnNumber).Value;

Faylning birinchi sahifasidan ma'lumotlarni o'qish uchun quyidagi ro'yxatlardan foydalaning:

    Excel = CreateObject("Excel.Application");

    Kitob = Excel.WorkBooks.Open(FilePath);

    Sheet = Book.WorkSheets(1);

    Jami ustunlar = Sheet.Cells(1,1).SpecialCells(11).Column;

    TotalRows = Sheet.Cells(1,1).SpecialCells(11).Row;

    Qator uchun = 1 TotalRows Loop bo'yicha

    • Ustun uchun = 1 Jami ustunlar aylanishi bo'yicha

      Qiymat = Abbr(Sheet.Cells(Satr,Column).Value);

      EndCycle;

    EndCycle;

Esda tuting, faylga yo'l to'liq ko'rsatilishi kerak. Hujjat nomini saqlashda siz \, /, :, *, ?, ", >, kabi belgilarni kirita olmaysiz.< и |.

Qanday qilib 1C faylini Excel orqali dasturiy ravishda ochish mumkin

Excelda ma'lumotlarni yozib olish uchun sizga kerak:

    yoki mavjud hujjatni oching:

    • Kitob = Excel.WorkBooks.Open(Faylga yo'l) - 1C dan Excel faylini o'qishga o'xshash;

    yoki yangisini qo'shing:

    • Ishchi kitob = Excel.WorkBooks.Add();

    Yangi hujjatda yangi varaq yaratishingiz mumkin:

    • Sheet = Book.Sheets.Add();

    va hujayraga yangi qiymat qo'shing:

    • Sheet.Cells(RowNumber, ColumnNumber).Value = Qiymat; (OLE yordamida qiymatlarni yozish usullari Internetda batafsil tavsiflangan).

  • Book.SaveAs(FilePath);

    Istisno

    Hisobot(ErrorDescription()+"Fayl saqlanmadi!");

    Urinishning oxiri.

Elektron jadval muharriri bilan ishlashni tugatgandan so'ng, maxsus buyruq yordamida chiqing (Excel.Application.Quit();). Ushbu usul keyingi ish paytida kompyuter resurslarini tejashga yordam beradi.

1C va Excel o'rtasida ma'lumot almashishda xavflar

1C va Excel turli kompaniyalar tomonidan ishlab chiqilgan va ma'lumotlar bilan ishlashning turli usullaridan foydalanadi. Shuning uchun, jadvallarni bir dasturdan boshqasiga o'tkazishda quyidagi tuzoqlarni unutmang:

    Kasr sonlardagi turli ajratgichlar. Microsoft o'nlik sonlarni vergul yordamida ajratadi. Shuning uchun, jadvallarni buxgalteriya dasturidan o'tkazishda, sanalarning ko'pligi va boshqa chalkashliklarga hayron bo'lmang. Shunchaki, buxgalteriya dasturida kasrlarni yozishda nuqta ishlatilishi mumkin, Microsoft elektron jadval muharriri uni sana ajratuvchi sifatida talqin qiladi va 15.5 15-mayga aylanadi. Elektron jadval muharririda buxgalteriya ma'lumotlarini qayta ishlash uchun ajratuvchi vergul bilan almashtirilishi kerak.

    Excel-dan 1C-ga ma'lumotlarni uzatishda, buxgalteriya dasturida bo'lmagan Excel konstantalari noto'g'ri ko'rsatilishi mumkin. Ularni shifrlash uchun siz elektron jadval muharriri Yordamiga yoki disk raskadrovka rejimiga o'tishingiz va turli konstantalarning raqamli ifodasini tekshirishingiz kerak.

Agar siz katta hajmdagi ma'lumotlarni almashishingiz kerak bo'lsa yoki xatolardan xalos bo'lmasangiz, yordam uchun Setby kompaniyasining professionallariga murojaat qiling. Biz sizning muammolaringizni dastur darajasida hal qilishda va ishingiz uchun zarur bo'lgan buyruqlarni tushunishda yordam beramiz.

Ko'pincha, potentsial mijozlar bilan muloqotda bo'lganimda, men ofis paketidagi stol funksiyalari ular uchun etarli ekanligini eshitaman va ular 1C dasturlarida nuqta ko'rmaydilar. Buning sababi shundaki, ba'zi odamlar hali ham bu yechimni faqat buxgalterlar uchun dasturlar bilan bog'lashadi, bu to'g'ri emas.

Excel universal va ommaviy ishlab chiqarilgan mahsulotdir, siz bu bilan bahslasha olmaysiz. Tor mutaxassislarga mo'ljallangan 1C ishlanmalaridan farqli o'laroq, ushbu dasturdan deyarli hamma foydalanishi mumkin. "Yashil" jadvallardan foydalanib, siz qulay bo'lgan kerakli funksionallikni bemalol amalga oshirishingiz mumkin: bu erda barcha o'zaro hisob-kitoblar, boshqaruv hisobi, hatto tartibga solinadiganlari, ma'lumotlarni vizualizatsiya qilishning katta tanlovi, mustaqil ravishda amalga oshirish imkoniyati mavjud bo'lgan tashkilotning moliyaviy modeli. turli xil qo'shimchalar yordamida dasturning imkoniyatlarini kengaytiring - hamma narsa sizning qo'lingizda , hamma narsa noldan ...

Agar siz o'z biznesingizni endigina boshlayotgan bo'lsangiz, mijozlar, etkazib beruvchilar, nazorat qiluvchi organlar bilan munosabatlar to'g'risidagi jadvaldagi kerakli ma'lumotlarni asta-sekin hisobga olgan holda, o'zingizning o'zboshimchalik bilan tuzilmangizni yaratsangiz yaxshi bo'ladi, ammo ma'lumotlar bazasi hajmi va xodimlar soni bo'lganda nima qilish kerak. o'nlablarda? Hali ham o'z parametrlaringiz bo'yicha hisoblaysizmi? Men qulaylikni odat bilan chalkashtirmaslik tarafdoriman, bu ko'pincha biznesni tizimlashtirishga va, demak, uni optimallashtirishga xalaqit beradi.

Aniqlik uchun, keling, buxgalteriya hisobini avtomatlashtirish uchun qanday ehtiyojlar paydo bo'lishi mumkinligini tasavvur qilaylik, masalan, savdo:

1. Muayyan davr ichida sotish tahlili.

Savdo bo'limi boshlig'i savdo ma'lumotlarini tahlil qilishi mumkin. U uchun reja amalga oshirilmoqdami yoki yo'qmi, uning strategiyalari qanchalik samarali ekanligini tushunish muhimdir, natijada u samarasiz bo'lgan taqdirda ishga o'z vaqtida tuzatishlar kiritishi mumkin.

2. Omborlar hisobi.
Sotish uchun zaxiradagi tovarlar mavjudligini, qaysi tovarlarni bron qilish mumkin, qaysilari zaxirada yo'qligini va nimaga buyurtma berish kerakligini tushunish muhimligini tushuntirishim kerakmi? Menimcha, bu erda hamma narsa aniq.

3. Kontragentlar ma'lumotlar bazasini yuritish.
Egasi faqat shu yerda va hozir sotib olish mumkin bo'lgan narsalarni sotsa ham, bu B2C sektoriga xos bo'lsa, u holda etkazib beruvchilar bazasi bilan biroz boshqacha munosabatda bo'ladi - shartnomalar, birlamchi... Tasavvur qiling-a, hamma narsa kompaniya bilan bog'langanda qanchalik qulay. yetkazib beruvchi avtomatik ravishda u darhol bitta ma'lumotlar bazasida ko'rsatiladimi? Omborga mas'ul bo'lgan mudir darhol omborda tovarlar mavjudligini ko'radi, hujjatlar uchun mas'ul bo'lgan boshqa xodim ularning mavjudligi, shartnoma munosabatlari bo'yicha barcha majburiyatlar bajarilmoqdami yoki yo'qmi, kimdan va qancha qarzdorligi to'g'risidagi ma'lumotlarni nazorat qiladi. Va agar nomuvofiqliklar bo'lsa, siz ma'lum bir davr uchun ma'lumotlarni moslashtirishingiz mumkin, natijani bir daqiqadan kamroq vaqt ichida yaratishingiz mumkin.

4. Tashkilotning foydasi.
Foyda hisobotini yaratish qiyin bo'lmaydi, chunki xarajatlar va daromadlar haqidagi barcha ma'lumotlar allaqachon ma'lumotlar bazasida mavjud. Agar ma'lumotlar o'z vaqtida, hech bo'lmaganda talab qilingan sanaga kiritilgan bo'lsa. Bu erda asosiy omil - foydalanuvchining shaxsiy javobgarligi.

Agar sizda mijozlar va etkazib beruvchilar ko'p bo'lmasa, Excel sizga haqiqatan ham mos keladi, chunki jadvalda o'zingizning diagrammalaringizni loyihalash va ularni to'ldirish, so'ngra hujjatlarni kompyuterdagi turli papkalarga tarqatish uchun ko'p vaqt bor: shartnomalar, etkazib beruvchilar, mijozlar, mahalladagi mijozlar, ishlab chiqilayotgan mijozlar, o'chirilishi kerak bo'lgan mijozlar - papka ichida papkalarni yaratishning cheksiz va qiziqarli jarayoni. Va agar ma'lumotlar juda ko'p bo'lsa, ma'lumotlar bazasini kuzatib borish qulaymi? Albatta, har doim istisnolar mavjud, ba'zida moliyaviy ma'lumotlar faqat Excelda saqlanadigan katta aylanmalarga ega bo'lgan tashkilotlar mavjud. Bo'limlar o'rtasida ma'lumotlarni almashish va birlashtirish uchun ularga qancha vaqt ketadi? Men javob beraman: juda ko'p.

Ixtiyoriy tizimda tashkil etilgan ko'p sonli Excel hujjatlarida kerakli narsani qanday tezda topishni tasavvur qila olmayman. Masalan, soliq idorasidan talablar uchun hujjatlarni taqdim etishda. Ma'lumotlarning hammasi tarqalib ketganda, buxgalter nazorat qiluvchi organlarga hisobotlarni qanday taqdim etadi? Buxgalteriya hisobi, albatta, autsorsing bo'lishi mumkin va ba'zi biznes egalari, afsuski, balanslarni muvozanatlashtirar ekan, ushbu mutaxassis qanday jarayonlarga ega bo'lishi mumkinligiga e'tibor bermasliklari mumkin. Ammo shunday bo'lsa ham, hujjatlar almashinuvi jarayoni qanday tashkil etilgan? Tashqi xodim ma'lumotlar tuzilmasini qanchalik tez tushunadi?

Men 1C haqida ham shunday deya olmayman, chunki u yerdagi barcha ma'lumotlar tuzilgan va o'zaro bog'langan:

    Masofaviy va to'liq vaqtli xodimlar uchun yagona ma'lumotlar bazasi, unda siz barcha standartlashtirilgan va moslashtirilgan hujjatlar bilan ishlashingiz mumkin;
    Nazorat qiluvchi organlarga hisobot berish dasturda allaqachon aks ettirilgan ma'lumotlar asosida yaratiladi, yakuniy natijalarni olish uchun ko'plab fayllarni ochish, bir nechta qiymatlarni bitta jadvalga birlashtirishning hojati yo'q.
"1C" yaxshi ma'noda, buxgalteriya hisobining odatiy vazifalariga va faoliyat sohasiga qarab barcha tashkiliy jarayonlarni avtomatlashtirishga qaratilgan ko'p vazifali tizimdir. Bu erda asosiy so'z tizimdir. Hech kim sizni Excelda biznes tizimingizni tashkil etishingizga to'sqinlik qilmayapti, lekin vaqt va moliyaviy xarajatlarni optimallashtirish uchun deyarli barcha ehtiyojlarni qoplaydigan, ishingizni tizimlashtirishga yordam beradigan yechimlar mavjud bo'lganda, nima uchun g'ildirakni qaytadan ixtiro qilish kerak?

Excel himoyasida

Ehtimol, men "yashil" jadvallarda ma'lumotlarni yaratishga qarshiman. Arzimaydi. Aslida, men o'zim tez-tez Excel-da biron bir ish bilan shug'ullanaman: agar menga o'zboshimchalik bilan hisob-kitoblar kerak bo'lsa, agar menga ma'lumotlarni mijoz bo'yicha segmentlash kerak bo'lsa, 1C-da bo'lmagan parametrlar asosida tahlil qilish kerak bo'lsa - ha, bu sodir bo'ladi - men "Excel" ga o'taman. Oddiy qilib aytganda, jadvallarda men hisob-kitoblar va nostandart tahlillar qilaman, lekin keyin baribir 1C da hamma narsani tizimlashtiraman.

Va keyin, 1C-dan yuklab olingan fayllarni ko'rish uchun sizga hali ham Excel kerak bo'ladi, chunki 1C-dagi ma'lumotlar elektron jadvallarda saqlanadi. Sizningcha, bu shafqatsiz doiradir? Men boshqacha aytaman: "1C" va "Excel" ikkita sherik kabi yonma-yon ketadi, lekin ularning har biri o'z maqsadiga ega, ular bir-birini yaxshi to'ldiradi, lekin bir-birini almashtirmaydi.

Agar siz o'z ishlaringizni davlatimizning qonunchilik tizimini hisobga olgan holda, biznesning o'ziga xosligi va yo'nalishini hisobga olgan holda tizimlashtirishingiz kerak bo'lsa, ayniqsa katta hajmdagi ma'lumotlar haqida gap ketganda, sizga 1C kerak bo'ladi. Agar sizga o'zboshimchalik bilan hisob-kitoblar, noldan strategiya yaratish, nostandart tahliliy ma'lumotlarni vizualizatsiya qilish kerak bo'lsa, Excel sizning xizmatingizda. Ammo bu echimlar bilan bir vaqtning o'zida ishlash ancha qulayroq.


Yakuniy natija nima - "1C" yoki "Excel"?

Eng boshida, agar savol avtomatlashtirish uchun moliya haqida bo'lsa, asosiy 1C dasturlari unchalik qimmatga tushmasa ham, men Exceldan foydalanardim. Katta afzallik shundaki, "yashil" jadvallar ma'lumotlarini yo'qotmasdan 1C ga yuklash mumkin. Ammo siz masshtablashtirganingizda, men sizga biznes jarayonlarini avtomatlashtirish dasturlariga e'tibor berishingizni maslahat beraman. Ularning ko'pi bor va u 1C bo'lishi shart emas ...

"1C" ga o'tish sizning resurslaringizni optimallashtirish, shu jumladan mijozlar va etkazib beruvchilar va nazorat organlari bilan munosabatlar bilan bog'liq muammolarni avtomatlashtirish kerakligini tushunganingizda amalga oshirilishi mumkin. Umuman olganda, ma'lumotni qayta ishlash ko'p vaqt talab qiladigan va Excel fayllari kiritilgan ma'lumotlar hajmiga bardosh bera olmasa, biznes samaradorligini oshirish uchun ish jarayonlaringizni sozlang.

Biroq, har bir "1C" sizga mos kelmasligi mumkin, siz turli omillarni hisobga olishingiz kerak: biznesning o'ziga xosligi va ko'lami, ko'lami, kundalik vazifalarga bo'lgan ehtiyoj, minimallashtirilishi kerak bo'lgan tartib. Hamma narsa individualdir. Haqiqat, yuqorida aytganimdek, "1C" va "Excel" o'rtasida - u bir-birini to'ldiradi.

Balki hammasi shu. Ammo agar sizda biron bir savol bo'lsa, biz bilan bog'laning, biz sizga yordam berishga harakat qilamiz. Muvaffaqiyatli biznes jarayonlari, hamkasblar!

Bu usul oddiy. Uning mohiyati shundaki, ob'ekt Jadvalli hujjat usullari mavjud:

  • Yozing (< ИмяФайла>, < ТипФайлаТаблицы >) faylga ma’lumotlarni yuklash;
  • O'qing (< ИмяФайла>, < СпособЧтенияЗначений >) fayldan ma'lumotlarni yuklash uchun.

Diqqat!

Write() usuli mijozda ham, serverda ham mavjud. Read() usuli faqat server tomonida mavjud. Buni eslash kerak
mijoz va server o'zaro ta'sirini rejalashtirishda.

Elektron jadval hujjatini faylga saqlash misolini ko'rib chiqamiz. TabularDocument ob'ektini istalgan usulda yaratish va to'ldirish kerak va tushirish faylga faqat bitta qator bilan amalga oshiriladi:

TabDoc . Write(FilePath, TabularDocumentFileType. XLSX);

Bu yerga TabDoc- yaratilgan elektron jadval hujjati, Faylga yo'l- yuklanadigan fayl nomi, TabularDocumentFileType.XLSX— yaratilgan fayl formati. Quyidagi Excel formatlari qo'llab-quvvatlanadi:

  • XLS95 - Excel 95 formati;
  • XLS97 - Excel 97 formati;
  • XLSX Excel 2007 formatidir.

TabDoc = Yangi jadval hujjati;
TabDoc . Read(PathToFile, Method of ReadingTabularDocumentValues.Value);

Bu yerga Faylga yo'l— yuklab olingan Excel fayliga yo'l. Jadvalli hujjatning qiymatlarini o'qish usuli.Qiymat manba hujjatdan o'qilgan ma'lumotlar qanday talqin qilinishi kerakligini belgilaydi. Mavjud variantlar:

  • Ma'nosi;
  • Matn.

OLE orqali almashish

OLE avtomatlashtirish texnologiyasi orqali almashinuv Excel fayllari bilan dasturiy jihatdan ishlashning eng keng tarqalgan variantidir. Bu Excel tomonidan taqdim etilgan barcha funksiyalardan foydalanish imkonini beradi, lekin boshqa usullarga nisbatan sekinroq. OLE orqali almashish uchun MS Excel dasturini o'rnatish talab qilinadi:

  • Yakuniy foydalanuvchining kompyuterida, agar almashinuv mijoz tomonida sodir bo'lsa;
  • 1C: Enterprise server kompyuterida, agar almashinuv server tomonida sodir bo'lsa.

Misol tushirish:

// COM ob'ektini yarating
Excel = Yangi COMObject("Excel.Application");
// Ogohlantirishlar va savollarni o'chirib qo'ying
Excel . DisplayAlerts = False;
// Yangi kitob yarating
Kitob = Excel. Ish kitoblari. Qo'shish ();
// Birinchi varaqdagi joylashuv
Varaq = Kitob. Ishchi varaqlar(1);

// Yacheykaga qiymat yozing
Varaq . Hujayralar (qator raqami, ustun raqami). Qiymat = CellValue;

// Faylni saqlang
Kitob . SaveAs (Fayl nomi);


Excel . Chiqish();
Excel = 0;

Misollar o'qish:

// -- 1-VARIANT --

// COM ob'ektini yarating
Excel = Yangi COMObject("Excel.Application");
// Kitob oching
Kitob = Excel. Ish kitoblari. Ochiq( Faylga yo'l);

Varaq = Kitob. Ishchi varaqlar(1);

// Kitobni yopish
Kitob . Yopish (0);

// Excelni yoping va xotirani bo'shating
Excel . Chiqish();
Excel = 0;

// —— 2-VARIANT ——

// Kitob oching
Kitob = GetCOMObject( Faylga yo'l);
// Kerakli varaqda joylashtirish
Varaq = Kitob. Ishchi varaqlar(1);

// Hujayra qiymatini o'qing, odatda hujayraning o'tish davri bu erda joylashgan
CellValue = varaq. Hujayralar (qator raqami, ustun raqami). Qiymat;

// Kitobni yopish
Kitob . Ilova. Qui t();

Uchun chetlab o'tish Excel ish varag'ining barcha to'ldirilgan satrlari uchun siz quyidagi usullardan foydalanishingiz mumkin:

// -- 1-VARIANT --
Qatorlar soni = varaq. Hujayralar (1 , 1 ). Maxsus hujayralar(11). Qator;
Qator raqami uchun = 1 qatorlar soni bo'yicha tsikl
CellValue = varaq. Hujayralar (qator raqami, ustun raqami). Qiymat;
EndCycle;

// —— 2-VARIANT ——
Qator raqami = 0;
Haqiqat aylanishi paytida
RowNumber = RowNumber + 1;
CellValue = varaq. Hujayralar (qator raqami, ustun raqami). Qiymat;
Agar ValueFilled EMAS (CellValue) Keyin
Bekor qilish;
endIf;
EndCycle;

Varaqning barcha qatorlarini ketma-ket bosib o'tish o'rniga, mumkin barcha ma'lumotlarni massivga tashlash va u bilan ishlash. Ushbu yondashuv katta hajmdagi ma'lumotlarni o'qishda tezroq bo'ladi:

Jami ustunlar = varaq. Hujayralar (1 , 1 ). Maxsus hujayralar(11). Ustun;
Jami qatorlar = Barg. Hujayralar (1 , 1 ). Maxsus hujayralar(11). Qator;

Mintaqa = Barg. Diapazon(Varaq. Yacheykalar(1, 1), Sheet. Yacheykalar(TotalRows,TotalColumns));
Ma'lumotlar = Mintaqa. Qiymat. Yukni tushirish();

Quyidagi jadvalda OLE orqali Excel bilan ishlashning eng mashhur xususiyatlari va usullari ko'rsatilgan:

Harakat Kod Izoh
Ilova bilan ishlash
Ilova oynasi ko'rinishini sozlash Excel . Ko'rinadigan= Noto'g'ri;
Ogohlantirish chiqish rejimini o'rnatish (ko'rsatish / ko'rsatmaslik) Excel . Ogohlantirishlarni ko'rsatish= Noto'g'ri;
Ilovani yopish Excel . Chiqish();
Kitob bilan ishlash
Yangi kitob yaratish Kitob = Excel. Ish kitoblari. Qo'shish();
Mavjud ish kitobini ochish Kitob = Excel. Ish kitoblari. Ochish (Fayl nomi);
Kitobni saqlash Kitob . SaveAs (Fayl nomi);
Kitobni yopish Kitob . Yopish (0);
Bir varaq bilan ishlash
Joriy varaqni sozlash Varaq = Kitob. Ish varaqlari (SheetNumber);
Ismni sozlash Varaq . Ism = Ism;
Himoyani sozlash Varaq . Himoya qilish();
Himoyani olib tashlash Varaq . Himoyani olib tashlash();
Sahifa yo'nalishini o'rnatish Varaq . Sahifa sozlamalari. Orientatsiya = 2; 1 - portret, 2 - landshaft
Chap chegarani o'rnatish Varaq . Sahifa sozlamalari. LeftMargin = Excel. SantimetreToPoints(Santimetr);
Yuqori chegarani o'rnatish Varaq . Sahifa sozlamalari. TopMargin = Excel. SantimetreToPoints(Santimetr);
To'g'ri chegarani o'rnatish Varaq . Sahifa sozlamalari. RightMargin = Excel. SantimetreToPoints(Santimetr);
Pastki chegarani o'rnatish Varaq . Sahifa sozlamalari. BottomMargin = Excel. SantimetreToPoints(Santimetr);
Satrlar, ustunlar, katakchalar bilan ishlash
Ustun kengligini sozlash Varaq . Ustunlar (ustun raqami). ColumnWidth = Kenglik;
Bir qatorni o'chirish Varaq . Qatorlar (Qator raqami). Oʻchirish();
Ustunni olib tashlash Varaq . Ustunlar (ustun raqami). O'chirish();
Hujayrani o'chirish Varaq . Hujayralar (qator raqami, ustun raqami). Oʻchirish();
Qiymatni belgilash Varaq . Hujayralar (qator raqami, ustun raqami). Qiymat = Qiymat;
Hujayralarni birlashtirish Varaq . Diapazon(Varaq. Hujayralar(Qator raqami, Ustun raqami), varaq. Yacheykalar(1-qator raqami, 1-ustun raqami)). Birlashtirish();
Shriftni sozlash Varaq . Hujayralar (qator raqami, ustun raqami). Shrift. Ism = Shrift nomi;
Shrift o'lchamini o'rnatish Varaq . Hujayralar (qator raqami, ustun raqami). Shrift. Hajmi = Shrift hajmi;
Qalin shriftni sozlash Varaq . Hujayralar (qator raqami, ustun raqami). Shrift. Qalin = 1 ; 1 - qalin, 0 - normal
Kursivlarni o'rnatish Varaq . Hujayralar (qator raqami, ustun raqami). Shrift. Kursiv = 1 ; 1 - kursiv, 0 - normal
Tagi chizilgan shriftni o'rnatish Varaq . Hujayralar (qator raqami, ustun raqami). Shrift. tagiga chizish = 2 ; 2 - tagiga chizilgan, 1 - yo'q

Qaysi xususiyatni o'zgartirish kerakligini yoki qaysi usulni chaqirish kerakligini bilish uchun siz foydalanishingiz mumkin makroslar Excel. Agar siz kerakli harakatlar bilan makrosni yozsangiz, u holda yozilgan so'lning VBA kodiga qarashingiz mumkin.

COMSafeArray-dan foydalanish

1C dan Excelga katta hajmdagi ma'lumotlarni yuklab olishda siz ob'ektni tezlashtirish uchun foydalanishingiz mumkin COMSafeArray. Sintaksis yordamchisining ta'rifiga ko'ra, COMSafeArray ko'p o'lchovli massiv ustidagi ob'ektni o'rash vositasidir. SafeArray COMdan. COM ob'ektlari o'rtasida ma'lumot almashish uchun SafeArray yaratish va foydalanish imkonini beradi. Oddiy qilib aytganda, bu OLE texnologiyasidan foydalangan holda ilovalar o'rtasida almashish uchun ishlatilishi mumkin bo'lgan qiymatlar to'plami.

// COMSafeArray yarating
ArrayCom = Yangi COMSafeArray("VT_Variant", TotalColumns, TotalRows);
// COMSafeArray-ni to'ldiring
Uchun Sahifa = 0 TotalLines bo'yicha - 1 tsikl
Uchun Raqam = 0 Jami ustunlar - 1 tsikl
ArrayCom . SetValue (hisob, sahifa, qiymat);
EndCycle;
EndCycle;
// Excel ish varag'i maydonini COMSafeArray-dan qiymatlarga belgilash
Varaq . Diapazon(Varaq. Hujayralar(1, 1), Sheet. Yacheykalar(Jami qatorlar, umumiy ustunlar)). Qiymat = ArrayCom;

ADO orqali almashish

Excel fayli, ADO orqali almashtirilganda, SQL so'rovlari yordamida kirish mumkin bo'lgan ma'lumotlar bazasi. MS Excel dasturini o'rnatish shart emas, lekin sizda ODBC drayveri bo'lishi kerak, unga kirish mumkin. Amaldagi ODBC drayveri faylga ulanish satrini belgilash orqali aniqlanadi. Odatda, kerakli drayver allaqachon kompyuterda o'rnatilgan.

ADO orqali almashish OLE orqali almashishdan sezilarli darajada tezroq, lekin yuklashda Excel funksiyasidan hujayralarni loyihalash, sahifalarni joylashtirish, formulalarni o'rnatish va hokazolar uchun foydalanish mumkin emas.

Misol tushirish:


Ulanish = Yangi COMObject("ADODB.Connection");


Murakkab . ConnectionString = "

|Ma'lumotlar manbai=" + Fayl nomi + ";
;
Murakkab . Ochiq(); // Ulanishni oching

// Buyruq uchun COM ob'ektini yarating
Buyruq = Yangi COMObject("ADODB.Buyruq");
Jamoa

// Jadval yaratish uchun buyruq matnini tayinlash
Jamoa . Buyruq matni = "JADVAL YORATISH [Vaq1] (1-ustun belgi(255), 2-ustun sanasi, 3-ustun int, 4-ustun float)";
Jamoa . Execute(); // Buyruqni bajaring

// Jadval qatorini qo'shish uchun buyruq matnini belgilash
Jamoa . Buyruq matni = "[Shaxs1] INSERT INTO (1-ustun, 2-ustun, 3-ustun, 4-ustun) qiymatlarini ('abvwhere', '8/11/2017', '12345', '12345,6789')";
Command.Execute(); // Buyruqni bajaring

// Buyruqni olib tashlang va ulanishni yoping
Buyruq = Aniqlanmagan;
Murakkab . Yopish();
Ulanish = Aniqlanmagan;

Yangi varaq yaratish va uning tuzilishini shakllantirish uchun siz ob'ektlardan foydalanishingiz mumkin ADOX.Katalog Va ADOX. Jadval. Bunday holda, kod quyidagicha ko'rinadi:

// Kitob bilan ishlash uchun MAQOMOTI ob'ektini yarating
Kitob = Yangi COMObject("ADOX.Catalog");
Kitob . ActiveConnection = Ulanish;

// Varaqdagi ma'lumotlar strukturasi bilan ishlash uchun MAQOMOTI ob'ektini yarating
Jadval = Yangi COMObject("ADOX.Table");
Jadval . Ism = "Shaxs 1" ;
Jadval . Ustunlar. Ilova("1-ustun", 202);
Jadval . Ustunlar. Qo'shimchalar ("2-ustun", 7);
Jadval . Ustunlar. Qo'shish ("3-ustun", 5);
Jadval . Ustunlar. Qo'shish ("4-ustun", 5);

// Ishchi daftarda tasvirlangan strukturaga ega varaq yarating
Kitob . Jadvallar. Qo'shish (jadval);
Jadval = Aniqlanmagan;
Kitob = Aniqlanmagan;

Yuqoridagi misolda, usulda

Jadval . Ustunlar. Qo'shish(“1-ustun”, 202);

ikkinchi parametr ustun turini belgilaydi. Parametr ixtiyoriy, bu erda ustun turi qiymatlari mavjud:

  • 5 - adDouble;
  • 6 - adCurrency;
  • 7 - qo'shilgan sana;
  • 11 - adBoolean;
  • 202 - adVarWChar;
  • 203 - adLongVarWChar.

Misol o'qish:

// Ulanish uchun MAQOMOTI ob'ektini yarating
Ulanish = Yangi COMObject("ADODB.Connection");

// Ulanish qatorini o'rnating
Murakkab . ConnectionString = "
|Provayder=Microsoft.ACE.OLEDB.12.0;
|Ma'lumotlar manbai=" + Fayl nomi + ";
|Kengaytirilgan xususiyatlar=""Excel 12.0 XML;HDR=HA"";";
Murakkab . Ochiq(); // Ulanishni oching

// Tanlovni qabul qilish uchun MAQOMOTI ob'ektini yarating
Tanlang = Yangi COMObject("ADODB.Recordset");
RequestText = “[Sheet1$] dan * TANLANG”;

// so'rovni bajaring
Namuna . Ochish (QueryText, Connection);

// Namuna natijasini chetlab o'tish
Hali tanlov emas. EOF() tsikli
1-ustun qiymati = Tanlash. Maydonlar. Element (“1-ustun”). Qiymat ; // Ustun nomi bo'yicha kirish
Ustun2Value = Tanlash. Maydonlar. Element (0). Qiymat; // Ustun indeksi bo'yicha kirish
Namuna . MoveNext();
EndCycle;

Namuna . Close();
Namuna = Aniqlanmagan;
Murakkab . Close();
Ulanish = Aniqlanmagan;

Ulanish satrida parametr HDR varaqdagi birinchi qator qanday qabul qilinishini belgilaydi. Mumkin variantlar:

  • HA - birinchi qator ustun nomlari sifatida qabul qilinadi. Qiymatlarga nom va ustun indeksi bo'yicha kirish mumkin.
  • YO'Q - birinchi qator ma'lumotlar sifatida ko'rib chiqiladi. Qiymatlarga faqat ustun indeksi orqali kirish mumkin.

Bu misollar faqat bir nechta ADO obyektlarini qamrab oladi. ADO ob'ekt modeli quyidagi ob'ektlardan iborat:

  • ulanish;
  • Buyruq;
  • rekordlar to'plami;
  • Yozib olish;
  • Maydonlar;
  • Oqim;
  • Xatolar;
  • parametrlar;
  • Xususiyatlari.

Dasturlashsiz yuklash

1C dan Excelga ma'lumotlarni saqlash uchun har doim ham dasturlashga murojaat qilish tavsiya etilmaydi. Agar Enterprise rejimida foydalanuvchi yuklab olish uchun zarur bo'lgan ma'lumotlarni ko'rsata olsa, ularni dasturlashsiz Excelda saqlash mumkin.

Elektron jadval hujjatini (masalan, hisobot natijasi) saqlash uchun siz buyruqni chaqirishingiz mumkin Saqlash yoki Sifatida saqlash… Asosiy menyu.

Ochilgan oynada siz saqlangan faylning katalogini, nomini va formatini tanlashingiz kerak.

Dinamik ro'yxatlardan (masalan, elementlar ro'yxati) ma'lumotlarni saqlash uchun siz:

  1. Buyruq yordamida ma'lumotlarni elektron jadval hujjatiga chiqarish Batafsil ⇒ Roʻyxat...;
  2. Elektron jadval hujjatini kerakli formatda saqlang.

1C da MS Excel fayllari bilan ishlashning 2 usuli mavjud: MAQOMOTI ob'ekti va elektron jadval hujjati ob'ektidan foydalangan holda o'rnatilgan 1C vositalari orqali. Keling, ushbu usullarning ikkalasini ham batafsil ko'rib chiqaylik.

1. COM ob'ekti orqali ishlash.

Ushbu usul o'rnatilgan MS Excelni talab qiladi va agar siz serverda fayl bilan ishlayotgan bo'lsangiz, u holda MS Excel serverda o'rnatilishi kerak, agar mijozda bo'lsa, mijoz tomonidan MS Excel ham talab qilinadi.

Misol (siz uni maqolaning oxirida matn shaklida ko'rishingiz mumkin):

Shuni ta'kidlash kerakki, "Excel.Application" COM ob'ekti tomonidan taqdim etilgan barcha ob'ektlar, usullar va xususiyatlar VBA, MS Office dasturlash tilining ob'ektlari, usullari va xususiyatlari hisoblanadi.

Eslatma:

Ba'zan siz mavjud shablon bilan ishlashingiz kerak bo'ladi. Keyin biz ushbu shablonni barcha kerakli foydalanuvchilar unga kirish imkoniga ega bo'lishi uchun biron bir joyda saqlashimiz kerak. Biroq, oddiyroq yechim bor, shablonni ikkilik tartib sifatida saqlang.

2. 1C jadvalli hujjat bilan ishlash.

1C elektron jadval hujjati 8-platformadan boshlab yozish uchun MS Excel formatini qo'llab-quvvatlaydi, lekin faqat 8.3.6 platformasidan boshlab ochish uchun. Bundan tashqari, ochilganda, barcha varaqlar bitta elektron jadval hujjatiga yuklanadi. 8.3.10 versiyasidan boshlab, yuklashda turli varaqlar turli joylar sifatida yuklanadi.

Misol kiritish juda oddiy va alohida e'tibor talab qilmaydi:

Biroq, bu erda bizda muammo bor. Excel ish kitobida 1C dan yozishda varaq nomlarini ko'rsatish sukut bo'yicha o'chirib qo'yilgan.

Ushbu muammoni ikki usulda hal qilish mumkin, 1 - kitobning o'zida, sozlamalarda varaqlarni ko'rsatishni yoqing (hamma foydalanuvchilar bunga rozi bo'lmaydi), 2 - buni COM ob'ekti orqali bajaring (bizga yana MS Excel o'rnatilishi kerak) ).

Ushbu kichik qo'shimchadan so'ng, varaq yorliqlari MS Excel faylida ko'rinadi.

MS Excel-ni o'qish unchalik oson ish emas, chunki o'qish usuli faqat serverda yoki qalin mijozda mavjud. Buning uchun MS Excel faylini serverga o'tkazishimiz kerak.

&OnClient

Hujjat yaratish protsedurasi()

Istisno

EndAttempt;

Kitob = Excel.WorkBooks.Add(); //Yangi MS Excel ishchi kitobini yarating

Sheet = Book.WorkSheets.Add(); // Varaq qo'shing

Sheet.Name = "1C dan misol"; //Varaq nomini o'rnating

Sheet.Cells(1,1).Value = "Formula yarataylik";!}

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");

Book.Close();

Jarayonning oxiri

&Serverda

GetLayoutServer funksiyasi()

Qaytish FormAttributesValue("Object").GetLayout("TemplateForUpload"); //Shunday qilib biz tashqi ishlov berish tartibini olamiz;

EndFunction

&OnClient

Jarayon ishi()

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

Istisno

Hisobot("Excel komponentini ulashga urinish muvaffaqiyatsiz tugadi. Excel bu kompyuterda o'rnatilmagan bo'lishi mumkin!");

EndAttempt;

Layout = GetLayoutServer();

Layout.Write(TemporaryFileName);

Savolingiz bormi yoki maslahatchi yordamiga muhtojmisiz?

Kitob = Excel.WorkBooks.Open(TemporaryFileName);

SheetTemplate = Book.WorkSheets(1);

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

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

SheetTemplate.NumberFormat = "dd/aa/yy;@"; // Sana formatini bering, bu format MS Excelda makrosni yozish orqali olingan

SheetTemplate.Columns("B:B").EntireColumn.AutoFit; // Sana to'liq mos kelishi uchun ustunni cho'zing

Book.SaveAs(Fayl nomi);

Book.Close();

Jarayonning oxiri

&OnClient

Jarayonning oxiri

&OnClient

WriteTabularDocument() protsedurasi

TabularDocument = New TabularDocument();

TabularDocument.Area("R1C1").Text = "MS Excel-dagi 1C-dan olingan yozuvga misol";

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

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

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

Excel.Visible = 0;

Excel.ActiveWindow.DisplayWorkbookTabs = 1;

Excel.ActiveWindow.TabRatio = 0,6;

Excel.ActiveWorkbook.Save();

Excel.Application.Quit()

Jarayonning oxiri

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

Manzil=PlaceInTemporaryStorage(BinaryData,ThisForm.UniqueIdentifier);

TabularDocument = UploadOnServer(Manzil);

TabularDocument.Show();

Jarayonning oxiri

&Serverda

UploadOnServer funktsiyasi (manzil)

TemporaryFileName = GetTemporaryFileName("xlsx");

FileData = GetFromTemporaryStorage(Manzil);

FileData.Write(TemporaryFileName);

TabularDocument = New TabularDocument();

TabularDocumentni qaytarish;