1c качване и изтегляне на данни в Excel. Качване на данни в Excel със задаване на различни параметри

31.10.2021

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

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

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

Транзакционни механизми

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

Алгоритъм за зареждане

Първо решете какво точно искате да запазите в 1C. Отворете таблицата, която сте създали по-рано в Excel, проверете дали всички данни са важни за зареждане в програмата. Ако впоследствие не се нуждаете от някои колони в документ с електронна таблица, тъй като те нямат стойност, просто ги изтрийте предварително, за да не претоварвате програмата 1C: Accounting. След това не забравяйте да запазите отново таблицата, която сте редактирали.

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

За да бъде импортирането успешно, е важно да се уверите, че изтегленият документ е записан в правилния формат. Можете да импортирате в 1C: Счетоводни документи, които сте успели да запазите в Excel 2003 или по-нови версии. Документът може да бъде записан и във формат mxl и ods. Ако сте направили всичко точно по този начин предварително, тогава можете да импортирате.

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

В този момент импортирането е завършено, но вашите действия продължават, особено ако първо не сте редактирали таблицата, така че в нея са останали допълнителни редове и колони. Над колоните ще намерите изречение като „Посочете подробности“; като щракнете върху него, ще трябва да изберете една от опциите, предложени в списъка. След като сте работили успешно с всяка колона, прегледайте редовете. Ако намерите нещо ненужно, не се колебайте да го изтриете.

За да извършите такива манипулации, изберете ред и след това щракнете върху бутона „Изтриване на ред“.

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

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

Алгоритъм за качване

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

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

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

Няма да се налага да чакате дълго, тъй като операцията приключва доста бързо.

Когато програмата обяви завършването на процеса, остава само да отворите изтегления файл и да се уверите, че съдържа всичко, което ще е необходимо за по-нататъшна работа. Опитните счетоводители могат да създадат натоварване не само от една позиция, но няколко наведнъж, наброяващи не десетки, а стотици. Благодарение на такива действия времето се спестява значително, което се приветства от тези, които преди това е трябвало да отделят огромни времеви ресурси за изпълнение на такива задачи.

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

В последния урок, който разгледахме.

Най-честият пример обаче е обменът между счетоводство и ведомост. Тези бази не са подчинени една на друга и може дори да не са свързани първоначално.

Всичко, от което се нуждаем, е периодично да се разтоварваме от заплатата до счетоводния отдел.

Нека разгледаме процеса на изтегляне на данни от 1C.

Принципи на качване и изтегляне на 1C данни

В Счетоводството документът Продажби на стоки и услуги може да има 30 полета. Това е счетоводство, има свои собствени цели, много полета са посветени на сметкоплана и подсметките.

В Управление на търговията същият документ Продажби на стоки може да има 25. Това е оперативно счетоводство, има си цели. Но там не са посочени сметките от сметкоплана.

Имената на полетата в тези две бази данни може да са различни. Тогава как да качите един документ от една база данни и да заредите друг в друга база данни?

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

Те са файл с XML разширение. За да го създадете, има специална 1C конфигурация, наречена „Преобразуване на данни“.

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

Разтоварете BU-ZP 1C

От стандартната конфигурация Заплати и управление на персонала до стандартната конфигурация Счетоводството обикновено периодично качва информация за резултатите от заплатите, включително за плащането на данъци.

За да е възможно това, първо трябва да качите настройките от Счетоводство в ТРЗ.

За да качите 1C от 1C Счетоводство в 1C Заплата - изберете елемента от менюто Услуга/Обмен на данни със заплата/Качване на данни в Счетоводство.

Когато качвате 1C за първи път, не забравяйте да поставите отметка в квадратчето „Информация за качване на 1C в нова информационна база“.

Как да качите първоначална информация в Заплата - вижте следващата статия Качване на 1C.

Разтоварете ZP-BU 1C

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

В Заплата изберете меню Услуга/Обмен на данни/Изтегляне на данни в счетоводна програма.

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

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

Разтоварете BU-UT 1C

За да качите 1C от Счетоводство в Управление на търговията, трябва да създадете настройки за обмен. Това ще ви позволи да правите не само еднократни качвания на 1C, но и да настроите пълноценен периодичен обмен, както в.

За да направите настройки, изберете елемент от менюто Услуга/Обмен на данни с Управление на търговията/Настройване на обмен на данни в Счетоводство.

Настройките се създават с помощта на „съветник“.

Ние няма да поемем по лесния път и сами ще контролираме всички настройки; за това трябва да изберете режим на работа Expert.

Тъй като създаваме настройка от нулата, ще изберем „Създаване на настройка за обмен“ (съответно можете да „продължите“, ако сте прекъснали съветника по-рано или да промените, ако съветникът е завършен).

Тази настройка на обмена се извършва в две бази данни - първо в едната, след това в другата.

Съответно ще изберем „Създаване с помощта на файл“, ако сте започнали да правите нов от нулата в Управление на търговията и тук трябва да завършите настройката (по подобен начин, ако започнете в Счетоводство, ще трябва да я завършите в Управление на търговия) .

Настройките за обмен „чрез файл“ са прости и не са показани тук на снимките. Но за „директна“ COM връзка тук има примери.

Например, ако Trade Management е „файл“ - той се намира на диск. .

Например, ако управлението на търговията се намира на сървъра 1C. Името на сървъра и базата данни е .

Начин да файлова база данни, както и сървърът и името на базата данни на сървъра, се показват в прозореца за избор на база данни в 1C.

Тук трябва да посочите дали планирате да изтеглите нещо от Trade Management. Ако е така, тогава това е „двупосочен“ обмен.

Можем да зададем филтри за качените документи. Например по отношение на организациите.

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

Това завършва първата част от настройката. Въз основа на резултатите си 1C създава файл с настройки. Сега трябва да отидете в Управлението на търговията и да продължите настройката там, като изберете опцията „Продължете да използвате файла“ и посочите този файл.

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

Обърнете внимание на тази точка, ако Trade Management не е празна база данни, тя има свои собствени директории, особено ако те се поддържат дълго време.

Ако не сте сигурни в тази точка:

  • Направете резервни копия на двете бази данни (особено ако обменът е двупосочен)
  • Помолете потребителите да не работят в тези бази данни, докато извършвате първоначалното разтоварване на 1C (почивните дни и вечерите :)
  • Разтоварете 1C, проверете дали директориите не се дублират
  • Ако нещо не е наред, върнете се към резервното копие.

Разтоварете UT-Retail 1C

Типичната конфигурация на 1C Retail често се използва заедно с конфигурацията за управление на търговията. Обикновено UT се използва в магазини за търговия на дребно, а Retail в офиса.

Разглеждаме пример за настройка на обмена на UT издание 11 с Retail.

Изберете Администриране в интерфейса, след това Обмени на данни, Добавяне/Създаване на конфигурация за обмен с търговия на дребно.

Настройката на обмена се извършва в две бази данни - първо в едната, след това в другата.

Съответно ще изберем „Продължи“, ако сте започнали да правите нов от нулата в Retail, и тук трябва да завършите настройката (по подобен начин, ако започнете в Trade Management, ще трябва да го завършите в Retail).

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

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

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

Тук можете да посочите датата, от която ще се качват документите, както и селекции (филтри) по организации, складове и др.

В раздела за кореспонденция можете да конфигурирате кореспонденцията на някои директории (магазини = отдели и каси).

Това завършва първия етап от настройката. В резултат на това беше създаден файл с настройки. Трябва да завършите настройката в базата данни за търговия на дребно, като посочите Продължете да използвате файла.

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

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

внимание!

Методът 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 цикъл
ArrayKom . 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 е най-популярният, удобен и надежден информационна система, който има в своята линия набор от решения за автоматизиране и обработка на абсолютно всички бизнес процеси в предприятия от всякакъв размер и сфера на дейност, потребителите все още имат ежедневна нужда да изтеглят данни от 1C до програми на трети страниили файлове. В тази статия ще разгледаме какво е разтоварване от 1C и ще покажем как да разтоварим от 1C и какви проблеми могат да възникнат по време на този процес.

Данни, които могат да бъдат изтеглени от 1C

1C на всяка конфигурация обикновено поддържа качване на такива данни като:

  • Печатни форми;
  • Доклади;
  • Таблици и списъци.

Качването на данни от 1C 8.3 е възможно в много популярни формати:

Качване на печатни форми и справки

Всяка отпечатана форма или отчет в 1C може да бъде запазена в желания формат. За да направите това, ще трябва да отворите формуляра или отчета, след което да изберете от Главното меню Файл - Запиши като.

След това ще се отвори прозорец за запазване на файл, посочващ името и типа на файла:



Възможни проблеми при разтоварване от 1C


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


Качване в Excel

Обработката на данни в най-популярния табличен формат изисква подходящо качване. За да запазите необходимите данни в Excel формат, трябва да укажете тип лист Excel2007-...(*.xlsx) в диалоговия прозорец за запис на файл. По-рядко се налага да записвате данни в стария Excel Sheet формат (*.xls):


По същия начин, като изберете желания формат, можете да качвате от 1C в PDF, от 1C в WORD, от 1C в CSV, както и в други формати.

Качване на произволни таблици от 1C

Този раздел ще ви покаже как можете да качвате всякакви данни, при условие че имате права за това.

1C е разработил стандартен механизъм, който ви позволява да качвате всеки списък (например списък с документи или елементи на директория). За да направите това, в командния панел на всеки списък, в групата "Повече ▼"налична команда „Вземете списък“:



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



Как да качите данни, които не се виждат в списъка

Често задачата за разтоварване на списък е придружена от необходимостта от добавяне на колони, които определено са в документа (директорията), но по някаква причина не се виждат в текущия списък. Пример: в списъка „Клиенти” добавете полето „Телефон” за качване, което се показва само в допълнителния панел вдясно:


За да може телефонът да бъде разтоварен от 1C, първо трябва да бъде добавен в списъка. За да направите това, трябва да извикате командата „Още – Промяна на формата.“След това трябва да намерим този, от който се нуждаем, в списъка с колони. Тук има един трик: разработчиците типични конфигурациипочти винаги добавяйте поле "Връзка".Ако застанете върху него и след това натиснете бутона тогава ще видим всички възможни полета на тази директория. Намиране на полето "Телефон"и поставете отметка в полето за използване.



След това клиентската база данни с телефонни номера може да бъде качена във файл чрез стандартната команда „Вземете списък“и продават на конкуренти.

Код 1C v 8.x // Процедурата изтегля данни от посочената директория в режим на експортиране във файл във формат Microsoft Excel
// с посоченото име, използвайки преобразуване на данни в тип число и тип низ;
Процедура BasicActionsFormsExport(Button)
опит
опит
// Зареждане на Microsoft Excel обект
Статус ("Качване на данни от 1C в Microsoft Excel...");
ExcelApplication = Нов COMObject("Excel.Application");
Изключение
Доклад ("Грешка при стартиране на Microsoft Excel."
+ Symbols.PS + ErrorDescription(), MessageStatus.Attention);
Връщане;
EndAttempt;

// Създайте книга, по подразбиране тя вече има листове
Книга = ExcelApplication.WorkBooks.Add();

// Използвайте първия лист от работната книга на Excel
Лист = Book.WorkSheets(1);

// Създайте заглавка на документ в първия ред на листа
Колона = 1;
За всяка страница от цикъла на TP
Ако страница.Разтовари Тогава
Sheet.Cells(1, Column).Value = page.AttributeName;
Колона = Колона + 1;
endIf;
EndCycle;

// Качване на данни от директорията
избор = Директории[Име на директория].Избор();
SheetString = 2;
Докато fetch.Next() цикъл
Колона = 1;
За всяка страница от цикъла на TP

Ако страница.Разтовари Тогава
опит
// Задайте стойността в ред и колона
Ако TypeValue(selection[page.AttributeName])=Type("Number") Тогава
// Задаване на формата за типа число
Sheet.Cells(SheetRow, Column).NumberFormat = "0,00";

Формат (селекция [page.AttributeName],"CH=0");
в противен случай
// За всички останали типове задайте формата на "Текст"
Sheet.Cells(SheetRow, Column).NumberFormat = "@";
Sheet.Cells(SheetRow, Column).Value =
Линия (избор [page.AttributeName]);
endIf;
изключение
// в случай на грешка, показва номера на реда и колоната
Доклад("Грешка при задаване на стойност за: " +
избор [pageAttributeName]);
Доклад("Страница: " +SheetLine+ "Брой: " +
Колона + " Rec: " + page.Name of Props);
EndAttempt;
Колона = Колона + 1;
endIf;

EndCycle;
SheetString = SheetString + 1;
Състояние ("Експортиране от 1C към Excel" + SheetString);
EndCycle;

// Запазете създадената книга в xls файл
Book.SaveAs(Име на файл);

// Не забравяйте да затворите връзката към COM обекта, за да освободите памет
ExcelApplication.Quit();

Notify("Файлът е качен успешно: " + име на файл);

Изключение
// Обработване на грешки при експортиране на данни от 1C към Excel
Доклад("Грешка при запис на данни за файл:" + Име на файл);
Доклад(Описание на грешка());
опит
ExcelApplication.Quit();
Изключение
EndAttempt;
EndAttempt;
Край на процедурата
Код 1C v 7.x // Най-простият примеризход от 1C:Enterprise 7.7 в MS Excel. Гарантиране, че работната книга има един лист,
//задаване на размера, получерността и цвета на шрифта, ширината на колоните, рамките и запълването на клетките. Подравняване на текст
//клетки, групиране на редове, настройка на числовия формат на клетките, замразяване на областта.

Процедура Изход()
опит
Application=CreateObject("Excel.Application");
Изключение
Доклад(Описание на грешка(),"!!!");
Доклад ("MS Excel може да не е инсталиран на този компютър.");
Връщане;
EndAttempt;

//Създаване на работна книга

Workbook=Application.WorkBooks.Add();
//Получаване на прозорец

Window=WorkBook.Windows(1);
//Задайте прозореца невидим, за да ускорите изхода

Window.Visible=0;
//Гарантиране, че работната книга има един лист

Ако WorkBook.Worksheets.Count=0 Тогава
Работна книга.Работни листове.Добавяне();
В противен случай
Application.DisplayAlerts=0;//не издава предупреждения

Докато Workbook.Worksheets.Count>1 цикъл
Работна книга.Работни листове(1).Изтриване();
EndCycle;
Application.DisplayAlerts=-1;//възстановяване на предупредителния флаг

endIf;
//Получаване на работен лист

Работен лист=Работна книга.Работни листове(1);
//Задайте името на работния лист

Worksheet.Name="Примерен резултат";

//Заглавие на документ

Worksheet.Range("A1").Value="Примерен изход от 1C:Enterprise в MS Excel";!}
Worksheet.Range("A2").Value="днес"+ТекущаяДата();!}
Worksheet.Range("A1:A2").Font.Size=14;//размер на шрифта

Worksheet.Range("A1:A2").Font.Bold=-1;//удебелен шрифт

//Задаване на ширина на колона

Worksheet.Columns(1).ColumnWidth=60;
Worksheet.Columns(2).ColumnWidth=15;
Worksheet.Columns(3).ColumnWidth=15;

//Заглавка на документа

Worksheet.Range("A4").Value="Първа колона";!}
За s=7 до 10 цикъла//кадъра

Worksheet.Range("A4").Borders(s).LineStyle=1;
Worksheet.Range("A4").Borders(s).Weight=-4138;//xlMedium

EndCycle;
Worksheet.Range("A4").Interior.ColorIndex=15;//запълване със сиво

Worksheet.Range("A4").HorizontalAlignment=-4108;//подравнете текста към центъра

Worksheet.Range("B4").Value="Second";!}
За s=7 до 10 цикъл
Worksheet.Range("B4").Borders(s).LineStyle=1;
Worksheet.Range("B4").Borders(s).Weight=-4138;
EndCycle;
Worksheet.Range("B4").Interior.ColorIndex=15;
Worksheet.Range("B4").HorizontalAlignment=-4108;

Worksheet.Range("C4").Value="Third";!}
За s=7 до 10 цикъл
Worksheet.Range("C4").Borders(s).LineStyle=1;
Worksheet.Range("C4").Borders(s).Weight=-4138;
EndCycle;
Worksheet.Range("C4").Interior.ColorIndex=15;
Worksheet.Range("C4").HorizontalAlignment=-4108;

//За групиране на редове:
Worksheet.Outline.SummaryRow=0;//"обобщени" редове, показани в горната част (ако в долната част, тогава 1)

//Изходни низове
Worksheet.Range("A5").Value="Analytics Object";!}
Worksheet.Range("A5").Font.ColorIndex=5;//цвят на шрифта - син

Worksheet.Range("B5").Value=123.45;
Worksheet.Range("B5").Font.ColorIndex=5;
Worksheet.Range("C5").Value=678.9;
Worksheet.Range("C5").Font.ColorIndex=5;

Worksheet.Range("A6").Value="Analytics Object";!}
Worksheet.Range("A6").Font.ColorIndex=3;//цвят на шрифта - червен

Worksheet.Range("B6").Value=123.45;
Worksheet.Range("B6").Font.ColorIndex=3;
Worksheet.Range("C6").Value=678.9;
Worksheet.Range("C6").Font.ColorIndex=3;

Worksheet.Range("A7").Value="Analytics Object";!}
Worksheet.Range("B7").Value=123.45;
Worksheet.Range("C7").Value=678.9;

Worksheet.Range("A8").Value="Analytics Object";!}
Worksheet.Range("B8").Value=123.45;
Worksheet.Range("C8").Value=678.9;

Worksheet.Range("A9").Value="Analytics обект";!}
Worksheet.Range("A9").Font.ColorIndex=3;//цвят на шрифта - червен

Worksheet.Range("B9").Value=123.45;
Worksheet.Range("B9").Font.ColorIndex=3;
Worksheet.Range("C9").Value=678.9;
Worksheet.Range("C9").Font.ColorIndex=3;

Worksheet.Range("A10").Value="Analytics Object";!}
Worksheet.Range("B10").Value=123.45;
Worksheet.Range("C10").Value=678.9;

Worksheet.Range("A11").Value="Analytics Object";!}
Worksheet.Range("B11").Value=123.45;
Worksheet.Range("C11").Value=678.9;

Worksheet.Range("A12").Value="Analytics Object";!}
Worksheet.Range("A12").Font.ColorIndex=5;//цвят на шрифта - син

Worksheet.Range("B12").Value=123.45;
Worksheet.Range("B12").Font.ColorIndex=5;
Worksheet.Range("C12").Value=678.9;
Worksheet.Range("C12").Font.ColorIndex=5;

Worksheet.Range("A13").Value="Analytics Object";!}
Worksheet.Range("A13").Font.ColorIndex=3;//цвят на шрифта - червен

Worksheet.Range("B13").Value=123.45;
Worksheet.Range("B13").Font.ColorIndex=3;
Worksheet.Range("C13").Value=678.9;
Worksheet.Range("C13").Font.ColorIndex=3;

Worksheet.Range("A14").Value="Analytics Object";!}
Worksheet.Range("B14").Value=123.45;
Worksheet.Range("C14").Value=678.9;

Worksheet.Range("A15").Value="Analytics Object";!}
Worksheet.Range("B15").Value=123.45;
Worksheet.Range("C15").Value=678.9;

Worksheet.Range("A16").Value="Analytics Object";!}
Worksheet.Range("A16").Font.ColorIndex=3;//цвят на шрифта - червен

Worksheet.Range("B16").Value=123.45;
Worksheet.Range("B16").Font.ColorIndex=3;
Worksheet.Range("C16").Value=678.9;
Worksheet.Range("C16").Font.ColorIndex=3;

Worksheet.Range("A17").Value="Analytics Object";!}
Worksheet.Range("B17").Value=123.45;
Worksheet.Range("C17").Value=678.9;

Worksheet.Range("A18").Value="Analytics Object";!}
Worksheet.Range("B18").Value=123.45;
Worksheet.Range("C18").Value=678.9;

//Задайте рамки

За NomStr=5 до 18 цикъл
За s=7 до 10 цикъл
Worksheet.Range("A"+LineNumber).Borders(s).LineStyle=1;
Worksheet.Range("B"+LineNumber).Borders(s).LineStyle=1;
Worksheet.Range("C"+LineNumber).Borders(s).LineStyle=1;
EndCycle;
EndCycle;

//Групиране на редове

Worksheet.Range("7:8").Rows.Group();
Worksheet.Range("10:11").Rows.Group();
Worksheet.Range("14:15").Rows.Group();
Worksheet.Range("17:18").Rows.Group();
Worksheet.Range("6:11").Rows.Group();
Worksheet.Range("13:18").Rows.Group();

//Свиване на групировки до първо ниво

Работен лист.Outline.ShowLevels(1);

//Задаване на числов формат

опит
Worksheet.Range("B5:C18").NumberFormat="# ##0.00";

Изключение
опит
Worksheet.Range("B5:C18").NumberFormat="# ##0.00";

Изключение
EndAttempt;
EndAttempt;

//Задаване на видимостта на приложението и неговия прозорец

Application.Visible=-1;
Window.Visible=-1;

//Закачете зоната

Worksheet.Range("A5").S_elect();
Window.FreezePanes = -1;
EndProcedure //Изход