#2
by and2
Использование: Чтение и запись. Описание: Тип: ОбластьЯчеекТабличногоДокумента. Содержит область строк, которая будет повторяться при печати каждого нового листа табличного документа.
#4
by kivas
Все конечно хорошо но только в случае использования меотда ПовторятьПриПечатиСтроки область выводится в начале страницы а не в конце как мне надо :(
#5
by GenV
Можно тогда проверять перед выводом поместится ли текущая строка вместе с колонтитулом или нет. Но это программный вывод.
#6
by kivas
Тогда как проверить высоту строки параметр которой СтрокаНеопрнднленнойДлинны да еще с многострочном режимом (есть переводы строки) да еще и с табами Короче мне не важно поместится она или не поместится, мне надо область внизу страницы вывести, какая она по счету не важно. если перешла на вторую страницу, и там всего одна строка то снизу этой (второй страницы) должна появиться определенная область. Вот и все. Как это сделать???
#7
by and2
КонецСтраницы (PageBottom) Использование: Чтение и запись. Описание: Тип: Булево. Признак того, что данная область находится последней на странице. Примечание: Применимо только для областей строк/колонок. поможет. Сам не пробовал
#8
by GenV
метод ПроверитьВывод для табличного документа. В типовой БП во многих печ. формах используется.
#10
by Steelvan
У меня приемлемо получилось только передачей в Ворд и скриптами проставить колонтитулы и из Ворда печатать(вставлял картинку). Все штатные методы могут сдвигать по листу выводимую секцию относительно нижнего края. А еще в конфигураторе можно сделать колонтитул с определенным текстом (без рисунков).
#11
by kivas
КонецСтраницы (PageBottom) Метод КонецСтраницы в 1С что то вроде РазрывСтраницы тоесть первая строка области выводится сразу за предыдущей а остальные строки области каждая в начале следующей страницы Например если в области 3 строки то первая строка выходит в следующей строке документа а остальные 2 каждая на следующей странице. Обл=ТабДокумент.Область("Подвал"); ТабДокумент.Вывести(ОбластьМакета); В этом случае также область выводится вверху страницы. _________________________________________________________ Давайте тогда рассмотрим вариант когда нам надо вывести только одну область но в конце печатного листа и все. Тоесть надо получить штамп в нижнем правом углу листа.
#12
by GenV
Единственный вариант который мне приходит на ум - вывод с проверкой и после нахождения последней области - вывод пустой области с минимальной высотой с проверкой на влезание на страницу (тогда последняя область будет в самом низу с погрешностью на величину высоты пустой области). ЗЫ Все таки в Ворде сделано удобнее.
#14
by kivas
Как вывести только одну область но в конце печатного листа и все. Тоесть надо получить штамп в нижнем правом углу листа.
#15
by Steelvan
тогда последняя область будет в самом низу с погрешностью на величину высоты пустой области - При условии, что высота всех секций одинакова.
#16
by GenV
Наверное ты не понял ... Сначала пытаемся проверить вывод обычных секций. Пока не доходим до перехода на страницу. После этого последовательно пытаемся проверить вывод минимальной области и области колонтитула, пока опять не получим переход на след страницу ...
#17
by GenV
16+ т.е. нужно подобрать такой размер последней области, при котором штамп как раз будет внизу. Можно, в принципе, ускорить алгоритм пробуя вывод не сразу минимальной области, а пытаясь постепенно уменьшать её размер. Но, все равно это гадость :)
#18
by kivas
Всего выводится 3 секции: 1 Шапка, 2 Текст (одной !!ячейкой!! переменной высоты)Её высота у каждого документа разная 3 Подвал (который должен быть в конце печатного листа) И как тут подсчитать? она или переходит или нет и все. Тоесть выводим первые две секции, затем добавляем Пустую секцию Высотой равной подвалу, проверяем переходит ли она на другую страницу, если да то выводим перед ней подвал, так чтоли?
#19
by GenV
1) Выводим Шапку 2) проверяем вывод Текста+Штампа, если уместился - выводим Текст (если несколько строк - делаем цикл проверки Текст+Штамп пока не достигнем след. страницы) 3) проверяем вывод подвала+Штампа, если уместился выводим Подвал 4) Делаем цикл проверки и вывода пустой строки с минимальной высотой (проверка на вывод ПустаяСтрока+Штамп) пока не достигнем перехода на след. страницу.
#20
by kivas
В общем после долгих проб и ошибок получилось следующее: Назначаем переменную содержащую область для вывода в конце страницы: Разбиваем большую строку на абзацы и выводим абзацы поочереди проверяя на перенос страницы: А если строка не переходит на другую страницу то сдвигаем ее в низ циклом: высота этой области определяет погрешность пасположения Проверка выглядит так: Процедура ПроверитьПеренос(ТабДок,Макет,Область) После этого область "подвал" всегда выводится в конце первой страницы не зависимо от высоты других областей
#21
by kivas
Дополнение: в вызовах прочедуры ПроверитьПеренос(ТабДок,Макет,Область,ОбластьПодвала) Последний параметр "ОбластьПодвала" указывать не следует
#22
by 1Саша
Вернулся к этому вопросу. Так и не получилось сделать аналогично в СчётеНаОплату Пока Не ПодвалНапечатан Цикл Вот ПодвалНапечатан - откуда мы это вобще берём,непойму. Понимаю что глупый вопрос, но не понимаю. Много ошибок выдаёт {Документ.СчетНаОплатуПокупателю(356,14)}: Переменная не определена (ПодвалНапечатан) Пока Не <<?>>ПодвалНапечатан Цикл {Документ.СчетНаОплатуПокупателю(372,10)}: Переменная не определена (ПодвалНапечатан) Если <<?>>ПодвалНапечатан или ТабДок.ПроверитьВывод(ПроверкаПечатиПодвала)тогда {Документ.СчетНаОплатуПокупателю(370,36)}: Переменная не определена (ОбластьПодвала) ПроверкаПечатиПодвала.Добавить(<<?>>ОбластьПодвала); {Документ.СчетНаОплатуПокупателю(376,26)}: Переменная не определена (ОбластьПодвала) А другие способы возможны чтобы всегда выводить картинку ровно внизу листа напечати ?
#24
by kivas
Да код немного кривоват, но я на скорую руку убирал все лишнее (пытался показать суть вопроса.) я думаю давольно понятно. Пояснения: ПодвалНапечатан - булево глобальная переменная модуля используется для поределения того что уже печатали подвал (нужен для того чтобы выводить его только на первой странице). в твоем варианте если надо на каждой странице то после перехода на каждую страницу надо снова ставить в Истина; ОбластьПодвала - тоже глобальная переменная модуля содержит область макета содержащего непосредственно подвал (чтобы каждый раз его не заполнять, а просто вставлять и все)
#26
by kivas
Конфа тут не имеет никакого значения Тут нет привязок к глобальным процедурам. А так для сведения УПП
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Построитель отчетов: вывод (не вывод) группировок
- Вывод области макета на печать в зависимости от параметра...
- Ошибка "...Вывод запрещен по причине: Вывод запрещен" - ничего не понимаю :(
- СКД: СКД: Вывод итогов запроса периодами, вывод счетчика строк...
- v8: Вывод области макета в колонтитул
- Как получить адрес области макета в 1С7
- в СКД необходим вывод группировок выглядящий как вывод детальных записей
- Макет.Вывод области внутри другой области
- Программный вывод отчета на скд (без макета)
В этой группе 1С
- Получить список счетов плана-счетов нижнего уровня
- v7: ПОМГИТЕ ПЛИЗ. Как при открытии справочника перейти к определенной строке
- v7: типовой УПП - подскажите
- 1С:Предприятие 8. Версия для обучения программированию
- Как склеить два и более DBF файла?
- ищу сервер защиты для ключей katran soft
- Распределение 25 и 26 счета
- ЭЦП и бумажная подпись
- в документах не открываются печатные формы
- Почему не открывается DBF файл?
- Начальное отображение дерева
- как выразить в запросе представление ссылки в строку?
- Конвертация ручных операций в идентичную конф.
- v81 Web-сервисы. Ошибка: неверный формат wsdl файла
- Сравнить элементы справочника с таблицей значений
- Каким образом можно добавить новый тип штрих кода
- Бюджет. Выгрузки для казначейства. FK2007.07
- Как передать параметры в метод регламентного задания?
- Что за зверь: "Не установлен приемник XML"
- Форма записи регистра сведений. Где обработчик события ПриИзмененииДанных?