|   |   | 
| 
 | Разбить узкий и длинный табдокумент на 4 столбика и вывести на одной странице | ☑ | ||
|---|---|---|---|---|
| 0
    
        ks-815 03.04.15✎ 09:03 | 
        Такая ситуация. Делаю отчёт с разными вариантами настроек. Их нужно вывести ВСЕ в четырёх колонках на одной странице змейкой.
 Я выгрузила всё в один узкий длинный таб документ: &НаКлиенте Функция ВывестиВсеВТабличныйДокумент() ТаблДок = Новый ТабличныйДокумент; ТаблДок.ОтображатьСетку = Ложь; Для Каждого ВариантНастроек Из СКД.ВариантыНастроек Цикл Попытка Цифра = Число(Лев(ВариантНастроек.Имя,1)); Исключение Продолжить; КонецПопытки; Если 1 <= Цифра И Цифра <= 7 Тогда НастройкиМакета = ВариантНастроек.Настройки; УстановитьЗначенияПараметровНастройкиМакета(СКД, НастройкиМакета); МакетОформления = новый МакетОформленияКомпоновкиДанных; КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; ПроцессорКомпоновкиДанных = новый ПроцессорКомпоновкиДанных; ПроцессорВывода = новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; МакетКомпоновки = КомпоновщикМакета.Выполнить(СКД, НастройкиМакета, ЭтаФорма["ДанныеРасшифровки"+ВариантНастроек.Имя], МакетОформления); ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,,ЭтаФорма["ДанныеРасшифровки"+ВариантНастроек.Имя]); ПроцессорВывода.УстановитьДокумент(ТаблДок); ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); Иначе КонецЕсли; КонецЦикла; //Возврат ТаблДок; ТаблДок.Показать(); КонецФункции // ВывестиРазделВТабличныйДокумент() Теперь его нужно разбить на 3 колонки, равные высоте страницы, и четвёртую оставшуюся. Подскажите, пожалуйста, как разбить. | |||
| 1
    
        asady 03.04.15✎ 09:05 | 
        (0) может средствами принтера это сделать - типа настроить параметры страницы и количество страниц на листе     | |||
| 2
    
        PLUT гуру 03.04.15✎ 09:06 | 
        (0) создай свою ТЗ, пронумеруй свое поле "КолонкаОтчета" как тебе нужно и скорми ПроцессоруКомпоновкиДанных     | |||
| 3
    
        ks-815 03.04.15✎ 09:06 | 
        (1) а там еще заголовок отчёта и подвал есть     | |||
| 4
    
        PLUT гуру 03.04.15✎ 09:08 | 
        (3) а чердака нету там?     | |||
| 5
    
        ks-815 03.04.15✎ 09:12 | 
        (2) не понятно как-то.. можно поподробнеее??     | |||
| 6
    
        vicof 03.04.15✎ 09:14 | 
        (0) Узкий и длинный это плохо. Нужно широкий и длинный)
 (5) НомерСтолбика в запрос добавь | |||
| 7
    
        ks-815 03.04.15✎ 09:17 | 
        (5) в запросе 7 частей, каких-то может не быть. где-то 2 строки. где-то 30. Столбик добавить не возможно.
 А нельзя что ли разрезать длинный табДокумент на 4 коротких? | |||
| 8
    
        ks-815 03.04.15✎ 09:19 | 
        (7) как помещать табдокументы на одну страницу. у меня есть код. 
 Они изначально были неправильно разрезаны. Оставались дыры. На 1 страницу не влазило всё. Нужно просто из одного сделать 4. | |||
| 9
    
        ks-815 03.04.15✎ 09:23 | 
        Если вывести на печать, выходит 4 страницы с первой колонкой заполненной. Как так получить высоту куска, который входит на 1 страницу??     | |||
| 10
    
        vicof 03.04.15✎ 09:29 | 
        (9) Никак. Задача идиотская изначально     | |||
| 11
    
        ks-815 03.04.15✎ 09:33 | 
        (10) какая уж есть. Это пожелания пользователей.     | |||
| 12
    
        Fish гуру 03.04.15✎ 09:37 | 
        (11) И что? А если пользователь пожелает, чтобы 1С за него машиной управляло, тоже будешь исполнять?     | |||
| 13
    
        ks-815 03.04.15✎ 09:53 | 
        Есть еще мысли по решению этой задачи??     | |||
| 14
    
        Fish гуру 03.04.15✎ 09:56 | 
        (13) Есть. Сделать нормальный красивый отчёт без всяких "змеек" и других фантазий.     | |||
| 15
    
        ks-815 03.04.15✎ 09:57 | 
        (14) этот отчёт пользователи в эксэле делают уже лет 8.
 Змейкой. Поэтому нужна только змейка :) | |||
| 16
    
        Asirius 03.04.15✎ 10:03 | 
        (0)
 Разрезай получившуюся таблицу на строчки и выводи в новую таблицу используя методы: ПроверитьВывод() ПроверитьПрисоединение() Еще надо шапку повторить у всех колонок. | |||
| 17
    
        ks-815 03.04.15✎ 10:07 | 
        (16) Шапку не надо. Для каждой настройки отчёта своя шапка. 
 Шапки выводятся нормально. | |||
| 18
    
        PLUT гуру 03.04.15✎ 10:09 | 
        (13) а чем вариант с ТЗ и скармливанием Процессору?
 Выбрать "опа" как колонка1, null как колонка2, null как колонка3, null как колонка4 Объединить выбрать null, "опа", null,null объединить выбрать null, null,"украина",null объединить выбрать null,null,null,"це европа" ну в твоем случае в запросе набора данных нужно условия наложить на номер колонки | |||
| 19
    
        EugeneSemyonov 03.04.15✎ 10:11 | 
        (10) С точки зрения пользователя вовсе нет. Зачем переводить кучу листов и потом листать их если ширина печатаемого текста не больше четверти листа? Тоже недавно столкнулся с такой задачей. Решения так и не нашёл.     | |||
| 20
    
        EugeneSemyonov 03.04.15✎ 10:14 | 
        (7) Может перед выводом считать строки и в разные документы вставлять?     | |||
| 21
    
        ks-815 03.04.15✎ 10:15 | 
        (16) мне не понятно немного что писать в скобках у МойДлинныйУзкийТабДок.ПроверитьВывод() ??     | |||
| 22
    
        ks-815 03.04.15✎ 10:16 | 
        (20) а как получить, сколько строк осталось на странице??     | |||
| 23
    
        EugeneSemyonov 03.04.15✎ 10:20 | 
        (9) Как вариант, посчитать количество строк помещающихся на листе и считать выводимые строки. По достижении нужно количества создавать новый табдок и выводить в него.
 Дальше ты умеешь. (22) Посчитать количество строк помещающихся на листе и вычитать количество уже выведенных. | |||
| 24
    
        ks-815 03.04.15✎ 10:22 | 
        (23) строки могут быть разной ширины - одноэтажные, пятиэтажные     | |||
| 25
    
        EugeneSemyonov 03.04.15✎ 10:22 | 
        (22) Только это зачем? Достаточно знать сколько строк помещается.     | |||
| 26
    
        ks-815 03.04.15✎ 10:23 | 
        (25) ой, высоты     | |||
| 27
    
        ks-815 03.04.15✎ 10:24 | 
        вдруг на страницу влазит 100 одноэтажных строк, а если будет двухэтажная, то уже 99..     | |||
| 28
    
        Asirius 03.04.15✎ 10:27 | 
        (21) Синтаксис-помощник забанили?
 ТабДок = Новый ТабличныйДокумент; Т = Новый Массив; Т.Добавить(ШапкаДокумента); Т.Добавить(СтрокаДокумента); Т.Добавить(ПодвалДокумента); Если Не ТабДок.ПроверитьВывод(Т) Тогда Сообщить("Документ не умещается на страницу!"); КонецЕсли; | |||
| 30
    
        ks-815 03.04.15✎ 10:36 | 
        (28) Мне тогда создать новый табДокумент и в него выводить мой длинный?     | |||
| 31
    
        PLUT гуру 03.04.15✎ 10:37 | 
        +(18) концепция поменялась :) нужно в свою ТЗ добавить колонку "номерколонки" и колонку "номерстроки" и пронумеровать
 скормить свою ТЗ ПроцессоруКомпоновщикаДанных текст запроса //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ колонка1.Значение КАК кол1, колонка2.Значение КАК кол2, колонка3.Значение КАК кол3, колонка4.Значение КАК кол4 ИЗ (ВЫБРАТЬ ТЗ.Значение КАК Значение, ТЗ.номерстроки КАК номерстроки ИЗ ТЗ КАК ТЗ ГДЕ ТЗ.колонка = 1) КАК колонка1 ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ТЗ.Значение КАК Значение, ТЗ.номерстроки КАК номерстроки ИЗ ТЗ КАК ТЗ ГДЕ ТЗ.колонка = 2) КАК колонка2 ПО колонка1.номерстроки = колонка2.номерстроки ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ТЗ.Значение КАК Значение, ТЗ.номерстроки КАК номерстроки ИЗ ТЗ КАК ТЗ ГДЕ ТЗ.колонка = 3) КАК колонка3 ПО колонка1.номерстроки = колонка3.номерстроки ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ТЗ.Значение КАК Значение, ТЗ.номерстроки КАК номерстроки ИЗ ТЗ КАК ТЗ ГДЕ ТЗ.колонка = 4) КАК колонка4 ПО колонка1.номерстроки = колонка4.номерстроки и в настройке СКД вывести поля колонка1,колонка2,колонка3,колонка4 | |||
| 32
    
        ks-815 03.04.15✎ 10:48 | 
        (31)В моём длинном табдокументе присутствуют разные таблицы с разными шапками(так как разные варианты настроек в СКД), которые просто одинаковые по ширине. Что-то не могу представить, как пронумеровать в каждой табличке строки и шапки..     | |||
| 33
    
        yavasya 03.04.15✎ 10:51 | 
        а тебе не проще в макет обычный не СКД сделать печать ?     | |||
| 34
    
        PLUT гуру 03.04.15✎ 10:53 | 
        (33) она не может представить как это сделать. даже СКД не поможет     | |||
| 35
    
        yavasya 03.04.15✎ 10:55 | 
        я думаю пользователи сами не представляют что они хотят (34)     | |||
| 36
    
        kudlach 03.04.15✎ 11:16 | 
        В 7.7 делалось пересобиранием ТЗ.
 В 8.х можно область собирать, а потом собранную область присоединять. | |||
| 37
    
        EugeneSemyonov 03.04.15✎ 11:19 | 
        (24) Да, это меняет дело. Заморочка та ещё. 
 (35) Пользователи прекрасно представляют - у них есть лист Excel с 4-мя колонками. | |||
| 38
    
        hhhh 03.04.15✎ 11:21 | 
        тогда всё-таки (1)     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |