Hare.ru @ Коллективный разум / Hare.ru @ Дикое место

Архив hare.ru 
Мысли, конвертированные в текст

Собственные руки TM


Все статьи раздела

Как печатать правильные накладные?

(июнь 2002)

Задача

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

Термины

Для начала немного терминологии. Для тех, кто работает с V7 давно, это будут очевидные вещи, а вот новичкам это поможет яснее понять, о чем идет речь. Лично для меня поначалу был полным откровением, скажем, термин "подвал". Да и вообще, в начале любой технической статьи положено определяться с терминологией.

Итак:

  • ШАПКА – часть печатной формы документа, расположенная перед строками табличной части, в которых выводится информация о составе накладной, ценах, количестве и пр. Шапка включает в себя шапку документа, где выводятся общие реквизиты документа (клиент, склад, дата и номер документа, основание и пр.), и заголовок табличной части, в котором выводятся названия столбцов табличной части.
  • СТРОКА – в строках табличной части выводится информация табличной части документа в соответствии с шапкой табличной части.
  • ПОДВАЛ – часть документа, расположенная после последней строки табличной части. Она включает в себя итоговую информацию по документу (итоговые суммы, общее количество и т.д.), места для подписей и печатей, различные примечания и пр.
В правильно оформленном документе подвал должен быть расположен на одной странице с последней строкой и сам, как правило, не должен разбиваться на две страницы. Конечно, бывают и многостраничные подвалы, но я такие пока не встречал.

Решение

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

Программный вариант

Пример использования первого варианта – стандартная методика формирования печатной формы ТОРГ-12 в типовых конфигурациях фирмы 1С. Основная идея – использование строк и страницы фиксированной высоты. При этом на страницу помещается фиксированное количество строк.

Методика расчета такой накладной очень проста.

  1. За основную единицу высоты принимается 1 строка табличной части.
  2. Определяются основные параметры: высота шапки (10 строк), высота подвала (8 строк), высота страницы (22 строки)
  3. Дальше для каждой страницы определяется количество строк, которые на ней поместятся. Для первой страницы учитывается высота шапки.
  4. Если на очередную страницу помещаются все оставшиеся строки, то проверяется, а поместится ли на эту страницу подвал. Если нет, то последняя строка переносится на последнюю страницу вместе с подвалом.
Как видите, при таком методе вывод печатной формы производится в основном за счет программных расчетов, поэтому и назовем его программным.

Недостатки этого метода:

  • накладная выводится только на фиксированный формат листа: ТОГР-12 рассчитал только на формат А4 в альбомной ориентации. Если мы захотим вывести накладную ТОРГ-12 в портретном виде и выствим опцию сжатия таблицы по ширине листа, то накладная будет выводиться только в верхней половине станицы; если же мы захотим проделать эту операцию при выводе печатной формы счета-фактуры, то страница будет заполнена целиком.
  • названия товаров не помещаются в предназначенные им ячейки и обрезаются.
Но данный метод незаменим для соблюдения еще одного требования формы накладной ТОРГ-12 – необходимости расчета сумм по каждой странице. Для этого необходимо четко знать, сколько строк поместится на странице. Средствами V7 невозможно отследить момент перехода на другую страницу, поэтому невозможно и определить момент, когда будет необходимо вставить итоговую строку по странице.

Технологический вариант

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

Для каждой строки можно установить или снять два свойства:

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

Возьмем, к примеру, печатную форму счета-фактуры. Откроем ее в конфигураторе. Мы видим, что она имеет три секции: "шапка", "строка" и "подвал".

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

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

Итак, мы скопировали секцию "строка" на новое место, скопированную строку объединим в новую секцию "последняя строка" и установим этой строке свойство "Вместе со следующим". Если в секции несколько строк, то объединяем в новую секцию и устанавливаем свойство у всех строк. Это позволит прикрепить последнюю строку к первой строке подвала.

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

// Вместо:
   Таб.ВывестиСекцию("Строка ");
// Необходимо:
Если НомСтроки < ВсегоСтрок Тогда
   Таб.ВывестиСекцию("Строка ");
Иначе
   Таб.ВывестиСекцию("ПоследняяСтрока ");
КонецЕсли;

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

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

Партнеры:


Также может быть интересно:

Канал Россия 1 на http://spbtvonline.ru/
   
 Сайт поддерживается за счет партнеров:
:::... Сайт содержит архив двух версий hare.ru Карта сайта