خواندن یک فایل اکسل از 1s 8.3. کدام بهتر است - 1C یا Excel؟ گزینه های پردازش انتقال DIY

در 1C 2 راه برای کار با فایل های MS Excel وجود دارد: از طریق یک شی COM و ابزارهای داخلی 1C با استفاده از یک شی سند صفحه گسترده. بیایید هر دوی این روش ها را با جزئیات بیشتری بررسی کنیم.

1. از طریق یک شی COM کار کنید.

این روش نیاز به MS Excel نصب شده دارد و اگر با فایلی روی سرور کار می کنید، MS Excel باید روی سرور نصب شود، اگر روی کلاینت باشد، MS Excel نیز در سمت کلاینت مورد نیاز است.

مثال (می توانید آن را به صورت متنی در انتهای مقاله ببینید):

لازم به ذکر است که تمام اشیاء، متدها و خصوصیات ارائه شده توسط شی COM "Excel.Application" اشیا، متدها و ویژگی های VBA، زبان برنامه نویسی MS Office هستند.

توجه داشته باشید:

گاهی اوقات لازم است با یک قالب موجود کار کنید. سپس باید این قالب را در جایی ذخیره کنیم تا تمامی کاربران لازم به آن دسترسی داشته باشند. با این حال، راه حل ساده تری وجود دارد، قالب را به عنوان یک طرح بندی باینری ذخیره کنید.

2. از طریق سند جدولی 1C کار کنید.

سند صفحه گسترده 1C از فرمت MS Excel برای ضبط با شروع از پلت فرم 8، اما برای باز کردن فقط از پلت فرم 8.3.6 پشتیبانی می کند. علاوه بر این، هنگامی که باز می شود، همه برگه ها در یک سند صفحه گسترده بارگذاری می شوند. از نسخه 8.3.10، هنگام بارگذاری، برگه های مختلف به عنوان مناطق مختلف بارگذاری می شوند.

یک ورودی مثال بسیار ساده است و نیازی به توجه خاصی ندارد:

با این حال، در اینجا ما یک مشکل داریم. هنگام ضبط از 1C در کتاب کار اکسل، نمایش نام برگه به ​​طور پیش فرض غیرفعال است.

این مشکل به 2 روش قابل حل است، 1 - در خود کتاب، نمایش برگه ها را در تنظیمات فعال کنید (همه کاربران با این کار موافقت نمی کنند)، 2 - این کار را از طریق یک شی COM انجام دهید (ما مجدداً نیاز به نصب MS Excel داریم. ).

پس از این اضافه کوچک، برچسب های برگه در فایل MS Excel قابل مشاهده خواهد بود.

خواندن MS Excel کار آسانی نیست، زیرا روش خواندن فقط در سرور یا کلاینت ضخیم در دسترس است. برای این کار باید فایل MS Excel را به سرور انتقال دهیم.

&OnClient

رویه CreateDocument()

استثنا

EndAttempt;

Book = Excel.WorkBooks.Add(); //یک کتاب کار جدید MS Excel ایجاد کنید

Sheet = Book.WorkSheets.Add(); //یک برگه اضافه کنید

Sheet.Name = "نمونه از 1C"; //نام برگه را تنظیم کنید

Sheet.Cells(1,1).Value = "بیایید یک فرمول ایجاد کنیم";!}

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

پایان رویه

&روی سرور

تابع GetLayoutServer()

بازگشت FormAttributesValue("Object").GetLayout("TemplateForUpload"); //به این ترتیب ما طرح پردازش خارجی را دریافت می کنیم.

EndFunction

&OnClient

رویه کار()

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

استثنا

گزارش ("تلاش برای اتصال مولفه اکسل ناموفق بود. ممکن است اکسل روی این رایانه نصب نشود!");

EndAttempt;

Layout = GetLayoutServer();

Layout.Write(TemporaryFileName);

آیا سوالی دارید یا نیاز به کمک از مشاور دارید؟

Book = Excel.WorkBooks.Open(TemporaryFileName);

SheetTemplate = Book.WorkSheets(1);

SheetTemplate.Cells(6،1).Value = "Date:";!}

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

SheetTemplate.NumberFormat = "dd/mm/yy;@"; // فرمت تاریخ را بدهید، این فرمت با ضبط یک ماکرو در MS Excel به دست آمده است

SheetTemplate.Columns("B:B").EntireColumn.AutoFit; // ستون را بکشید تا تاریخ دقیقا مطابقت داشته باشد

Book.SaveAs(FileName);

Book.Close();

پایان رویه

&OnClient

پایان رویه

&OnClient

رویه WriteTabularDocument()

TabularDocument = New TabularDocument();

TabularDocument.Area("R1C1").Text = "نمونه یک رکورد در MS Excel از 1C";

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

Excel = New 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()

پایان رویه

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

Address=PlaceInTemporaryStorage(BinaryData,ThisForm.UniqueIdentifier);

TabularDocument = UploadOnServer(Address);

TabularDocument.Show();

پایان رویه

&روی سرور

تابع UploadOnServer (آدرس)

TemporaryFileName = GetTemporaryFileName("xlsx");

FileData = GetFromTemporaryStorage(آدرس);

FileData.Write(TemporaryFileName);

TabularDocument = New TabularDocument();

بازگشت TabularDocument;

راه های مختلفی برای باز کردن فایل اکسل در 1C و بالعکس وجود دارد. کاربران مبتدی با ذخیره سند در قالبی متفاوت یا استفاده از برنامه های خاص، عملیات ساده تر را ترجیح می دهند. اما ارزش کمی صرف تلاش و یادگیری نحوه کار با ابزارهای نرم افزاری برای مشاهده و پردازش داده ها از یک برنامه به برنامه دیگر را دارد. این مهارت های برنامه نویسی اولیه به شما کمک می کند از انجام کارهای معمول در آینده اجتناب کنید.

نحوه باز کردن اسناد اکسل در 1C و بالعکس

ویرایشگر صفحه گسترده مایکروسافت اکسل از نظر عملکرد نسبت به محصولات نرم افزار حسابداری 1C برتری دارد. بنابراین، کاربران 1C ترجیح می دهند برخی از عملیات را در ویرایشگر صفحه گسترده انجام دهند و سپس داده ها را به برنامه حسابداری برگردانند. و این تعجب آور نیست، زیرا قبلاً حسابداری بسیاری از شرکت ها منحصراً با استفاده از برنامه های مایکروسافت انجام می شد. اما با سطح فعلی اتوماسیون فرآیندهای تجاری شرکت ها، رها کردن برنامه های تخصصی غیرممکن است. برای ایجاد تعامل بین برنامه های کاربردی مختلف، راه های ساده زیر وجود دارد:

    هنگامی که مجبور هستید با فایل های محصولات نرم افزاری که روی رایانه فعلی شما نصب نشده اند سر و کار داشته باشید، ساده ترین راه استفاده از یک برنامه ویژه برای تبدیل جداول اکسل به فرمت 1C و بالعکس است. می توان آن را در وب سایت محصول 1C یافت.

    اگر هم 1C و هم Excel را در رایانه خود دارید، می توانید فایل را به صورت دستی در برنامه "بومی" آن باز کنید و سپس آن را در قالب برنامه دیگری ذخیره کنید. این گزینه معمولاً هنگام ذخیره یک فرم یا طرح بندی قابل چاپ در دسترس است.

    کاربران 1C 7.7 می توانند به نسخه 1C 8 که دارای ویرایشگر جدول بهبود یافته است، ارتقا دهند.

چگونه 1C و Excel می توانند به صورت برنامه نویسی تعامل داشته باشند

تعامل بین 1C و Excel را می توان در سطح برنامه با استفاده از فناوری OLE Automation توسعه یافته توسط مایکروسافت انجام داد. این به شما امکان می دهد به اشیاء COM مستقیماً از مفسرهای اسکریپت برنامه های مختلف دسترسی داشته باشید. به عبارت ساده، OLE به شما این امکان را می دهد که یک قطعه کار را از یک برنامه به برنامه دیگر منتقل کنید و سپس کار را به برنامه اصلی برگردانید. این دقیقا همان چیزی است که حسابداران از ویرایشگر صفحه گسترده مایکروسافت نیاز دارند.

برای استفاده از ابزارهای OLE نیازی نیست برنامه نویس باشید. اگرچه اولین آشنایی با خطوط کد با خطا همراه خواهد بود، اما بررسی به شناسایی آنها کمک می کند و تجربه به دست آمده به جلوگیری از آنها در آینده کمک می کند. در زیر محبوب ترین دستورات (به آنها لیست گفته می شود) برای کار با داده های اکسل در برنامه های حسابداری و بالعکس آورده شده است.

نحوه باز کردن فایل اکسل در 1C به صورت برنامه ای

بنابراین، اگر هر دو برنامه بر روی رایانه شما نصب شده باشند، که می خواهید بین آنها تبادل داده شود، می توانید تعامل را به صورت برنامه ای سازماندهی کنید. برای انجام این کار، باید هر دو برنامه را اجرا کنید و سپس از OLE برای ایجاد دسترسی از 1C به Excel استفاده کنید:

  • استثنا

    گزارش(ErrorDescription() + "Excel روی این کامپیوتر نصب نشده است!");

  • پایان تلاش.

دسترسی به ویرایشگر جدول نصب شده است، اکنون با استفاده از دستورات زیر باید به آنها دسترسی داشته باشید:

    سند خاص:

    • Book = Excel.WorkBooks.Open(FilePath)

    • Sheet = Book.WorkSheets(SheetNumber);

  • از جمله با شماره برگه مشخص:

    از جمله با نام برگه خاص:

    • Sheet = Book.WorkSheets(SheetName);

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

برای خواندن داده ها از صفحه اول یک فایل، از لیست های زیر استفاده کنید:

    Excel = CreateObject ("Excel.Application");

    Book = Excel.WorkBooks.Open(FilePath);

    Sheet = Book.WorkSheets(1);

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

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

    برای ردیف = 1 توسط TotalRows حلقه

    • برای ستون = 1 توسط چرخه TotalColumns

      Value = Abbr(Sheet.Cells(Row,Column).Value);

      چرخه پایان

    چرخه پایان

به یاد داشته باشید که مسیر فایل باید به طور کامل مشخص شود. هنگام ذخیره یک نام سند، نمی توانید کاراکترهایی مانند \, /, :, *, ?, ", > را وارد کنید.< и |.

چگونه یک فایل 1C را از طریق اکسل به صورت برنامه نویسی باز کنیم

برای ثبت داده ها در اکسل باید:

    یا یک سند موجود را باز کنید:

    • کتاب = Excel.WorkBooks.Open(مسیر به فایل) - بر اساس قیاس با خواندن یک فایل اکسل از 1C؛

    یا یک مورد جدید اضافه کنید:

    • Workbook = Excel.WorkBooks.Add();

    می توانید یک برگه جدید در یک سند جدید ایجاد کنید:

    • Sheet = Book.Sheets.Add();

    و یک مقدار جدید به سلول اضافه کنید:

    • Sheet.Cells(RowNumber, ColumnNumber).Value = Value; (روش های نوشتن مقادیر با استفاده از OLE به طور مفصل در اینترنت توضیح داده شده است).

  • Book.SaveAs(FilePath);

    استثنا

    گزارش(ErrorDescription()+"فایل ذخیره نشد!");

    پایان تلاش.

پس از پایان کار با ویرایشگر صفحه گسترده، با استفاده از دستور ویژه (Excel.Application.Quit();) خارج شوید. این روش به صرفه جویی در منابع کامپیوتر در حین کار بیشتر کمک می کند.

خطرات هنگام تبادل داده بین 1C و Excel

