Имя: Пароль:
1C
 
Табличный документ. Вывод в табличный документ со смещением.
0 Svetlana_Kazan
 
20.09.17
11:00
Помоги, пожалуйста, найти ошибку. Почему-то выводится табличный документ со смещением в одну колонку
http://pastenow.ru/54480636a65e47ea637c7c8c52582a3b

Все перепроверила. Если выводить только заголовок, то он выводится нормально. Проблема при выводе шапки.

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

Макет = ПолучитьМакет("КонтрольОснХарактеристик");
ОбластьКонтрольХарактеристикИТЗаголовок = Макет.ПолучитьОбласть("КонтрольХарактеристикЗаголовок");
ОбластьКонтрольХарактеристикШапкаОбщая = Макет.ПолучитьОбласть("КонтрольХарактеристикШапка|Общая");
ОбластьКонтрольХарактеристикШапка1 = Макет.ПолучитьОбласть("КонтрольХарактеристикШапка1|Дата");
ОбластьКонтрольХарактеристикШапка2 = Макет.ПолучитьОбласть("КонтрольХарактеристикШапка2|Дата");
ОбластьКонтрольХарактеристикСтроки1 = Макет.ПолучитьОбласть("КонтрольХарактеристикСтроки|Общая");
ОбластьКонтрольХарактеристикСтроки2 = Макет.ПолучитьОбласть("КонтрольХарактеристикСтроки|Дата");
ОбластьКонтрольХарактеристикПустыеСтроки1 = Макет.ПолучитьОбласть("КонтрольХарактеристикПустыеСтроки|Общая");
ОбластьКонтрольХарактеристикПустыеСтроки2 = Макет.ПолучитьОбласть("КонтрольХарактеристикПустыеСтроки|Дата");
        
НовыйТабДок.Вывести(ОбластьКонтрольХарактеристикЗаголовок);
НовыйТабДок.Вывести(ОбластьКонтрольХарактеристикШапкаОбщая);

Секция1 = Новый ТабличныйДокумент;
Секция2 = Новый ТабличныйДокумент;
        
Секция1.Вывести(ОбластьКонтрольХарактеристикШапка1);
//ГодТЗ - таблица значений. Колонка "Год". Таблица значений представляет из себя перечень годов, в которые проводили работы.
Для каждого ЭлементТЗ Из ГодТЗ Цикл
    ОбластьКонтрольХарактеристикШапка2.Параметры.Год = ЭлементТЗ.Год;
    Секция2.Присоединить(ОбластьКонтрольХарактеристикШапка2.ПолучитьОбласть(1,1,ОбластьКонтрольХарактеристикШапка2.ВысотаТаблицы,ОбластьКонтрольХарактеристикШапка2.ШиринаТаблицы));
КонецЦикла;    
        
Секция1.Вывести(Секция2);
ОбъединитьОбласть(Секция1,1,1,1,Секция1.ШиринаТаблицы);
        
НовыйТабДок.Присоединить(Секция1.ПолучитьОбласть(1,1,Секция1.ВысотаТаблицы, Секция1.ШиринаТаблицы));
        
ДанныеТЗ = РезультатКонтрольХарактеристик.Выгрузить();
        
НомерСтроки = 0;        
Для каждого ЭлементТЗ Из ДанныеТЗ Цикл
    ОбластьКонтрольХарактеристикСтроки1.Параметры.Заполнить(ЭлементТЗ);
    НомерСтроки = НомерСтроки + 1;
    ОбластьКонтрольХарактеристикСтроки1.Параметры.НомерСтроки = НомерСтроки;
    ОбластьКонтрольХарактеристикСтроки1.Параметры.Характеристика = Строка(ЭлементТЗ.Характеристика) + ?(Строка(ЭлементТЗ.ЕдиницаИзмерения)="", "", ?(Строка(ЭлементТЗ.Характеристика)="", Строка(ЭлементТЗ.ЕдиницаИзмерения), ", " + Строка(ЭлементТЗ.ЕдиницаИзмерения)));;
    НовыйТабДок.Вывести(ОбластьКонтрольХарактеристикСтроки1);
    Секция3 = Новый ТабличныйДокумент;
    Для каждого ЭлемТЗ Из ГодТЗ Цикл
        Если ЭлемТЗ.Год = ЭлементТЗ.Год Тогда
            ОбластьКонтрольХарактеристикСтроки2.Параметры.Заполнить(ЭлементТЗ);
            ОбластьКонтрольХарактеристикСтроки2.Параметры.Замерил = Строка(ЭлементТЗ.ЗамерилДолжность) + ?(Строка(ЭлементТЗ.ЗамерилДолжность)="", "", ?(Строка(ЭлементТЗ.ЗамерилФИО)="", "", ", ")) + Строка(ЭлементТЗ.ЗамерилФИО) + "                  ";
            Секция3.Присоединить(ОбластьКонтрольХарактеристикСтроки2);
        Иначе
            Секция3.Присоединить(ОбластьКонтрольХарактеристикПустыеСтроки2);
        КонецЕсли;    
    КонецЦикла;    
    НовыйТабДок.Присоединить(Секция3);
    ОбъединитьОбласть(НовыйТабДок,1,1,НовыйТабДок.ВысотаТаблицы,1);
КонецЦикла;
1 Ёпрст
 
20.09.17
11:08
(0) и зачем так делать ?!


Для каждого ЭлементТЗ Из ГодТЗ Цикл
    ОбластьКонтрольХарактеристикШапка2.Параметры.Год = ЭлементТЗ.Год;
    Секция2.Присоединить(ОбластьКонтрольХарактеристикШапка2.ПолучитьОбласть(1,1,ОбластьКонтрольХарактеристикШапка2.ВысотаТаблицы,ОбластьКонтрольХарактеристикШапка2.ШиринаТаблицы));
КонецЦикла;
2 Ёпрст
 
20.09.17
11:10
И вложенные секции, там как бэ тоже не упали.
3 Ёпрст
 
20.09.17
11:13
>>>Секция1.Вывести(Секция2);

Это вообще за гранью..
4 Svetlana_Kazan
 
20.09.17
11:16
(3) Таким образом я под одной шапкой "Дата проведения измерения" размещаю шапку для годов из таблицы значений.
5 Svetlana_Kazan
 
20.09.17
11:18
Даже если я ничего не делаю, а только вывожу ОбластьКонтрольХарактеристикШапкаОбщая, то уже проблема возникает со смещением в одну колонку. Что не так?
6 Ёпрст
 
20.09.17
11:24
(0) на вот:

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

Макет = ПолучитьМакет("КонтрольОснХарактеристик");
ОбластьКонтрольХарактеристикИТЗаголовок = Макет.ПолучитьОбласть("КонтрольХарактеристикЗаголовок");
ОбластьКонтрольХарактеристикШапкаОбщая = Макет.ПолучитьОбласть("КонтрольХарактеристикШапка|Общая");
ОбластьКонтрольХарактеристикШапкаДата = Макет.ПолучитьОбласть("КонтрольХарактеристикШапка|Дата");

ОбластьКонтрольХарактеристикСтрокиОбщая = Макет.ПолучитьОбласть("КонтрольХарактеристикСтроки|Общая");
ОбластьКонтрольХарактеристикСтрокиДата = Макет.ПолучитьОбласть("КонтрольХарактеристикСтроки|Дата");

ОбластьКонтрольХарактеристикПустыеСтрокиДата = Макет.ПолучитьОбласть("КонтрольХарактеристикПустыеСтроки|Дата");
        
НовыйТабДок.Вывести(ОбластьКонтрольХарактеристикЗаголовок);
НовыйТабДок.Вывести(ОбластьКонтрольХарактеристикШапкаОбщая);

//ГодТЗ - таблица значений. Колонка "Год". Таблица значений представляет из себя перечень годов, в которые проводили работы.

Для каждого ЭлементТЗ Из ГодТЗ Цикл
    ОбластьКонтрольХарактеристикШапкаДата.Параметры.Год = ЭлементТЗ.Год;
    НовыйТабДок.Присоединить(ОбластьКонтрольХарактеристикШапкаДата);
КонецЦикла;    
        
ДанныеТЗ = РезультатКонтрольХарактеристик.Выгрузить();
        
