// Процедура выгружает из указанного справочника данные в режиме экспорта в файл в формате Microsoft Excel // с указанным именем, используя преобразование данных к типу число и типу строка; Процедура ОсновныеДействияФормыЭкспорт(Кнопка) Попытка Попытка // Загрузка объекта Microsoft Excel Состояние("Выгрузка данных из 1С в Microsoft Excel..."); ExcelПриложение = Новый COMОбъект("Excel.Application"); Исключение Сообщить("Ошибка при запуске Microsoft Excel." + Символы.ПС + ОписаниеОшибки(), СтатусСообщения.Внимание); Возврат; КонецПопытки; // Создадим книгу, по умолчанию в ней уже есть листы Книга = ExcelПриложение.WorkBooks.Add(); // Используем первый лист книги Excel Лист = Книга.WorkSheets(1); // Сформировать шапку документа в первой строке листа Колонка = 1; Для каждого стр из ТП цикл Если стр.Выгружать Тогда Лист.Cells(1, Колонка).Value = стр.НазваниеРеквизита; Колонка = Колонка + 1; КонецЕсли; КонецЦикла; // Выгрузить данные справочника выборка = Справочники[ИмяСправочника].Выбрать(); СтрокаЛиста = 2; Пока выборка.Следующий() Цикл Колонка = 1; Для каждого стр из ТП цикл Если стр.Выгружать Тогда Попытка // Установить значение в строке и колонке Если ТипЗнч(выборка[стр.НазваниеРеквизита])=Тип("Число") Тогда // Установить формат для типа Число Лист.Cells(СтрокаЛиста, Колонка).NumberFormat = "0,00"; Лист.Cells(СтрокаЛиста, Колонка).Value = Формат(выборка[стр.НазваниеРеквизита],"ЧГ=0"); иначе // Для всех других типов установим формат "Текстовый" Лист.Cells(СтрокаЛиста, Колонка).NumberFormat = "@"; Лист.Cells(СтрокаЛиста, Колонка).Value = Строка(выборка[стр.НазваниеРеквизита]); КонецЕсли; исключение // в случае ошибки вывести номер строки и колонки Сообщить("Ошибка установки значения для: " + выборка[стр.НазваниеРеквизита]); Сообщить("Стр: " +СтрокаЛиста+ " Кол: " + Колонка+ " Рек: " + стр.НазваниеРеквизита); КонецПопытки; Колонка = Колонка + 1; КонецЕсли; КонецЦикла; СтрокаЛиста = СтрокаЛиста + 1; Состояние("Экспорт из 1С в Excel " + СтрокаЛиста); КонецЦикла; // Сохраним созданную книгу в файл xls Книга.SaveAs(имяФайла); // Обязательно закроем соединение с COM объектом для освобождения памяти ExcelПриложение.Quit(); Сообщить("Файл выгружен успешно: " + имяФайла ); Исключение // Обработка ошибок экспорта данных из 1С в Excel Сообщить("Ошибка записи данных файла :" + имяФайла); Сообщить(ОписаниеОшибки()); Попытка ExcelПриложение.Quit(); Исключение КонецПопытки; КонецПопытки; КонецПроцедуры
//Простейший пример вывода из 1С:Предприятия 7.7 в MS Excel. Обеспечение наличия у рабочей книги единственного листа, //установка размера, жирности и цвета шрифта, ширины колонок, рамок и заливки ячеек. Выравнивание текста //ячеек, группировка строк, установка числового формата ячеек, закрепление области. Процедура Вывод() Попытка Application=СоздатьОбъект("Excel.Application"); Исключение Сообщить(ОписаниеОшибки(),"!!!"); Сообщить("Возможно, MS Excel не установлен на этом компьютере."); Возврат; КонецПопытки; //Создание рабочей книги WorkBook=Application.WorkBooks.Add(); //Получение окна Window=WorkBook.Windows(1); //Установка невидимости окна для убыстрения вывода Window.Visible=0; //Обеспечение наличия у рабочей книги единственного листа Если WorkBook.Worksheets.Count=0 Тогда WorkBook.Worksheets.Add(); Иначе Application.DisplayAlerts=0;//не выдавать предупреждений Пока WorkBook.Worksheets.Count>1 Цикл WorkBook.Worksheets(1).Delete(); КонецЦикла; Application.DisplayAlerts=-1;//восстановление флага выдачи предупреждений КонецЕсли; //Получение рабочего листа Worksheet=WorkBook.Worksheets(1); //Задание имени рабочего листа Worksheet.Name="Пример вывода"; //Заголовок документа Worksheet.Range("A1").Value="Пример вывода из 1С:Предприятия в 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="Первая колонка"; Для ы=7 по 10 Цикл//рамки Worksheet.Range("A4").Borders(ы).LineStyle=1; Worksheet.Range("A4").Borders(ы).Weight=-4138;//xlMedium КонецЦикла; Worksheet.Range("A4").Interior.ColorIndex=15;//заливка серым Worksheet.Range("A4").HorizontalAlignment=-4108;//выравнивание текста по центру Worksheet.Range("B4").Value="Вторая"; Для ы=7 по 10 Цикл Worksheet.Range("B4").Borders(ы).LineStyle=1; Worksheet.Range("B4").Borders(ы).Weight=-4138; КонецЦикла; Worksheet.Range("B4").Interior.ColorIndex=15; Worksheet.Range("B4").HorizontalAlignment=-4108; Worksheet.Range("C4").Value="Третья"; Для ы=7 по 10 Цикл Worksheet.Range("C4").Borders(ы).LineStyle=1; Worksheet.Range("C4").Borders(ы).Weight=-4138; КонецЦикла; Worksheet.Range("C4").Interior.ColorIndex=15; Worksheet.Range("C4").HorizontalAlignment=-4108; //Для группировки строк: Worksheet.Outline.SummaryRow=0;//"итоговые" строки отображать сверху (если снизу, то 1) //Вывод строк Worksheet.Range("A5").Value="Объект аналитики"; 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="Объект аналитики"; 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="Объект аналитики"; Worksheet.Range("B7").Value=123.45; Worksheet.Range("C7").Value=678.9; Worksheet.Range("A8").Value="Объект аналитики"; Worksheet.Range("B8").Value=123.45; Worksheet.Range("C8").Value=678.9; Worksheet.Range("A9").Value="Объект аналитики"; 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="Объект аналитики"; Worksheet.Range("B10").Value=123.45; Worksheet.Range("C10").Value=678.9; Worksheet.Range("A11").Value="Объект аналитики"; Worksheet.Range("B11").Value=123.45; Worksheet.Range("C11").Value=678.9; Worksheet.Range("A12").Value="Объект аналитики"; 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="Объект аналитики"; 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="Объект аналитики"; Worksheet.Range("B14").Value=123.45; Worksheet.Range("C14").Value=678.9; Worksheet.Range("A15").Value="Объект аналитики"; Worksheet.Range("B15").Value=123.45; Worksheet.Range("C15").Value=678.9; Worksheet.Range("A16").Value="Объект аналитики"; 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="Объект аналитики"; Worksheet.Range("B17").Value=123.45; Worksheet.Range("C17").Value=678.9; Worksheet.Range("A18").Value="Объект аналитики"; Worksheet.Range("B18").Value=123.45; Worksheet.Range("C18").Value=678.9; //Установка рамок Для НомСтр=5 по 18 Цикл Для ы=7 по 10 Цикл Worksheet.Range("A"+НомСтр).Borders(ы).LineStyle=1; Worksheet.Range("B"+НомСтр).Borders(ы).LineStyle=1; Worksheet.Range("C"+НомСтр).Borders(ы).LineStyle=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="# ##0.00"; Исключение Попытка Worksheet.Range("B5:C18").NumberFormat="# ##0,00"; Исключение КонецПопытки; КонецПопытки; //Установка видимости приложения и его окна Application.Visible=-1; Window.Visible=-1; //Закрепление области Worksheet.Range("A5").S_elect(); Window.FreezePanes = -1; КонецПроцедуры //Вывод