среда, 3 августа 2011 г.

Active Document + Excel + 1c8.2



Ниже привожу пример кода в 1С как использовать макеты Excel листов напрямую. редко но иногда использую.  очень полезная штука.




ТабДок = Новый табличныйДокумент;
АктивныйДокумент = ПолучитьМакет("Макет"); //-- Макет Active Document лист Ексель.


КомОбъект = АктивныйДокумент.Получить();

//--- далее пишем в Cells(НомерСтроки, НомерСтолбца). Value все что нужно. см.пример ниже




КомОбъект.ActiveSheet.Cells(6,1).Value=сокрлп(ТекДокумент.Организация);
КомОбъект.ActiveSheet.Cells(8,1).Value=сокрлп(ТекДокумент.Подразделение);

КомОбъект.ActiveSheet.Cells(15,35).Value=сокрлп(ТекДокумент.Номер);
КомОбъект.ActiveSheet.Cells(15,43).Value=сокрлп(формат(ТекДокумент.Дата, "ДФ=dd.MM.yyyy"));


// строчки
для Каждого СТР ИЗ ТекДокумент.Материалы Цикл


Если Лев(сокрлп(стр.Счет), 2) = "20" Тогда


КомОбъект.ActiveSheet.Cells(28,1).Value=сокрлп(стр.Номенклатура);
КомОбъект.ActiveSheet.Cells(28,23).Value=сокрлп(стр.Цена);
КомОбъект.ActiveSheet.Cells(28,27).Value=сокрлп(стр.Количество);
КомОбъект.ActiveSheet.Cells(28,30).Value=сокрлп(стр.Сумма);

Иначе


КомОбъект.ActiveSheet.Cells(Ном,34).Value=сокрлп(стр.Номенклатура);
КомОбъект.ActiveSheet.Cells(Ном,62).Value=сокрлп(стр.Цена);
КомОбъект.ActiveSheet.Cells(Ном,66).Value=сокрлп(стр.Количество);
КомОбъект.ActiveSheet.Cells(Ном,70).Value=сокрлп(стр.Сумма);
Ном = Ном +1;
КонецЕсли;

КонецЦикла;
// ну и на последок отображает открытую книгу Ексель.


КомОбъект.Application.Visible = 1;
КомОбъект.Windows(1).Visible = 1;



Комментариев нет:

Отправить комментарий