Заголовок



Процедура ПоказатьСтруктуру(Структ) Экспорт
    ТабДок = Новый ТабличныйДокумент;
    ОбластьЗаголвка = ТабДок.ПолучитьОбласть(1, , 1, );
    ДетальнаяСтрока = ТабДок.ПолучитьОбласть(1, , 1, );
    КоличествоКолонок = 2;
                
    Область = ОбластьЗаголвка.Область(1, 1);
    Область.Текст = "Ключ";
    Область.ЦветФона = WEBЦвета.Желтый;
        
    Область = ОбластьЗаголвка.Область(1, 2);
    Область.Текст = "Значение";
    Область.ЦветФона = WEBЦвета.Желтый;
        
    ТабДок.Вывести(ОбластьЗаголвка);
        
    Для Каждого СтрокаСтруктуры Из Структ Цикл
        Область = ДетальнаяСтрока.Область(1, 1);
        Область.Текст = Строка(СтрокаСтруктуры.Ключ);
                        
        Область = ДетальнаяСтрока.Область(1, 2);
        Область.Текст = Строка(СтрокаСтруктуры.Значение);
                
        ТабДок.Вывести(ДетальнаяСтрока);
    КонецЦикла;
                
    ТабДок.Показать();
КонецПроцедуры



Процедура ПоказатьТаблицуЗначений(ТабЗначений, ФайлКудаСохранять = Неопределено, Показать = Истина) Экспорт
    ТабДок = Новый ТабличныйДокумент;
    ОбластьЗаголвка = ТабДок.ПолучитьОбласть(1, , 1, );
    ДетальнаяСтрока = ТабДок.ПолучитьОбласть(1, , 1, );
    КоличествоКолонок = ТабЗначений.Колонки.Количество();
        
    Для КолонкаТЗ = 0 По КоличествоКолонок - 1 Цикл
        Область = ОбластьЗаголвка.Область(1, КолонкаТЗ + 1);
        Область.Текст = ТабЗначений.Колонки[КолонкаТЗ].Имя;
        Область.ЦветФона = WEBЦвета.Желтый;
    КонецЦикла;
    ТабДок.Вывести(ОбластьЗаголвка);
        
    Для Каждого СтрокаТЗ Из ТабЗначений Цикл
        Для ТекущееПоле = 0 По КоличествоКолонок - 1 Цикл
            Область = ДетальнаяСтрока.Область(1, ТекущееПоле + 1);
            Область.Текст = СтрокаТЗ[ТекущееПоле];
        КонецЦикла;
        ТабДок.Вывести(ДетальнаяСтрока);
    КонецЦикла;
        
    Если Показать Тогда
        ТабДок.Показать();
    КонецЕсли;
        
    Если Не ФайлКудаСохранять = Неопределено Тогда
        Попытка
            ТабДок.Записать(ФайлКудаСохранять, ТипФайлаТабличногоДокумента.XLS);
        Исключение
        КонецПопытки;
    КонецЕсли;
КонецПроцедуры



//Расшифровка на табличный документ (обработка Выбора на Поле Табличного Документа)
Процедура ТабДокВыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)
    ФормаДок = Документы[ВыбраннаяСтрока["Док"].Имя].ПолучитьФормуНовогоДокумента();
    ФормаДок.Открыть();
    СтандартнаяОбработка = Ложь;
КонецПроцедуры


//Расшифровка на справочник (обработка Выбора на Поле Табличного Документа)
Если Колонка.Имя = "Номенклатура" Тогда
    ЭлементСпр = Справочники.Номенклатура.НайтиПоНаименованию(ВыбраннаяСтрока[Колонка.Имя]);
    ЭлементСпр.ПолучитьФорму().Открыть();
    СтандартнаяОбработка = Ложь;
КонецЕсли;


//Расшифровка на Табличное поле (обработка Выбора на Поле Табличного Документа)
//"Документ" - имя колонки в табличном поле. В ней находится ссылка (результат запроса) на документ

Процедура ТабПолеДокиВыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)
        Форма = ВыбраннаяСтрока["Документ"].Ссылка.ПолучитьОбъект().ПолучитьФорму("ФормаДокумента");
        Форма.Открыть();
        СтандартнаяОбработка = Ложь;
КонецПроцедуры



//ВидПродукции, ПериодС, ПериодПо, Номенклатура, НачОст, Приход, Расход, КонОст - параметры областей макета
//Результат - результат запроса

Макет = ПолучитьМакет("МакетОтчета");
    
ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
ОбластьШапка.Параметры.ВидПродукции = ВидПродукции;
ОбластьШапка.Параметры.ПериодС = Формат(ПериодС, "ДФ = dd.MM.yy");
ОбластьШапка.Параметры.ПериодПо = Формат(ПериодПо, "ДФ = dd.MM.yy");
ТабДок.Вывести(ОбластьШапка);
    
ОбластьЗаголовок = Макет.ПолучитьОбласть("ЗаголовокТаблицы");
ОбластьЗаголовок.Параметры.ПериодС = Формат(ПериодС, "ДФ = dd.MM.yy");
ОбластьЗаголовок.Параметры.ПериодПо = Формат(ПериодПо, "ДФ = dd.MM.yy");
ТабДок.Вывести(ОбластьЗаголовок);
    
//Секция "Итог"
Выборка1 = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, );
Пока Выборка1.Следующий() Цикл
    //Секция "Данные"
    Выборка2 = Выборка1.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, );
    Пока Выборка2.Следующий() Цикл
        //Вывод секции "Данные"
        ОбластьДанные = Макет.ПолучитьОбласть("Данные");
        ОбластьДанные.Параметры.Номенклатура = Выборка2.Номенклатура;
        ОбластьДанные.Параметры.НачОст = Выборка2.НачОст;
        ОбластьДанные.Параметры.Приход = Выборка2.Приход;
        ОбластьДанные.Параметры.Расход = Выборка2.Расход;
        ОбластьДанные.Параметры.КонОст = Выборка2.КонОст;
        ТабДок.Вывести(ОбластьДанные);
    КонецЦикла;
    //Вывод секции "Итог"
    ОбластьИтог = Макет.ПолучитьОбласть("Итог");
    ОбластьИтог.Параметры.НачОст = Выборка1.НачОст;
    ОбластьИтог.Параметры.Приход = Выборка1.Приход;
    ОбластьИтог.Параметры.Расход = Выборка1.Расход;
    ОбластьИтог.Параметры.КонОст = Выборка1.КонОст;
            
    ТабДок.Вывести(ОбластьИтог);
КонецЦикла;



//ТабДокПечать - табличный документ
//Рис1, Рис2 - рисунки из коллекции рисунков бласти макета
ЭлементыФормы.ТабДок.Очистить();
МакетЭтикетка = ПолучитьМакет("МакетЭтикетка");
ОбластьЭтикетка = МакетЭтикетка.ПолучитьОбласть("ОбластьЭтикетка");
НоваяЭтикетка = Новый Картинка("C:/1/КартинкаЭтикетка.jpg");
ОбластьЭтикетка.Рисунки.Рис1.Картинка = НоваяЭтикетка;
ОбластьЭтикетка.Рисунки.Рис2.Текст = Строка("Привет !!!");
ОбластьЭтикетка.Рисунки.Рис2.Шрифт = Новый Шрифт("Arial", 11, Истина);

ЭлементыФормы.ТабДок.ОбластьПечати = ОбластьЭтикетка;
ЭлементыФормы.ТабДок.АвтоМасштаб = Истина;
ЭлементыФормы.ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Портрет;
ЭлементыФормы.ТабДок.Вывести(ОбластьЭтикетка);
ЭлементыФормы.ТабДок.ВывестиГоризонтальныйРазделительСтраниц();

ЭлементыФормы.ТабДок.Напечатать();

//===================================================

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