Что такое внешняя печатная форма 1с
Внешние печатные формы в управляемых формах 1С 8.3
Доработка печатной формы документа — самая распространенная доработка системы 1С 8.3. Однако при разработке нового функционала приходится снимать конфигурации с поддержки поставщика, что влечет за собой сложности при дальнейшем сопровождении 1С.
Внимание! Если Вам необходима разработка печатных форм любой сложности, но Вы не технический специалист — просто обратитесь к профессионалам. Подробности на странице услуги 1С.
Чтобы избежать таких проблем, фирмой 1С был придуман специальный функционал — подсистема «Дополнительных отчетов и обработок«, которая входит в БСП. Данный функционал позволяет без изменений в конфигурации добавить новую печатную форму или заменить старую.
Механизм заключается в разработке программистом внешней обработки, в которой описан программный код, формирующий нужную печатную форму. Данную обработку необходимо просто загрузить в пользовательском режиме (1С предприятие) в базу данных.
Этот функционал не новый, он достаточно давно используется в типовых конфигурациях. В настоящий момент актуальна версия библиотеки стандартных подсистем версии 2.х, в которой инструменты построены на механизме управляемых форм.
Рассмотрим методику разработки и настройки внешних печатных форм для 1С (8.2 или 8.3) именно в управляемом приложении, и ниже Вы можете скачать полученную внешнюю печатную форму.
Если у Вас нет времени читать, можете просмотреть наш видеоурок по созданию внешних печатных форм и подключению их на примере конфигурации 1С Бухгалтерии:
Пример создания внешней печатной формы в 1С 8.3
В нашем примере мы сделаем образец печатной формы «Счет» для документа «Реализация (акты, накладные)«.
Для начала создадим новую обработку и укажем в ней следующее:
1. Создадим экспортную функцию СведенияОВнешнейОбработке() в модуле объекта, укажем следующий код:
Формат возвращаемой структуры регламентирован, подробности можно узнать в разделах ИТС.
Они практически всегда одинаковы.
2. Вторым шагом необходимо создать экспортную процедуру Печать(), с помощью которой подсистема будет инициировать запуск печати из общих модулей подсистемы. Процедура содержит 4 параметра:
Процедура выглядит примерно следующим образом:
В ней формируется нужное количество табличных документов и готовится к печати. В нашем примере мы создадим функцию «СформироватьПечатнуюФорму()», которая будет возвращать табличный документ. Для примера мы предполагаем, что у нас всегда 1 печатная форма, поэтому передаём в функцию первый элемент массива (МассивОбъектов[0]).
Вот и всё, подготовительная часть обработки для внешней печатной формы в 1С 8.3 готова, осталось сделать непосредственно саму печатную форму в виде табличного документа, которую будет возвращать нужная функция.
Создание табличного документа
Подробно останавливаться на этом не будем, на эту тему есть большое количество материалов.
Представим лишь внешний вид макета нашего элементарного примера:
Подключение и тестирование ВПФ в 1С
В нашем примере мы запускаем конфигурации 1С Управление торговлей версии 11.1. Для добавления новой обработки необходимо в разделе «Администрирование» выбрать пункт «Печатные формы, отчеты и обработки». В нужном меню нужно нажать гиперссылку «Дополнительные отчеты и обработки» (если ссылка не активна, включите использование данного функционала — флаг расположен немного левее).
В открытом справочнике необходимо нажать на кнопку «добавить». Программа откроет диалоговое окно выбора файла, в котором необходимо указать файл разработанной нами ранее печатной формы. Если всё было сделано правильно, система автоматически заполнит все параметры, и останется только нажать кнопку «записать и закрыть»:
Как видно, параметры скопированы из функции «СведенияОВнешнейОбработке()».
Для того чтобы проверить работу обработки, необходимо в документе «Реализация товаров и услуг» открыть список печатных форм. В нём Вы уведите как «типовые» печатные формы, так и внешние, в том числе и наш добавленный:
При нажатии на команду система сформирует нужную нам форму:
Возможно, она не самая красивая, но как учебный пример, демонстрирующий работу в программе, вполне подойдет :).
Если у вас что-то не получается, рекомендую воспользоваться механизмом отладки внешних печатных форм.
Скачать получившийся пример внешней печатной формы можно по ссылке — ШаблонВнешнейПечатнойФормыБСП 2.0 (8.2).
Если Вам необходима разработка печатных форм любой сложности, но Вы не технический специалист — просто обратитесь к профессионалам. Мы предлагаем свои услуги на взаимовыгодных условиях. Подробности на странице 1С услуги.
Другие статьи по 1С:
Если вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):
К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.
Внешние печатные формы в 1С
Обновим 1С с гарантией сохранности базы
Поможем с 1С 24/7, без выходных
Установим сервисы 1С бесплатно
Оперативно решим любые задачи по 1С
В случае, если необходимо добавить какую-либо печатную форму в систему, то отличным вариантом это сделать является создание дополнительной печатной формы. При использовании дополнительной печатной формы нет никакой необходимости вносить изменения в конфигурацию.
Часто пользователям необходимо внести небольшие изменения в печатную форму, уже существующую. В этом случае также лучше использовать дополнительную форму, а не вносить поправки в стандартную, т.к. при последующих обновлениях системы могут возникнуть серьёзные проблемы.
Для примера возьмём печатную форму «Унифицированная форма №Т-61» или по-другому «Записка-расчет при прекращении (расторжении) трудового договора с работником (увольнении)». Будем использовать конфигурацию 1С Управление производственным предприятием.
Пользователи попросили добавить в документ «Увольнение из организаций» данную печатную форму. Рассмотрим процесс создания печатной формы, заполнение её макета и подключения печатной формы.
Создание и настройка печатной формы в 1С
Для создания новой обработки в 1С необходимо запустить 1С в режиме «Конфигуратор».
В Конфигураторе в меню «Файл» необходимо выбрать пункт «Новый», так же можно воспользоваться комбинацией клавиш Ctrl+N или кнопкой на панели быстрого доступа.
По сути внешняя печатная форма – это внешняя обработка, предназначенная для формирования печатной формы, поэтому в появившемся окне выбираем вариант «Внешняя обработка» и нажимаем «ОК».
В открывшемся окне новой обработки необходимо задать ей имя. Назовём нашу обработку «УвольнениеТ61», автоматически формируется синоним, который будет виден пользователям.
Добавим реквизит «СсылкаНаОбъект» и укажем тип «ДокументСсылка.УвольнениеИзОрганизаций» т.к. мы собираемся подключать обработку именно к данному документу.
Теперь необходимо создать форму для нашей обработки. Выбираем в списке «Формы» и нажимаем «Добавить».
В появившемся окне формы выбираем параметры для формы нашей обработки. Тип формы установим «Форма обработки», проконтролируем флаг «Назначить форму основной». Можно задать форме имя, но мы оставим стандартное. В данном примере оно не играет никакой роли. Нажимаем «Далее».
На данной вкладке установим флаг у реквизита «СсылкаНаОбъект» для того, чтобы он появился на форме, затем нажимаем «Готово».
Нажимаем правой кнопкой мыши на кнопку «Выполнить» и выбираем пункт «КнопкаВыполнитьНажатие».
В процедуру выполнить нажатие добавим следующий код:
Так же нам понадобятся две переменные «ВалютаРегламентированногоУчета» и «ВалютаУправленческогоУчёта».
В модуле формы больше никакого кода писать не нужно. Следующим шагом создадим макет печатной формы. Выберем «Макет» и нажмём кнопку «Добавить»
В появившемся окне необходимо установить имя макета. Назовём макет «Т_61» и установим тип макета «Табличный документ».
Перед нами откроется окно пустого табличного документа, которое необходимо заполнить в соответствии с внешним видом «Унифицированной формы №Т-61». Опустим шаги по заполнению макета, покажем только конечный результат.
Заполнение макета печатной формы
Код для заполнения макета необходимо расположить в «Модуле объекта». Для этого нажмём на кнопку «Действия» нашей обработки и выберем пункт «Открыть модуль объекта».
Процесс написания кода аналогичен процессу заполнения обычного табличного документа, поэтому приведём готовый листинг кода, разобраться в котором начинающим программистам не составит никакого труда.
Запрос = Новый Запрос;
// Установим параметры запроса
Если Режим = «ПоРеквизитамДокумента» Тогда
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
| УвольнениеИзОрганизаций.Номер КАК НомерДок,
| УвольнениеИзОрганизаций.Дата КАК ДатаДок,
| УвольнениеИзОрганизаций.Организация.НаименованиеПолное КАК НазваниеОрганизации,
| УвольнениеИзОрганизаций.Организация.КодПоОКПО КАК КодПоОКПО,
| ОтветственныеЛицаОрганизаций.Должность КАК ДолжностьРуководителя,
| ОтветственныеЛицаОрганизаций.НаименованиеОтветственногоЛица КАК ФИОРуководителя,
| Документ.УвольнениеИзОрганизаций КАК УвольнениеИзОрганизаций
| ЛЕВОЕ СОЕДИНЕНИЕ ВТДанныеОбОтветственномЛице КАК ОтветственныеЛицаОрганизаций
| ПО УвольнениеИзОрганизаций.Организация = ОтветственныеЛицаОрганизаций.СтруктурнаяЕдиница
ИначеЕсли Режим = «ПоТабличнойЧастиДокумента» Тогда
| ЕСТЬNULL(ФИОФизЛицСрезПоследних.Фамилия + «» «» + ФИОФизЛицСрезПоследних.Имя + «» «» + ФИОФизЛицСрезПоследних.Отчество, УвольнениеИзОрганизацииРаботники.Сотрудник.Наименование) КАК Работник,
| УвольнениеИзОрганизацииРаботники.Сотрудник.ДатаДоговора КАК ТрудовойДоговорДата,
| УвольнениеИзОрганизацииРаботники.Сотрудник.НомерДоговора КАК ТрудовойДоговорНомер,
| УвольнениеИзОрганизацииРаботники.НомерСтроки КАК НомерСтроки,
| УвольнениеИзОрганизацииРаботники.СтатьяТКРФ.Наименование КАК СтатьяТКРФ,
| УвольнениеИзОрганизацииРаботники.ОснованиеУвольнения КАК ОснованиеУвольнения,
| КОГДА Работники.ПериодЗавершения ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
| КОНЕЦ КАК Подразделение,
| КОГДА Работники.ПериодЗавершения ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
| КОНЕЦ КАК ОЦРВ_Подразделение,
| КОГДА Работники.ПериодЗавершения ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
| КОНЕЦ КАК Должность,
| УвольнениеИзОрганизацииРаботники.Сотрудник.Код КАК ТабельныйНомер,
| УвольнениеИзОрганизацииРаботники.ДнейЧасовКомпенсацииУдержанияОтпуска КАК Компенс,
| Документ.УвольнениеИзОрганизаций.РаботникиОрганизации КАК УвольнениеИзОрганизацииРаботники
| ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
| СписокДат.Сотрудник КАК Сотрудник,
| РаботникиОрганизации.ПодразделениеОрганизации.Наименование КАК ПодразделениеОрганизации,
| РаботникиОрганизации.Должность.Наименование КАК Должность,
| РаботникиОрганизации.ПодразделениеОрганизацииЗавершения.Наименование КАК ПодразделениеОрганизацииЗавершения,
| РаботникиОрганизации.ОЦРВ_ПодразделениеОрганизации.Наименование КАК ОЦРВ_ПодразделениеОрганизации,
| РаботникиОрганизации.ОЦРВ_ПодразделениеОрганизацииЗавершения.Наименование КАК ОЦРВ_ПодразделениеОрганизацииЗавершения,
| РаботникиОрганизации.ДолжностьЗавершения.Наименование КАК ДолжностьЗавершения,
| РаботникиОрганизации.ПериодЗавершения КАК ПериодЗавершения
| РаботникиВнутри.Сотрудник КАК Сотрудник,
| МАКСИМУМ(РаботникиВнутри.Период) КАК ДатаПоследнегоИзменения
| РегистрСведений.РаботникиОрганизаций КАК РаботникиВнутри
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.УвольнениеИзОрганизаций.РаботникиОрганизации КАК Док
| ПО РаботникиВнутри.Период 0 Тогда
ПредставлениеДатыДоговора = Формат(ВыборкаРаботники.ТрудовойДоговорДата, «ДЛФ=DD»);
ПредставлениеДатыУвольнения = Формат(ВыборкаРаботники.ДатаУвольнения, «ДЛФ=DD»);
Если ВыборкаРаботники.ПризнакКомпенсацииОтпуска = Истина Тогда
Функция Печать(КоличествоЭкземпляров = 1, НаПринтер = Ложь) Экспорт
// ОПЕРАТОРЫ ОСНОВНОЙ ПРОГРАММЫ
мДлинаСуток = 86400; // в секундах
мСведенияОВидахРасчета = Новый Соответствие;
Сохраняем нашу готовую печатную форму на диск и запускаем 1С в режиме «Предприятие».
Подключение внешней печатной формы к документу
Подключение внешней печатной формы производится аналогично подключению внешней обработки.
В меню «Операции» выберем пункт «Справочник».
В открывшемся окне выберем справочник «Внешние обработки».
В данном справочнике хранятся все внешние обработки, внешние отчеты и внешние печатные формы, добавленные в систему. Нажмём кнопку добавить на панели справочника.
В появившемся окне нового элемента справочника необходимо указать вид элемента. Выбираем значение «Печатная форма».
Выбираем файл нашей печатной формы
Имя печатной формы в 1С заполнилось автоматически. Теперь необходимо указать «Принадлежность печатной формы». Нажимаем кнопку «Добавить».
Выбираем документ «Увольнение из организаций» и нажимаем «ОК».
Сохраняем нашу внешнюю печатную форму и открываем документ «Увольнение из организаций». В кнопке «Печать» добавился новый пункт с нашей печатной формой «Форма Т-61 (внешняя печатная форма)».
Как оптимизировать работу с программой?
Кроме установки и настройки программы, существует также необходимость обновления 1С, подключение программы к периферическим устройствам и много других задач, отнимающих время ваших сотрудников и замедляющих рабочие процессы.
Даже если у вас есть программисты 1С, мы предлагаем оставить за ними важные стратегические задачи, а за сопровождением 1С к профессионалам, в компанию «ПРОГРАММЫ 93».
Почему нас выбирают?
ООО «ПРОГРАММЫ 93» — это компания с большим штатом сотрудников, в который входят не только специалисты 1С, но и бухгалтера, кадровики, юристы и другие эксперты. Вы больше не зависите от одного сотрудника, вам не нужно тратить деньги на приглашенных специалистов для решения каждой задачи и переживать насчет того, что у вас не хватает компетенции для проверки работы сотрудника. Для вас работает целая команда, любая задача дополнительно проверяется, а заболевший специалист тут же заменяется другим незаметно для вас.
Мы рады предложить вам:
Позвоните по номеру телефона, указанному на сайте, или заполните форму обратной связи, чтобы мы могли ответить на все возникающие вопросы и рассказать о том, как начать сотрудничество!
Что такое внешние печатные формы в 1С и для чего они нужны
Работая в программе 1С, Вы, скорее всего, обратили внимание на то, что почти у каждого документа есть печатная форма и как правило, не одна. Меню вызова списка доступных печатных форм обычно расположено на верхней командной панели документа или справочника.
Пример использования.
Очень часто возникает ситуация, когда печатных форм созданных разработчиками конфигурации оказывается недостаточно. Представим себе такую ситуацию: у организации при реализации продукции, существует дополнительный регламент, требующий при отгрузке вместе с формой Торг-12 и УПД печатать еще Акт сборки. При этом все необходимые данные для заполнения этого акта, в документе присутствуют. Таким образом, для печати этого бланка, достаточно сделать внешнюю печатную форму. Причем менять конфигурацию не потребуется. Отметим, что создание новой или модификация текущей печатной формы документов и справочников является весьма распространенной задачей при использовании типовых конфигураций.
Формальное определение.
Внешняя печатная форма — это внешняя обработка 1С, соответствующая определенным требованиям, которую можно подключить в пользовательском режиме к какой-либо конфигурации и тем самым добавить новую функцию печати в документ или справочник.
Иначе говоря, такая печатная форма – это внешний модуль, который разрабатывается на языке программирования 1С в виде отдельного файла. Он не хранится в конфигурации и существует независимо от нее. При этом изменения в конфигурацию не вносятся и наличие внешних форм не влияет на последующие обновления.
Хранится такая форма непосредственно внутри базы в специальном справочнике и может быть заменена новой версией или отключена пользователем в любой момент непосредственно в программе.
Разработка внешних печатных форм
Внешние печатные формы создаются разработчиком в конфигураторе с соблюдением определенных правил и инструкций. Данные инструкции обязательны для выполнения на этапе подключения внешней формы, также они требуются для корректной работы после подключения формы к базе. Внутри внешней формы описан перечень объектов, для которых она предназначена, макет и алгоритм заполнения данными.
Можно ли обойтись без ВПФ при мелких правках макета
В ситуациях, когда необходимо исправить существующий макет, например, добавить дополнительные условия с шапку счета на оплату — можно обойтись без внешних форм. В 1С предоставлена возможность исправления существующего макета. Однако, в пользовательском режиме доступны лишь небольшие изменения имеющихся макетов печатных форм.
Расширения конфигурации — альтернатива внешним формам.
В качестве альтернативы также используются расширения конфигурации. Механизм расширений предоставляет на порядок больше возможностей для тонкой настройки как самой печати так и печатных форм. Расширения лишены многих ограничений вшенших файлов и разрабатывать их проще, чем внешние формы. Недостатком расширений является то, что их нельзя использовать в базовых версиях конфигураций.
Заключение.
Подводя итоги, отметим основные достоинства и недостатки внешних печатных форм.
Подписывайтесь на наши группы в социальных сетях, чтобы не пропустить новые публикации.
Поделитесь ссылкой, если Вам понравилась эта статья.
Внешние печатные формы в 1С 8.2 и 8.3
Изменение встроенных в типовые конфигурации печатных форм — это, вероятно, одна из наиболее распространенных доработок типовых конфигураций. Чтобы каждый раз не изменять саму конфигурацию, компания «1С» создала механизм внешних печатных форм.
Внешняя печатная форма — это обычная внешняя обработка, соответствующая определенным требованиям. Такую обработку можно подключить к какой-либо типовой конфигурации и тем самым добавить новую печатную форму и/или заменить существующую.
Кроме этого, нужно отметить, что создание внешних печатных форм различается для обычного приложения (Бухгалтерия 2.0.*, ЗиУП 2.5.*, УТ 10.3.*) и управляемого приложения (Бухгалтерия 3.0.*, ЗиУП 3.*, УТ 11.*). В статье будут рассмотрены оба варианта.
Также нужно сказать, что вопросы отладки внешних печатных форм и для управляемого и для обычного приложения рассматриваются в отдельной статье.
Внешняя печатная форма в управляемом приложении
Начнем с того, что в настоящее время встречается чаще — с управляемого приложения. В тексте ниже будет приведен пример создания и подключения внешней печатной формы для документа «Приходный кассовый ордер» (Бухгалтерия предприятия, редакция 3.0).
Создание
Как уже было сказано выше, внешняя печатная форма — это просто-напросто внешняя обработка соответствующая некоторым требованиям. Первым требованием является реализация в модуле печатной формы экспортной функции СведенияОВнешнейОбработке().
Итак, создаем новую внешнюю обработку и в модуле объекта этой обработки размещаем примерно такой код:
Код в основном прокомментирован, но некоторые моменты нужно обговорить отдельно. Функция СведенияОВнешнейОбработке() является общей для всех внешних объектов. Вид внешнего объекта указывается в параметре «Вид» (у нас указана «ПечатнаяФорма»).
Большинство параметров не являются обязательными для заполнения. В нашем случае обязательно указать параметры «Вид», «Версия» и «Команды» — это обязательные параметры для всех видов внешних объектов («Команды» необязательны для отчетов). Кроме этого будет полезно указать параметры «Назначение». Но вообще, желательно указывать как можно больше информации — это поможет не запутаться как Вашим клиентам так и Вам самим.
Параметр «БезопасныйРежим» со значением «Истина» накладывает следующие ограничения:
Параметру «БезопасныйРежим» рекомендуется присваивать значение «Истина». Если необходима какая-либо функциональность, запрещаемая безопасным режимом, то можно получить дополнительное разрешения на эту функциональность (как в примере выше).
Кроме функции СведенияОВнешнейОбработке() необходимо реализовать еще одну экспортную функцию — Печать(). Эта функция должна иметь следующие параметры:
Пример реализации функции Печать():