Кое е по-добро - 1C или Excel? 1c в Excel.

Приложението 1C отдавна е най-популярната програма сред счетоводители, плановици, икономисти и мениджъри. Има не само разнообразни конфигурации за различни видове дейности, но и локализация към счетоводните стандарти в няколко страни по света. Все повече предприятия преминават към счетоводство в тази програма. Но процедурата за ръчно прехвърляне на данни от други счетоводни програми към 1C е доста дълга и скучна задача, която отнема много време. Ако предприятието поддържа записи с помощта на Excel, тогава процесът на прехвърляне може да бъде значително автоматизиран и ускорен.

Прехвърлянето на данни от Excel към 1C се изисква не само през началния период на работа с тази програма. Понякога има нужда от нещо подобно, когато по време на дейност трябва да въведете някои списъци, съхранени в книгата с електронни таблици. Например, ако трябва да прехвърлите ценови листи или поръчки от онлайн магазин. Ако списъците са малки, можете да ги въведете ръчно, но какво ще стане, ако съдържат стотици елементи? За да ускорите процедурата, можете да прибегнете до някои допълнителни опции.

Почти всички видове документи са подходящи за автоматично изтегляне:

  • Списък на номенклатурата;
  • Списък на контрагентите;
  • Списък на цените;
  • Списък на поръчките;
  • Информация за покупки или продажби и др.

Веднага трябва да се отбележи, че 1C няма вградени инструменти, които биха ви позволили да прехвърляте данни от Excel. За тези цели трябва да свържете външен буутлоудър, който е файл във формат epf.

Подготовка на данни

Ще трябва да подготвим данните в самата таблица на Excel.


В допълнение към тези универсални действия за подготовка на данни в книга на Excel, ще трябва да приведете документа в съответствие с изискванията на конкретния товарач, който ще използваме, но ще говорим за това малко по-долу.

Свързване на външен буутлоудър

Свържете външен буутлоудър с разширение epfприложение 1C може да се направи както преди, така и след подготовката на Excel файла. Основното е, че и двата подготвителни проблема са решени преди началото на процеса на зареждане.

Има няколко външни зареждащи таблици на Excel за 1C, които са създадени от различни разработчици. Ще разгледаме пример с помощта на инструмент за обработка на информация „Зареждане на данни от документ с електронна таблица“за версия 1C 8.3.


Една от основните бази данни, с които работи 1C, е списък с продукти и услуги. Ето защо, за да опишем процедурата за зареждане от Excel, ще се съсредоточим върху примера за прехвърляне на този конкретен тип данни.

  1. Връщаме се към прозореца за обработка. Тъй като ще заредим продуктовата гама, превключвателят в параметъра трябва да е в положение "Указател". Въпреки това, той е инсталиран по този начин по подразбиране. Трябва да го превключите само когато ще прехвърляте друг тип данни: табличен раздел или информационен регистър. Следващ в полето "Изглед на директория"Кликнете върху бутона с многоточие върху него. Отваря се падащ списък. В него трябва да изберем елемента "номенклатура".
  2. След това манипулаторът автоматично поставя полетата, които програмата използва в този тип справочник. Веднага трябва да се отбележи, че изобщо не е необходимо да попълвате всички полета.
  3. Сега отворете отново преносимия документ на Excel. Ако името на неговите колони се различава от имената на полетата на директорията 1C, които съдържат съответните, тогава трябва да преименувате тези колони в Excel, така че имената напълно да съвпадат. Ако таблицата съдържа колони, за които няма аналози в директорията, те трябва да бъдат изтрити. В нашия случай тези колони са "Количество"И "Цена". Трябва също да се добави, че редът на колоните в документа трябва стриктно да съвпада с този, представен в обработката. Ако нямате данни за някои от колоните, които се показват в зареждащото устройство, тогава тези колони могат да бъдат оставени празни, но номерацията на тези колони, където има данни, трябва да съвпада. За удобство и скорост на редактиране можете да използвате специална функция на Excel за бързо преместване на колони на места.

    След като тези стъпки са изпълнени, щракнете върху иконата "Запазване", което е представено от икона, изобразяваща флопи диск в горния ляв ъгъл на прозореца. След това затворете файла, като щракнете върху стандартния бутон за затваряне.

  4. Връщаме се към прозореца за обработка на 1C. Кликнете върху бутона "Отворено", което се показва като жълта папка.
  5. Отваря се прозорецът за отваряне на файл. Нека отидем в директорията, където се намира необходимият ни Excel документ. Превключвателят за показване на файлове по подразбиране е настроен на разширение mxl. За да покажем файла, от който се нуждаем, трябва да го преместим на позиция "Лист на Excel". След това изберете документа за прехвърляне и щракнете върху бутона "Отворено".
  6. След това съдържанието се отваря в манипулатора. За да проверите дали данните са попълнени правилно, щракнете върху бутона "Контрол на пълнене".
  7. Както виждаме, инструментът за контрол на попълването ни казва, че не са намерени грешки.
  8. Сега нека преминем към раздела "Настройки". IN „Поле за търсене“Поставяме отметка в реда, който ще бъде уникален за всички имена, въведени в номенклатурния указател. Най-често използваните за това полета са "Код на продавача"или "Име". Това трябва да се направи, така че при добавяне на нови елементи към списъка данните да не се дублират.
  9. След като всички данни са въведени и настройките са завършени, можете да преминете към директно зареждане на информацията в директорията. За да направите това, щракнете върху надписа „Зареждане на данни“.
  10. Процесът на изтегляне е в ход. След завършването му можете да отидете в справочника на артикула и да се уверите, че там са добавени всички необходими данни.

Следвахме процедурата за добавяне на данни към номенклатурната директория в програмата 1C 8.3. За други директории и документи изтеглянето ще се извърши по същия принцип, но с някои нюанси, които потребителят може да разбере сам. Трябва също да се отбележи, че процедурата може да се различава за различните зареждащи програми на трети страни, но общият подход остава един и същ за всички: първо процесорът зарежда информация от файла в прозореца, където се редактира, и едва след това се добавя директно към базата данни 1C.

Доста често, когато общувам с потенциални клиенти, чувам, че функционалността на масата от офис пакет, и не виждат смисъл в програмите 1C. Това е така, защото все още някои хора свързват това решение само с програми за счетоводители, което не е вярно.

Excel е универсален и масово произвеждан продукт, не можете да спорите с това. Почти всеки може да използва тази програма, за разлика от разработките на 1C, които са насочени към тесни специалисти. Използвайки „зелени“ таблици, можете свободно да внедрявате необходимата функционалност, което ще бъде удобно: тук е финансовият модел на организацията с всички взаимни разплащания, управленско счетоводство, дори регулирани, голям избор от визуализация на данни, възможност за самостоятелно разширете възможностите на програмата с помощта на различни добавки - всичко е във вашите ръце, всичко от нулата...

Добре е, ако тепърва започвате бизнеса си, като постепенно вземате предвид необходимите данни в таблицата за взаимоотношения с клиенти, доставчици, регулаторни органи, изграждате своя собствена произволна структура, но какво да правите след това, когато базата данни стане обемна и броят на персонала в десетки? Все още броите според собствените си параметри? Аз съм за това да не се бърка удобството с навика, който често пречи на систематизирането на бизнеса, а оттам и на оптимизирането му.

За по-голяма яснота, нека си представим какви нужди могат да възникнат за автоматизация на счетоводството, например за търговия:

1. Анализ на продажбите за определен период.

Ръководителят на отдел продажби може да анализира данните за продажбите. За него е важно да разбере дали планът се изпълнява, колко ефективни са стратегиите му, за да може в случай на неефективност да направи своевременни корекции в работата.

2. Складово счетоводство.
Трябва ли да обяснявам, че за продажбите също е важно да се разбере наличието на стоки на склад, кои стоки могат да бъдат запазени и кои са изчерпани и какво трябва да се поръча? Мисля, че тук всичко е ясно.

3. Поддържане на база данни на контрагентите.
Дори ако собственикът продава само това, което може да се купи тук и сега, което е типично за B2C сектора, тогава той има малко по-различни отношения с базата на доставчиците - договори, първични... Представете си колко удобно е, когато всичко, свързано с доставчикът се показва автоматично веднага ли се показва в една база данни? Мениджърът, който отговаря за склада, веднага вижда наличността на стоките в склада, друг служител, отговарящ за документите, следи информация за наличността им, дали се изпълняват всички задължения по договорни отношения, кой на кого и колко дължи. А в случай на несъответствия, можете да съгласувате данните за определен период, генерирайки резултат за по-малко от минута.

4. Печалба на организацията.
Генерирането на отчет за печалбата няма да бъде трудно, тъй като всички данни за разходите и приходите вече присъстват в базата данни. При условие, че информацията е въведена своевременно, поне до необходимата дата. Основният фактор тук е личната отговорност на потребителя.

Ако нямате много клиенти и доставчици, Excel наистина ще ви подхожда, тъй като има достатъчно време да проектирате свои собствени диаграми в таблицата и да ги попълните, последвано от разпределяне на документи в различни папки на компютъра: договори, доставчици, клиенти, клиенти в квартала, клиенти в процес на разработка, клиенти за изтриване – безкраен и завладяващ процес на създаване на папки в папка. И ако има много информация, удобно ли е да следите вашата база данни? Разбира се, винаги има изключения, понякога има организации с големи обороти, чиито финансови данни се поддържат само в Excel. Колко време им отнема обменът и комбинирането на данни между отделите? Ще отговоря: много.

Не мога да си представя как бързо да намерите този, от който се нуждаете, в голям брой документи на Excel, организирани в произволна система. Например при предоставяне на документи за изисквания от данъчната служба. Как един счетоводител ще представя отчети на регулаторните органи, когато цялата информация е разпръсната? Счетоводството, разбира се, може да бъде изнесено и някои собственици на бизнес, за съжаление, може да не се интересуват какви процеси може да има даден специалист, стига да балансира балансите. Но дори и да е така, тогава как е организиран процесът на обмен на документи? Колко бързо външен служител ще разбере импровизираната информационна структура?

Не мога да кажа същото за 1C, тъй като цялата информация там е структурирана и взаимосвързана:

    Единна база данни за отдалечени и щатни служители, в която можете да работите с всички стандартизирани и персонализирани документи;
    Докладването до регулаторните органи се генерира въз основа на данни, които вече са отразени в програмата; няма нужда да отваряте много файлове, да комбинирате няколко стойности в една таблица, за да получите крайни резултати.
„1C“, по добър начин, е многозадачна система, която е насочена както към типични счетоводни задачи, така и към автоматизиране на всички организационни процеси в зависимост от сферата на дейност. Тук основната дума е системата. Никой не ви спира да организирате вашата бизнес система в Excel, но защо да изобретявате колелото, когато има решения, които покриват почти всички нужди за оптимизиране на времеви и финансови разходи, помагайки за систематизиране на работата ви?

В защита на Excel

Вероятно ви се стори, че съм против конструирането на данни в „зелени“ таблици. Въобще не. Всъщност самият аз често правя някакъв бизнес в Excel: ако имам нужда от произволни изчисления, ако трябва да сегментирам данни по клиент, провеждайки анализи въз основа на параметри, които не са в 1C - да, това се случва - отивам в " Excel." Просто казано, в таблици правя изчисления и нестандартен анализ, но след това така или иначе систематизирам всичко в 1C.

И тогава, за да видите изтеглените файлове от 1C, все още ще ви трябва Excel, тъй като данните в 1C се съхраняват в електронни таблици. Чувствате ли, че това е порочен кръг? Ще го кажа по различен начин: „1C“ и „Excel“ вървят рамо до рамо като двама партньори, но всеки от тях има своя собствена цел, те се допълват добре, но не се заменят.

Ако трябва да систематизирате вашите дела, като вземете предвид законодателната система на нашата държава, като вземете предвид спецификата и фокуса на бизнеса, особено когато става въпрос за големи обеми информация, тогава имате нужда от 1C. Ако имате нужда от произволни изчисления, изграждане на стратегия от нулата, визуализиране на нестандартни аналитични данни, тогава Excel е на ваше разположение. Но е много по-удобно да работите с тези решения едновременно.


Какъв е крайният резултат – „1C” или „Excel”?

В самото начало, ако въпросът е за финанси за автоматизация, въпреки че основните 1C програми не струват толкова пари, бих използвал Excel. Огромен плюс е, че данните от „зелените“ таблици могат да бъдат заредени в 1C без загуба. Но докато мащабирате, бих ви посъветвал да обърнете внимание на програмите за автоматизиране на бизнес процесите. Има много от тях и може да не е непременно 1C...

Преходът към „1C“ може да се извърши, когато разберете, че трябва да оптимизирате ресурсите си, включително автоматизиране на въпроси, свързани с взаимоотношенията с клиенти и доставчици и с надзорни органи. Като цяло, коригирайте работните си процеси, за да увеличите ефективността на бизнеса, когато обработката на информация ще отнеме много време и Excel файловете вече няма да се справят с обема на входните данни.

Въпреки това, не всеки „1C“ може да е подходящ за вас; трябва да вземете предвид различни фактори: спецификата и обхвата на бизнеса, мащаба, необходимостта от ежедневни задачи, рутината, която трябва да бъде сведена до минимум. Всичко е индивидуално. Истината, както вече казах, е някъде между "1C" и "Excel" - те се допълват взаимно.

Това е може би всичко. Но ако имате някакви въпроси, моля свържете се с нас, ние ще се опитаме да ви помогнем. Успешни бизнес процеси, колеги!

Въведение.

Много хора знаят, че Excel е много по-стар от 1C. Според мен това е много успешен продукти не съм чувал никакви оплаквания за това. Excel е прост и многофункционален. Той е способен да изпълнява не само прости аритметични операции, но и сложни изчисления, чертане на графики и др. Знам примери, при които организациите, преди да преминат към 1C, поддържат част от счетоводството си в Excel. Много хора все още използват две програми паралелно. В тази статия ще разгледаме начините за обмен на данни между 1C и Excel.

Таблици 1C и Excel.

За по-лесно използване много потребители запазват 1C таблици (отпечатани формуляри) във формат на Excel (*.xls). След това в получения файл се правят различни групи, сортировки, изчисления и т.н. Това се дължи на факта, че таблиците 1C нямат такава огромна функционалност като таблиците на Excel. Но във версия 1C 8.0 има иновации, които правят работата с таблици по-удобна.

Уебсайтът на 1C (http://www.1c.ru/) има полезна програма, която ви позволява да отваряте 1C таблици в Excel и да запазвате Excel лист като 1C таблица. Това е полезно, ако таблицата 1C не е запазена във формат Excel и 1C не е инсталиран на компютъра, където трябва да отворите тази таблица. И няма да е необходимо постоянно да помните, че трябва да запазите таблицата 1C във формат Excel.

Пълната информация за програмата е тук.
Можете да изтеглите програмата тук (zip архив 682 739 байта).

коментар:В Excel десетичният разделител е знакът ",". Ето защо, преди да запазите таблицата 1C във формат Excel, заменете друг разделител в нея (например ".") с ",". В противен случай Excel няма да може да извършва изчисления с тези числа или те изобщо няма да се показват като числа. Например в таблица 1C „15.2“ ще се покаже в Excel като „15.фев.“.

Извличане на данни от Excel.

Достъпът от 1C до Excel се осъществява чрез OLE. Например код
опит
Изключение
Доклад(ErrorDescription() +
);
Връщане;
EndAttempt;
ще ни позволи достъп чрез променливата на Excel до работещо приложение Excel. И тогава можете да получите достъп до работната книга (файл), лист и клетка с данни. По-долу са примерни кодове.

Отваряне на книга (файл):
Книга = Excel. Работни тетрадки. Отворете (PathKFile);
FilePath - пълен път до файла на работната книга на Excel.

Избор на лист с работна книга, с който да работите:
или
Лист = Книга. Работни листове (Име на лист);
SheetNumber - номерът на листа в работната книга, SheetName - името на листа в работната книга.

Получаване на стойността на клетка от лист:
Стойност = Лист. Клетки (Номер на ред, Номер на колона). Стойност ;

Важно:не забравяйте да добавите Excel код в полето за извършване на необходимите действия. Изход(); , в противен случай работещ процесще останат незавършени и ще заемат паметта и процесора на компютъра.

Извеждане на данни в Excel.

За да изведете (качите) данни в Excel, трябва или да отворите съществуваща работна книга, или да създадете нова и да изберете работен лист за извеждане на данни. Отварянето на съществуваща работна книга е описано по-горе, но за да създадете нова работна книга, трябва да използвате следния код:
опит
Excel = CreateObject("Excel.Application" );
Изключение
Доклад(ErrorDescription() +
„Excel не е инсталиран на този компютър!“);
Връщане;
EndAttempt;
Книга = Excel. Работни тетрадки. Добавяне();

Тъй като при създаване на работна книга в Excel автоматично се създават листове (Инструменти->Опции->Общи->Листове в нова работна книга), трябва само да изберете листа, с който да работите:
Лист = Книга. Работни листове (Номер на лист);
или добавете нов лист към работната книга, ако е необходимо:
Лист = Книга. Листи. Добавяне();
Следващата стъпка е да зададете стойността на клетката:
листо. Клетки (Номер на ред, Номер на колона). Стойност = Стойност ;
RowNumber, ColumnNumber - номера на реда и номера на колоната, в пресечната точка на които се намира клетката.
И накрая трябва да запишете създадената книга:
опит
Книга . SaveAs (FilePath);
Изключение
Доклад(Описание на грешка()
+ „Файлът не е запазен!“);
Връщане;
EndAttempt;
FilePath - пълен път до файла на работната книга на Excel (включително име).
Важно:Не забравяйте, че имената на файловете не трябва да съдържат знаците \ / : * ? " >< |.

Често използвани методи за четене/задаване на стойности в Excel.

Excel = CreateObject("Excel.Application" ); Получете достъп до приложението Excel.
Excel. Visible = Видимост; 0 - Excel не се вижда, 1 - се вижда.
Книга = Excel. Работни тетрадки. Добавяне(); Създаване на нова работна книга (файл) на Excel.
Книга . SaveAs(Име на файл); Запазване на работна книга на Excel.
Лист = Книга. Работни листове. Добавяне(); Добавяне на нов лист към работната книга.
Книга = Excel. Работни тетрадки. Отваряне (Име на файл); Отваряне на съществуваща работна книга (файл) на Excel.
Лист = Книга. Работни листове (Номер на лист); Задаване на листа като работен лист с номер SheetNumber.
листо. Име = Име на лист; Дайте име на работния лист SheetName
листо. Настройка на страницата. Zoom = Мащабиране; Задайте опцията на страницата "Мащаб" (от 10 до 400).
листо. Настройка на страницата. Orientation = Ориентация; Ориентация: 1 - портрет, 2 - пейзаж.
листо. Настройка на страницата. LeftMargin = Excel. СантиметриДоТочки(Сантиметри); Указва лявата граница (в сантиметри).
листо. Настройка на страницата. TopMargin = Excel. СантиметриДоТочки(Сантиметри); Определя горната граница (в сантиметри).
листо. Настройка на страницата. RightMargin = Excel. СантиметриДоТочки(Сантиметри); Указва дясната граница (в сантиметри).
листо. Настройка на страницата. BottomMargin = Excel. СантиметриДоТочки(Сантиметри); Задаване на долната граница (в сантиметри).
листо. Колони (ColumnNumber). ColumnWidth = Ширина; Настройка на ширината на колоната.
листо. Клетки (Номер на ред, Номер на колона). Стойност = Стойност ; Въвеждане на данни в клетка.
листо. Клетки (Номер на ред, Номер на колона). Шрифт. Име = Име на шрифта; Задаване на шрифта в клетка.
листо. Клетки (Номер на ред, Номер на колона). Шрифт. Размер = Размер на шрифта; Задайте размера на шрифта в клетка.
листо. Клетки (Номер на ред, Номер на колона). Шрифт. Bold = Получер; 1 - получер, 0 - нормален.
листо. Клетки (Номер на ред, Номер на колона). Шрифт. Курсив = Курсив; 1 - курсив, 0 - нормален.
листо. Клетки (Номер на ред, Номер на колона). Шрифт. Underline = Подчертано ; 2 - подчертано, 1 - не.
листо. Клетки (Номер на ред, Номер на колона). NumberFormat = Формат; Задайте формата на клетъчните данни.
листо. Клетки (Номер на ред, Номер на колона). Граници. Стил на линия = Тип линия ; Задаване на клетъчни рамки. 1 - тънко твърдо вещество.

Този метод е прост. Същността му е, че обектът Табличен документима методи:

  • Записвам (< ИмяФайла>, < ТипФайлаТаблицы >) за качване на данни във файл;
  • Прочети (< ИмяФайла>, < СпособЧтенияЗначений >), за да заредите данни от файл.

внимание!

Методът Write() е наличен както на клиента, така и на сървъра. Методът Read() е достъпен само от страната на сървъра. Трябва да запомните това
когато планирате взаимодействие клиент-сървър.

Нека да разгледаме пример за запазване на документ с електронна таблица във файл. Необходимо е да създадете и попълните обекта TabularDocument по всякакъв начин и разтоварванекъм файла се извършва само с един ред:

TabDoc . Write(FilePath, TabularDocumentFileType. XLSX);

Тук TabDoc- генериран документ с електронна таблица, Пътят до файла— име на файла за качване, TabularDocumentFileType.XLSX— формат на създадения файл. Поддържат се следните Excel формати:

  • XLS95 - Excel 95 формат;
  • XLS97 - Excel 97 формат;
  • XLSX е формат на Excel 2007.

TabDoc = Нов табличен документ;
TabDoc . Read(PathToFile, Метод на ReadingTabularDocumentValues.Value);

Тук Пътят до файла— път до изтегления Excel файл. Метод за четене на стойности на табличен документ. Стойностопределя как трябва да се интерпретират данните, прочетени от изходния документ. Налични опции:

  • Значение;
  • Текст.

Обмен чрез OLE

Обменът чрез OLE автоматизирана технология е може би най-разпространената опция за програмна работа с Excel файлове. Той ви позволява да използвате цялата функционалност, предоставена от Excel, но е по-бавен в сравнение с други методи. За обмен чрез OLE е необходима инсталация на MS Excel:

  • На компютъра на крайния потребител, ако обменът се извършва от страна на клиента;
  • На сървърния компютър на 1C:Enterprise, ако обменът се извършва от страната на сървъра.

Пример разтоварване:

// Създаване на COM обект
Excel = Нов COMObject("Excel.Application");
// Деактивиране на предупреждения и въпроси
Excel . DisplayAlerts = False;
// Създаване на нова книга
Книга = Excel. Работни тетрадки. Добавяне();
// Позиция на първия лист
Лист = Книга. Работни листове(1);

// Записване на стойност в клетка
Лист . Клетки (номер на ред, номер на колона). Стойност = Стойност на клетката;

// Запазване на файла
Книга . SaveAs(Име на файл);


Excel . Изход();
Excel = 0;

Примери четене:

// -- ОПЦИЯ 1 --

// Създаване на COM обект
Excel = Нов COMObject("Excel.Application");
// Отворете книга
Книга = Excel. Работни тетрадки. отворено( Пътят до файла);

Лист = Книга. Работни листове(1);

// Затваряне на книгата
Книга . Затвори(0);

// Затворете Excel и освободете памет
Excel . Изход();
Excel = 0;

// —— ВАРИАНТ 2 ——

// Отворете книга
Книга = GetCOMObject( Пътят до файла);
// Позициониране върху желания лист
Лист = Книга. Работни листове(1);

// Прочетете стойността на клетката, обикновено тук се намира цикълът за обхождане на клетката
CellValue = Лист. Клетки (номер на ред, номер на колона). Стойност;

// Затваряне на книгата
Книга . Приложение. Qui T();

За Околовръстен пътЗа всички попълнени редове на работния лист на Excel можете да използвате следните техники:

// -- ОПЦИЯ 1 --
Брой редове = лист. Клетки (1 , 1 ). Специални клетки (11). ред;
За RowNumber = 1 по брой редове Цикъл
CellValue = Лист. Клетки (номер на ред, номер на колона). Стойност;
EndCycle;

// —— ВАРИАНТ 2 ——
номер на ред = 0;
Докато цикълът на истината
Номер на ред = Номер на ред + 1;
CellValue = Лист. Клетки (номер на ред, номер на колона). Стойност;
Ако НЕ е ValueFilled(CellValue) Тогава
Прекъсване;
endIf;
EndCycle;

Вместо да преминавате през всички редове на листа последователно, можете изхвърлете всички данни в масиви работи с него. Този подход ще бъде по-бърз при четене на голямо количество данни:

Общо колони = лист. Клетки (1 , 1 ). Специални клетки (11). Колона;
Общо редове = Лист. Клетки (1 , 1 ). Специални клетки (11). ред;

Регион = Лист. Диапазон (Лист. Клетки (1, 1), Лист. Клетки (Общо редове, Общо колони));
Данни = Регион. Стойност. Разтоварвам();

Таблицата по-долу показва най-популярните свойства и методи за работа с Excel чрез OLE:

Действие Код Коментар
Работа с приложението
Настройка на видимостта на прозореца на приложението Excel . Видими= невярно;
Настройка на режима на извеждане на предупреждение (показване/не показване) Excel . DisplayAlerts= невярно;
Затваряне на приложението Excel . Изход();
Работа с книга
Създаване на нова книга Книга = Excel. Работни тетрадки. Добавете();
Отваряне на съществуваща работна книга Книга = Excel. Работни тетрадки. Отворете (Име на файл);
Запазване на книга Книга . SaveAs(Име на файл);
Затваряне на книгата Книга . Затвори(0);
Работа с лист
Настройка на текущия лист Лист = Книга. Работни листове (Номер на лист);
Задаване на името Лист . Име = Име;
Настройка на защита Лист . Защитете();
Премахване на защитата Лист . Премахване на защитата();
Задаване на ориентация на страницата Лист . Настройка на страницата. Ориентация = 2; 1 - портрет, 2 - пейзаж
Задаване на лявата граница Лист . Настройка на страницата. LeftMargin = Excel. Сантиметри до точки (сантиметри);
Задаване на горната граница Лист . Настройка на страницата. TopMargin = Excel. Сантиметри до точки (сантиметри);
Задаване на правилната граница Лист . Настройка на страницата. RightMargin = Excel. Сантиметри до точки (сантиметри);
Задаване на долната граница Лист . Настройка на страницата. BottomMargin = Excel. Сантиметри до точки (сантиметри);
Работа с редове, колони, клетки
Задаване на ширина на колона Лист . Колони (ColumnNumber). ColumnWidth = Ширина;
Изтриване на ред Лист . Редове (Номер на ред). Изтрий();
Премахване на колона Лист . Колони (ColumnNumber). Изтрий();
Изтриване на клетка Лист . Клетки (номер на ред, номер на колона). Изтрий();
Задаване на стойността Лист . Клетки (номер на ред, номер на колона). Стойност = Стойност;
Сливане на клетки Лист . Диапазон (Лист. Клетки (Номер на ред, Номер на колона), Лист. Клетки (Номер на ред1, Номер на колона1)). Обединяване();
Настройка на шрифта Лист . Клетки (номер на ред, номер на колона). Шрифт. Име = Име на шрифта;
Задаване на размера на шрифта Лист . Клетки (номер на ред, номер на колона). Шрифт. Размер = Размер на шрифта;
Задаване на удебелен шрифт Лист . Клетки (номер на ред, номер на колона). Шрифт. Удебелен = 1 ; 1 - получер, 0 - нормален
Задаване на курсив Лист . Клетки (номер на ред, номер на колона). Шрифт. Курсив = 1 ; 1 - курсив, 0 - нормален
Настройка на подчертания шрифт Лист . Клетки (номер на ред, номер на колона). Шрифт. Подчертайте = 2 ; 2 - подчертано, 1 - не

За да разберете кое свойство трябва да бъде променено или кой метод да извикате, можете да използвате макроси Excel. Ако запишете макрос с необходимите действия, след това можете да погледнете VBA кода на записания макрос.

Използване на COMSafeArray

Когато изтегляте големи количества данни от 1C в Excel, можете да използвате обекта за ускоряване COMSafeArray. Според дефиницията от асистента за синтаксис, COMSafeArray е обвивка на обект над многоизмерен масив SafeArrayот COM. Позволява ви да създавате и използвате SafeArray за обмен на данни между COM обекти. Просто казано, това е масив от стойности, които могат да се използват за обмен между приложения, използващи OLE технология.

// Създаване на COMSafeArray
ArrayCom = Нов COMSafeArray("VT_Variant", TotalColumns, TotalRows);
// Попълване на COMSafeArray
За Страница = 0 по TotalLines - 1 цикъл
За Брой = 0 Общо колони - 1 цикъл
ArrayCom . SetValue(брой, страница, стойност);
EndCycle;
EndCycle;
// Присвояване на област на работен лист на Excel към стойности от COMSafeArray
Лист . Диапазон (Лист. Клетки (1, 1), Лист. Клетки (Общо редове, Общо колони)). Стойност = ArrayCom;

Обмен чрез ADO

Един Excel файл, когато се обменя чрез ADO, е база данни, която може да бъде достъпна чрез SQL заявки. Не е необходима инсталация на MS Excel, но трябва да имате ODBC драйвер, с който ще се осъществява достъп. Използваният ODBC драйвер се определя чрез посочване на низа за свързване към файла. Обикновено необходимият драйвер вече е инсталиран на компютъра.

Обменът чрез ADO е значително по-бърз от обмена чрез OLE, но при качване не е възможно да се използва функционалността на Excel за проектиране на клетки, оформление на страници, задаване на формули и т.н.

Пример разтоварване:


Връзка = Нов COMObject("ADODB.Connection");


Съединение . ConnectionString = "

|Източник на данни=" + Име на файл + ";
;
Съединение . Отваряне(); // Отваряне на връзка

// Създаване на COM обект за командата
Команда = Нов COMObject("ADODB.Command");
Екип

// Присвояване на команден текст за създаване на таблица
Екип . CommandText = „СЪЗДАВАНЕ НА ТАБЛИЦА [Лист1] (Колона1 char(255), Колона2 дата, Колона3 int, Колона4 float)“;
Екип . Изпълни(); // Изпълнение на командата

// Присвояване на команден текст за добавяне на ред в таблица
Екип . CommandText = "INSERT INTO [Sheet1] (Column1, Column2, Column3, Column4) стойности ('abvwhere', '8/11/2017', '12345', '12345,6789')";
Command.Execute(); // Изпълнение на командата

// Премахнете командата и затворете връзката
Команда = Недефинирана;
Съединение . Близо();
Връзка = Недефинирана;

За да създадете нов лист и да оформите неговата структура, можете да използвате обекти ADOX.КаталогИ ADOX.Таблица. В този случай кодът ще изглежда така:

// Създаване на COM обект за работа с книгата
Книга = Нов COMObject("ADOX.Catalog");
Книга . ActiveConnection = Връзка;

// Създаване на COM обект за работа със структурата от данни на листа
Таблица = Нов COMObject("ADOX.Table");
Таблица . Име = "Лист1" ;
Таблица . Колони. Добавяне ("Колона1", 202);
Таблица . Колони. Добавяне ("Колона2", 7);
Таблица . Колони. Добавяне ("Колона3", 5);
Таблица . Колони. Добавяне ("Колона4", 5);

// Създаване на лист с описаната структура в работната книга
Книга . Маси. Добавяне (Таблица);
Таблица = Недефинирана;
Книга = Недефинирано;

В горния пример, в метода

Таблица . Колони. Добавете(„Колона 1“, 202);

вторият параметър определя типа колона. Параметърът не е задължителен, ето някои стойности на тип колона:

  • 5 - adDouble;
  • 6 - рекламна валута;
  • 7 - adDate;
  • 11 - adBoolean;
  • 202 - adVarWChar;
  • 203 - adLongVarWChar.

Пример четене:

// Създайте COM обект за връзката
Връзка = Нов COMObject("ADODB.Connection");

// Задайте низа за връзка
Съединение . ConnectionString = "
|Доставчик=Microsoft.ACE.OLEDB.12.0;
|Източник на данни=" + Име на файл + ";
|Разширени свойства=""Excel 12.0 XML;HDR=ДА"";";
Съединение . Отваряне(); // Отваряне на връзка

// Създайте COM обект, за да получите селекцията
Изберете = Нов COMObject("ADODB.Recordset");
RequestText = „ИЗБЕРЕТЕ * ОТ [Sheet1$]“;

// Изпълнение на заявката
проба . Open(QueryText, Connection);

// Заобикаляне на примерния резултат
Все още няма селекция. EOF() цикъл
Стойност на колона1 = Избор. Полета. Елемент ("Колона1"). Стойност ; // Достъп по име на колона
Column2Value = Избор. Полета. Артикул (0). Стойност; // Достъп чрез индекс на колона
проба . Преместване на следващия();
EndCycle;

проба . Близо();
Пример = Недефиниран;
Съединение . Близо();
Връзка = Недефинирана;

В низа за свързване параметърът HDRопределя как ще се възприема първият ред на листа. Възможни опции:

  • ДА - първият ред се третира като имена на колони. Стойностите могат да бъдат достъпни по име и индекс на колона.
  • НЕ - първият ред се третира като данни. Стойностите могат да бъдат достъпни само чрез индекс на колона.

Тези примери обхващат само няколко ADO обекта. Обектният модел ADO се състои от следните обекти:

  • Връзка;
  • командване;
  • набор от записи;
  • запис;
  • полета;
  • поток;
  • Грешки;
  • параметри;
  • Имоти.

Качване без програмиране

За да запазите данни от 1C в Excel, не винаги е препоръчително да прибягвате до програмиране. Ако в режим Enterprise потребителят може да покаже данните, необходими за изтегляне, те могат да бъдат записани в Excel без програмиране.

За да запишете документ с електронна таблица (например резултат от отчет), можете да извикате командата Запазванеили Запази като…главно меню.

В прозореца, който се отваря, трябва да изберете директорията, името и формата на записания файл.

За да запазите данни от динамични списъци (например списък с елементи), трябва:

  1. Изведете данни в документ с електронна таблица с помощта на командата Още ⇒ Списък...;
  2. Запазете документа с електронната таблица в необходимия формат.

Има различни начини за отваряне в 1C Excel файли обратно. Начинаещите потребители ще предпочетат по-прости операции чрез запазване на документа в различен формат или използване на специални програми. Но си струва да похарчите малко усилия и да научите как да работите със софтуерни инструменти за преглед и обработка на данни от една програма в друга. Тези основни умения за програмиране ще ви помогнат да избегнете рутинни задачи в бъдеще.

Как да отваряте Excel документи в 1C и обратно

Редакторът на електронни таблици на Microsoft Excel превъзхожда функционалността на счетоводните софтуерни продукти 1C. Следователно потребителите на 1C предпочитат да извършват някои операции в редактор на електронни таблици и след това да върнат данните в счетоводната програма. И това не е изненадващо, защото преди това счетоводството на много компании се извършваше изключително с помощта на програми на Microsoft. Но при сегашното ниво на автоматизация на бизнес процесите на предприятията е невъзможно да се изоставят специализираните програми. За да установите взаимодействие между различни приложения, има следните прости начини:

    Когато трябва да се справите с файлове на софтуерни продукти, които не са инсталирани на текущия ви компютър, най-лесният начин е да използвате специално приложение за конвертиране на таблици на Excel във формат 1C и обратно. Може да се намери на продуктовия уебсайт на 1C.

    Ако вашият компютър има както 1C, така и Excel, можете ръчно да отворите файла в неговото „родно“ приложение и след това да го запишете във формат на друга програма. Обикновено тази опция е налична при запазване на печат или оформление.

    Потребителите на 1C 7.7 могат да надстроят до версия 1C 8, която има подобрен редактор на таблици.

Как 1C и Excel могат да си взаимодействат програмно

Взаимодействието между 1C и Excel може да се осъществи на програмно ниво с помощта на технологията OLE Automation, разработена от Microsoft. Тя ви позволява да осъществявате достъп до COM обекти директно от интерпретатори на скриптове на различни програми. Просто казано, OLE ви позволява да прехвърлите част от работата от една програма в друга и след това да върнете работата в оригиналното приложение. Точно това е необходимо на счетоводителите от редактора на електронни таблици на Microsoft.

Не е необходимо да сте програмист, за да използвате OLE инструменти. Въпреки че първото запознаване с редове код ще бъде придружено от грешки, проверката ще помогне да ги идентифицирате, а натрупаният опит ще помогне да ги избегнете в бъдеще. По-долу са най-популярните команди (те се наричат ​​списъци) за работа с данни на Excel в счетоводни програми и обратно.

Как да отворите Excel файл в 1C програмно

Така че, ако и двете програми са инсталирани на вашия компютър, между които искате да обменяте данни, тогава можете да организирате взаимодействието програмно. За да направите това, трябва да стартирате и двете приложения и след това да използвате OLE, за да установите достъп от 1C до Excel:

  • Изключение

    Доклад(ErrorDescription() + "Excel не е инсталиран на този компютър!");

  • Край на опита.

Достъпът до редактора на таблици е инсталиран, сега с помощта на следните команди трябва да получите достъп до:

    конкретен документ:

    • Книга = Excel.WorkBooks.Open(FilePath)

    • Sheet = Book.WorkSheets(SheetNumber);

  • включително с определен номер на лист:

    включително с конкретно име на лист:

    • Sheet = Book.WorkSheets(SheetName);

    • Стойност = Sheet.Cells(RowNumber, ColumnNumber).Value;

За да прочетете данни от първата страница на файл, използвайте следните списъци:

    Excel = CreateObject("Excel.Application");

    Книга = Excel.WorkBooks.Open(FilePath);

    Лист = Book.WorkSheets(1);

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

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

    За ред = 1 по цикъл TotalRows

    • За колона = 1 по цикъл TotalColumns

      Стойност = Abbr(Sheet.Cells(Row,Column).Value);

      EndCycle;

    EndCycle;

Не забравяйте, че пътят до файла трябва да бъде посочен изцяло. Когато записвате име на документ, не можете да включвате знаци като \, /, :, *, ?, ", >,< и |.

Как да отворите 1C файл чрез Excel програмно

За да записвате данни в Excel, трябва:

    или отворете съществуващ документ:

    • Book = Excel.WorkBooks.Open(Path to File) - по аналогия с четене на Excel файл от 1C;

    или добавете нов:

    • Работна книга = Excel.WorkBooks.Add();

    Можете да създадете нов лист в нов документ:

    • Sheet = Book.Sheets.Add();

    и добавете нова стойност към клетката:

    • Sheet.Cells(RowNumber, ColumnNumber).Value = Стойност; (методите за писане на стойности с помощта на OLE са описани подробно в Интернет).

  • Book.SaveAs(FilePath);

    Изключение

    Доклад(ErrorDescription()+"Файлът не е записан!");

    Край на опита.

Когато приключите работата с редактора на електронни таблици, излезте с помощта на специалната команда (Excel.Application.Quit();). Този метод ще ви помогне да спестите компютърни ресурси по време на по-нататъшна работа.

Опасности при обмен на данни между 1C и Excel

1C и Excel са разработени от различни компании и използват различни начини за обработка на данни. Ето защо, когато прехвърляте таблици от една програма в друга, помнете следните клопки:

    Различни разделители в дробни числа. Microsoft разделя десетичните числа със запетая. Ето защо, когато прехвърляте таблици от счетоводна програма, не се изненадвайте от изобилието от дати и други обърквания. Просто в счетоводната програма може да се използва точка при писане на дроби, което редакторът на електронни таблици на Microsoft ще интерпретира като разделител за дата и 15,5 ще се превърне в 15 май. За да обработвате счетоводни данни в редактор на електронни таблици, разделителят трябва да бъде заменен със запетая.

    При прехвърляне на данни от Excel към 1C тези константи на Excel, които не са в счетоводната програма, могат да се показват неправилно. За да ги дешифрирате, трябва да отидете в помощ на редактора на електронни таблици или в режим на отстраняване на грешки и да проверите числения израз на различни константи.

Ако трябва да обмените големи количества данни или не можете да се отървете от грешки, свържете се с професионалистите на компанията Setby за помощ. Ние ще ви помогнем да решите проблемите си на програмно ниво и ще разберем командите, необходими за вашата работа.