1С Выгрузить в excel

Опубликовано: 22 Февраль 2026
на канале: Alex Akh
336
12

Процедура КнопкаВыполнитьНажатие(Кнопка)

ИмяФайла = "ТЗ в excel";

Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Родитель",Справочники.Номенклатура.НайтиПоКоду("000000033"));
Запрос.Текст = "ВЫБРАТЬ
| Номенклатура.Ссылка,
| Номенклатура.Артикул,
| Номенклатура.ЕдиницаДляОтчетов,
| 0 КАК Количество
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Номенклатура.Родитель = &Родитель";

Выборка = Запрос.Выполнить().Выгрузить();


ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение);
ДиалогОткрытияФайла.ПолноеИмяФайла = ИмяФайла;
ДиалогОткрытияФайла.Каталог = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"), "ОсновнойКаталогФайлов");
ДиалогОткрытияФайла.Фильтр = "Файл Microsoft Excel 2003 (*.xls)|*.xls";
ДиалогОткрытияФайла.МножественныйВыбор = Ложь;

Если ДиалогОткрытияФайла.Выбрать() Тогда
ПолноеИмяФайла = ДиалогОткрытияФайла.ПолноеИмяФайла;
Иначе
Возврат;
КонецЕсли;


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

Макет = ПолучитьМакет("Макет");

ОбластьШапки = Макет.ПолучитьОбласть("шапка");
ТабДокумент.Вывести(ОбластьШапки);

ОбластьСтроки = Макет.ПолучитьОбласть("строка");

Сч = 1;

Для Каждого Строка из Выборка цикл

ЗаполнитьЗначенияСвойств(ОбластьСтроки.Параметры,Строка);
ТабДокумент.Вывести(ОбластьСтроки);
Сч = Сч + 1;
КонецЦикла;

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


Excel = ПолучитьCOMОбъект("", "Excel.Application");
Книга = Excel.Workbooks.Open(ПолноеИмяФайла);
Excel.Application.ReferenceStyle = 1;

Лист = Книга.WorkSheets(1);

xlLastCell = 4;
ActiveCell = Excel.ActiveCell.SpecialCells(xlLastCell);
КоличествоСтрок = ActiveCell.Row;
КоличествоКолонок = ActiveCell.Column;


Excel.ActiveWindow.DisplayWorkbookTabs = -1;
Excel.ActiveWindow.TabRatio = 0.25;


Excel.Cells(Строка(Сч + 1),4).Formula = "=SUM(" + "D2" + ":D" + Сч + ")";

Книга.Save();
Книга.Close();

КонецПроцедуры