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

21.12.15

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

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

Файлы

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

Наименование Скачано Купить файл
Выгрузка_в_Эксель
.epf 31,40Kb
33 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Обработка позволяет редактировать ячейки и параметры страницы (для области печати, например)  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С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

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

24900 руб.

20.08.2024    64769    341    168    

301

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

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

16500 руб.

02.09.2020    253694    1400    421    

1152

Пакетная печать Печатные формы Инструментарий разработчика Программист 1С:Предприятие 8 Платные (руб)

Расширение для создания и редактирования печатных форм в системе 1С:Предприятие 8.3. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и прозрачность разработки, а также навести порядок в многообразии корпоративных печатных форм.

22570 руб.

06.10.2023    36974    97    40    

117

Инструментарий разработчика Нейросети Платные (руб)

Первые попытки разработки на 1С с использованием больших языковых моделей (LLM) могут разочаровать. LLMки сильно галлюцинируют, потому что не знают устройства конфигураций 1С, не знают нюансов синтаксиса. Но если дать им подсказки с помощью MCP, то результат получается кардинально лучше. Далее в публикации: MCP для поиска по метаданым 1С, справке синтакс-помошника и проверки синтаксиса.

15250 руб.

25.08.2025    49966    98    27    

114

Инструменты администратора БД Инструментарий разработчика Роли и права Программист 1С:Предприятие 8 1C:Бухгалтерия Россия Платные (руб)

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

17000 руб.

10.11.2023    24583    92    42    

101

Инструментарий разработчика Программист 1С:Предприятие 8 Платные (руб)

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

9500 руб.

17.05.2024    51694    181    63    

213

Мастера заполнения Поиск данных Инструментарий разработчика Подбор и обработка объектов 1С 8.3 1С 8.5 Платные (руб)

Infostart MagicInput улучшает подбор в полях ввода 1С: ищет по любой части названия и по нескольким ключевым фрагментам, распознаёт ввод в другой раскладке и показывает иконки/статусы объектов прямо в списке. Поддерживает вставку навигационной ссылки/представления документа для автоподбора; для разработчиков доступны поиск по GUID и полному имени предопределённого. Работает в управляемых формах и подключается в большинстве конфигураций 1С 8.3/8.5.

5000 руб.

25.02.2026    2873    11    1    

14
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Светлый ум 508 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 Ответить
Для отправки сообщения требуется регистрация/авторизация