Отримання даних із xls файлу 1с. Чому автоматизації з урахуванням Microsoft Excel недостатньо для сучасної компанії. Вивантажуємо друковані форми документів

26.04.2020 Програми

Цей спосібпростий. Його суть полягає в тому, що об'єкт ТабличнийДокументмає методи:

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

Увага!

Метод Записати () доступний як на клієнті, так і на сервері. Метод Прочитати () доступний лише на стороні сервера. Необхідно пам'ятати про це
при плануванні клієнт-серверної взаємодії.

Розглянемо приклад збереження табличного документау файл. Необхідно будь-яким способом створити та заповнити об'єкт ТабличнийДокумент, а вивантаженняу файл здійснюється лише одним рядком:

ТабДок . Записати(ШляхКФайлу, ТипФайлуТабличногоДокументу. XLSX);

Тут ТабДок- Сформований табличний документ, Шлях до файлу- Ім'я файлу для вивантаження, ТипФайлаТабличногоДокумента.XLSX- Формат створюваного файлу. Підтримуються такі формати Excel:

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

ТабДок = Новий Табличний Документ;
ТабДок . Прочитати(ШляхКФайлу, СпосібЧитанняЗначеньТабличногоДокумента.Значення);

Тут Шлях до файлу— шлях до файлу Excel, що завантажується. СпосібЧитанняЗначеньТабличногоДокумента.Значеннявизначає, як потрібно інтерпретувати дані, зчитувані з вихідного документа. Доступні варіанти:

  • значення;
  • Текст.

Обмін через OLE

Обмін через технологію OLE automation, мабуть, найпоширеніший варіант програмної роботиіз файлами Excel. Він дозволяє використовувати весь функціонал, що надається Excel, але відрізняється повільною швидкістюроботи проти іншими способами. Для обміну через OLE потрібна установка MS Excel:

  • На комп'ютері кінцевого користувача, якщо обмін відбувається за клієнта;
  • На комп'ютері сервера 1С: Підприємство, якщо обмін відбувається за сервера.

приклад вивантаження:

// Створення COM-об'єкта
Ексель = Новий COMОб'єкт («Excel.Application»);
// Відключення виведення попереджень та питань
Ексель . DisplayAlerts = Брехня;
// Створення нової книги
Книга = Ексель. WorkBooks. Add();
// Позиціювання на першому аркуші
Аркуш = Книжка. Worksheets(1);

// Запис значення в комірку
Аркуш . Cells(НомерРядки, НомерКолонки). Value = Значення осередку;

// Збереження файлу
Книга . SaveAs(Ім'яФайлу);


Ексель . Quit();
Ексель = 0;

Приклади читання:

// -- ВАРІАНТ 1 --

// Створення COM-об'єкта
Ексель = Новий COM Об'єкт («Excel.Application»);
// Відкриття книги
Книга = Ексель. Workbooks. Open( Шлях до файлу );

Аркуш = Книжка. Worksheets(1 );

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

// Закриття Ексель та звільнення пам'яті
Ексель . Quit();
Ексель = 0;

// -- ВАРІАНТ 2 --

// Відкриття книги
Книга = ОтриматиCOMОб'єкт( Шлях до файлу );
// Позиціювання на потрібному аркуші
Аркуш = Книжка. Worksheets(1 );

// Читання значення комірки, зазвичай тут розташовується цикл обходу осередків
ЗначенняКомірки = Аркуш. Cells(НомерРядки, НомерКолонки). Value;

// Закриття книги
Книга . Application. Qui t();

Для обходувсіх заповнених рядків аркуша Excel можна використовувати такі прийоми:

// -- ВАРІАНТ 1 --
Кількість Рядок = Аркуш. Cells (1, 1). SpecialCells(11 ). Row;
Для НомерРядки = 1 По КількістьРядок Цикл
ЗначенняКомірки = Аркуш. Cells(НомерРядки, НомерКолонки). Value;
КінецьЦикл;

// -- ВАРІАНТ 2 --
НомерРядки = 0;
Поки що Істина Цикл
НомерРядки = НомерРядки + 1;
ЗначенняКомірки = Аркуш. Cells(НомерРядки, НомерКолонки). Value;
Якщо НЕ ЗначенняЗаповнено(ЗначенняКомірки) Тоді
Перервати;
КінецьЯкщо;
КінецьЦикл;

Замість послідовного обходу всіх рядків листа можна вивантажити всі дані в масивта працювати з ним. Такий підхід буде швидшим при читанні великого обсягу даних:

ВсьогоКолонок = Аркуш. Cells (1, 1). SpecialCells(11 ). Column;
УсьогоРядок = Аркуш. Cells (1, 1). SpecialCells(11 ). Row;

Область = Аркуш. Range (Лист. Cells (1, 1), Лист. Cells (Всього Рядок, Всього Колонок));
Дані = Область. Value. Вивантажити();

У таблиці нижче наведено найбільш затребувані властивості та методи для роботи з Excel через OLE:

Дія Код Коментар
Робота з додатком
Встановлення видимості вікна програми Ексель . Visible= Брехня;
Встановлення режиму виводу попереджень (виводити/не виводити) Ексель . DisplayAlerts= Брехня;
Закриття програми Ексель . Quit();
Робота з книгою
Створення нової книги Книга = Ексель. WorkBooks. Add();
Відкриття існуючої книги Книга = Ексель. WorkBooks. Open(Ім'яФайлу);
Збереження книги Книга . SaveAs(Ім'яФайлу);
Закриття книги Книга . Close(0);
Робота з листом
Встановлення поточного листа Аркуш = Книжка. WorkSheets(НомерЛіста);
Встановлення імені Аркуш . Name = Ім'я;
Встановлення захисту Аркуш . Protect();
Зняття захисту Аркуш . UnProtect();
Встановлення орієнтації сторінки Аркуш . PageSetup. Orientation = 2; 1 - книжкова, 2 - альбомна
Встановлення лівого кордону Аркуш . PageSetup. LeftMargin = Ексель. CentimetersToPoints(Сантиметри);
Встановлення верхнього кордону Аркуш . PageSetup. TopMargin = Ексель. CentimetersToPoints(Сантиметри);
Встановлення правого кордону Аркуш . PageSetup. RightMargin = Ексель. CentimetersToPoints(Сантиметри);
Встановлення нижнього кордону Аркуш . PageSetup. BottomMargin = Ексель. CentimetersToPoints(Сантиметри);
Робота з рядками, колонками, осередками
Встановлення ширини колонки Аркуш . Columns(НомерКолонки). ColumnWidth = Ширина;
Видалення рядка Аркуш . Rows(НомерРядки). Delete();
Видалення колонки Аркуш . Columns(НомерКолонки). Delete();
Видалення осередку Аркуш . Cells(НомерРядки, НомерКолонки). Delete();
Встановлення значення Аркуш . Cells(НомерРядки, НомерКолонки). Value = Значення;
Об'єднання осередків Аркуш . Range(Лист. Cells(НомерРядки, НомерКолонки), Лист. Cells(НомерРядки1, НомерКолонки1)). Merge();
Встановлення шрифту Аркуш . Cells(НомерРядки, НомерКолонки). Font. Name = Ім'яШрифту;
Встановлення розміру шрифту Аркуш . Cells(НомерРядки, НомерКолонки). Font. Size = РозмірШрифту;
Встановлення жирного шрифту Аркуш . Cells(НомерРядки, НомерКолонки). Font. Bold = 1 ; 1 — жирний шрифт 0 - нормальний
Встановлення курсиву Аркуш . Cells(НомерРядки, НомерКолонки). Font. Italic = 1 ; 1 - курсив, 0 - нормальний
Встановлення підкресленого шрифту Аркуш . Cells(НомерРядки, НомерКолонки). Font. Underline = 2 ; 2 - підкреслений, 1 - ні

Для того, щоб дізнатися, яку властивість потрібно змінювати або який метод викликати можна скористатися макросами Excel. Якщо записати макрос з необхідними діями, то можна подивитися програмний код на VBA записаного макросу.

Використання COMSafeArray

При вивантаженні великих обсягів даних з 1С Excel для прискорення можна використовувати об'єкт COMSafeArray. Згідно з визначенням синтакс-помічника, COMSafeArray — об'єктна оболонка над багатовимірним масивом SafeArrayіз COM. Дозволяє створювати та використовувати SafeArray для обміну даними між COM-об'єктами. Простіше кажучи, це масив значень, який можна використовуватиме обміну між додатками за технологією OLE.

// Створення COMSafeArray
МасивКом = Новий COMSafeArray(«VT_Variant» , ВсьогоКолонок, ВсьогоСтрок);
// Заповнення COMSafeArray
Для Стор = 0 По ВсьогоСторок - 1 Цикл
Для Кол = 0 По ВсьогоКолонок - 1 Цикл
МасивКом . SetValue(Кількість, Стор, Значення);
КінецьЦикл;
КінецьЦикл;
// Присвоєння області аркуша Excel значеньз COMSafeArray
Аркуш . Range (Лист. Cells (1, 1), Лист. Cells (Всього Рядок, Всього Колонок)). Value = МасивКом;

Обмін через ADO

Файл Excel під час обміну через ADO є базою даних, до якої можна звертатися з допомогою SQL-запросов. Установка MS Excel не потрібна, але обов'язково наявність драйвера ODBC, за допомогою якого буде доступ. Драйвер ODBC, що використовується, визначається при вказівці рядка з'єднання до файлу. Зазвичай потрібний драйвер вже інстальовано на комп'ютері.

Обмін через ADO помітно швидше обміну через OLE, але під час вивантаження немає можливості використовувати функціонал Excel для оформлення осередків, розмітки сторінок, завдання формул тощо.

приклад вивантаження:


З'єднання = Новий COMОб'єкт («ADODB.Connection»);


З'єднання . ConnectionString = «

|Data Source=» + ім'я файлу + «;
;
З'єднання . Open(); // Відкриття з'єднання

// Створення COM-об'єкта для команди
Команда = Новий COMОб'єкт («ADODB.Command»);
Команда

// Присвоєння тексту команди до створення таблиці
Команда . CommandText = «CREATE TABLE [Лист1] (Колонка1 char(255), Колонка2 date, Колонка3 int, Колонка4 float)»;
Команда . Execute(); // Виконання команди

// Присвоєння тексту команди додавання рядка таблиці
Команда . CommandText = «INSERT INTO [Аркуш1] (Колонка1, Колонка2, Колонка3, Колонка4) values ​​('абвгдеє', '8/11/2017', '12345', '12345,6789')»;
Команда.Execute(); // Виконання команди

// Видалення команди та закриття з'єднання
Команда = Невизначено;
З'єднання . Close();
З'єднання = Невизначено;

Для створення нового аркуша та формування його структури можна скористатися об'єктами ADOX.Catalogі ADOX.Table. У цьому випадку код набуде вигляду:

// Створення COM-об'єкта для роботи з книгою
Книга = Новий COMОб'єкт («ADOX.Catalog»);
Книга . ActiveConnection = З'єднання;

// Створення COM-об'єкта для роботи зі структурою даних на аркуші
Таблиця = Новий COMОб'єкт («ADOX.Table»);
Таблиця . Name = «Лист1»;
Таблиця . Columns. Append («Колонка1», 202);
Таблиця . Columns. Append («Колонка2», 7);
Таблиця . Columns. Append («Колонка3», 5);
Таблиця . Columns. Append («Колонка4», 5);

// Створення у книзі листа з описаною структурою
Книга . Tables. Append(Таблиця);
Таблиця = Невизначено;
Книга = Невизначено;

У наведеному прикладі у методі

Таблиця . Columns. Append(«Колонка1», 202);

у другому параметрі вказується тип колонки. Параметр необов'язковий, деякі значення типу колонки:

  • 5 - adDouble;
  • 6 - adCurrency;
  • 7 - adDate;
  • 11 - adBoolean;
  • 202 - adVarWChar;
  • 203 - adLongVarWChar.

приклад читання:

// Створення COM-об'єкта для з'єднання
З'єднання = Новий COMОб'єкт («ADODB.Connection»);

// Встановлення рядка з'єднання
З'єднання . ConnectionString = «
|Provider=Microsoft.ACE.OLEDB.12.0;
|Data Source=» + ім'я файлу + «;
|Extended Properties=""Excel 12.0 XML;HDR=YES"";";
З'єднання . Open(); // Відкриття з'єднання

// Створення COM-об'єкта отримання вибірки
Вибірка = Новий COMОб'єкт («ADODB.Recordset»);
Текст Запиту = «SELECT * FROM [Письмо1$]»;

// Виконання запиту
Вибірка . Open(Текст Запиту, З'єднання);

// Обхід результату вибірки
Поки що НЕ Вибірка. EOF() Цикл
ЗначенняКолонки1 = Вибірка. Fields. Item(«Колонка1»). Value ; // Звернення на ім'я колонки
ЗначенняКолонки2 = Вибірка. Fields. Item(0). Value; // Звернення за індексом колонки
Вибірка . MoveNext();
КінецьЦикл;

Вибірка . Close();
Вибірка = Невизначено;
З'єднання . Close();
З'єднання = Невизначено;

У рядку з'єднання параметр HDRвизначає як сприйматиметься перший рядок на аркуші. Можливі варіанти:

  • YES - перший рядок сприймається як назви колонок. До значень можна звертатися по імені та індексу колонки.
  • NO - перший рядок сприймається як дані. До значень можна звертатись лише за індексом колонки.

У наведених прикладах розглянуто лише кілька об'єктів ADO. Об'єктна модель ADO складається з наступних об'єктів:

  • Connection;
  • Command;
  • Recordset;
  • Record;
  • Fields;
  • Stream;
  • Errors;
  • Параметри;
  • Properties.

Вивантаження без програмування

Для збереження даних з 1С Excel не завжди доцільно вдаватися до програмування. Якщо в режимі Підприємства користувач може відобразити потрібні для вивантаження дані, їх можна зберегти в Excel без програмування.

Для збереження табличного документа (наприклад, результату звіту) можна викликати команду Зберегтиабо Зберегти як…головне меню.

У вікні потрібно вибрати каталог, ім'я і формат файлу, що зберігається.

Для збереження даних динамічних списків (наприклад, списку номенклатури) необхідно:

  1. Вивести дані до табличного документа за допомогою команди Ще ⇒ Вивести список…;
  2. Зберегти табличний документ у потрібний формат.

Досить часто, спілкуючись із потенційними клієнтами, я чую про те, що їм цілком вистачає функціонала таблиці від офісного пакету, і вони не бачать сенсу у програмах «1С». Все тому, що деякі як і раніше асоціюють дане рішеннялише з програмами для бухгалтера, що неправдою.

"Excel" - універсальний і масовий продукт, з цим не посперечаєшся. Практично кожен може скористатися цією програмою, на відміну від розробок «1С», спрямованих на вузьких спеціалістів. Використовуючи «зелені» таблиці, можна довільно реалізовувати необхідний функціонал, який буде зручним: тут і фінансова модель організації з усіма взаєморозрахунками, управлінський облік, навіть регламентований великий вибір візуалізації даних, можливість власноруч розширювати можливості програми, використовуючи різні надбудови – все у Ваших руках , все з нуля...

Добре, якщо Ви тільки починаєте свій бізнес, поступово враховуючи необхідні дані в таблиці з клієнтами, постачальниками, контролюючими органами, вибудовуючи свою довільну структуру, але як бути далі, коли база даних стане об'ємною, а штат співробітників обчислюватиметься десятками? Так само вважати за власними параметрами? Я за те, щоб не плутати зручність із звичкою, яка найчастіше заважає систематизації бізнесу, а отже – його оптимізації.

Для наочності давайте уявимо, які можу виникнути потреби в автоматизації обліку, наприклад, у торгівлі:

1. Аналіз продажів у межах певного періоду.

Керівник відділу продажів може аналізувати дані з продажу. Адже йому важливо розуміти, чи виконується план, наскільки ефективні його стратегії, щоб у разі неефективності вчасно внести коригування в роботу.

2. Складський облік.
Чи потрібно пояснювати, що для продажу також важливим є розуміння наявності товару на складі, який товар може бути зарезервований, а якого немає в наявності і що потрібно замовити? Думаю, тут і так зрозуміло.

3. Ведення основи контрагентів.
Навіть якщо власник продає лише те, що можна купити тут і зараз, що характерно для сектора B2C, то з базою постачальників у нього трохи інші стосунки – договори, первинки... Уявіть, наскільки це зручно, коли все, що пов'язане з постачальником автоматично відразу відображається в єдиній базі? Менеджер, який відповідає за склад, відразу бачить наявність товару на складі, інший співробітник, відповідальний за документи, моніторить інформацію щодо їх наявності, чи виконуються всі зобов'язання за договірними відносинами, хто і скільки кому винен. А у разі розбіжностей можна звірити дані за певний період, сформувавши результат менш ніж за хвилину.

4. Прибуток організації.
Сформувати звіт з прибутку не складе величезної праці, оскільки всі дані щодо витрат і доходів вже й так є в базі. За умови, якщо інформація вноситься своєчасно, принаймні, потрібною датою. Тут основний чинник – особиста відповідальність користувача.

Якщо у Вас не так багато клієнтів та постачальників, Вам дійсно підійде «Excel», оскільки часу достатньо для конструювання власних схем у таблиці та їх заповнень, з наступним розподілом документів по різних папках на комп'ютері: договори, постачальники, клієнти, клієнти по сусідству , клієнти у розробці, клієнти на видалення – нескінченний та захоплюючий процес створення папок у папці. А якщо інформації стає багато, чи зручно в цьому випадку вести облік бази? Звичайно, завжди є винятки, часом трапляються організації з великими оборотами, у яких дані щодо фінансів ведуться лише у «Excel». Скільки ж при цьому часу вони йдуть на обмін і об'єднання даними між відділами? Відповім: багато.

Я не уявляю, як у великій кількості документів Excel, організованих довільною системою, оперативно знайти потрібний. Наприклад, під час надання документів на вимоги від податкової. Як бухгалтер здаватиме звітність до контролюючих органів, коли інформація вся розрізнена? Бухгалтерія, звичайно, може бути на аутсорсингу і деяких власників бізнесу, на жаль, може не хвилювати які у даного фахівця можуть бути лише процеси баланси зводив. Але навіть якщо так, то як тоді організовано процес обміну документами? Наскільки швидко співробітник на стороні розбереться в імпровізованій інформаційній структурі?

Про «1С» такого сказати не можу, оскільки там уся інформація структурована та взаємопов'язана:

    Єдина база як для віддалених, так і для штатних співробітників, у якій можна працювати з усіма стандартизованими та довільними документами;
    Формування звітності до контролюючих органів відбувається на підставі даних, які вже відображені в програмі, немає необхідності відкривати безліч файлів, зводити кілька значень в одну таблицю, отримуючи підсумкові результати.
«1С», по-хорошому, – багатозадачна система, спрямовану як у типові завдання обліку, і автоматизацію всіх процесів організації залежно від сфери діяльності. Основне слово тут – система. Ніхто Вам не заважає організувати систему свого бізнесу в «Excel», але навіщо винаходити велосипед, коли є рішення, які покривають практично всі потреби в часових оптимізації, фінансових витратдопомагаючи систематизувати роботу?

На захист «Excel»

Напевно, Вам здалося, що проти побудови даних у «зелених» таблицях. Не. Насправді я сам частенько веду деякі справи в Excel: якщо мені потрібні довільні обчислення, якщо мені необхідно сегментувати дані по клієнтах, проводячи аналітику за тими параметрами, яких немає в 1С - так, таке буває - я йду в Excel». Простіше кажучи, в таблицях я займаюся обчисленнями, нестандартним аналізом, але систематизую все згодом все одно в «1С».

Та й потім, для перегляду вивантажених файлів з 1С все одно знадобиться Excel, так як дані в 1С зберігаються в електронних таблицях. Вам здається, що це замкнене коло? Я скажу по-іншому: «1С» та «Excel» йдуть поряд як два напарники, але у кожного з них своє призначення, вони добре доповнюють один одного, але не взаємозамінюють.

Якщо Вам потрібно систематизувати ваші справи з урахуванням законодавчої системи нашої держави, з урахуванням специфіки та спрямованості бізнесу, тим більше коли справа стосується великих обсягів інформації, то Вам потрібен «1С». Якщо Вам потрібні довільні розрахунки, побудова стратегії з нуля, візуалізація нестандартних даних з аналітики, то до послуг «Excel». Але набагато зручніше працювати з цими рішеннями одночасно.


Що в результаті - "1С" або "Excel"?

На самому старті, якщо питання саме у фінансах на автоматизацію, хоч базові програми«1С» стоять не таких вже великих грошейя б скористався «Excel». Величезний плюс, у тому, що дані із «зелених» таблиць без втрат можна підвантажити в «1С». Але в міру масштабування, я б радив звернути увагу на програми автоматизації бізнес-процесів. Їх багато, і не обов'язково це може бути «1С».

Перехід на «1С» можна здійснити тоді, коли Ви розумієте, що необхідно оптимізувати свої ресурси, у тому числі автоматизувати питання щодо взаємовідносин із клієнтами та постачальниками, з наглядовими органами. Загалом, налагодити свої робочі процеси, щоб підвищити ефективність бізнесу, коли обробка інформації займатиме велику кількість часу, а файли «Excel» вже не справлятимуться з обсягами даних, що вводяться.

Однак не кожна «1С» може Вам підійти, потрібно враховувати різні фактори: специфіку та сферу бізнесу, масштаби, потребу в щоденних завданнях, рутину якої необхідно звести до мінімуму. Усі індивідуально. Істина, як я вже казав, десь між "1С" та "Excel" - вона в доповненні один одного.

На цьому, мабуть, усі. Але якщо виникнуть питання, то звертайтеся, чи постараємося Вам допомогти. Успішних бізнес-процесів, колеги!

У 1С існує два способи роботи з файлами MS Excel, через COM-об'єкт і вбудованими засобами 1С за допомогою об'єкта табличний документ. Розберемо обидва ці способи докладніше.

1. Робота через COM-об'єкт.

Для цього способу необхідний встановлений MS Excel, притому якщо ви працюєте з файлом на сервері, то відповідно MS Excel має бути встановлений на сервері, якщо на клієнті - то на клієнтській сторонітак само потрібний MS Excel.

Приклад (наприкінці статті можна подивитися у текстовому вигляді):

Слід зазначити, що це об'єкти, методи та властивості, що надаються COM-объектом "Excel.Application" - це об'єкти, методи та властивості VBA, мови програмування MS Office.

Примітка:

Буває потрібно працювати з уже існуючим шаблоном. Тоді перед нами виникає необхідність десь зберігати цей шаблон, щоб до нього мали доступ усі необхідні користувачі. Однак є простіше рішення, зберігаємо шаблон як двійковий макет.

2. Робота через Табличний Документ 1С.

Табличний документ 1С підтримує формат MS Excel для запису з платформи 8, а ось для відкриття тільки з платформи 8.3.6. При відкритті всі листи завантажуються в один табличний документ. Починаючи з версії 8.3.10, при завантаженні різні аркуші завантажуються, як різні області.

Приклад запису дуже простий і вимагає особливої ​​уваги:

Однак тут у нас постає проблема. При записі з 1С у книзі Excel за замовчуванням відключено відображення імен аркушів.

Цю проблему можна вирішити 2 способами, 1 - у самій книзі в налаштуваннях увімкнути відображення аркушів (не всі користувачі будуть згодні це робити), 2 - зробити це через COM-об'єкт (нам знову потрібний встановлений MS Excel).

Після цього невеликого доповнення у файлі MS Excel будуть видні ярлики аркушів.

Читання ж MS Excel не така проста задача, оскільки метод прочитати доступний тільки на сервері або товстому клієнті. Для цього нам потрібно передати файл MS Excel на сервер.

&На Клієнті

Процедура Створення документа()

Виняток

КінецьСпроби;

Книга = Ексель.WorkBooks.Add(); //Створюємо нову книгу MS Excel

Аркуш = Книга.WorkSheets.Add(); //Додаємо лист

Лист.Name = "Приклад із 1С"; //Задаємо ім'я аркуша

Лист.Cells(1,1).Value = "Давайте створимо формулу";!}

Аркуш.Cells (2,1).Value = 1;

Аркуш.Cells (2,2).Value = 2;

Аркуш.Cells (2,3).Formula = "=A2+B2";

Аркуш.Cells (3,1).Value = ПоточнаДата();

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

Книжка.Close();

КінецьПроцедури

&На сервері

Функція ОтриматиМакетСервер()

Повернення РеквізитФормиЗначення("Об'єкт").ОтриматиМакет("ШаблонНаВивантаження"); //Таким чином ми отримуємо макет зовнішньої обробки;

КінецьФункції

&На Клієнті

Процедура Робота()

Ексель = Новий COMОб'єкт ("Excel.Application");

Виняток

Повідомити("Невдала спроба підключення компоненти Excel. Можливо, програма Excelне встановлена ​​на цьому комп'ютері!");

КінецьСпроби;

Макет = ОтриматиМакетСервер();

Макет.Записати(Ім'яТимчасовогоФайлу);

У вас є питання, чи потрібна допомога консультанта?

Книга = Ексель.WorkBooks.Open (Ім'я Тимчасового Файлу);

Аркуш Шаблона = Книга. WorkSheets (1);

Аркуш Шаблона.Cells (6,1).Value = "Дата:";!}

Аркуш Шаблона.Cells (6,2).Value = ПоточнаДата();

Аркуш Шаблона.NumberFormat = "dd/mm/yy;@"; // Дамо формат дати, цей формат отримано записом макросу в MS Excel

Аркуш Шаблона.Columns("B:B").EntireColumn.AutoFit; // Розтягнемо колонку, щоб дата точно містилася

SaveAs(Ім'яФайлу);

Книжка.Close();

КінецьПроцедури

&На Клієнті

КінецьПроцедури

&На Клієнті

Процедура ЗаписатиТабличнийДокумент()

Табличний Документ = Новий Табличний Документ ();

ТабличнийДокумент.Область("R1C1").Текст = "Приклад запису в MS Excel з 1С";

ТабличнийДокумент.Записати("C:\1\Test2.xls",ТипФайлаТабличногоДокумента.XLSX);

Excel = Новий COMОб'єкт ("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()

КінецьПроцедури

ДвійковіДані = Новий ДвійковіДані("C:\1\test2.xlsx");

Адреса=ПоміститиВчаснеСховище(ДвійковіДані,ЦяФорма.УнікальнийІдентифікатор) ;

ТабличнийДокумент = ЗавантажитиНа Сервері (Адреса);

Табличний Документ. Показати ();

КінецьПроцедури

&На сервері

Функція ЗавантажитиНа Сервері(Адреса)

Ім'яТимчасовогоФайлу = ОтриматиІм'яТимчасовогоФайлу("xlsx");

ДаніФайла = ОтриматиЗ ТимчасовогоСховища(Адреса);

ДаніФайла.Записати(Ім'яТимчасовогоФайлу);

Табличний Документ = Новий Табличний Документ ();

Повернення ТабличнийДокумент;

Вже давно самої популярною програмоюСеред бухгалтерів, планувальників, економістів та управлінців став додаток 1C. Воно має як різноманітну кількість змін щодо різноманітних видів діяльності, а й локалізації під стандарти обліку у кількох країнах світу. Дедалі більше підприємств переходить на ведення обліку саме у цій програмі. Але процедура перенесення даних вручну з інших програм обліку в 1C - досить довге і нудне заняття, що забирає багато часу. Якщо на підприємстві вівся облік допомогою Excel, то процес перенесення можна істотно автоматизувати та прискорити.

Виробляти перенесення даних з Excel в 1С потрібно як на початковому періоді роботи з цією програмою. Іноді настає необхідність подібного, коли під час діяльності потрібно занести якісь списки, що зберігаються у книзі табличного процесора. Наприклад, якщо потрібно перенести прайс-листи або замовлення онлайн-магазину. У випадку, коли списки невеликі, їх можна вбити і вручну, але що робити, якщо вони містять сотні найменувань? Для того, щоб прискорити процедуру, можна вдатися до деяких додаткових можливостей.

Для автоматичного завантаженняпідійдуть практично всі типи документів:

  • Список номенклатури;
  • Список контрагентів;
  • Список прайсів;
  • Перелік замовлень;
  • Інформація про купівлю або продаж тощо.

Відразу слід зазначити, що в 1С немає вбудованих інструментів, які б дозволяли переносити дані з Ексель. Для цих цілей потрібно підключити зовнішній завантажувач, який є файлом у форматі epf.

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

Нам потрібно буде підготувати дані у самій таблиці Excel.


Крім цих універсальних дій щодо підготовки даних у книзі Ексель, потрібно буде ще привести документ у відповідність до вимог конкретного завантажувача, який ми будемо використовувати, але про це ми поговоримо трохи нижче.

Підключення зовнішнього завантажувача

Підключити зовнішній завантажувач із розширенням epfдо додатку 1С можна як до підготовки файлу Ексель, так і після. Головне, щоб до початку процесу виконання завантаження обидва ці підготовчі моменти були вирішені.

Існує кілька зовнішніх завантажувачів таблиць Ексель для 1С, які створені різними розробниками. Розглядатимемо ми приклад із використанням інструменту для обробки інформації «Завантаження даних із табличного документа»для версії 1С 8.3.


Однією з основних баз даних, із якими працює 1C, є список номенклатури товарів та послуг. Тому для опису процедури завантаження з Excel зупинимося на прикладі перенесення цього типу даних.

  1. Повертаємось до вікна обробки. Так як ми завантажуватимемо номенклатуру товарів, то в параметрі перемикач повинен стояти в позиції «Довідник». Втім, його так встановлено за умовчанням. Перемикати його слід лише тоді, коли ви зібралися переносити інший тип даних: табличну частинуабо регістр відомостей. Далі у полі «Вигляд довідника»клацаємо по кнопці, на якій зображено крапку. Відкривається список, що випадає. У ньому нам слід вибрати пункт "Номенклатура".
  2. Після цього обробник автоматично розставляє поля, які програма використовує у цьому виді довідника. Потрібно відразу зазначити, що не обов'язково заповнювати всі поля.
  3. Тепер знову відкриваємо переносимий документ Excel. Якщо найменування його колонок відрізняється від найменування полів довідника 1С, які містять відповідні, потрібно перейменувати ці стовпці в Екселі так, щоб назви повністю збігалися. Якщо таблиці є стовпці, котрим у довіднику немає аналогів, їх слід видалити. У нашому випадку такими стовпцями є «Кількість»і «Ціна». Також слід додати, що порядок розміщення стовпців у документі має суворо збігатися з тим, який представлений у обробці. Якщо для деяких стовпців, які відображаються в завантажувачі, у вас немає даних, то ці колонки можна залишати порожніми, але нумерація стовпців, де є дані, повинна збігатися. Для зручності та швидкості редагування можна застосовувати спеціальну можливістьЕксель для швидкого переміщення колонок місцями.

    Після того, як ці дії зроблені, тиснемо на значок «Зберегти», який представлений у вигляді піктограми, що зображує дискету у лівому верхньому куті вікна. Потім закриваємо файл, натиснувши стандартну кнопку закриття.

  4. Повертаємось у вікно обробки 1С. Тиснемо на кнопку «Відкрити»яка зображена у вигляді папки жовтого кольору.
  5. Відкриється вікно відкриття файлу. Переходимо до директорії, де розташований документ Ексель, який нам потрібен. Перемикач відображення файлів за замовчуванням встановлений для розширення mxl. Щоб показати потрібний нам файл, його потрібно переставити в позицію « Аркуш Excel» . Після цього виділяємо документ, що переноситься, і тиснемо на кнопку «Відкрити».
  6. Після цього вміст відкривається в обробнику. Щоб перевірити коректність заповнення даними, тиснемо на кнопку «Контроль заповнення».
  7. Як бачимо, інструмент контролю заповнення повідомляє нам, що помилок не знайдено.
  8. Тепер переміщуємось у вкладку "Налаштування". У «Поле пошуку»ставимо галочку в тому рядку, який у всіх найменувань, що заносяться до довідника номенклатури, буде унікальним. Найчастіше для цього використовують поля «Артикул»або «Найменування». Це потрібно робити для того, щоб при додаванні нових позицій до списку дані не подвійні.
  9. Після того, як усі дані внесені та налаштування виконані, можна переходити до безпосереднього завантаження інформації до довідника. Для цього клацаємо по напису "Завантажити дані".
  10. Виконується процес завантаження. Після її завершення можна перейти до довідника номенклатури та переконатися, що всі потрібні дані туди додані.

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

Багатьом офісним працівникам часто доводиться користуватися програмами 1C і Excel. Їм доводиться експортувати дані з одного додатка до іншого. Сьогодні ми розглянемо, як вивантажити з 1С до Excel.

Вивантажуємо дані з 1С до Екселю

Вивантаження даних з 1С Microsoft Excel- Процес, що складається з нескладних дій. Для цього достатньо вбудованих у дані програми коштів. Існує кілька способів експорту даних.

Вивантажуємо велику кількість даних

У відкритому документіслід клацнути правою кнопкою миші та вибрати «Вивести список». Після цього всі елементи відображаються як звичайний текст. Його можна скопіювати та вставити в документ MS Excel, але краще відкрити меню "Файл" і перейти в розділ "Зберегти як".

Залишається лише вибрати формат файлу та зберегти його.

Вивантажуємо друковані форми документів


Як вставити список у книгу Excel

Щоб перенести список, слід скористатися наступним способом:

  • Потрібний список відкриваємо у програмі 1С. Потім необхідно правою кнопкою миші натиснути на «Всі дії», а потім «Вивести список».


  • З'явиться оболонка списку. У полі «Виводить у» має бути встановлений варіант «Таблічний документ».
  • Трохи нижче можна вибрати стовпчики, які слід перенести.


Порада! Не слід нічого змінювати у цьому вікні, коли ви збираєтеся повністю перенести документ.

  1. Після цього користувач побачить на екрані список у вигляді таблиці. Його потрібно весь виділити та скопіювати.
  2. Потім створюється новий документ Excel і дані вставляються в нього за допомогою «CTRL+V».

Створюємо нову книгу Excel зі списком

Можна довго не возитися і одразу вивести список з 1С в Ексель:

1. Робимо все те саме, що й у попередньому методі поки що не сформується список. Потім потрібно перейти в меню, відкрити розділ "Файл" і вибрати "Зберегти як".



Висновок

Тепер ви знаєте кілька способів, як вивантажити таблицю з 1С в Ексель. Процедура досить легка, і з нею впорається будь-який користувач. Головне – це добре вивчити наші інструкції, вибрати відповідний спосіб і чітко дотримуватися вказівок. Щоб було простіше, дивіться на вставлені скрини.