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

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

25.01.2017, 20:04. Просмотров 840. Ответов 4
Метки нет (Все метки)

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

На макете печатной формы должно выводиться для нескольких работников с инф: работник, ДР, и фактор.
Выводит все странно. Сначала фамилии работников. А потом последнюю фамилию в списке со всеми факторами.
Оно в принципе и логично. Как обойти это дело?

Кликните здесь для просмотра всего текста
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
52
53
54
Процедура Закл(ТабДок, Ссылка) Экспорт
    
        ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Портрет;
        ТабДок.АвтоМасштаб = Истина;
        ТабДок.ОтображатьСетку = Ложь;
        ТабДок.ПолеСверху = 5;
        ТабДок.ПолеСнизу = 5;
        Макет = ПолучитьОбщийМакет("ПФ");   
        ОбластьЛист = Макет.ПолучитьОбласть("Лист"); 
        
        Запрос = Новый Запрос;
        Запрос.Текст =
        "ВЫБРАТЬ
        |   Док.Работники.(
        |       Работник,
        |       Работник.ДатаРождения
        |   ),
        |   Док.Фактор.(
        |       Фактор
        |   )
        |ИЗ
        |   Документ.Док КАК Док
        |ГДЕ
        |   Док.Ссылка В(&Ссылка)";
        
        Запрос.Параметры.Вставить("Ссылка", Ссылка);
        Выборка = Запрос.Выполнить().Выбрать();
        ТабДок.Очистить();
        
        Пока Выборка.Следующий() Цикл 
            
            ВыборкаРаботники = Выборка.Работники.Выбрать();
            ВыборкаФактор = Выборка.Фактор.Выбрать();
            
            Пока ВыборкаРаботники.Следующий() Цикл
                
                ОбластьЛист.Параметры.Заполнить(ВыборкаРаботники); 
                ТабДок.Вывести(ОбластьЛист, ВыборкаРаботники.Уровень());
                
            КонецЦикла;
            
            Пока ВыборкаФактор.Следующий() Цикл
    
                ОбластьЛист.Параметры.Заполнить(ВыборкаФактор); 
                ТабДок.Вывести(ОбластьЛист, ВыборкаФактор.Уровень());
                
            КонецЦикла;         
            
                                    
            ВставлятьРазделительСтраниц = Истина;
            
        КонецЦикла;
 
КонецПроцедуры
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.01.2017, 20:04
Ответы с готовыми решениями:

Перебор документов и их табличных частей, замена нужного товара на новый и перепроведение
1С:Предприятие 8.2 (8.2.19.130) Подскажите пожалуйста, не могу заменить найденный в табличной...

Связь Справочника и Табличных частей
Всем привет, мой первый пост на этом форуме. Вопрос состоит вот в чем. Мне надо чтобы значение...

Дополнительные внешние обработки табличных частей
1C Бухгалтерия 8.2 Нужно Создать внешнюю обработку, которая будет работать с табличной частью...

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

Связывание двух табличных частей документа
Необходимо при нажатии на строчку первой табличной части, получать соответствующие данные во второй...

4
MonteKristo
60 / 59 / 17
Регистрация: 21.08.2015
Сообщений: 250
27.01.2017, 05:46 2
Как то не так вы запросы пишите. Вот тут вас уже поправили: Запрос к табличной части документа
0
NilNikov
0 / 0 / 0
Регистрация: 19.10.2016
Сообщений: 47
27.01.2017, 15:22  [ТС] 3
Переделал. Все выводит как надо. Но есть одно НО: если у одного человека несколько факторов, то он выводит несколько листов (Фамилия1 Фактор1; Фамилия1 Фактор2 и т.д.). Как можно зациклить Факторы для одного человека, чтобы все факторы работника выводились в одном месте?

Кликните здесь для просмотра всего текста
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
ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Портрет;
        ТабДок.АвтоМасштаб = Истина;
        ТабДок.ОтображатьСетку = Ложь;
        ТабДок.ПолеСверху = 5;
        ТабДок.ПолеСнизу = 5;
        Макет = ПолучитьОбщийМакет("ПФ_Закл");  
        ОбластьЛист = Макет.ПолучитьОбласть("Лист");  
        
        Запрос = Новый Запрос;
        Запрос.Текст =
        "ВЫБРАТЬ
        |   ДокРаботники.Работник,
        |   ДокРаботники.Работник.ДатаРождения,
        |   ДокФакторы.Фактор
        |ИЗ
        |   Документ.Док.Работники КАК ДокРаботники,
        |   Документ.Док.Факторы КАК ДокФакторы
        |ГДЕ
        |   ДокРаботники.Ссылка В(&Ссылка) И
        |   ДокФакторы.Ссылка В(&Ссылка) И 
        |   ДокРаботники.Работник = ДокФакторы.Работник";
        
        
        Запрос.Параметры.Вставить("Ссылка", Ссылка);
        Выборка = Запрос.Выполнить().Выбрать();
        ТабДок.Очистить();
        
        Пока Выборка.Следующий() Цикл
            
                ОбластьЛист.Параметры.Заполнить(Выборка); 
                ТабДок.Вывести(ОбластьЛист, Выборка.Уровень());
                
                Если Не ТабДок.ПроверитьВывод(ОбластьЛист) Тогда
                    ТабДок.ВывестиГоризонтальныйРазделительСтраниц(); 
                КонецЕсли;
                
        КонецЦикла;
0
MonteKristo
60 / 59 / 17
Регистрация: 21.08.2015
Сообщений: 250
28.01.2017, 10:04 4
Надо два запроса сделать, а то у вас в одном запросе тянутся данные из двух документов, это неправильно.
0
NilNikov
0 / 0 / 0
Регистрация: 19.10.2016
Сообщений: 47
28.01.2017, 18:26  [ТС] 5
Что-то даже так не выходит.
Может у кого-то есть пример с выводом на печать где, например, фамилия выводится, а рядом список значений, привязанных к этой фамилии?
0
28.01.2017, 18:26
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.01.2017, 18:26

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

Запрос на сравнение двух табличных частей разных справочников
Всем доброго времени суток! Запуталась с 1С-ной спецификой написания запросов. Задача такова: есть...

Подсчёт суммы из подвалов двух табличных частей в другое поле в 1С 8.2
Добрый день. У меня есть документ ЗаказКлиента с двумя табличными частями Товары и Услуги. В каждой...


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

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

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