Як вивантажити звіт з 1с в excel. Вивантаження даних в Excel з установкою різних параметрів

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

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

Увага!

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

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

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

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

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

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

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

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

Обмін через OLE

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

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

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

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

// Запис значення в клітинку
лист . Cells (НомерСтрокі, НомерКолонкі). Value \u003d ЗначеніеЯчейкі;

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


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

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

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

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

лист \u003d Книга. Worksheets (1);

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

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

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

// Відкриття книги
книга \u003d ПолучітьCOMОб'ект ( Шлях до файлу );
// Позиціонування на потрібному аркуші
лист \u003d Книга. Worksheets (1);

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

// Закриття книги
книга . Application. Quit ();

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

// -- ВАРІАНТ 1 --
КолічествоСтрок \u003d Лист. Cells (1, 1). SpecialCells (11). Row;
Для НомерСтрокі \u003d 1 За КолічествоСтрок Цикл
ЗначеніеЯчейкі \u003d Лист. Cells (НомерСтрокі, НомерКолонкі). Value;
КонецЦікла;

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

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

ВсегоКолонок \u003d Лист. Cells (1, 1). SpecialCells (11). Column;
ВсегоСтрок \u003d Лист. Cells (1, 1). SpecialCells (11). Row;

область \u003d Лист. Range (Лист. Cells (1, 1), Ліст. Cells (ВсегоСтрок, ВсегоКолонок));
дані \u003d Область. Value. вивантажити();

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

Дія код коментар
Робота з додатком
Установка видимості вікна програми Ексель . Visible \u003d Брехня;
Установка режиму виведення попереджень (виводити / не виводити) Ексель . DisplayAlerts \u003d Брехня;
закриття програми Ексель . Quit ();
Робота з книгою
Створення нової книги книга \u003d Ексель. WorkBooks. Add();
Відкриття існуючої книги книга \u003d Ексель. WorkBooks. Open (имяфайла);
збереження книги книга . SaveAs (имяфайла);
закриття книги книга . Close (0);
Робота з листом
Установка поточного листа лист \u003d Книга. WorkSheets (НомерЛіста);
установка імені лист . Name \u003d Ім'я;
установка захисту лист . Protect();
зняття захисту лист . UnProtect();
Установка орієнтації сторінки лист . PageSetup. Orientation \u003d 2; 1 - книжкова, 2 - альбомна
Установка лівої межі лист . PageSetup. LeftMargin \u003d Ексель. CentimetersToPoints (Сантиметри);
Установка верхньої межі лист . PageSetup. TopMargin \u003d Ексель. CentimetersToPoints (Сантиметри);
Установка правої межі лист . PageSetup. RightMargin \u003d Ексель. CentimetersToPoints (Сантиметри);
Установка нижньої межі лист . PageSetup. BottomMargin \u003d Ексель. CentimetersToPoints (Сантиметри);
Робота з рядками, колонками, осередками
Установка ширини колонки лист . Columns (НомерКолонкі). ColumnWidth \u003d Ширина;
видалення рядка лист . Rows (НомерСтрокі). Delete();
видалення колонки лист . Columns (НомерКолонкі). Delete ();
видалення осередки лист . Cells (НомерСтрокі, НомерКолонкі). Delete();
установка значення лист . Cells (НомерСтрокі, НомерКолонкі). Value \u003d Значення;
об'єднання осередків лист . Range (Лист. Cells (НомерСтрокі, НомерКолонкі), Ліст. Cells (НомерСтрокі1, НомерКолонкі1)). Merge();
установка шрифту лист . Cells (НомерСтрокі, НомерКолонкі). Font. Name \u003d ІмяШріфта;
Щоб вибрати розмір шрифту лист . Cells (НомерСтрокі, НомерКолонкі). Font. Size \u003d РазмерШріфта;
Установка жирного шрифту лист . 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
МассівКом \u003d Новий COMSafeArray ( «VT_Variant», ВсегоКолонок, ВсегоСтрок);
// Заповнення COMSafeArray
для Стр \u003d 0 За ВсегоСтрок - 1 Цикл
для К \u003d 0 За ВсегоКолонок - 1 Цикл
МассівКом . SetValue (Кол, Стор, Значення);
КонецЦікла;
КонецЦікла;
// Присвоєння області листа Excel значень з COMSafeArray
лист . Range (Лист. Cells (1, 1), Ліст. Cells (ВсегоСтрок, ВсегоКолонок)). Value \u003d МассівКом;

Обмін через ADO

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

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

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


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


з'єднання . ConnectionString \u003d «

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Connection;
  • Command;
  • Recordset;
  • Record;
  • Fields;
  • Stream;
  • Errors;
  • Parameters;
  • Properties.

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

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

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

У вікні, потрібно вибрати каталог, ім'я та формат файлу.

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

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

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

Дані, які можна вивантажувати з 1С

1С будь-якої конфігурації штатно підтримує вивантаження таких даних як:

  • Друковані форми;
  • Звіти;
  • Таблиці і списки.

Вивантаження даних з 1С 8.3 можлива в багатьох популярних форматах:

  • Microsoft Excel;
  • Microsoft Word;
  • Вивантаження в CSV;
  • HTML і інші.

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

Будь-яку друковану форму або звіт в 1С можна зберегти в потрібному форматі. Для цього знадобиться відкрити форму або звіт, потім вибрати в Головному меню Файл - Зберегти як.

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



Можливі проблеми при вивантаженні з 1С


Це пов'язано з тим, що друкована форма або звіт не активізовані в даний момент. Щоб друкована форма стала доступна для збереження, потрібно просто клікнути мишкою в будь-яке місце на ній:


Вивантаження в Excel

Обробка даних в найпопулярнішому табличному форматі вимагає відповідної вивантаження. Для того щоб зберегти потрібні дані в форматі Excel, необхідно в діалозі збереження файлу вказати тип Лист Excel2007 -... (*. Xlsx). Рідше необхідно зберегти дані в старому форматі Лист Excel (* .xls):


Аналогічно, вибираючи потрібний формат, можна зробити вивантаження з 1С в PDF, з 1С в WORD, з 1С в CSV, а також в інші формати.

Вивантаження довільних таблиць з 1С

В даному розділі буде показано, як можна вивантажити будь-які дані, за умови, що у вас є на це права.

В 1С розроблений штатний механізм, який дозволяє вивантажити будь-який список (наприклад, список документів або елементи довідника). Для цього в командній панелі будь-якого списку, в групі «Ще» доступна команда «Вивести список»:



Інформація буде виведена в спеціальний табличний документ. Цей документ виглядає так само, як будь-який інший звіт в 1С, і його можна вивантажити точно так же, використовуючи команду Файл - Зберегти як:



Як вивантажити дані, які не видно в списку

Найчастіше, що виникла задача по вивантаженню якийсь список, супроводжується необхідністю додавання туди колонок, які точно є в документі (довіднику), але їх з якихось причин не видно в поточному списку. Приклад: у списку «Клієнти» додати для вивантаження поле «Телефон», яке відображається лише в додатковій панелі праворуч:


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



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

Код 1C v 8.х // Процедура вивантажує із зазначеного довідника дані в режимі експорту в файл у форматі Microsoft Excel
// з вказаним ім'ям, використовуючи перетворення даних до типу число і типу рядок;
Процедура ОсновниеДействіяФормиЕкспорт (Кнопка)
спроба
спроба
// Щоб завантажити об'єкт Microsoft Excel
Стан ( "Вивантаження даних з 1С в Microsoft Excel ...");
ExcelПріложеніе \u003d Новий COMОб'ект ( "Excel.Application");
виняток
Повідомити ( "Помилка при запуску Microsoft Excel."
+ Сімволи.ПС + ОпісаніеОшібкі (), СтатусСообщенія.Вніманіе);
повернення;
КонецПопиткі;

// Створимо книгу, за замовчуванням в ній вже є листи
Книга \u003d ExcelПріложеніе.WorkBooks.Add ();

// Використовуємо перший лист книги Excel
Лист \u003d Кніга.WorkSheets (1);

// Сформувати шапку документа в першому рядку листа
Колонка \u003d 1;
Якщо стр.Вигружать Тоді
Ліст.Cells (1, Колонка) .Value \u003d стр.НазваніеРеквізіта;
Колонка \u003d Колонка + 1;
КонецЕсли;
КонецЦікла;

// вивантажити дані довідника
вибірка \u003d Довідники [ІмяСправочніка] .Вибрать ();
СтрокаЛіста \u003d 2;
Поки виборка.Следующій () Цикл
Колонка \u003d 1;
Для кожного стор з ТП цикл

Якщо стр.Вигружать Тоді
спроба
// Установити значення в рядку і колонці
Якщо ТіпЗнч (вибірка [стр.НазваніеРеквізіта]) \u003d Тип ( "Число") Тоді
// Встановити формат для типу Число
Ліст.Cells (СтрокаЛіста, Колонка) .NumberFormat \u003d "0,00";
Формат (вибірка [стр.НазваніеРеквізіта], "ЧГ \u003d 0");
інакше
// Для всіх інших типів встановимо формат "Текстовий"
Ліст.Cells (СтрокаЛіста, Колонка) .NumberFormat \u003d "@";
Ліст.Cells (СтрокаЛіста, Колонка) .Value \u003d
Рядок (вибірка [стр.НазваніеРеквізіта]);
КонецЕсли;
виняток
// в разі помилки вивести номер рядка і колонки
Повідомити ( "Помилка установки значення для:" +
вибірка [стр.НазваніеРеквізіта]);
Повідомити ( "Стор:" + СтрокаЛіста + "Кол:" +
Колонка + "Рек:" + стр.НазваніеРеквізіта);
КонецПопиткі;
Колонка \u003d Колонка + 1;
КонецЕсли;

КонецЦікла;
СтрокаЛіста \u003d СтрокаЛіста + 1;
Стан ( "Експорт з 1С в Excel" + СтрокаЛіста);
КонецЦікла;

// Збережемо створену книгу в файл xls
Кніга.SaveAs (имяфайла);

// Обов'язково закриємо з'єднання з COM об'єктом для звільнення пам'яті
ExcelПріложеніе.Quit ();

Повідомити ( "Файл вивантажено успішно:" + имяфайла);

виняток
// Обробка помилок експорту даних з 1С в Excel
Повідомити ( "Помилка запису даних файлу:" + имяфайла);
Повідомити (ОпісаніеОшібкі ());
спроба
ExcelПріложеніе.Quit ();
виняток
КонецПопиткі;
КонецПопиткі;
КонецПроцедури
Код 1C v 7.x // Найпростіший приклад виведення з 1С: Підприємства 7.7 \u200b\u200bв MS Excel. Забезпечення наявності у робочій книги єдиного листа,
// установка розміру, жирності і кольору шрифту, ширини колонок, рамок і заливки осередків. вирівнювання тексту
// осередків, угруповання рядків, установка числового формату осередків, закріплення області.

Процедура Висновок ()
спроба
Application \u003d СоздатьОб'ект ( "Excel.Application");
виняток
Повідомити (ОпісаніеОшібкі (), "!!!");
Повідомити ( "Можливо, MS Excel не встановлений на цьому комп'ютері.");
повернення;
КонецПопиткі;

// Створення робочої книги

WorkBook \u003d Application.WorkBooks.Add ();
// Отримання вікна

Window \u003d WorkBook.Windows (1);
// Установка невидимості вікна для прискорення виведення

Window.Visible \u003d 0;
// Забезпечення наявності у робочій книги єдиного листа

Якщо WorkBook.Worksheets.Count \u003d 0 Тоді
WorkBook.Worksheets.Add ();
інакше
Application.DisplayAlerts \u003d 0; // не видавати попереджень

Поки WorkBook.Worksheets.Count\u003e 1 Цикл
WorkBook.Worksheets (1) .Delete ();
КонецЦікла;
Application.DisplayAlerts \u003d -1; // відновлення прапора видачі попереджень

КонецЕсли;
// Отримання робочого листа

Worksheet \u003d WorkBook.Worksheets (1);
// Завдання імені робочого листа

Worksheet.Name \u003d "Приклад виведення";

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

Worksheet.Range ( "A1"). Value \u003d "(! LANG: Приклад виведення з 1С: Підприємства в MS Excel"; !}
Worksheet.Range ( "A2"). Value \u003d "(! LANG: сьогодні"+ТекущаяДата(); !}
Worksheet.Range ( "A1: A2"). Font.Size \u003d 14; // розмір шрифту

Worksheet.Range ( "A1: A2"). Font.Bold \u003d -1; // жирний шрифт

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

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

// Шапка документа

Worksheet.Range ( "A4"). Value \u003d "(! LANG: Перша колонка"; !}
Для и \u003d 7 по 10 Цикл // рамки

Worksheet.Range ( "A4"). Borders (и) .LineStyle \u003d 1;
Worksheet.Range ( "A4"). Borders (и) .Weight \u003d -4138; // xlMedium

КонецЦікла;
Worksheet.Range ( "A4"). Interior.ColorIndex \u003d 15; // заливка сірим

Worksheet.Range ( "A4"). HorizontalAlignment \u003d -4108; // вирівнювання тексту по центру

Worksheet.Range ( "B4"). Value \u003d "(! LANG: Друга"; !}
Для и \u003d 7 по 10 Цикл
Worksheet.Range ( "B4"). Borders (и) .LineStyle \u003d 1;
Worksheet.Range ( "B4"). Borders (и) .Weight \u003d -4138;
КонецЦікла;
Worksheet.Range ( "B4"). Interior.ColorIndex \u003d 15;
Worksheet.Range ( "B4"). HorizontalAlignment \u003d -4108;

Worksheet.Range ( "C4"). Value \u003d "(! LANG: Третя"; !}
Для и \u003d 7 по 10 Цикл
Worksheet.Range ( "C4"). Borders (и) .LineStyle \u003d 1;
Worksheet.Range ( "C4"). Borders (и) .Weight \u003d -4138;
КонецЦікла;
Worksheet.Range ( "C4"). Interior.ColorIndex \u003d 15;
Worksheet.Range ( "C4"). HorizontalAlignment \u003d -4108;

// Для угруповання рядків:
Worksheet.Outline.SummaryRow \u003d 0; // "підсумкові" рядки відображати зверху (якщо знизу, то 1)

// Висновок рядків
Worksheet.Range ( "A5"). Value \u003d "(! LANG: Об'єкт аналітики"; !}
Worksheet.Range ( "A5"). Font.ColorIndex \u003d 5; // колір шрифту - синій

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

Worksheet.Range ( "A6"). Value \u003d "(! LANG: Об'єкт аналітики"; !}
Worksheet.Range ( "A6"). Font.ColorIndex \u003d 3; // колір шрифту - червоний

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

Worksheet.Range ( "A7"). Value \u003d "(! LANG: Об'єкт аналітики"; !}
Worksheet.Range ( "B7"). Value \u003d 123.45;
Worksheet.Range ( "C7"). Value \u003d 678.9;

Worksheet.Range ( "A8"). Value \u003d "(! LANG: Об'єкт аналітики"; !}
Worksheet.Range ( "B8"). Value \u003d 123.45;
Worksheet.Range ( "C8"). Value \u003d 678.9;

Worksheet.Range ( "A9"). Value \u003d "(! LANG: Об'єкт аналітики"; !}
Worksheet.Range ( "A9"). Font.ColorIndex \u003d 3; // колір шрифту - червоний

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

Worksheet.Range ( "A10"). Value \u003d "(! LANG: Об'єкт аналітики"; !}
Worksheet.Range ( "B10"). Value \u003d 123.45;
Worksheet.Range ( "C10"). Value \u003d 678.9;

Worksheet.Range ( "A11"). Value \u003d "(! LANG: Об'єкт аналітики"; !}
Worksheet.Range ( "B11"). Value \u003d 123.45;
Worksheet.Range ( "C11"). Value \u003d 678.9;

Worksheet.Range ( "A12"). Value \u003d "(! LANG: Об'єкт аналітики"; !}
Worksheet.Range ( "A12"). Font.ColorIndex \u003d 5; // колір шрифту - синій

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

Worksheet.Range ( "A13"). Value \u003d "(! LANG: Об'єкт аналітики"; !}
Worksheet.Range ( "A13"). Font.ColorIndex \u003d 3; // колір шрифту - червоний

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

Worksheet.Range ( "A14"). Value \u003d "(! LANG: Об'єкт аналітики"; !}
Worksheet.Range ( "B14"). Value \u003d 123.45;
Worksheet.Range ( "C14"). Value \u003d 678.9;

Worksheet.Range ( "A15"). Value \u003d "(! LANG: Об'єкт аналітики"; !}
Worksheet.Range ( "B15"). Value \u003d 123.45;
Worksheet.Range ( "C15"). Value \u003d 678.9;

Worksheet.Range ( "A16"). Value \u003d "(! LANG: Об'єкт аналітики"; !}
Worksheet.Range ( "A16"). Font.ColorIndex \u003d 3; // колір шрифту - червоний

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

Worksheet.Range ( "A17"). Value \u003d "(! LANG: Об'єкт аналітики"; !}
Worksheet.Range ( "B17"). Value \u003d 123.45;
Worksheet.Range ( "C17"). Value \u003d 678.9;

Worksheet.Range ( "A18"). Value \u003d "(! LANG: Об'єкт аналітики"; !}
Worksheet.Range ( "B18"). Value \u003d 123.45;
Worksheet.Range ( "C18"). Value \u003d 678.9;

// Установка рамок

Для НомСтр \u003d 5 по 18 Цикл
Для и \u003d 7 по 10 Цикл
Worksheet.Range ( "A" + НомСтр) .Borders (и) .LineStyle \u003d 1;
Worksheet.Range ( "B" + НомСтр) .Borders (и) .LineStyle \u003d 1;
Worksheet.Range ( "C" + НомСтр) .Borders (и) .LineStyle \u003d 1;
КонецЦікла;
КонецЦікла;

// Угруповання рядків

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

// Згортка угруповань до першого рівня

Worksheet.Outline.ShowLevels (1);

// Установка числового формату

спроба
Worksheet.Range ( "B5: C18"). NumberFormat \u003d "# ## 0.00";

виняток
спроба
Worksheet.Range ( "B5: C18"). NumberFormat \u003d "# ## 0,00";

виняток
КонецПопиткі;
КонецПопиткі;

// Установка видимості додатка і його вікна

Application.Visible \u003d -1;
Window.Visible \u003d -1;

// Закріплення області

Worksheet.Range ( "A5"). S_elect ();
Window.FreezePanes \u003d -1;
КонецПроцедури // Висновок

Інформація взята з сайту

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

швидкий перехід

Вивантаження в 1С з v7.7 стандартними засобами

Збереження в Ексель в 7.7 можливо тільки сформованих табличних документів, наприклад звітів.

Після того, як звіт формувати, натискаєте меню «Файл \\ Зберегти як»:

Усе! Дані в 1С вивантажені:

Вивантаження даних з 1С v. 8.3 (8.2, 8.1)

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

Почнемо з цього.

У демо базі, відкриваємо довідник клієнти, в меню «Всі дії» натискаємо «Вивести список ...»

Дана команда дозволяє вивести видимі колонки.

У звичайних формах дану команду можна викликати правою кнопкою на списку.

У наступному діалозі вибираємо потрібні колонки:

В результаті сформується табличний документ, який доступний для збереження.

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

Також слід зауважити:

  • розробник може відключити збереження зі списків, у окремих форм
  • зазвичай цей типовий функціонал розширюється по кнопці, або виклик більш зручного звіту
  • у вас може бути відсутнім право «Висновку», прибере можливість копіювання в буфер обміну або друк документа, відповідно і зберегти в Ексель в цьому випадку не вийде
  • можливість виведення списків є і в конфігураторі (наприклад в момент налагодження можна вивантажити таблицю значень)

Вивантаження в Excel доступна також через функціонал БСП (бібліотеки стандартних підсистем), який використовується в більшості типових рішень 1С.

Наприклад зі звіту «Залишки ТМЦ» в управлінні торгівлею 11.2:

Збереження в Excel програмним шляхом

Варіант 1: виклик збереження табличного документа

У табличного документа є метод «Записати», параметрами якого виступає ТіпФайлаТаблічногоДокумента

ТаблічнийДокумент \u003d Новий ТаблічнийДокумент;

// Заповнення табличного документа

Область \u003d ТаблічнийДокумент. область ( 1 , 1 , 1 , 1 ) ;

Область. Текст \u003d "Тема H1";

// Збереження табличного документа

ТаблічнийДокумент. Записати (ТіпФайлаТаблічногоДокумента. XLS,);

Варіант 2: використання об'єкта Excel.Aplication

Дана можливість доступна в середовищі Windows, бажано виконання даного коду на стороні клієнта, або потрібно.

далі, простий код для запису даних в Excel (Спеціально не ускладнювати, нічого зайвого. Явно до 1с відноситься тільки 2 рядок, решта це використання методів і властивостей об'єкта Excel.Application, документація по якому доступна на сайті Микрософт):

ПолноеІмяФайла \u003d "C: \\ 123.xls»;

КнігаЕксель \u003d Новий COMОб'ект ( «Excel.Application»);

КнігаЕксель. WorkBooks. Open (ПолноеІмяФайла);

// приховую відображення

КнігаЕксель. Visible \u003d 0;

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

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

Найпростіший спосіб зберегти з 1С в Excel дані - це вибрати в документі або журналі одну клітинку і натиснути (копіювати), потім в Excel виділити осередок куди потрібно зберегти дані і натиснути v. Таким чином, ви збережете зміст цього осередку. Для прикладу-картинки це буде 42 289,23

Цей спосіб діє для будь-якої версії 1С.

2. Як вивантажити з 1С в Excel велику кількість даних?

Попередній спосіб хороший, але великий обсяг даних так не накопіруешься. Тому, краще користуватися інструментом Вивести список.

Майже в будь-якому журналі документів, довіднику або документі натисніть правою кнопкою миші і знайдіть пункт Вивести список.


Для версій 8.3 і інтерфейсу «Таксі» кнопка вивести список, є в меню Ще

З'явитися список цих елементів як текст (можливо до цього потрібно буде вибрати, які саме стовпці вибрати). Цей текст вже можна скопіювати в будь-який документ. Але я раджу, скористатися меню Файл - Зберегти як (тому що великі обсяги даних будуть оброблятися довго і не виключена помилка при копіюванні в буфер).

Потім вибираємо потрібний формат файлу.

Все файл збережений в потрібному форматі.

Цей спосіб так само діє для будь-якої версії 1С.

Для версії 1с 8.2 і вище в тонкому клієнті або інтерфейсі Таксі інструмент Файл - Зберегти як, доступний на панелі у верхньому правому кутку у вигляді дискети

3. Як вивантажити з 1С в Excel друковані форми документів?

Друковані форми документів таких як

1 - Зніміть кнопку Тільки перегляд, щоб мати можливість змінювати друковану форму

2 - Збережіть документ в потрібний формат, див. Пункт 2

А так же вміст друкованої форми ви зможете зберегти як будь-які текстові дані, як в Word'e.

Часто друковану форму або форму звіту можна зберегти простим Копіювати-Вставити в Excel.

Як завантажити дані з Excel в 1C це зовсім інша історія. Але скоро і її розповім, чекайте;)

Поділіться нашою статтею в ваших соціальних мережах: