Вход | Регистрация

1С:Предприятие ::

Метки: 

Табличный документ. Вывод в табличный документ со смещением.

Я
   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);

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

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

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

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

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

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


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

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

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


Список тем форума
Рекламное место пустует  
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует