Имя: Пароль:
1C
1С v8
Вставить несколько таблиц в печатную форму WORD (в цикле)
0 Soulseller76
 
30.04.15
10:52
Есть таблица значений. На каждую ее строку необходимо выести:
1. Заголовок таблицы
2.Саму таблицу с одной строкой.

Могу вывести заголовки:

        АктивныйДокумент = ПолучитьМакет("ДоговорАренды");
    MSWord = АктивныйДокумент.Получить();
    // Получить объект из макета.            
    Word = MSWord.Application;            
    Документ = Word.Documents(1);
    Документ.Activate();            

    //выведем заголовки таблиц
    MSWord.ActiveWindow.Selection.GoTo(-1, , , "ЗаголовокТаблицы");
        Счетчик = 1;
        Для каждого СтрокаТЗ Из ТаблицаАдресаСРазбиением Цикл
            СтроениеКорпус = ?(Найти(СтрокаТЗ.КорпусПомещения,"строение") > 0,СтрЗаменить(СтрокаТЗ.КорпусПомещения,"строение","Стр."),СтрЗаменить(СтрокаТЗ.КорпусПомещения,"корпус","Корп."));
                MSWord.ActiveWindow.Selection.Font.Bold = Истина;
                MSWord.ActiveWindow.Selection.Font.size = 11;
                MSWord.ActiveWindow.Selection.ParagraphFormat.Alignment = 1;
                Если ЗначениеЗаполнено(СтрокаТЗ.КодБТИ) Тогда
                    НомерАдресПомещения = Найти(СтрокаТЗ.КодБТИ, "помещение");
                        MSWord.ActiveWindow.Selection.TypeText(СтроениеКорпус+", "+Сред(СтрокаТЗ.КодБТИ,НомерАдресПомещения)+" ("+СтрокаТЗ.Площадь+" кв.м)");
                        Если Счетчик < ТаблицаАдресаСРазбиением.Количество() Тогда
                    MSWord.ActiveWindow.Selection.TypeParagraph();
            КонецЕсли;
        Иначе                    
            MSWord.ActiveWindow.Selection.TypeText(СтроениеКорпус+", "+СтрокаТЗ.ЭтажПомещения+" ("+СтрокаТЗ.Площадь+" кв.м)");
            MSWord.ActiveWindow.Selection.TypeParagraph();
        КонецЕсли;
                Счетчик = Счетчик +1;
    КонецЦикла;  

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

    //выведем заголовки таблиц
        MSWord.Bookmarks(СокрЛП("ТаблицыБС")).Select();
        Документ.Paragraphs.Add();
        Rng = MSWord.Application.Selection.Range;
        Rng.InsertAfter(СокрЛП("Порядковый № БС")+"*"+"Период действия БС (от)"+"*"+"Период действия БС (до)"+"*"+"Величина БС, руб.");
    СчетчикТаблиц = 1;
    Для Каждого СтрочкаТаблицы из ТаблицаАдресаСРазбиением Цикл
        Rng.InsertParagraphAfter();
        Rng.InsertAfter(Строка("1" +"*"+ СтрочкаТаблицы.ДатаНачалаСрокаАренды +"*"+ СтрочкаТаблицы.ДатаОкончанияСрокаАренды+"*"+ ""));
                Rng.InsertParagraphAfter();
    КонецЦикла;
        Rng.ConvertToTable("*");
        Документ.Tables(1).AutoFormat(17);

Но чтобы было Заголовок таблицы, потом таблица, потом снова заголовок и так далее... Никак не могу сделать... :(
Помогите!!!
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.