Выгрузка в Excel (эксель)

21.12.15

Разработка - Инструментарий разработчика

Обработка (обычные формы) по выгрузке данных из 1С в Excel (только для программистов).
Работа с файлом Excel из 1С (COM-соединение).

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Выгрузка_в_Эксель
.epf 31,40Kb
32
32 Скачать (1 SM) Купить за 1 850 руб.

Обработка позволяет редактировать ячейки и параметры страницы (для области печати, например)  Excel.

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

Вот параметры процедур для работы с ячейками:

Процедура ЗаполнитьПолеЭксель(
	комментарийКод = "пусто",
	Ячейка, 					
	Значение = "(не заполнять)", 			
					// шрифт
	шрифтНазвание = "Arial",
	шрифтРазм = 8,
	шрифтКурсив = 0,
	шрифтЖирн = 0,
	шрифтПодчеркивание = -1,
					// формат текста
	горизонталь = 3,
	вертикаль = 2,		
	перенос = 0,
	ориентация = 0,
					// формат границы ячейки
	линия = 1,
					// формат ячейки
	ширина = "по умолчанию",				// в Excel - 8
	высота = "по умолчанию", 				// в Excel - 14.40
					// цвет
	цветШрифта = -1,
	цветЯчейки = -1,
	цветГраницы = -1,
	формула = -1,
	формат = -1,
	границы = "00000000",
	стильГраницы = 1,
	высотаГраницы = 0
	)
Процедура ПараметрыСтраницы(
ОбъектЭксель, // Объект Excel (для обращения к функциям Экселя)
Страница, // Страница (объект Excel)
ШапкаЛево = "", // LeftHeader = ""
ШапкаЦентр = "", // CenterHeader = "&""-,Bold""&12&F" & Chr(10) & "&A"
ШапкаПраво = "", // RightHeader = ""
ПодвалЛево = "", // LeftFooter = "&9&Z&F"
ПодвалЦентр = "", // CenterFooter = ""
ПодвалПраво = "", // RightFooter = "&P/&N"
ОтступЛево = 0.5, // LeftMargin = Application.InchesToPoints(0.7)
ОтступПраво = 0.2, // RightMargin = Application.InchesToPoints(0.7)
ОтступВерх = 1.5, // TopMargin = Application.InchesToPoints(0.75)
ОтступНиз = 2.4, // BottomMargin = Application.InchesToPoints(0.75)
ОтступШапка = 1.3, // HeaderMargin = Application.InchesToPoints(0.3)
ОтступПодвал = 0.8, // FooterMargin = Application.InchesToPoints(0.3)
ПечатьВерхушка = ЛОЖЬ, // PrintHeadings = False
ПечатьГраницы = ИСТИНА, // PrintGridlines = True
ПечатьКомментарии = -4142, // PrintComments = xlPrintNoComments
ПечатьКачество = 300, // PrintQuality = 600
ЦентрироватьГоризонталь = ИСТИНА, // CenterHorizontally = True
ЦентрироватьВертикаль = ЛОЖЬ, // CenterVertically = False
Ориентация = 1, // Orientation = xlLandscape
Драфт = ЛОЖЬ, // Draft = False
РазмерСтраницы = 9, // PaperSize = xlPaperLetter
НумерацияПервойСтраницы = -4105, // FirstPageNumber = xlAutomatic
Ордер = 1, // Order = xlDownThenOver
ЧерноБелое = ЛОЖЬ, // BlackAndWhite = False
Увеличение = 100, // Zoom = False
СтраницПоШирине = 1, // FitToPagesWide = 1
СтраницПоВысоте = 1, // FitToPagesTall = False

 

Также внутри можно найти пару полезностей, типа Генерации случайных названий, процедуру РГБ (RGB) для Excel'a и прочее.

 

Обработка содержит около 1500 полезного кода. Есть комментарии к процедурам и функциям по работе с параметрами и возвращаемыми значениями.

 

Дополнительная информация к публикации.

1. Тема на форуме Infostart'a (автор: Светлый ум):

Программно открыть файл Excel 

мИмяШаблона= "ШаблонРеестр";    
    ФайлОбработки = Новый Файл(ИспользуемоеИмяФайла);
    
    //1) Заходим в Excel    
    Excel = Новый COMОбъект("Excel.Application");
    ИмяВременногоФайла = ПолучитьИмяВременногоФайла("xlsx");
    ИмяВременногоФайла2 = ПолучитьИмяВременногоФайла("xlsx");
    ДвоичныеДанные = ПолучитьМакет("ШаблонExcel");
    ДвоичныеДанные.Записать(ИмяВременногоФайла);
    Книга = Excel.WorkBooks.Open(ИмяВременногоФайла);
    Лист = Книга.WorkSheets(1);
    
    //2) Как-то редактируем Excel
    ШапкаОтчетаОбласть = Лист.Range("Шапка");
    ШапкаОтчетаОбласть.Find("<ДатаОтчета>").Value = Строка(Формат(СсылкаНаОбъект.ПолучитьОбъект().Дата, "ДЛФ=ДД"));
        
    //3) Сохраняем Excel 
    Книга.SaveAs(ИмяВременногоФайла2);  
    УдалитьФайлы(ИмяВременногоФайла);
    
    // 4) Открываем Excel, для редактирования пользователем
    Excel.Visible    = Истина;

 

2. Тема на форуме Infostart'a (автор ответа: gfiji):

Как запустить макрос, записанный в книге Microsoft Excel 

Попытка 

    // Создать объект. 
    Excel = Новый COMОбъект("Excel.Application"); 

Исключение 
    Сообщить("Не удалось инициализировать Excel"); 
    Возврат; 
КонецПопытки; 

Попытка 

    // В реальном примере путь может быть совершенно другим. 
    Excel.Workbooks.Open("c:\doc.xls"); 

    // Запустить макрос с именем "Оформление".
    Excel.Run("Оформление"); 
    Excel.Visible = Истина; 

Исключение 

    // Если произойдет ошибка выводятся данные об ошибке и объект закрывается. 
    Сообщить(ОписаниеОшибки()); 
    Excel.Quit(); 
КонецПопытки; 

 

3. Тема на форуме Infostart'a (автор ответа: jefti):

Как создать документ программы Microsoft Excel по оформлению, приведенному в другом документе 

Попытка 

    // Создать объект. 
    Excel = Новый COMОбъект("Excel.Application"); 

Исключение 
    Сообщить("Не удалось инициализировать Excel"); 
    Возврат; 
КонецПопытки; 

Попытка 

    // Если при отработке следующего фрагмента кода произойдет ошибка объект "Excel.Application" будет закрыт. 

    // Открыть книгу, содержащую шаблон оформления. 
    Excel.Workbooks.Open("c:\doc.xls"); 
    НомерКниги = Excel.Workbooks.Count; 
    Книга = Excel.Workbooks.Item(НомерКниги); 
    Лист = Excel.ActiveSheet; 

    // Создать новую книгу (в нее будем записывать данные). 
    Excel.Application.Workbooks.Add(1); 
    НомерКниги = Excel.Workbooks.Count; 
    КнигаНовая = Excel.Workbooks.Item(НомерКниги); 
    ЛистНовый = Excel.ActiveSheet; 

    // Установить ширину колонки в новой книге. 
    ЛистНовый.Columns("B").ColumnWidth = 40; 

    // Копировать область из книги-шаблона в новую книгу. 
    Лист.Range("Шапка").Copy(ЛистНовый.Range("A1:E3")); 
    ЛистНовый.Cells(1, 1).Value = "Наименование контрагента"; 

    // Считаем, что в нашем случае необходимо сформировать только две строки табличной части 
    Для НомерСтроки = 1 По 2 Цикл 
        Лист.Range("Строка").Copy(ЛистНовый.Range(ЛистНовый.Cells(3 + НомерСтроки,1), ЛистНовый.Cells(3 + НомерСтроки, 5))); 

        // Записать значение в ячейку листа новой таблицы 
        // в реальном примере данные будут браться из информационной базы 
        ЛистНовый.Cells(3 + НомерСтроки, 1).Value = НомерСтроки; 
        ЛистНовый.Cells(3 + НомерСтроки, 2).Value = "Наименование номенклатурной позиции " + Строка(НомерСтроки); 
        ЛистНовый.Cells(3 + НомерСтроки, 3).Value = НомерСтроки; 
        ЛистНовый.Cells(3 + НомерСтроки, 4).Value = НомерСтроки; 
        ЛистНовый.Cells(3 + НомерСтроки, 5).Value = НомерСтроки; 
    КонецЦикла; 

    Excel.Visible = Истина; 

Исключение 
    Сообщить(ОписаниеОшибки()); 
    Excel.Quit(); 
КонецПопытки; 

При наличии полезной информации, укажите ссылку в комментах, пожалуйста.

Выгрузка в Excel

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Руководитель проекта Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Платные (руб)

Инструменты для разработчиков 1С 8.3: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

12000 руб.

02.09.2020    169329    937    403    

905

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта Платформа 1С v8.3 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы. Может выполнять свертку сразу нескольких баз данных и выполнять их автоматически без непосредственного участия пользователя. Решение в Реестре отечественного ПО

8400 руб.

20.08.2024    12629    99    42    

101

Инструментарий разработчика Программист Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

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

9360 руб.

17.05.2024    26545    90    48    

134

Пакетная печать Печатные формы Инструментарий разработчика Программист Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

Инструмент, позволяющий абсолютно по-новому взглянуть на процесс разработки печатных форм. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и "прозрачность" разработки, а также навести порядок в многообразии корпоративных печатных форм.

22200 руб.

06.10.2023    16836    41    15    

75

Инструменты администратора БД Инструментарий разработчика Роли и права Программист Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

15000 руб.

10.11.2023    11402    40    27    

66

SALE! %

Инструментарий разработчика Инструменты администратора БД Системный администратор Программист Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

Универсальный инструмент программиста для администрирования конфигураций. Сборник наиболее часто используемых обработок под единым интерфейсом.

4800 3840 руб.

14.01.2013    190557    1150    0    

918

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 1С:ERP Управление предприятием 2 Платные (руб)

Разработка Конструктор автоматизированных рабочих мест "Конструктор АРМ" реализована в виде расширения и является универсальным инструментом для создания АРМ любой сложности в пользовательском режиме.

3600 руб.

27.12.2024    792    2    0    

4

Инструментарий разработчика Программист Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

5000 руб.

07.02.2018    103935    244    100    

306
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Светлый ум 438 21.12.15 12:48 Сейчас в теме
Качественно оформленная статья +1
От себя добавлю пару плюшек:


//### Примеры работы с Excel ячейками ###

//1) Стандартное форматирование числа
// mSheet.Cells(row,i).Value=Формат(стр[мИмя],"ЧДЦ=2; ЧН=; ЧГ=0");

//2) Стандартное форматирование даты
// ШапкаОтчета.Find("<ДатаОтчета>").Value = Формат(ТекущаяДата(), "ДФ=dd.MM.yyyy");

//3)Программная установка формул в ячейку - Excel в 1с.
а) Например, нужно посчитать сумму в столбце 8 в той же строке из столбца 1+ столбца 2.
СтрокаСФормулой = "=RC[-7]+ RC[-6]";
Лист.Cells(НомерСтроки,НомерКолонки).Formula = СтрокаСФормулой.
---------------------
б) Считаем итого по строкам:
//Шаблон формулы: "=SUM(F13:F14)";
СтрокаСФормулойИтогоОстатки = "=SUM(F" + Строка(НомерИсходнойСтрокиОстаткиОборотыExcel) +
":F" + Строка(НомерСтрокиОстаткиОборотыДляФормулы) + ")";

ТекСтрокаПодвалИтогоОстаток.Value = СтрокаСФормулойИтогоОстатки;
IT_Avito; timeforlive; +2 Ответить
Оставьте свое сообщение