1C و Excel توسط شرکت‌های مختلف توسعه داده شده‌اند و از روش‌های مختلفی برای مدیریت داده‌ها استفاده می‌کنند. بنابراین، هنگام انتقال جداول از یک برنامه به برنامه دیگر، مشکلات زیر را به خاطر بسپارید:

    جداکننده های مختلف در اعداد کسری. مایکروسافت اعداد اعشاری را با استفاده از کاما جدا می کند. بنابراین، هنگام انتقال جداول از یک برنامه حسابداری، از فراوانی تاریخ ها و سایر سردرگمی ها تعجب نکنید. فقط یک برنامه حسابداری ممکن است از یک نقطه در نماد کسری استفاده کند که ویرایشگر صفحه گسترده مایکروسافت آن را به عنوان جداکننده تاریخ تفسیر می کند و 15.5 به 15 می تبدیل می شود. برای پردازش داده های حسابداری در ویرایشگر صفحه گسترده، جداکننده باید با کاما جایگزین شود.

    هنگام انتقال داده ها از اکسل به 1C، آن دسته از ثابت های اکسل که در برنامه حسابداری نیستند ممکن است به اشتباه نمایش داده شوند. برای رمزگشایی آنها، باید به راهنمای ویرایشگر صفحه گسترده یا به حالت اشکال زدایی بروید و بیان عددی ثابت های مختلف را بررسی کنید.

اگر نیاز به تبادل حجم زیادی از داده ها دارید یا نمی توانید از شر خطاها خلاص شوید، برای کمک با متخصصان شرکت ستبی تماس بگیرید. ما به شما کمک می کنیم مشکلات خود را در سطح برنامه حل کنید و دستورات لازم برای کار خود را درک کنید.

این روش ساده است. ماهیت آن این است که شی سند جدولیروش هایی دارد:

  • بنویس (< ИмяФайла>, < ТипФайлаТаблицы >) برای آپلود داده ها در یک فایل؛
  • خواندن (< ИмяФайла>, < СпособЧтенияЗначений >) برای بارگیری داده ها از یک فایل.

توجه!

متد Write() هم در کلاینت و هم در سرور در دسترس است. متد Read() فقط در سمت سرور موجود است. باید این را به خاطر بسپارید
هنگام برنامه ریزی تعامل مشتری و سرور

بیایید به مثالی از ذخیره یک سند صفحه گسترده در یک فایل نگاه کنیم. باید شی TabularDocument را به هر نحوی ایجاد و پر کرد و تخلیهبه فایل فقط با یک خط انجام می شود:

TabDoc . Write(FilePath، TabularDocumentFileType. XLSX);

اینجا TabDoc- سند صفحه گسترده تولید شده، مسیر فایل- نام فایل برای آپلود، TabularDocumentFileType.XLSX- فرمت فایل ایجاد شده فرمت های Excel زیر پشتیبانی می شوند:

  • فرمت XLS95 - Excel 95;
  • فرمت XLS97 - Excel 97;
  • XLSX یک فرمت اکسل 2007 است.

TabDoc = New TabularDocument;
TabDoc . Read(PathToFile، روش خواندنTabularDocumentValues.Value);

اینجا مسیر فایل- مسیر فایل اکسل دانلود شده روش خواندن مقادیر یک سند جدولی. ارزشتعیین می کند که چگونه داده های خوانده شده از یک سند منبع باید تفسیر شوند. گزینه های موجود:

  • معنی؛
  • متن

تبادل از طریق OLE

تبادل از طریق فناوری اتوماسیون OLE شاید رایج ترین گزینه برای کار برنامه نویسی با فایل های اکسل باشد. این به شما امکان می دهد از تمام عملکردهای ارائه شده توسط اکسل استفاده کنید، اما در مقایسه با روش های دیگر کندتر است. برای تبادل از طریق OLE، نصب MS Excel مورد نیاز است:

  • در رایانه کاربر نهایی، اگر تبادل در سمت مشتری انجام شود.
  • در رایانه سرور 1C: Enterprise، اگر تبادل در سمت سرور انجام شود.

مثال تخلیه:

// یک شی COM ایجاد کنید
Excel = New COMObject("Excel.Application");
// هشدارها و سوالات را غیرفعال کنید
برتری داشتن . DisplayAlerts = نادرست.
// یک کتاب جدید ایجاد کنید
کتاب = اکسل کتاب های کار اضافه کردن()؛
// موقعیت در اولین برگه
ورق = کتاب کاربرگ (1)؛

// یک مقدار برای یک سلول بنویسید
ورق . سلول ها (شماره ردیف، شماره ستون). مقدار = CellValue;

// فایل را ذخیره کنید
کتاب . SaveAs (نام فایل)؛


برتری داشتن . Quit();
اکسل = 0;

مثال ها خواندن:

// -- انتخاب 1 --

// یک شی COM ایجاد کنید
Excel = New COMObject("Excel.Application");
// کتابی را باز کنید
کتاب = اکسل کتاب های کار باز کن( مسیر فایل )

ورق = کتاب کاربرگ (1)؛

// بستن کتاب
کتاب . بستن (0);

// اکسل را ببندید و حافظه را آزاد کنید
برتری داشتن . Quit();
اکسل = 0;

// -- گزینه 2 --

// کتابی را باز کنید
کتاب = GetCOMObject( مسیر فایل )
// تعیین موقعیت بر روی برگه مورد نظر
ورق = کتاب کاربرگ (1)؛

// مقدار سلول را بخوانید، معمولاً حلقه پیمایش سلول در اینجا قرار دارد
CellValue = Sheet. سلول ها (شماره ردیف، شماره ستون). ارزش؛

// بستن کتاب
کتاب . کاربرد. Qui t();

برای میان بربرای تمام ردیف های تکمیل شده کاربرگ اکسل، می توانید از تکنیک های زیر استفاده کنید:

// -- انتخاب 1 --
تعداد ردیف = برگه. سلول ها (1، 1). سلول های ویژه (11). ردیف؛
برای تعداد ردیف = 1 بر اساس چرخه تعداد ردیف
CellValue = Sheet. سلول ها (شماره ردیف، شماره ستون). ارزش;
چرخه پایان

// -- گزینه 2 --
تعداد ردیف = 0 ;
در حالی که چرخه حقیقت
RowNumber = RowNumber + 1 ;
CellValue = Sheet. سلول ها (شماره ردیف، شماره ستون). ارزش؛
اگر ValueFilled نیست (CellValue) سپس
سقط
endIf;
چرخه پایان

به جای اینکه تمام ردیف های برگه را به صورت متوالی طی کنید، می توانید همه داده ها را در یک آرایه تخلیه کنیدو با او کار کنید این رویکرد هنگام خواندن حجم زیادی از داده ها سریعتر خواهد بود:

TotalColumns = Sheet. سلول ها (1، 1). سلول های ویژه (11). ستون؛
TotalRows = برگ سلول ها (1، 1). سلول های ویژه (11). ردیف؛

منطقه = برگ Range(Sheet. Cells(1, 1), Sheet. Cells(TotalRows,TotalColumns));
داده ها = منطقه ارزش. تخلیه کنید();

جدول زیر محبوب ترین ویژگی ها و روش های کار با اکسل از طریق OLE را نشان می دهد:

عمل کد یک نظر
کار با اپلیکیشن
تنظیم نمایان بودن پنجره برنامه برتری داشتن . قابل رویت= نادرست
تنظیم حالت خروجی هشدار (نمایش/عدم نمایش) برتری داشتن . DisplayAlerts= نادرست
بستن برنامه برتری داشتن . Quit();
کار با کتاب
ایجاد یک کتاب جدید کتاب = اکسل کتاب های کار اضافه کردن();
باز کردن یک کتاب کار موجود کتاب = اکسل کتاب های کار Open(FileName);
ذخیره یک کتاب کتاب . SaveAs(نام فایل);
بستن کتاب کتاب . بستن (0);
کار با ورق
تنظیم برگه فعلی ورق = کتاب برگه های کاری (شماره برگ);
تنظیم نام ورق . نام = نام;
راه اندازی حفاظت ورق . محافظت();
حذف حفاظت ورق . UnProtect();
تنظیم جهت صفحه ورق . تنظیمات صفحه. جهت گیری = 2; 1 - پرتره، 2 - منظره
تنظیم حاشیه سمت چپ ورق . تنظیمات صفحه. حاشیه چپ = اکسل. CentimetersToPoints(سانتی متر);
تعیین حد بالایی ورق . تنظیمات صفحه. TopMargin = اکسل. CentimetersToPoints(سانتی متر);
تنظیم حاشیه مناسب ورق . تنظیمات صفحه. RightMargin = Excel. CentimetersToPoints (سانتی متر);
تعیین حد پایین ورق . تنظیمات صفحه. BottomMargin = Excel. CentimetersToPoints (سانتی متر);
کار با ردیف ها، ستون ها، سلول ها
تنظیم عرض ستون ورق . ستون ها (ColumnNumber). ColumnWidth = عرض;
یک خط را حذف کنید ورق . ردیف (شماره ردیف). حذف();
حذف یک ستون ورق . ستون ها (ColumnNumber). حذف()؛
یک سلول را حذف کنید ورق . سلول ها (شماره ردیف، شماره ستون). حذف();
تنظیم مقدار ورق . سلول ها (شماره ردیف، شماره ستون). ارزش = ارزش;
ادغام سلول ها ورق . محدوده (ورق. سلولها (شماره ردیف، شماره ستون)، ورق. سلولها (شماره ردیف1، شماره ستون1)). ادغام();
تنظیم فونت ورق . سلول ها (شماره ردیف، شماره ستون). فونت Name = FontName;
تنظیم اندازه فونت ورق . سلول ها (شماره ردیف، شماره ستون). فونت اندازه = اندازه قلم;
تنظیم فونت پررنگ ورق . سلول ها (شماره ردیف، شماره ستون). فونت پررنگ = 1 ; 1 - پررنگ، 0 - عادی
تنظیم حروف کج ورق . سلول ها (شماره ردیف، شماره ستون). فونت کج = 1 ; 1 - مورب، 0 - عادی
تنظیم فونت خط دار ورق . سلول ها (شماره ردیف، شماره ستون). فونت زیر خط بکشید = 2 ; 2 - خط دار، 1 - نه

برای اینکه بفهمید کدام ویژگی باید تغییر کند یا کدام روش را فراخوانی کنید، می توانید استفاده کنید ماکروهابرتری داشتن. اگر یک ماکرو را با اقدامات لازم ضبط کنید، سپس می توانید به کد VBA ماکرو ضبط شده نگاه کنید.

با استفاده از COMSafeArray

هنگام بارگیری مقادیر زیادی داده از 1C به اکسل، می توانید از شی برای افزایش سرعت استفاده کنید COMSafeArray. طبق تعریف دستیار نحوی، COMSafeArray یک شیء پوشاننده روی یک آرایه چند بعدی است. SafeArrayاز COM. به شما امکان می دهد SafeArray را برای تبادل داده بین اشیاء COM ایجاد و استفاده کنید. به عبارت ساده، آرایه ای از مقادیر است که می تواند برای تبادل بین برنامه ها با استفاده از فناوری OLE استفاده شود.

// COMSafeArray را ایجاد کنید
ArrayCom = New COMSafeArray("VT_Variant"، TotalColumns، TotalRows);
// COMSafeArray را پر کنید
برای صفحه = 0 با مجموع خطوط - 1 چرخه
برای تعداد = 0 ستون کل - 1 چرخه
ArrayKom . SetValue(Count, Page, Value);
چرخه پایان
چرخه پایان
// اختصاص یک ناحیه کاربرگ اکسل به مقادیر از COMSafeArray
ورق . محدوده (ورق. سلولها (1، 1)، ورق. سلولها (کل ردیفها، کل ستونها)). مقدار = ArrayCom;

تبادل از طریق ADO

یک فایل اکسل، زمانی که از طریق ADO رد و بدل می شود، پایگاه داده ای است که با استفاده از پرس و جوهای SQL قابل دسترسی است. نصب MS Excel مورد نیاز نیست، اما باید یک درایور ODBC داشته باشید که با آن دسترسی ارائه شود. درایور ODBC مورد استفاده با تعیین رشته اتصال به فایل تعیین می شود. به طور معمول، درایور مورد نیاز از قبل بر روی رایانه نصب شده است.

تبادل از طریق ADO به طور قابل توجهی سریعتر از تبادل از طریق OLE است، اما هنگام آپلود، امکان استفاده از عملکرد اکسل برای طراحی سلول ها، چیدمان صفحات، تنظیم فرمول ها و غیره وجود ندارد.

مثال تخلیه:


اتصال = COMObject جدید ("ADODB.Connection");


ترکیب . ConnectionString = "

|منبع داده=" + نام فایل + ";
;
ترکیب . باز کن()؛ // یک اتصال را باز کنید

// یک شی COM برای دستور ایجاد کنید
Command = New COMObject("ADODB.Command");
تیم

// اختصاص متن دستور برای ایجاد جدول
تیم . CommandText = "ایجاد جدول [Sheet1] (Clumn1 char(255)، Column2 date, Column3 int, Column4 float)";
تیم . اجرا کردن()؛ // دستور را اجرا کنید

// اختصاص متن دستور برای افزودن ردیف جدول
تیم . CommandText = "InSERT INTO [Sheet1] (Column1, Column2, Column3, Column4) مقادیر ('abvwhere', '8/11/2017', '12345', '12345,6789')";
Command.Execute(); // دستور را اجرا کنید

// دستور را حذف کرده و اتصال را ببندید
فرمان = تعریف نشده.
ترکیب . بستن();
اتصال = تعریف نشده;

برای ایجاد یک برگه جدید و تشکیل ساختار آن، می توانید از اشیاء استفاده کنید ADOX.کاتالوگو ADOX.Table. در این صورت کد به شکل زیر خواهد بود:

// ایجاد یک شی COM برای کار با کتاب
کتاب = COMObject جدید ("ADOX.Catalog");
کتاب . ActiveConnection = اتصال;

// یک شی COM برای کار با ساختار داده در برگه ایجاد کنید
Table = New COMObject("ADOX.Table");
جدول . نام = "Sheet1" ;
جدول . ستون ها. ضمیمه ("ستون 1"، 202);
جدول . ستون ها. ضمیمه ("ستون 2"، 7);
جدول . ستون ها. ضمیمه ("ستون 3"، 5);
جدول . ستون ها. Append("Column4" , 5 );

// یک برگه در کتاب کار با ساختار توصیف شده ایجاد کنید
کتاب . جداول. ضمیمه (جدول)؛
جدول = تعریف نشده.
کتاب = تعریف نشده;

در مثال بالا، در روش

جدول . ستون ها. اضافه کنید(«ستون 1»، 202);

پارامتر دوم نوع ستون را مشخص می کند. این پارامتر اختیاری است، در اینجا برخی از مقادیر نوع ستون وجود دارد:

  • 5 - adDouble;
  • 6 - ارز تبلیغاتی;
  • 7 - adDate;
  • 11 - adBoolean;
  • 202 - adVarWChar;
  • 203 - adLongVarWChar.

مثال خواندن:

// یک شی COM برای اتصال ایجاد کنید
اتصال = COMObject جدید ("ADODB.Connection");

// رشته اتصال را تنظیم کنید
ترکیب . ConnectionString = "
|Provider=Microsoft.ACE.OLEDB.12.0;
|منبع داده=" + نام فایل + ";
|Extended Properties=""Excel 12.0 XML;HDR=YES"";";
ترکیب . باز کن()؛ // یک اتصال را باز کنید

// یک شی COM برای دریافت انتخاب ایجاد کنید
انتخاب = New COMObject("ADODB.Recordset");
RequestText = "انتخاب * از [Sheet1$]";

// درخواست را اجرا کنید
نمونه . Open(QueryText، Connection)؛

// نتیجه نمونه را دور بزنید
هنوز انتخابی نیست حلقه EOF()
مقدار ستون 1 = انتخاب. زمینه های. مورد ("ستون 1"). ارزش ; // دسترسی با نام ستون
Column2Value = انتخاب. زمینه های. مورد (0). ارزش؛ // دسترسی با فهرست ستون
نمونه . MoveNext();
چرخه پایان

نمونه . بستن()؛
نمونه = تعریف نشده;
ترکیب . بستن()؛
اتصال = تعریف نشده.

در رشته اتصال پارامتر HDRتعیین می کند که چگونه خط اول روی برگه درک می شود. گزینه های ممکن:

  • بله - خط اول به عنوان نام ستون در نظر گرفته می شود. مقادیر را می توان با نام و نمایه ستون در دسترس قرار داد.
  • خیر - خط اول به عنوان داده در نظر گرفته می شود. مقادیر فقط با نمایه ستون قابل دسترسی هستند.

این نمونه ها فقط چند شیء ADO را پوشش می دهند. مدل شیء ADO از اشیاء زیر تشکیل شده است:

  • ارتباط؛
  • فرمان؛
  • مجموعه رکوردها
  • رکورد؛
  • زمینه های؛
  • جریان؛
  • خطاها؛
  • مولفه های؛
  • خواص.

بدون برنامه نویسی آپلود کنید

برای ذخیره داده ها از 1C به اکسل، همیشه توصیه نمی شود که به برنامه نویسی متوسل شوید. اگر در حالت Enterprise کاربر بتواند داده های مورد نیاز برای دانلود را نمایش دهد، می توان آنها را بدون برنامه نویسی در اکسل ذخیره کرد.

برای ذخیره یک سند صفحه گسترده (به عنوان مثال، نتیجه یک گزارش)، می توانید دستور را فراخوانی کنید صرفه جویییا ذخیره به عنوان…منوی اصلی.

در پنجره باز شده باید فهرست، نام و فرمت فایل ذخیره شده را انتخاب کنید.

برای ذخیره داده ها از لیست های پویا (به عنوان مثال، لیستی از موارد)، باید:

  1. با استفاده از دستور، داده ها را در یک سند صفحه گسترده خروجی کنید بیشتر ⇒ لیست ...;
  2. سند صفحه گسترده را در قالب مورد نیاز ذخیره کنید.

اغلب اوقات، هنگام برقراری ارتباط با مشتریان بالقوه، می شنوم که عملکرد جدول از بسته آفیس برای آنها کاملاً کافی است و آنها نکته ای را در برنامه های 1C نمی بینند. این به این دلیل است که برخی از افراد هنوز این راه حل را فقط با برنامه های حسابداران مرتبط می دانند که درست نیست.

اکسل یک محصول جهانی و تولید انبوه است، شما نمی توانید با آن بحث کنید. تقریباً همه می توانند از این برنامه استفاده کنند، بر خلاف توسعه های 1C، که متخصصان باریک را هدف قرار می دهند. با استفاده از جداول "سبز" می توانید عملکردهای لازم را آزادانه اجرا کنید که راحت خواهد بود: در اینجا مدل مالی سازمان با تمام تسویه حساب های متقابل ، حسابداری مدیریت ، حتی موارد تنظیم شده ، انتخاب گسترده ای از تجسم داده ها ، توانایی انجام مستقل وجود دارد. با استفاده از افزونه های مختلف، قابلیت های برنامه را گسترش دهید - همه چیز در دستان شماست، همه چیز از ابتدا ...

اگر به تازگی کسب و کار خود را شروع کرده اید، به تدریج داده های لازم را در جدول در مورد روابط با مشتریان، تامین کنندگان، مقامات نظارتی، ساختن ساختار دلخواه خود در نظر می گیرید، اما وقتی پایگاه داده حجیم شد و کارکنان چه کاری باید انجام دهید. اعداد در ده ها؟ هنوز هم با توجه به پارامترهای خود شمارش می کنید؟ من طرفدار این هستم که راحتی را با عادت اشتباه نگیریم، که اغلب در سیستم سازی کسب و کار و در نتیجه بهینه سازی آن اختلال ایجاد می کند.

برای وضوح، بیایید تصور کنیم چه نیازهایی ممکن است برای اتوماسیون حسابداری، به عنوان مثال، برای تجارت ایجاد شود:

1. تجزیه و تحلیل فروش در یک دوره معین.

رئیس بخش فروش می تواند داده های فروش را تجزیه و تحلیل کند. برای او مهم است که بفهمد آیا این طرح در حال اجرا است یا خیر، استراتژی های او چقدر موثر است تا در صورت بی اثر بودن، بتواند به موقع تنظیمات را در کار انجام دهد.

2. حسابداری انبار.
آیا لازم است توضیح دهم که برای فروش نیز مهم است که در دسترس بودن کالاهای موجود در انبار، کدام کالاها را می توان رزرو کرد و کدام ها موجود نیست و چه مواردی باید سفارش داده شود؟ فکر می کنم اینجا همه چیز روشن است.

3. نگهداری بانک اطلاعاتی از طرف مقابل.
حتی اگر مالک فقط آنچه را می توان اینجا و اکنون خریداری کرد، که برای بخش B2C معمول است، بفروشد، در این صورت او رابطه کمی متفاوت با پایه تامین کننده دارد - قراردادها، اولیه... تصور کنید چقدر راحت است که همه چیز به تامین کننده به صورت خودکار است آیا بلافاصله در یک پایگاه داده نمایش داده می شود؟ مدیر مسئول انبار بلافاصله در دسترس بودن کالاها را در انبار مشاهده می کند، کارمند دیگری که مسئول اسناد است اطلاعات در مورد در دسترس بودن آنها را نظارت می کند، آیا تمام تعهدات مندرج در روابط قراردادی انجام می شود، چه کسی به چه کسی و چقدر بدهکار است. و در صورت عدم تطابق، می توانید داده ها را برای مدت معینی تطبیق دهید و نتیجه را در کمتر از یک دقیقه ایجاد کنید.

4. سود سازمان.
ایجاد گزارش سود دشوار نخواهد بود، زیرا تمام داده های مربوط به هزینه ها و درآمد در حال حاضر در پایگاه داده وجود دارد. مشروط بر اینکه اطلاعات به موقع و حداقل در تاریخ مقرر وارد شده باشد. عامل اساسی در اینجا مسئولیت شخصی کاربر است.

اگر مشتریان و تامین کنندگان زیادی ندارید، اکسل واقعاً برای شما مناسب خواهد بود، زیرا زمان زیادی برای طراحی نمودارهای خود در جدول و پر کردن آنها وجود دارد و سپس اسناد را در پوشه های مختلف روی رایانه توزیع می کنید: قراردادها، تأمین کنندگان، مشتریان، مشتریان در همسایگی، مشتریان در حال توسعه، مشتریانی که باید حذف شوند - یک فرآیند بی پایان و جذاب برای ایجاد پوشه ها در یک پوشه. و اگر اطلاعات زیادی وجود دارد، آیا پیگیری پایگاه داده شما راحت است؟ البته، گاهی اوقات سازمان هایی با گردش مالی زیاد هستند که داده های مالی آنها فقط در اکسل نگهداری می شود. تبادل و ترکیب داده ها بین بخش ها چقدر زمان می برد؟ من پاسخ خواهم داد: زیاد.

نمی توانم تصور کنم که چگونه می توان به سرعت مورد نیاز خود را در تعداد زیادی از اسناد Excel سازماندهی شده در یک سیستم دلخواه پیدا کرد. به عنوان مثال، هنگام ارائه اسناد مورد نیاز از اداره مالیات. یک حسابدار چگونه گزارش‌هایی را به مقامات نظارتی ارائه می‌کند، وقتی اطلاعات همه پراکنده است؟ حسابداری، البته، می تواند برون سپاری شود و برخی از صاحبان مشاغل، متأسفانه، ممکن است اهمیتی ندهند که یک متخصص خاص تا زمانی که موجودی ها را متعادل می کند، چه فرآیندهایی داشته باشد. اما حتی اگر چنین است، پس روند تبادل اسناد چگونه سازماندهی می شود؟ یک کارمند خارجی چقدر سریع ساختار اطلاعات بداهه را درک می کند؟

من نمی توانم در مورد 1C همین را بگویم، زیرا تمام اطلاعات موجود در آنجا ساختار یافته و به هم مرتبط هستند:

    یک پایگاه داده واحد برای کارمندان از راه دور و تمام وقت، که در آن می توانید با تمام اسناد استاندارد و سفارشی کار کنید.
    گزارش دهی به مقامات نظارتی بر اساس داده هایی ایجاد می شود که قبلاً در برنامه منعکس شده است، نیازی به باز کردن فایل های زیادی نیست، برای به دست آوردن نتایج نهایی، چندین مقدار را در یک جدول ترکیب کنید.
"1C"، به روشی خوب، یک سیستم چندوظیفه ای است که هم در وظایف حسابداری معمولی و هم برای خودکارسازی کلیه فرآیندهای سازمانی بسته به زمینه فعالیت هدف قرار دارد. کلمه اصلی در اینجا سیستم است. هیچ کس شما را از سازماندهی سیستم کسب و کار خود در اکسل منع نمی کند، اما چرا وقتی راه حل هایی وجود دارد که تقریباً تمام نیازهای بهینه سازی زمان و هزینه های مالی را پوشش می دهد و به سیستماتیک کردن کار شما کمک می کند، چرخ را دوباره اختراع کنید؟

در دفاع از اکسل

احتمالاً به نظر شما می رسد که من مخالف ساخت داده ها در جداول "سبز" هستم. اصلا. در واقع، من خودم اغلب کارهایی را در اکسل انجام می دهم: اگر به محاسبات دلخواه نیاز داشته باشم، اگر نیاز داشته باشم داده ها را بر اساس مشتری تقسیم کنم، تجزیه و تحلیل را بر اساس پارامترهایی انجام دهم که در 1C نیستند - بله، این اتفاق می افتد - به "اکسل" می روم. به عبارت ساده، در جداول محاسبات و تجزیه و تحلیل غیر استاندارد را انجام می دهم، اما به هر حال همه چیز را در 1C سیستماتیک می کنم.

و سپس، برای مشاهده فایل‌های دانلود شده از 1C، همچنان به Excel نیاز دارید، زیرا داده‌های موجود در 1C در صفحات گسترده ذخیره می‌شوند. آیا احساس می کنید این یک دور باطل است؟ من آن را متفاوت می گویم: "1C" و "Excel" مانند دو شریک در کنار هم قرار می گیرند، اما هر یک از آنها هدف خاص خود را دارند، آنها به خوبی یکدیگر را تکمیل می کنند، اما جایگزین یکدیگر نمی شوند.

اگر نیاز دارید که امور خود را با در نظر گرفتن سیستم قانونگذاری ایالت ما، با در نظر گرفتن ویژگی ها و تمرکز کسب و کار، به ویژه هنگامی که حجم زیادی از اطلاعات به میان می آید، سیستماتیک کنید، به 1C نیاز دارید. اگر به محاسبات دلخواه، ایجاد استراتژی از ابتدا، تجسم داده های تجزیه و تحلیل غیر استاندارد نیاز دارید، اکسل در خدمت شما است. اما کار با این راه حل ها به طور همزمان بسیار راحت تر است.


نتیجه نهایی چیست - "1C" یا "Excel"؟

در همان ابتدا، اگر سوال در مورد امور مالی برای اتوماسیون باشد، اگرچه برنامه های اولیه 1C هزینه زیادی ندارند، من از Excel استفاده می کنم. یک مزیت بزرگ این است که داده های جداول "سبز" را می توان بدون از دست دادن در 1C بارگیری کرد. اما همانطور که مقیاس می کنید، به شما توصیه می کنم به برنامه هایی برای خودکارسازی فرآیندهای تجاری توجه کنید. تعداد زیادی از آنها وجود دارد و ممکن است لزوما 1C نباشد...

انتقال به "1C" زمانی انجام می شود که بدانید باید منابع خود را بهینه کنید، از جمله خودکار کردن مسائل مربوط به روابط با مشتریان و تامین کنندگان و با مقامات نظارتی. به طور کلی، زمانی که پردازش اطلاعات زمان زیادی می برد، فرآیندهای کاری خود را طوری تنظیم کنید که کارایی کسب و کار را افزایش دهید و فایل های اکسل دیگر با حجم داده های ورودی مقابله نمی کنند.

با این حال، هر "1C" ممکن است برای شما مناسب نباشد، باید عوامل مختلفی را در نظر بگیرید: ویژگی ها و دامنه کسب و کار، مقیاس، نیاز به کارهای روزانه، روتینی که باید به حداقل برسد. همه چیز فردی است. حقیقت، همانطور که قبلاً گفتم، جایی بین "1C" و "Excel" است - یکدیگر را تکمیل می کنند.

احتمالاً همین است. اما اگر سوالی دارید، لطفا با ما تماس بگیرید، ما سعی خواهیم کرد به شما کمک کنیم. فرآیندهای تجاری موفق، همکاران!

اپلیکیشن 1C مدت هاست که محبوب ترین برنامه در میان حسابداران، برنامه ریزان، اقتصاددانان و مدیران بوده است. این نه تنها دارای پیکربندی های متنوعی برای انواع مختلف فعالیت ها است، بلکه بومی سازی استانداردهای حسابداری در چندین کشور در سراسر جهان را نیز دارد. شرکت های بیشتری در این برنامه به حسابداری روی می آورند. اما روش انتقال دستی داده ها از سایر برنامه های حسابداری به 1C یک کار نسبتا طولانی و خسته کننده است که زمان زیادی را می گیرد. اگر شرکت با استفاده از اکسل سوابق خود را نگه داشته باشد، فرآیند انتقال می تواند به طور قابل توجهی خودکار و تسریع شود.

انتقال داده ها از Excel به 1C نه تنها در دوره اولیه کار با این برنامه مورد نیاز است. گاهی اوقات نیاز به چیزی شبیه به این وجود دارد، زمانی که در طول یک فعالیت، باید فهرست‌هایی را وارد کنید که در یک کتاب صفحه گسترده ذخیره شده‌اند. به عنوان مثال، اگر نیاز به انتقال لیست قیمت یا سفارشات از یک فروشگاه آنلاین دارید. اگر لیست ها کوچک هستند، می توانید آنها را به صورت دستی وارد کنید، اما اگر حاوی صدها مورد باشد چه؟ به منظور تسریع روند، می توانید به برخی از گزینه های اضافی متوسل شوید.

تقریباً همه انواع اسناد برای دانلود خودکار مناسب هستند:

  • فهرست نامگذاری؛
  • لیست طرف مقابل؛
  • لیست قیمت ها؛
  • لیست سفارشات؛
  • اطلاعات خرید یا فروش و غیره

بلافاصله باید توجه داشت که 1C ابزار داخلی ندارد که به شما امکان انتقال داده از اکسل را بدهد. برای این منظور، باید یک بوت لودر خارجی، که یک فایل با فرمت است، وصل کنید epf.

آماده سازی داده ها

ما باید داده ها را در خود جدول اکسل آماده کنیم.


علاوه بر این اقدامات جهانی برای تهیه داده ها در یک کتاب اکسل، شما همچنین باید سند را با الزامات بارگیری خاص که استفاده خواهیم کرد مطابقت دهید، اما ما در این مورد کمی کمتر صحبت خواهیم کرد.

اتصال بوت لودر خارجی

یک بوت لودر خارجی با پسوند را وصل کنید epfبرنامه 1C هم قبل و هم بعد از تهیه فایل اکسل قابل انجام است. نکته اصلی این است که هر دوی این مسائل مقدماتی قبل از شروع فرآیند بارگیری حل شده است.

چندین بارکننده جدول اکسل خارجی برای 1C وجود دارد که توسط توسعه دهندگان مختلف ایجاد شده است. ما مثالی را با استفاده از ابزاری برای پردازش اطلاعات در نظر خواهیم گرفت "بارگیری داده ها از یک سند صفحه گسترده"برای نسخه 1C 8.3.


یکی از پایگاه های داده اصلی که 1C با آن کار می کند لیستی از محصولات و خدمات است. بنابراین، برای توصیف روند بارگذاری از اکسل، بر روی مثال انتقال این نوع خاص از داده ها تمرکز خواهیم کرد.

  1. ما به پنجره پردازش باز می گردیم. از آنجایی که ما محدوده محصول را بارگذاری خواهیم کرد، سوئیچ در پارامتر باید در موقعیت خود قرار گیرد "فهرست راهنما". با این حال، به طور پیش فرض به این روش نصب می شود. شما باید آن را تنها زمانی تغییر دهید که می خواهید نوع دیگری از داده را انتقال دهید: یک بخش جدولی یا یک ثبت اطلاعات. بعدی در این زمینه "نمای دایرکتوری"روی دکمه ای که بیضی روی آن قرار دارد کلیک کنید. یک لیست کشویی باز می شود. در آن ما باید مورد را انتخاب کنیم "نامگذاری".
  2. پس از این، کنترل کننده به طور خودکار فیلدهایی را که برنامه استفاده می کند در این نوع کتاب مرجع قرار می دهد. بلافاصله لازم به ذکر است که پر کردن تمام فیلدها به هیچ وجه ضروری نیست.
  3. اکنون سند قابل حمل اکسل را دوباره باز کنید. اگر نام ستون های آن با نام فیلدهای دایرکتوری 1C که شامل موارد مربوطه است متفاوت است، باید نام این ستون ها را در اکسل تغییر دهید تا نام ها کاملاً مطابقت داشته باشند. اگر جدول حاوی ستون هایی است که هیچ آنالوگ در فهرست وجود ندارد، باید حذف شوند. در مورد ما، این ستون ها هستند "تعداد"و "قیمت". همچنین باید اضافه کرد که ترتیب ستون ها در سند باید کاملاً با آنچه در پردازش ارائه شده است مطابقت داشته باشد. اگر داده‌ای برای برخی از ستون‌هایی که در لودر نمایش داده می‌شوند ندارید، می‌توان این ستون‌ها را خالی گذاشت، اما شماره‌گذاری ستون‌هایی که داده‌ها وجود دارد باید مطابقت داشته باشد. برای راحتی و سرعت ویرایش، می توانید از ویژگی ویژه اکسل برای جابجایی سریع ستون ها در مکان ها استفاده کنید.

    پس از انجام این مراحل، روی نماد کلیک کنید "صرفه جویی"، که با نمادی نشان داده می شود که فلاپی دیسک را در گوشه سمت چپ بالای پنجره نشان می دهد. سپس با کلیک بر روی دکمه بستن استاندارد فایل را ببندید.

  4. ما به پنجره پردازش 1C برمی گردیم. روی دکمه کلیک کنید "باز کن"، که به صورت یک پوشه زرد نشان داده می شود.
  5. پنجره باز شدن فایل باز می شود. بیایید به دایرکتوری برویم که سند اکسل مورد نیاز ما در آن قرار دارد. سوئیچ نمایش فایل پیش فرض روی پسوند تنظیم شده است mxl. برای اینکه فایل مورد نیاز خود را نشان دهیم، باید آن را به موقعیت انتقال دهیم "صفحه اکسل". پس از آن، سند مورد نظر برای انتقال را انتخاب کرده و روی دکمه کلیک کنید "باز کن".
  6. سپس محتوا در هندلر باز می شود. برای بررسی اینکه داده ها به درستی پر شده اند، روی دکمه کلیک کنید "کنترل پر کردن".
  7. همانطور که می بینیم، ابزار کنترل پر به ما می گوید که هیچ خطایی پیدا نشد.
  8. حالا بیایید به برگه برویم "تنظیمات". که در "فیلد جستجو"ما یک تیک در خط قرار می دهیم که برای همه نام های وارد شده در فهرست نامگذاری منحصر به فرد خواهد بود. فیلدهایی که بیشتر برای این مورد استفاده می شوند عبارتند از "کد فروشنده"یا "نام". این کار باید انجام شود تا هنگام افزودن موارد جدید به لیست، داده ها تکراری نشوند.
  9. پس از وارد کردن تمام داده ها و تکمیل تنظیمات، می توانید مستقیماً اطلاعات را در دایرکتوری بارگیری کنید. برای انجام این کار، روی کتیبه کلیک کنید "بارگیری داده ها".
  10. مراحل دانلود در حال انجام است. پس از اتمام آن، می توانید به کتاب مرجع آیتم ها بروید و مطمئن شوید که تمام داده های لازم در آنجا اضافه شده است.

ما روند اضافه کردن داده ها به فهرست نامگذاری را در برنامه 1C 8.3 دنبال کردیم. برای سایر دایرکتوری ها و اسناد ، بارگیری طبق همان اصل انجام می شود ، اما با برخی تفاوت های ظریف که کاربر می تواند به تنهایی آنها را دریابد. همچنین باید توجه داشت که رویه ممکن است برای بارگذارهای شخص ثالث مختلف متفاوت باشد، اما رویکرد کلی برای همه یکسان باقی می‌ماند: ابتدا، پردازنده اطلاعات فایل را در پنجره‌ای که در آن ویرایش می‌شود بارگیری می‌کند و تنها پس از آن اضافه می‌شود. مستقیماً به پایگاه داده 1C.