Форум программистов, компьютерный форум, киберфорум
Наши страницы
1С: Собственные программы
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
NilNikov
0 / 0 / 0
Регистрация: 19.10.2016
Сообщений: 47
1

Вывод на печать табличной части

22.01.2017, 13:34. Просмотров 1485. Ответов 5
Метки нет (Все метки)

Здравствуйте!
В документе Док есть табл. часть Работник, которая содержит поля Фамилия, Возраст.

Есть общий макет. Как из ТЧ вывести на печать данные в макет?
Возможно ли сделать так, что если в ТЧ ни одно значение, то печатает несколько листов с различными значениями.

Модуль менеджера документа:
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Процедура ПО (ТабДок, Ссылка) Экспорт
    
        ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Портрет;
        ТабДок.АвтоМасштаб = Истина;
        ТабДок.ОтображатьСетку = Ложь;
        ТабДок.ПолеСверху = 5;
        ТабДок.ПолеСнизу = 5;   
        Макет = ПолучитьОбщийМакет("ПФ");   
        Лист = Макет.ПолучитьОбласть("Лист");
        
        Табл = Документы.Док.Выбрать();
        
        //Лист.Параметры.ФИО = 
        //Лист.Параметры.Возраст = 
                
        ТабДок.Вывести(Лист);
 
КонецПроцедуры
Огромное спасибо за помощь!

Добавлено через 3 часа 0 минут
Еще пытался взять значения из справочника. Но ругается на строку, выделенную жирным. Зн"ачение не является значением объектного типа (Работник)"
Все в модуле менеджера.

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
&НаСервере
Функция Данные(Фамилия)Экспорт
    
    Ссылка = Справочники.Работники.НайтиПоНаименованию(Фамилия);
    СсылкаОб = Ссылка.ПолучитьОбъект();
    
    ДатаРождения = СсылкаОб.ДатаРождения;
    Профессия = СсылкаОб.Профессия;
    Фамилия = СсылкаОб.Фамилия;
    Имя = СсылкаОб.Имя;
    Отчество = СсылкаОб.Отчество;
    
    Мас = Новый Массив(3);
    Мас[0] = ДатаРождения;
    Мас[1] = Профессия;
    Мас[2] = Фамилия + " " + Имя + " " + Отчество; 
    
    Возврат Мас;
    
КонецФункции
 
 
Процедура ПО(ТабДок, Ссылка) Экспорт
    
        ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Портрет;
        ТабДок.АвтоМасштаб = Истина;
        ТабДок.ОтображатьСетку = Ложь;
        ТабДок.ПолеСверху = 5;
        ТабДок.ПолеСнизу = 5;   
        Макет = ПолучитьОбщийМакет("ПФ");   
        Лист = Макет.ПолучитьОбласть("Лист");
        
        
        Эл = Документы.Док.Выбрать();
        Ссылка = Эл.Работник.Работник; //здесь ругается
        Д = Данные(Ссылка);
        
        
     
        Для Каждого ЭлементМассива из Д Цикл
            Лист.Параметры.ФИО = ЭлементМассива[0]; 
            //Сообщить(ЭлементМассива); 
        КонецЦикла;
 
           
        //Лист.Параметры.ГодРождения = 
        //Лист.Параметры.МестоРаботы = 
                
        ТабДок.Вывести(Лист);
 
КонецПроцедуры
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.01.2017, 13:34
Ответы с готовыми решениями:

Вывод на печать табличной части справочника.
Имеется ФормаСписка справочника Выплаты_сотрудникам, и мне нужно вывести на печать вот эти данные...

Вывод на печать табличной части одного документа
Ребята, выручайте. Понимаю, что ошибка пустяковая, но я ее не вижу((((((((((((((( Выводит на...

Значение строки табличной части получить в табличной части другого документа
Есть документ ПриходнаяНакладная (товар приходит от поставщика по его цене), с табличной частью...

Автоматическое заполнение табличной части документа из табличной части другого
Добрый день. Совсем недавно начал изучать 1С и пока не могу найти решения собственной задачи)...

Программное заполнение табличной части документа из табличной части справочника
Доброго! Ситуация, поставившая меня в тупик. Имеем 1с 8.2 УФ Имеем справочник "Работ" Имеем...

5
GreenkA
Модератор
Эксперт 1С
2990 / 1911 / 520
Регистрация: 25.06.2009
Сообщений: 6,784
22.01.2017, 14:34 2
Цитата Сообщение от NilNikov Посмотреть сообщение
Еще пытался взять значения из справочника. Но ругается на строку, выделенную жирным. Зн"ачение не является значением объектного типа (Работник)"
Потому что выборку надо обходить через Следующий() (см. синтакс-помощник).
И вы что, берете из первого любого документа значение? Никаких отборов? По ссылке на документ, например.
Мой совет вам: воспользуйтесь конструктором печати и выведите табличную часть в макет, принадлежащий документу, а потом перенесете его в общие макеты(если это так принципиально) и немного измените код. Потому что пока - беда)
1
NilNikov
0 / 0 / 0
Регистрация: 19.10.2016
Сообщений: 47
22.01.2017, 15:57  [ТС] 3
Спасибо за ценный совет, он мне помог)
Пробую пока только по одному полю из ТЧ.

Возникает вопрос в следующем. Вот пример моего макета.
При печати надо чтобы вторая фамилия не формировала новый лист для печати, а записывалась справа. А уже 3-я фамилия в списке формировала новый лист для печати.
Каким образом это возможно реализовать?

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
Процедура ПО(ТабДок, Ссылка) Экспорт
    
        ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Портрет;
        ТабДок.АвтоМасштаб = Истина;
        ТабДок.ОтображатьСетку = Ложь;
        ТабДок.ПолеСверху = 5;
        ТабДок.ПолеСнизу = 5;   
        Макет = ПолучитьОбщийМакет("ПФ");   
        ОбластьЛист = Макет.ПолучитьОбласть("Лист");
        
        Запрос = Новый Запрос;
        Запрос.Текст =
        "ВЫБРАТЬ
        |   Док.Работники.(
        |       Работник
        |   )
        |ИЗ
        |   Документ.Док КАК Док
        |ГДЕ
        |   Док.Ссылка В (&Ссылка)";
        
        Запрос.Параметры.Вставить("Ссылка", Ссылка);
        Выборка = Запрос.Выполнить().Выбрать();
        ТабДок.Очистить();
 
        Пока Выборка.Следующий() Цикл 
            
            ВыборкаРаботники = Выборка.Работники.Выбрать();
            
            Пока ВыборкаРаботники.Следующий() Цикл
                ОбластьЛист.Параметры.Заполнить(ВыборкаРаботники);
                ТабДок.Вывести(ОбластьЛист, ВыборкаРаботники.Уровень());
            КонецЦикла;
 
            ВставлятьРазделительСтраниц = Истина;
            
        КонецЦикла;
    
КонецПроцедуры
0
Миниатюры
Вывод на печать табличной части  
Dethmontt
Модератор
Эксперт 1С
2657 / 2445 / 420
Регистрация: 10.03.2011
Сообщений: 8,756
Записей в блоге: 1
Завершенные тесты: 1
23.01.2017, 11:01 4
вывести() присоединяет к табличному документу область СНИЗУ
Присоеденить() присоединяет к табличному документу область СПРАВА
0
NilNikov
0 / 0 / 0
Регистрация: 19.10.2016
Сообщений: 47
23.01.2017, 20:19  [ТС] 5
Переименовал области. Начал вставлять как положено, но при печати он не создает новые листы, а приписывает их справа к таблице на одном листе.
Как от этого можно избавиться? Если можно,то конкретным примером.
0
Миниатюры
Вывод на печать табличной части   Вывод на печать табличной части  
Dethmontt
Модератор
Эксперт 1С
2657 / 2445 / 420
Регистрация: 10.03.2011
Сообщений: 8,756
Записей в блоге: 1
Завершенные тесты: 1
24.01.2017, 03:06 6
NilNikov, чередовать, Вывести() и Присоединить()
0
24.01.2017, 03:06
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.01.2017, 03:06

Вывод суммы из табличной части в реквизит
Как это сделать ?

1с 8.3 Вывод картинок в табличной части документа
Имеется документ с табличной частью, с реквизитом Номенклатура (тип СправочникСсылка.Номенклатура...

Вывод данных из справочника при изменении табличной части
Добрый день форумчане! В 1с недавно, многого не понимаю. Нужно написать запрос при изменение...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru