Волшебство программирования на 1С:Предприятие 7.7 и 8.0 - Практика программирования
Волшебство
программирования на 1С:Предприятие 7.7 и 8.0
Здравствуйте, дорогие читатели!
В сегодняшнем выпуске мы начнем разговор об очень практичной вещи, абсолютно необходимой многим специалистам 1С. Речь пойдет о внешних печатных формах. Начнем с введения в проблему.
Слово автору выпуска - Александру Теплову.
Проблема доработки печатных форм документов.
Едва ли не первая проблема, с которой сталкивается организация, когда начинает использовать 1С:Предприятие для автоматизации своей деятельности, это необходимость изменения типовых печатных форм документов или использование своих уникальных шаблонов. Например
Добавить в счет на предоплату логотип компании;
Изменить печатную форму счета-фактуры или Торг-12 под требования клиента;
Использовать свои (внутренние) формы документов в документообороте.
Существует несколько вариантов решения этой проблемы, которые используются во многих организациях. Вот они.
Изменение вручную типовой печатной формы документа каждый раз перед выводом ее на печать. Самый распространенный вариант. Не нужно быть семи пядей во лбу, чтобы ясно видеть насколько это трудоемкий процесс. Хорошо, если нужно внести изменения, где то в одном месте, а что если таких изменений много? Простой вывод документа на печать превращается в пытку. Вдобавок к этому количество ошибок, допущенных при изменении, будет очень велико, как бы человек не был внимателен. А это значит,
что документы придется переделывать, расходуя бумагу, картридж и ресурс принтера, а главное, тратить на это дополнительное время.
Выходом из такой ситуации может быть изменение печатной формы документа в конфигураторе. Тогда мы получаем именно ту печатную форму, которая нам нужна, и мы избавляемся от всего негатива, который дарит нам первый рассмотренный вариант. Однако этот вариант тоже не подарок! Дело в том, что в настоящее время для обновления типовой конфигурации требуется совсем небольшое вмешательство со стороны. Достаточно лишь запустить мастер обновления и выбрать, как вы хотите обновить вашу базу,
через интернет, или с помощью файла обновления на вашем компьютере. Дальше программа все сделает сама.
Но как только вы захотите внести изменения в конфигурацию, вы в одночасье лишитесь такого варианта обновления конфигурации. Дело в том, что при обновлении необходимо учитывать все изменения, которые вносились в конфигурацию, иначе они просто на просто могут быть затерты при обновлении. А для того, чтобы обновить измененную конфигурацию вручную, нужно довольно много времени, и чем больше изменений, тем больше времени. Думаю понятно, к чему я веду.
Для организации документооборота с использованием уникальных шаблонов документов, которых нет в типовых конфигурациях, обычно используют очень простой вариант. Заполняют эти шаблоны в редакторах Word или Excel. Это конечно хорошо, однако также трудоемко, а может быть и в большей степени, нежели первый вариант. При этом, как вы понимаете, среди сохраненных документов достаточно сложно найти нужный, если вы не помните его номер или дату формирования. Ведь файлы в папке невозможно
отобрать, например, по контрагенту, или ограничить поиск фиксированным периодом времени. А вот если прикрепить эту печатную форму к соответствующему документу в типовой конфигурации, все эти преимущества можно было использовать.
Но есть еще один способ, который позволяет использовать все плюсы встроенных печатных форм и напрочь отметает все минусы перечисленных выше способов.
Что же это за способ, который позволяет пользоваться преимуществами формирования уникальных печатных форм непосредственно из документов типовой конфигурации и не требует изменений самой конфигурации?
Это внешняя печатная форма.
Что собой представляет внешняя печатная форма. Это объект (обработка), который содержит реквизиты, модули, формы также как и любой другой объект конфигурации, но сохранен в виде отдельного файла.
Во внешнюю обработку закладывается функционал по формированию печатной формы на основании данных, которые передаются в обработку. С помощью механизма использования внешних печатных форм, который в настоящее время заложен во все типовые (и не только) конфигурации, внешняя обработка может взаимодействовать с основной конфигурацией. Она может получать исходные данные и возвращать результат в определенном виде. В нашем случае это экземпляр табличного документа, который выводится на
экран или распечатывается на принтере.
Как это работает с точки зрения пользователей? Внешняя форма добавляется в список внешних печатных форм и с ней ассоциируется документ, из которого она должна распечатываться. Также для нее в списке можно задать произвольное наименование и даже передать в нее кроме основных параметров, некоторые дополнительные значения. После добавления, внешняя печатная форма появляется в списке печатных форм документа, к которому она была прикреплена. Эту форму можно выбрать из списка печатных
форм документа, который появляется при нажатии кнопки Печать в документе.
Таким образом, могут быть созданы абсолютно любые печатные формы, и даже комплекты печатных форм, которые можно распечатывать через меню Печать конкретного документа. А главное для этого не нужно вносить никаких изменений в типовую конфигурацию, т.к. внешняя обработка хранится в отдельном файле и физически с конфигурацией никак не связана.
Кроме того, одна и та же внешняя печатная форма может быть добавлена в любое количество информационных баз за очень короткий срок.
С подключением печатной формы может справиться обычный пользователь. Особенно это актуально, когда специалист, который разрабатывал эту форму, не может в данный момент получить доступ к базе. Ему достаточно отправить измененный файл по электронной почте, и другой человек, ни как не связанный с разработкой, может легко добавить или обновить эту печатную форму.
Таким образом, для безопасного внесения изменений во встроенную типовую печатную форму нужно создать ее копию в виде внешней печатной формы, и уже там вносить необходимые изменения. По тем же самым правилам создаются печатные формы, основанные на уникальных шаблонах.
Создать внешнюю обработку довольно просто. Для этого нужно знать правила взаимодействия внешней печатной формы и типовой конфигурации, и исходя из этого, формировать правильный набор реквизитов и процедур.
Скажу больше, все необходимое для реализации внешней печатной формы из встроенной уже есть в типовой конфигурации. Нужно сделать всего несколько шагов:
создать внешнюю обработку;
провести начальную подготовку;
скопировать нужные части кода из обработки печати встроенного документа во внешнюю печатную форму;
провести небольшую корректировку.
Для создания копии типового документа в виде внешней печатной формы обычно требуется порядка 15 минут.
Продолжение в следующем выпуске рубрики Практика программирования.
PS
Если у Вас есть опыт работы с внешними печатными формами, удачный или не очень, напишите нам свою историю.
Ждем ваших писем!
С уважением автор выпуска Александр Теплов
и редактор рассылки Алексей Куприйчук.