Имя: Пароль:
1C
1С v8
Как сделать форматированный вывод табличной части документа в макет?
,
0 ETurdymuratov
 
07.04.14
14:13
Привет всем, подскажите пожалуйста, как правильно описать в коде?
Нужно вывести реквизиты документа "заявки" и табличную часть документа в одной строке. Если в таб. части одна запись, то выводить одной строкой, если больше то количество строк увеличивалось бы количеству записей в табличной части.
В данный момент выходит вот так: Одной строкой реквизиты документа, второй третьей строкой реквизиты табл. части документ.
Процедура КнопкаВыполнитьНажатие(Кнопка)
    ТабДок=ЭлементыФормы.ПолеТабличногоДокумента;
    ТабДок.Очистить();
    Макет=ПолучитьМакет("Макет1");
    
    ОбластьСтрока   = Макет.ПолучитьОбласть("Строка");
    ОбластьСтрокаДетали = ОбластьСтрока.ПолучитьОбласть("СтрокаДетали");  
        
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    ЗаявкаНаРасходованиеСредств.Ссылка,
        |    ЗаявкаНаРасходованиеСредств.Организация,
        |    ЗаявкаНаРасходованиеСредств.Контрагент,
        |    ЗаявкаНаРасходованиеСредств.СуммаДокумента КАК СуммаДокумента,
        |    ЗаявкаНаРасходованиеСредств.ПризнакОплачено,
        |    ЗаявкаНаРасходованиеСредств.Инициатор
        |ИЗ
        |    Документ.ЗаявкаНаРасходованиеСредств КАК ЗаявкаНаРасходованиеСредств
        |ГДЕ
        |    ЗаявкаНаРасходованиеСредств.Ссылка = &Ссылка";

    Запрос.УстановитьПараметр("Ссылка", Заявка);

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

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

    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        ОбластьСтрока.Параметры.Заполнить(ВыборкаДетальныеЗаписи);
        ТабДок.Вывести(ОбластьСтрока);
        ДокЗаявка=ВыборкаДетальныеЗаписи.Ссылка;
        СтрокаУслуги="";
        ТЧУслуги=ДокЗаявка.Услуги;
        Если ТЧУслуги.Количество()>0 тогда
            Для каждого стр Из ТЧУслуги Цикл
                СтатьяЗатрат = стр.СтатьяЗатрат;
                СтатьяДДС  = стр.СтатьяДДС;    
                
                ОбластьСтрокаДетали.Параметры.СтатьяЗатрат=СтатьяЗатрат;
                ОбластьСтрокаДетали.Параметры.СтатьяДДС=СтатьяДДС;    
                ТабДок.Присоединить(ОбластьСтрокаДетали);
                
            КонецЦикла;
        КонецЕсли;    
    КонецЦикла;
КонецПроцедуры
1 ETurdymuratov
 
07.04.14
14:18
Мне нужно так:
РеквизитДок1|РеквизитДок2|РеквизитТаб1|РеквизитДок3

а выходит так:
РеквизитДок1|РеквизитДок2|            |РеквизитДок3
                         |РеквизитТаб1|
2 ETurdymuratov
 
07.04.14
14:19
... реквизит табличной части выходит второй строкой
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой