Вывод колонтитула или логотипа внизу страницы, вне зависимости от количества строк в печатной форме.

13.04.12

Задачи пользователя - Адаптация типовых решений

Вывод колонтитула или логотипа вниз страницы, вне зависимости от количества строк в печатной форме.

Скачать исходный код

Наименование Файл Версия Размер
invoice.gif
.gif 36,30Kb
52
.gif 36,30Kb 52 Скачать

Была форма счета сделанная в excel и она была утверждена в валютном контроле... ее нужно было реализовать в 1с.

Казалось бы чего проще, но столкнулся с проблемой, внизу формы находились реквизиты и подпись... и при выводе печатной формы счета "Подвал" должен всегда находиться внизу страницы, вне зависимости от того сколько строчек номенклатуры выводится, одна или 10-15. Когда выводилось мало строчек, подвал счета естесственно перемещался вверх поближе к строчкам номенклатуры.

Долго думал, читал в интернет и делюсь опытом....

 

Вот пример кода, ниже поясню смысл.

ОбластьМакета = Макет.ПолучитьОбласть("Пропуск"); //// В макете создаем область которая содержит просто не заполненную строку, она будет нужна для того,чтобы заполнить пустоту между строчками и подвалом.
ТабДокумент.Вывести(ОбластьМакета);

// Проставляем пустые строчки, так чтобы подвал всегда находился внизу страницы.

ПоследняяОбласть = Макет.ПолучитьОбласть("ПодвалСчета");
ПустаяОбласть = Макет.ПолучитьОбласть("Пустая");
Итого = Макет.ПолучитьОбласть("Итого");
ИтогоНДС = Макет.ПолучитьОбласть("ИтогоНДС");
// СуммаПрописью = Макет.ПолучитьОбласть("СуммаПрописью");
КурсИтого = Макет.ПолучитьОбласть("КурсИтого");                              /// Получаем се области которые нужно сдвигать в самый низ страницы.



Массив = Новый Массив;                                                     /// Создаем Массив из областей которые нужно располагать внизу страницы, также                          добавляем в массив область с пустой строкой...

Массив.Добавить(ПустаяОбласть);
Массив.Добавить(Итого);
Массив.Добавить(ИтогоНДС);
Массив.Добавить(КурсИтого);
Массив.Добавить(ПоследняяОбласть);

Пока ТабДокумент.ПроверитьВывод(Массив) Цикл              /// Далее следует простая проверка на возможность уместить массив из областей на листе.
ТабДокумент.Вывести(ПустаяОбласть);    
КонецЦикла;

///// Логика такая, если массив умещается на листе, тогда выводим пустую область тем, самым оставляем меньше места на листе (сдвигаем Массив областей вниз) как только массив перестает влезать на лист выводится массив областей, тем самым мы каждый раз получаем его внизу страницы. 

// Проставляем пустые строчки, так чтобы подвал всегда находился внизу страницы.

Будут вопросы - пишите, чем смогу - помогу.

Всем удачи!

См. также

Табличная часть в доп. реквизитах и формирование таблиц в шаблоне docx для 1С:ДО 3.0

Адаптация типовых решений Платформа 1С v8.3 1С:Документооборот Россия Платные (руб)

Расширение конфигурации для «1С:Документооборот КОРП», редакция 3.0. позволяет: 1.использовать произвольные табличные части в качестве дополнительных реквизитов к документу; 2 использовать произвольные табличные части в шаблонах в формате docx для автоматического заполнения таблиц.

29400 руб.

29.06.2023    4891    10    5    

19

Расширение для 1С:УНФ. Автоматическое снятие резервов в Заказах покупателей

Логистика, склад и ТМЦ Адаптация типовых решений Пользователь Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 Россия Управленческий учет Платные (руб)

Чтобы не допустить путаницы с обещаниями клиентам и для четкого контроля исполнения заказов мы используем резервирование товаров. Мы доработали УНФ, чтобы она автоматически отменяла старые резервы и не мешала эффективно продавать.

7200 руб.

02.08.2023    3264    6    0    

22

Каждому менеджеру нужен свой Excel

Адаптация типовых решений Программист Пользователь Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Абонемент ($m)

Каждый из нас сталкивается с ситуацией, когда какой-нибудь менеджер показывает свой Excel и рассказывает, как он что-то из 1С копирует в него, снабжает пояснениями, выделяет цветом и т.д. и т.п. Заканчивается все просьбой сделать вот чтобы также было в 1С. И оказывается такой человек (почти с гарантией) либо лучшим продажником, либо каким-то важным, за все отвечающим, - на ком все держится.

2 стартмани

22.04.2024    4419    dimanich70    15    

18

Создать на основании - своя кнопка (БСП). Проблема двух подменю Создать на основании

БСП (Библиотека стандартных подсистем) Адаптация типовых решений Программист Платформа 1С v8.3 1С:ERP Управление предприятием 2 Бесплатно (free)

Понадобилось в подменю "Создать на основании" добавить свою команду, которая открывает обработку. В процессе доработок появилась проблема двух подменю "Создать на основании". В статье о том, как решились проблемы.

01.03.2024    2525    dimanich70    8    

15

Доработка отчета "Связанные документы" (структура подчиненности) для вывода объектов из любого расширения

Адаптация типовых решений Программист Платформа 1С v8.3 1С:Управление торговлей 11 Россия Абонемент ($m)

Доработка типового отчета "Связанные документы" позволяет просто и быстро расширять состав объектов для построения структуры подчиненности документов, используя объекты основной конфигурации и любых расширений.

1 стартмани

27.10.2023    2312    19    avmartynov    14    

44

Печать непроведенных документов для УТ, КА, ERP. Настройка печати по пользователям, документам и печатным формам

Пакетная печать Печатные формы Адаптация типовых решений Универсальные функции Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Абонемент ($m)

Расширение для программ 1С:Управление торговлей, 1С:Комплексная автоматизация, 1С:ERP, которое позволяет распечатывать печатные формы для непроведенных документов. Можно настроить, каким пользователям, какие конкретные формы документов разрешено печатать без проведения документа.

2 стартмани

22.08.2023    2515    35    progmaster    8    

4
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. blinoff71 16.05.13 11:48 Сейчас в теме
Спасибо за статью, очень помогла, все получилось, как и хотел.
2. mcbase 58 16.05.13 11:56 Сейчас в теме
(1) Пожалуйста, я рад, что вам она оказалась полезной)
3. pavell2009 25.07.13 21:53 Сейчас в теме
Спасибо за статью, пытаюсь реализовать как вы написали, но не получается......
У меня в макете есть область "Подписи" которую нужно выводить всегда в конце страницы
Я создал две пустых области "Пустая" и "Пропуск" - они находятся над областью пропуск и далее по вашему коду:
Не совсем понял когда выводится область "Подписи" - в конце выводится только ТабДокумент.Вывести(ПустаяОбласть);
Не могли бы вы пояснить, начинающему программисту как все таки, реализовать
ОбластьМакета = Макет.ПолучитьОбласть("Пропуск"); //// В макете создаем область которая содержит просто не заполненную строку, она будет нужна для того,чтобы заполнить пустоту между строчками и подвалом.
ТабДокумент.Вывести(ОбластьМакета);

// Проставляем пустые строчки, так чтобы подвал всегда находился внизу страницы.

ПоследняяОбласть = Макет.ПолучитьОбласть("Подписи");
ПустаяОбласть = Макет.ПолучитьОбласть("Пустая");
/// Получаем се области которые нужно сдвигать в самый низ страницы.



Массив = Новый Массив; /// Создаем Массив из областей которые нужно располагать внизу страницы, также добавляем в массив область с пустой строкой...

Массив.Добавить(ПустаяОбласть);
Массив.Добавить(ПоследняяОбласть);

Пока ТабДокумент.ПроверитьВывод(Массив) Цикл /// Далее следует простая проверка на возможность уместить массив из областей на листе.
ТабДокумент.Вывести(ПустаяОбласть);
КонецЦикла;

///// Логика такая, если массив умещается на листе, тогда выводим пустую область тем, самым оставляем меньше места на листе (сдвигаем Массив областей вниз) как только массив перестает влезать на лист выводится массив областей, тем самым мы каждый раз получаем его внизу страницы.

// Проставляем пустые строчки, так чтобы подвал всегда находился внизу страницы.
4. mcbase 58 25.07.13 22:53 Сейчас в теме
Добрый вечер, пришлите мне файл с вашей печатной формой я его посмотрю и скажу где, что не так.
5. pavell2009 25.07.13 23:24 Сейчас в теме
6. mcbase 58 25.07.13 23:53 Сейчас в теме
(5) pavell2009, Вы пришлите все вместе с кодом который у вас получился и не работает, я его посмотрю и подскажу что не так.
7. pavell2009 26.07.13 08:45 Сейчас в теме
Внешняя обработка с макетом + код, посмотрите пожалуйста
Прикрепленные файлы:
ВнешняяОбработка.epf
8. aakiseleva92 11.11.14 15:34 Сейчас в теме
У меня делает отступы, но все равно выводит область посередине страницы, а не внизу.
9. weissfeuer 45 30.06.15 14:47 Сейчас в теме
Дельный лайфхак ) спасибо!
10. ZSeryoga 29.09.15 11:45 Сейчас в теме
11. Silverghoust 07.04.16 11:24 Сейчас в теме
Спасибо, очень пригодилось - конечно тут и от принтера зависит. У меня вначале не вышло - (в параметрах страницы было указан масштаб по ширине). Помогло установить табличному документу свойство Автомасштаб = Истина.
12. dara1989 3 29.04.16 13:28 Сейчас в теме
13. bvs_dd 06.07.16 16:34 Сейчас в теме
Спасибо за статью! Дельный совет.
14. Гость 04.10.16 16:44
15. zlexuzz 10.01.17 09:16 Сейчас в теме
Отлично! Просто, работоспособоно!
16. alexandr_astafiev 68 01.03.17 16:59 Сейчас в теме
Большое спасибо все работоспособно. Я использовал данную идею для вывода многостраничного договора. Где мне нужно было выводить подписи в конце каждой четной страницы. А на последней странице договора соответственно достаточно тех подписей которые в конце текста и вообще ничего не нужно "лишнего" выводить. Вот такие они бухгалтера "затейники" и тут вылезло большое НО:
Перед тем как выполнять проверку ТабДокумент.ПроверитьВывод(Массив) нужно ОБЯЗАТЕЛЬНО выставить ориентацию страниц и отступы. Иначе проверка идет по настройкам для принтера по умолчанию. Что может вовсе не соответствовать настройкам печати. В результате подписи оказываются не в конце страницы а в очень неожиданных местах! Например:
ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Портрет;
ТабДок.ПолеСлева = 20;
ТабДок.ПолеСправа = 20;
ТабДок.ПолеСверху = 5;
ТабДок.ПолеСнизу = 5;
ТабДок.АвтоМасштаб = Истина;
ТабДок.ОтображатьЗаголовки = Ложь;
ТабДок.ОтображатьСетку = Ложь;
ТабДок.ДвусторонняяПечать = ТипДвустороннейПечати.ПереворотВлево;
//И только потом сама проверка
Пока ТабДок.ПроверитьВывод(Массив) Цикл
....кому что нужно
КонецЦикла;
SrPomidoro; корум; +2 Ответить
17. Matveev_VS 162 27.05.21 18:04 Сейчас в теме
Спасибо, очень пригодилось!
18. Альтаир 9 10.10.22 10:02 Сейчас в теме
Добрый день! Старт мани списались, а по ссылке только картинка счета, обработки нет... Как быть? картинка то не нужна....
19. Rafaraf 37 25.04.23 17:45 Сейчас в теме
(18) ну там же видно, что .gif - это тоже лайфхак )
50 человек скачали )
20. Student1C 58 27.11.23 11:54 Сейчас в теме
(18) Весь смысл заложен в статье) Файл только для благодарности автору.
21. AI_1C 26.02.24 18:06 Сейчас в теме
Оставьте свое сообщение