НомерСтроки = 0;        
Для каждого ЭлементТЗ Из ДанныеТЗ Цикл
    ОбластьКонтрольХарактеристикСтрокиОбщая.Параметры.Заполнить(ЭлементТЗ);
    НомерСтроки = НомерСтроки + 1;
    ОбластьКонтрольХарактеристикСтрокиОбщая.Параметры.НомерСтроки = НомерСтроки;
    ОбластьКонтрольХарактеристикСтрокиОбщая.Параметры.Характеристика = Строка(ЭлементТЗ.Характеристика) + ?(Строка(ЭлементТЗ.ЕдиницаИзмерения)="", "", ?(Строка(ЭлементТЗ.Характеристика)="", Строка(ЭлементТЗ.ЕдиницаИзмерения), ", " + Строка(ЭлементТЗ.ЕдиницаИзмерения)));;
    НовыйТабДок.Вывести(ОбластьКонтрольХарактеристикСтрокиОбщая);
    Для каждого ЭлемТЗ Из ГодТЗ Цикл
        Если ЭлемТЗ.Год = ЭлементТЗ.Год Тогда
            ОбластьКонтрольХарактеристикСтрокиДата.Параметры.Заполнить(ЭлементТЗ);
            ОбластьКонтрольХарактеристикСтрокиДата.Параметры.Замерил = Строка(ЭлементТЗ.ЗамерилДолжность) + ?(Строка(ЭлементТЗ.ЗамерилДолжность)="", "", ?(Строка(ЭлементТЗ.ЗамерилФИО)="", "", ", ")) + Строка(ЭлементТЗ.ЗамерилФИО) + "                  ";
            НовыйТабДок.Присоединить(ОбластьКонтрольХарактеристикСтрокиДата);
        Иначе
            НовыйТабДок.Присоединить(ОбластьКонтрольХарактеристикПустыеСтрокиДата);
        КонецЕсли;    
    КонецЦикла;    
КонецЦикла;
7 Ёпрст
 
20.09.17
11:25
Надеюсь, по названию секций поймешь, какие секции оставить
8 Svetlana_Kazan
 
20.09.17
11:34
(7) Спасибо!
Проверила. Сдвиг остался по-прежнему. И не знаю, что с этим делать...
9 Svetlana_Kazan
 
20.09.17
11:39
(6) в этом коде с каждым годом повторяется и "Дата проведения измерения", а в моем случае она одна на все года.
10 Ёпрст
 
20.09.17
11:43
(8) какой сдвиг ?
11 mistеr
 
20.09.17
11:44
(0) А если оставить только

НовыйТабДок.Вывести(ОбластьКонтрольХарактеристикЗаголовок);
НовыйТабДок.Вывести(ОбластьКонтрольХарактеристикШапкаОбщая);

Смещение есть?
12 Svetlana_Kazan
 
20.09.17
11:45
(11) да
13 Svetlana_Kazan
 
20.09.17
11:48
Если пройти по ссылке, там приведено как выводится. Сверху есть табличный документ ТабДок. Он выводится нормально. Далее я формирую и вывожу еще один табличный документ НовыйТабДок.
Объединяю эти табличные документы процедурой ДобавитьТабдок(ТабДок, НовыйТабДок);

Процедура ДобавитьТабдок(ТДПриемник, ТДИсточник)
ТДИсточник.Область(1,1,ТДИсточник.ВысотаТаблицы, ТДИсточник.ШиринаТаблицы).СоздатьФорматСтрок();
ТДПриемник.Вывести(ТДИсточник);
КонецПроцедуры
14 mistеr
 
20.09.17
11:48
Значит что-то с шириной колонок. Вероятно из-за предыдущего вывода (пустая сетка).
15 Ёпрст
 
20.09.17
11:48
(12) что за "сдвиг" у тебя ?
На счет общего заголовка - втыкай "по выделенным" столбцам галку
16 Ёпрст
 
20.09.17
11:49
и параметр только у первой заполняй
17 Svetlana_Kazan
 
20.09.17
11:52
Я и заголовок не выводила. Оставляла только НовыйТабДок.Вывести(ОбластьКонтрольХарактеристикШапкаОбщая);
А сдвиг все равно есть.
18 Ёпрст
 
20.09.17
11:55
(17) еще раз, че за сдвиг ?
19 Ёпрст
 
20.09.17
11:57
Вы под своим "сдвигом" считаете первую колонку  что ле ?
Тогда секцию "Общее" делайте со второй колонки, а не с первой.
Не будет вам "сдвига"
20 Svetlana_Kazan
 
20.09.17
12:56
(19) Спасибо! Получилось.
Закон Брукера: Даже маленькая практика стоит большой теории.