1С печатная форма область печати

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

Область печати

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

Во встроенном языке область печати представляется свойством табличного документа ОбластьПечати . Данное свойство имеет тип ОбластьЯчеекТабличногоДокумента . В качестве области для данного свойства может выступать только область ячеек самого табличного документа. Т.е. для данного свойства нельзя использовать область ячеек другого табличного документа.

Пример установки области печати:

В данном примере табличному документу устанавливаются в качестве области печати строки с 5-й по 10-ю включительно. Т.е. при печати данного документа будет распечатаны только эти строки.

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

Повторяющиеся области печати

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

Повторяющиеся на каждой странице области бывают двух видов: повторяющиеся строки и повторяющиеся колонки. Данные области во встроенном языке представляются свойствами ПовторятьПриПечатиСтроки и ПовторятьПриПечатиКолонки . Они имеют тип ОбластьЯчеекТабличногоДокумента . В качестве области для данных свойств могут выступать только области ячеек самого табличного документа. Т.е. для данного свойства нельзя использовать область ячеек другого табличного документа. Причем, для свойства ПовторятьПриПечатиСтроки могут быть использованы только области — строки, а для свойства ПовторятьПриПечатиКолонки — только области — колонки. Использование прямоугольных областей табличного документа для данных свойств недопустимо.

Пример установки повторяющихся строк:

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

Пример установки повторяющихся колонок:

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

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

Программирование системы 16.04.2018 07:47 4133

В 1С Предприятии для представления табличной информации существует специальный вид файлов "Табличный документ". Файлы могут быть созданы в 1С Конфигураторе или в 1С Предприятии. Для создания новых файлов необходимо перейти в главном меню Файл->Новый. В языке программирования 1С существует одноименный объект ТабличныйДокумент, который позволяет программно создавать, сохранять и выводить табличные документы.

Область печати

В табличном документе может быть определена область печати. В этом свойстве можно указать ту область, которая будет напечатана на принтере. Такое может потребоваться если нужно распечатать часть документа. Это можно сделать двумя способами. Задать можно только одну область.

1. Через пользовательские настройки

Область печати может быть задана непосредственно через главное меню Таблица->Настройка печати->Задать область печати. Так же через главное меню можно удалить область печати Таблица->Настройка печати->Удалить область печати. Добавляемая и удаляемая области должны быть выделены.

Читайте также:  Pci ven 8086 dev 08ae subsys 10058086

На печать будет выведена 3 строка с 1 по 7 колонку. Остальные области будут проигнорированы.

2. Средствами встроенного языка

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

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

Повторяющаяся область печати

Табличный документ широко применяется при создании печатных форм. Довольно часто, при создании печатных форм может потребоваться повторять какую либо информацию вверху на каждой последующей странице. Например, это может быть шапка таблицы. Задать можно только одну область.

1. Через пользовательские настройки

Повторяющуюся область можно задать через главное меню Таблица->Настройки печати->Повторять на каждом листе. Для удаления области, в главном меню нужно выбрать Таблица->Настройки печати->Удалить повторение. Добавляемая и удаляемая области должны быть выделены.

На всех последующих страницах, вверху, будет повторяться вывод 3 строки. Остальные области будут выводиться как обычно.

2. Средствами встроенного языка

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

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

1. Evgenii 16.04.2018 10:31 У этого метода, вывода повторяющихся областей, очень узкое применение. Например, когда на последней странице не нужно выводить шапку таблицы. Поэтому сам данным методом не пользуюсь. Шапку таблицы вывожу в цикле, для деления на страницы использую ПроверитьВывод().

Платформа 8.3.10.2466
ПовторятьПриПечатиКолонки — не работает, возможно ошибка в платформе.

Для того чтобы добавить сообщение, необходимо Войти или Зарегистрироваться

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

Создание макета внешней печатной формы

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

Создание печатной формы документа начинается с открытия режима конфигуратора базы. Желательно открывать ту базу, в которую требуется внести изменения, чтобы платформа позволила нам открывать конструктор запроса. Создайте новую внешнюю обработку с помощью основного меню «Файл» — «Новый…» и заполните имя и синоним. В среде 1С принято указывать «говорящие» имена, чтобы другие программисты могли комфортно работать с чужим кодом.

Читайте также:  Как поставить фигурные скобки в эксель

Затем необходимо добавить макет – структуру распечатываемой формы с перечнем переменных, куда и будут вставляться данные из конкретного документа 1С. В открывшемся конструкторе не стоит ничего менять и после подтверждения готовности откроется окно, похожее на Excel. В нем необходимо будет нарисовать форму и разделить ее на области с отдельными именами. Разделять стоит в зависимости от момента вывода на экран и того, сколько раз эта область должна появиться на экране.

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

  1. Верхняя часть («Шапка»). Сюда войдет идентификация документа в системе 1С – номер и дата, основные данные об операции – организация, контрагент, менеджер, заголовок таблицы номенклатуры. Выводиться будет 1 раз;
  2. Информация по номенклатуре («ДанныеСтрок»). Данные о тех товарах, которые продаются – наименование, количество, цена и сумма. Выводиться по 1 разу на каждую строчку табличной части «Товары»;
  3. Итоговые данные («ИтогиСтрок»). В печатной форме фигурирует 1 раз и отражает итоговые суммы количества и суммы;
  4. Подписи («Подвал»). Область для согласования бумажной версии документа. Необходимо вывести на печать единожды.

В окне, похожем на Excel, выделяем 10 строк и выбираем в основном меню «Таблица» — «Имена» — «Назначить имя…». В открывшемся окне вводим название области и подтверждаем. Далее в этой области размещаем необходимые для вывода поля, используя возможности объединения и выбора шрифта и размера надписей.

Теперь надо настроить переменные, куда будут вставлены данные. Для этого на ячейке, где уже есть надпись, нажимаем правой кнопкой мыши и открываем свойства. Найдите пункт «Заполнение» и выберите там значение «Параметр», после чего убедитесь, что надпись в ячейке теперь заключена в угловые скобки. Если вы выберите «Шаблон», то это даст вам возможность указать переменные внутри строки в ячейке с помощью квадратных скобок.

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

Вывод данных в печатную форму

В первую очередь необходимо добавить функцию «СведенияОВнешнейОбработке()». Именно она подсказывает платформе, что в файле печатная форма и ее нужно крепить к конкретному документу. Текст функции практически не меняется, кроме названия печатных форм и документа, к которому ее крепят. Если забыть поменять в этой функции идентификатор, то 1С не сможет сформировать печатную форму.

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

Теперь необходимо получить данные, которые будут выводиться в заранее установленные нами переменные. С помощью выполнения запроса мы получаем 2 выборки – для верхней части нашей печатной формы и для вывода строк. Создаем новый табличный документ для показа пользователю и устанавливаем стандартные параметры. Поочередно получаем каждую область, заполняем в ней переменные и выводим в табличный документ, который возвращаем пользователю:

Читайте также:  Регистрация в фейсбук с компьютера бесплатно

После завершения сохраняем внешнюю обработку и запускаем 1С в режиме предприятия. Чтобы подключить созданную печатную форму, зайдите в раздел «Администрирование» — «Печатные формы, отчеты и обработки» — «Дополнительные отчеты и обработки». Нажмите кнопку «Создать» и в диалоге выберите сохраненный файл формата *.EPF. Если все было сделано правильно, останется лишь сохранить, и 1С самостоятельно разместит новую печатную форму.

Зайдите в любой документ, нажмите «Печать» — «WAПечать заказа» и на экране появится созданная нами печатная форма. Данный вариант создания обработки может подойти и для нетиповой конфигурации, если настроить в ней БСП. Внешние печатные формы для 1С можно подключать и к новым нетиповым документам, добавленным разработчиками компании, если правильно настроить их.

Но в нетиповых конфигурациях, которые не находятся на поддержке, намного удобнее и проще использовать встроенный в 1С конструктор печатных форм. Большой плюс этого метода в том, что мы лишь указываем поля, которые нам нужны, а платформа самостоятельно строит макет. Алгоритм вывода данных 1С также создает автоматически, после чего показывает разработчику. Оптимальный вариант в подобных ситуациях – запустить конструктор печати, а затем сделать изменение печатной формы, если необходимо.

Конструктор печати 1С

Для настройки новой печатной формы откройте конфигуратор базы и найдите нужный документ в дереве. Открыв его, нажмите кнопку «Действия» — «Конструкторы» — «Конструктор печати…». Платформа предложит выбрать для изменения существующую команду или создать новую, указав имя, после чего нажмите «Далее». При выборе наименования не используйте пробелы, так как будет сформирована одноименная процедура, а в их наименовании не допускаются пробелы.

Конструктор печати в версии 8.3 предполагает, что печатная форма состоит из нескольких частей:

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

По нажатию «ОК» 1С сформирует команду, макет и процедуру в модуле менеджера и откроет их для разработчика. Затем можно отредактировать их, если необходим более сложный алгоритм – добавить расчет и вывод итогов или данных, не содержащихся в документе. Алгоритм изменения аналогичен рассмотренному выше:

  1. Создать область в макете, если использовать уже созданные области недопустимо;
  2. Добавить надписи и переменные. Перечень добавляемых объектов зависит от потребностей;
  3. В процедуре получить область по имени;
  4. Рассчитать или прочитать из документа данные;
  5. Заполнить переменные информацией.

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

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