Форум программистов, компьютерный форум, киберфорум
1С: Собственные программы
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/13: Рейтинг темы: голосов - 13, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 19.10.2016
Сообщений: 47
1

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

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

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

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

Кликните здесь для просмотра всего текста
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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.01.2017, 20:04
Ответы с готовыми решениями:

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

Полное соединение табличных частей двух документов
Здравствуйте. Пытаюсь соединить две табличные части двух документов...

Вывод табличных HTML-данных на печать
Есть ли какой-нибудь компонент (серверный - клиентский), который бы подготавливал табличные данные...

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

4
75 / 71 / 21
Регистрация: 21.08.2015
Сообщений: 335
27.01.2017, 05:46 2
Как то не так вы запросы пишите. Вот тут вас уже поправили: Запрос к табличной части документа
0
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
75 / 71 / 21
Регистрация: 21.08.2015
Сообщений: 335
28.01.2017, 10:04 4
Надо два запроса сделать, а то у вас в одном запросе тянутся данные из двух документов, это неправильно.
0
0 / 0 / 0
Регистрация: 19.10.2016
Сообщений: 47
28.01.2017, 18:26  [ТС] 5
Что-то даже так не выходит.
Может у кого-то есть пример с выводом на печать где, например, фамилия выводится, а рядом список значений, привязанных к этой фамилии?
0
28.01.2017, 18:26
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.01.2017, 18:26
Помогаю со студенческими работами здесь

Из 2-х табличных частей в 1-ну. Конвертация данных
Добрый день, Форумчане! Столкнулся с проблемой, не получается написать правила для выгрузки из 2...

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

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

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


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru