Добавить страницу в табличный документ 1с

Обновлено: 07.07.2024

Постраничный вывод в табличный документ

Для некоторых отчетов необходимо, чтобы в конце страницы содержалась некоторая область, которая бы сообщала информацию о содержимом страницы. Это может быть, например, информация о сумме по странице, количестве строк на странице и т.п. Во встроенном языке 1С:Предприятия предусмотрены специальные средства для разбиения табличного документа на страницы. В данном разделе рассказывается, каким образом можно организовать постраничный вывод при выводе информации в табличный документ.

Метод табличного документа ПроверитьВывод()

Объект ТабличныйДокумент имеет метод ПроверитьВывод() , предназначенный для того, чтобы проверить, поместится ли список областей на текущую страницу. В случае если метод вернет значение Истина , вывод областей, переданных в метод, не приведет к созданию новой страницы, иначе, для того, чтобы вывести области, в табличном документе будет создана новая страница. Данный метод работает с учетом настроек печати документа, у которого вызывается метод.

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

Для того чтобы реализовать подобный отчет нам потребуется использовать метод ПроверитьВывод() . Пример алгоритма отчета будет выглядеть так:

1. выводим в результирующий табличный документ область - заголовок первой страницы;
2. для каждой строки из ведомости:

2.1. проверяем, вмещается ли на текущую страницу область со строкой ведомости и область итога по странице;
2.2. если области помещаются на странице - выводим строку области;
2.3. иначе - выводим подвал страницы, выводим горизонтальный разделитель страницы, выводим шапку страницы, выводим строку ведомости;

3. выводим подвал отчета.

Ниже приведен пример того, как подобный алгоритм может быть реализован на встроенном языке 1С:Предприятия 8.0:

Метод табличного документа ПроверитьПрисоединение()

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

В этой статье вы узнаете, по какому принципу осуществляется работа со страницами в табличном документе 1С 8.3. Будет показано, как определить помещается ли область (или области) в страницу, а также как принудительно осуществить разделение страниц.

Для демонстрации принципов работы страниц в табличном документе реализуем простой учебный пример: в табличном документе выведем строки со случайными числами и их текстовое представление, количество строк с числами, которые нужно вывести будем вводить в поле на управляемой форме обработки.

Управляемая форма обработки 1С

Создадим макет табличного документа с горизонтальными областями.

Макет табличного документа 1С

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

Этот код комментировать не будем, если у вас он вызывает затруднения, то ознакомьтесь с моими предыдущими статьями и видео-уроками.

Сейчас, когда мы выполним команду и выведем, например, 80 строк, то у нас все будет показано на одной странице, а при попытке распечатать (или выполнить предварительный просмотр) платформа самостоятельно разобьет табличный документ на страницы.

Согласитесь, что такой вариант формирования печатной формы не лицеприятно выглядит.

Для более приятного формирования печатной формы, сделаем так, чтобы каждый раз в конце страницы выводился подвал таблицы, а в начале новой страницы (кроме первой) выводилась шапка таблицы. Для этого доработаем код в методе СформироватьТабличныйДокумент.

Поясним этот код.

Используя метод табличного документа ПроверитьВывод можно проверить, войдет ли вывод области или нескольких областей на страницу табличного документа. Этот метод возвращает Истина, если область вмещается на страницу, и ложь – если нет. Параметром этого метода может быть как область, так и массив областей.

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

В каждой итерации цикла, в котором осуществляется вывод строк табличного документа, при помощи метода ПроверитьВывод выполняется проверка: вмещается ли область строки и область подвала таблицы в страницу табличного документа.

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

В результате, вывод табличного документа осуществится в более удобном виде.

Другие статьи про табличные документы в 1С:

Это изображение имеет пустой атрибут alt; его имя файла - 1C-в-желтом-цвете-3D-221x300.jpg

Это изображение имеет пустой атрибут alt; его имя файла - 1_в-желтом-цвете-3D-маленькая-221x300.jpg

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

  1. Очень доступный и понятный язык изложения
  2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  3. Поймете идеологию управляемого приложения 1С
  4. Узнаете, как разрабатывать управляемое приложение;
  5. Научитесь разрабатывать управляемые формы 1С;
  6. Сможете работать с основными и нужными элементами управляемых форм
  7. Программирование под управляемым приложением станет понятным

Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog


Если Вам понравился этот урок, был полезен или помог решить какую-нибудь проблему, то Вы можете поддержать мой проект, перечислив любую сумму
.

можно оплатить вручную:

Основы формирования табличного документа на основе макета

Обычно табличный документ формируется на основе макета как из строительных блоков. Макет представляет собой шаблон для формирования печатной формы. Построение макета производится в конфигураторе в специальном табличном редакторе. Разработчик может создавать области, изменять высоту строк и ширину колонок, задавать форматирование ячеек и всего табличного документа, включать в макет рисунки, диаграммы и сводные таблицы.

Области макета предназначены для однократного или многократного вывода, например, ниже представлен макет для печати расходной накладной:

Некоторые ячейки содержат только текст, который должен быть выведен. Другие ячейки содержат имена параметров (в угловых скобках). Значения этих параметров должны указываться в программном модуле. В отличие от версии 7.7, в ячейку нельзя вписать выражение. В версии 8.0 весь программный код сосредоточен в программных модулях и при выводе секций нет связи с текущим контекстом программного модуля. Назначение параметров табличного документа должно производиться явно из программного модуля через коллекцию "Параметры" объекта "ТабличныйДокумент".

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

Общая схема

Общая схема формирования печатной формы на основе макета:

  1. Создание макета в табличном редакторе (определение областей, имен параметров, форматирования).
  2. Создание нового табличного документа (этот пункт не требуется, если отчет выводится в элемент управления ПолеТабличногоДокумента).
  3. Получение макета в переменную (метод ПолучитьМакет).
  4. Получение областей макета (метод ПолучитьОбласть).
  5. Заполнение параметров области (свойство Параметры).
  6. Вывод области в табличный документ (методы Вывести и Присоединить).
  7. Установка свойств отображения табличного документа (сетка, заголовки, только просмотр и т.д.).
  8. Отображение табличного документа на экране (а может быть отправка на принтер или сохранение).

Пример вывода табличного документа

Ниже приведен пример формирования печатной формы расходной накладной из модуля документа:

Процедура Печать(ТабДок) Экспорт

//создание нового табличного документа
ТабДок = Новый ТабличныйДокумент ;

//получение макета для печати расходной накладной
Макет = Документы.РасходнаяНакладная. ПолучитьМакет ("Основной");

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

//укажем параметры области
Область. Параметры .НомерДокумента = Номер;
Область.Параметры.От = Дата;
Область.Параметры.Кому = Контрагент;

//выведем заполненную область "Заголовок" в табличный документ
ТабДок. Вывести (Область);

//выведем область "Шапка" в табличный документ
ТабДок.Вывести(Макет.ПолучитьОбласть("Шапка"));

//получение области "Строка"
//обратите внимание, что это можно сделать до цикла по строкам
Область = Макет.ПолучитьОбласть("Строка");

//вывод строк документа в печатную форму
Для Каждого СтрСостава Из Состав Цикл

//заполнение параметров области из строки табличной части
Область.Параметры. Заполнить (СтрСостава);

//вывод сформированной области в табличный документ
ТабДок.Вывести(Область);

КонецЦикла;

//вывод области "Подвал"
Область = Макет.ПолучитьОбласть("Подвал");
Область.Параметры.ИтогоКоличество = Состав.Итог("Количество");
Область.Параметры.ИтогоСумма = Состав.Итог("Сумма");
ТабДок.Вывести(Область);

//установим параметры отображения табличного документа
ТабДок.ТолькоПросмотр = Истина;
ТабДок.ОтображатьЗаголовки = Истина;
ТабДок.ОтображатьСетку = Ложь;

//покажем табличный документ на экране
ТабДок. Показать ();

Разместил: E_Migachev  Версии: | 7.x | 8.x | 8.2 УП |  Дата: 04.08.2010   Прочитано: 49152

Распечатать

Похожие FAQ

17 правил для составления оптимального ЗАПРОСа к данным базы 1С  42
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ 1C и Google Maps  20
была поставлена задача отображения на географической карте медицинских учреждений. После обзора предлагаемых решений был выбран сервис google. Но так же подобного рода подход будет работать и с картами сервиса yandex. Во время решения задачи было реш 1C медленно работает по сети с базой на SQL Server  20
Данное обстоятельство может быть обусловлено многими причинами. Одна из них - неоптимальная настройка MS SQL . Перечислим неоптимальности в настройке: 1) Неправильно указанный сетевой протокол, используемый для взаимодействия 1С с SQL Server. П Cодержимое указанного ниже веб-сайта в этом приложении блокируется. Aboutsecurity_1cv8c.exe  1
Проблема: После обновления на 1С:Бухгалтерию предприятия 3-й версии, при нажатии на закладку командного интерфейса 1С:предприятие, выскакивает ошибка: Aboutsecurity_1cv8c.exe или Aboutsecurity_1cv8.exe «Содержимое указанного ниже веб-узла в э Google maps, поиск оптимального маршрута  5
В данном посте хочу коснуться основных аспектов построения оптимального маршрута с использованием API Google maps. Исходные данные для построения маршрута: * Географические координаты объектов, которые хранятся в базе; * Координаты начальной и коне Посмотреть все результаты поиска похожих

Еще в этой же категории

Как программно изменить текст, цвет, фон ячейки или области табличного документа?  6
Ниже приведено несколько полезных шаблонов кода по работе с табличным документом: //Пример получения текста ячейки ПолеТабДок = ЭлементыФормы.тдПолеТабличногоДокумента; ПолеТабДок.Область("R1C2").Текст = спрНоменклатура.Наименование; ПолеТабДок Как табличный документ заполнить на сервере и открыть на клиенте?  3
Табличный документ создается на клиенте - заполняется на сервере возвращается клиенту и показывается на клиенте НаКлиенте ТабДок = Новый ТабличныйДокумент; СерверЗаполнитьТабличныйДокумент(ТабДок); ТабДок.Показать(" Заголовок окна" ); НаСер Загрузка данных из файла табличного документа в управляемом приложении  3
В управляемом приложении (если конечно вы не работаете в Толстом клиенте) можно столкнутся с такой проблемой, что многие функции работают только на сервере. Что делать, если у Вас есть файл-макет с данными, которые надо прочитать (обработать)? Надо Кнопки управления уровнями группировки (генерировать программно)  2
Кнопочки для управления уровнями группировки генерируются программно. Для этого в модуле формы, в самом конце процедуры формирования отчета, нужно вызвать процедуру СгенерироватьКнопкиУправленияГруппировкой(). В модуль формы нужно добавить две проц Как сделать чтобы при выделении числе в табличном документе, отчете выводилась их сумма?  1
Часто бывает необходимость сложить несколько чисел в печатной форме, например, как это сделано в Excel. Сегодня решить посмотреть Бухгалтерию КОРП. Нашел в ней очень интересную штуку: поле в котором показан результат сложения выделенных ячеек печа Посмотреть все в категории Табличный документ

Разместил: E_Migachev  Версии: | 7.x | 8.x | 8.2 УП |  Дата: 04.08.2010   Прочитано: 49153

Распечатать

Похожие FAQ

Еще в этой же категории

Как программно изменить текст, цвет, фон ячейки или области табличного документа?  6
Ниже приведено несколько полезных шаблонов кода по работе с табличным документом: //Пример получения текста ячейки ПолеТабДок = ЭлементыФормы.тдПолеТабличногоДокумента; ПолеТабДок.Область("R1C2").Текст = спрНоменклатура.Наименование; ПолеТабДок Загрузка данных из файла табличного документа в управляемом приложении  3
В управляемом приложении (если конечно вы не работаете в Толстом клиенте) можно столкнутся с такой проблемой, что многие функции работают только на сервере. Что делать, если у Вас есть файл-макет с данными, которые надо прочитать (обработать)? Надо Как при печати выводить шапку на каждой странице (ПовторятьПриПечатиСтроки)?  1
Необходимо при печати, если происходит переход на следующую страницу таблицы, выводить шапку таблицы вверху на новой странице. для печати шапки на каждой странице в языке программирования есть специальный метод - ПовторятьПриПечатиСтроки Прим Как преобразовать MXL файл в Таблицу Значений?  0
Встретилась задачка, нужно было загружать данные из mxl файлов выгруженных из другой базы 1С. Файл MXL – это созданный в программе «1С: Предприятие» (последних версий 7.7 или 8) табличный документ. вот код быстрой конвертации mxl в тз ТабДок Как сделать Расшифровку в табличном документе  0
Вопрос: Подскажите пожалуйста, каким образом можно сделать следующее. У меня есть выводимый в табличный документ результат запроса, к ячейке есть расшифровка. Я хочу чтобы при двойном клике на ячейку выполнялась процедура которая к примеру зап Посмотреть все в категории Табличный документ

Читайте также: