1с объектыпечати что это

Внешние печатные формы в управляемых формах 1С 8.3

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

Внимание! Если Вам необходима разработка печатных форм любой сложности, но Вы не технический специалист — просто обратитесь к профессионалам. Подробности на странице услуги 1С.

1с объектыпечати что это

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

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

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

Рассмотрим методику разработки и настройки внешних печатных форм для 1С (8.2 или 8.3) именно в управляемом приложении, и ниже Вы можете скачать полученную внешнюю печатную форму.

Если у Вас нет времени читать, можете просмотреть наш видеоурок по созданию внешних печатных форм и подключению их на примере конфигурации 1С Бухгалтерии:

Пример создания внешней печатной формы в 1С 8.3

В нашем примере мы сделаем образец печатной формы «Счет» для документа «Реализация (акты, накладные)«.

Для начала создадим новую обработку и укажем в ней следующее:

1. Создадим экспортную функцию СведенияОВнешнейОбработке() в модуле объекта, укажем следующий код:

Формат возвращаемой структуры регламентирован, подробности можно узнать в разделах ИТС.

Они практически всегда одинаковы.

2. Вторым шагом необходимо создать экспортную процедуру Печать(), с помощью которой подсистема будет инициировать запуск печати из общих модулей подсистемы. Процедура содержит 4 параметра:

Процедура выглядит примерно следующим образом:

В ней формируется нужное количество табличных документов и готовится к печати. В нашем примере мы создадим функцию «СформироватьПечатнуюФорму()», которая будет возвращать табличный документ. Для примера мы предполагаем, что у нас всегда 1 печатная форма, поэтому передаём в функцию первый элемент массива (МассивОбъектов[0]).

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

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

Подробно останавливаться на этом не будем, на эту тему есть большое количество материалов.

Представим лишь внешний вид макета нашего элементарного примера:

1с объектыпечати что это

Подключение и тестирование ВПФ в 1С

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

1с объектыпечати что это

В открытом справочнике необходимо нажать на кнопку «добавить». Программа откроет диалоговое окно выбора файла, в котором необходимо указать файл разработанной нами ранее печатной формы. Если всё было сделано правильно, система автоматически заполнит все параметры, и останется только нажать кнопку «записать и закрыть»:

1с объектыпечати что это

Как видно, параметры скопированы из функции «СведенияОВнешнейОбработке()».

Для того чтобы проверить работу обработки, необходимо в документе «Реализация товаров и услуг» открыть список печатных форм. В нём Вы уведите как «типовые» печатные формы, так и внешние, в том числе и наш добавленный:

1с объектыпечати что это

При нажатии на команду система сформирует нужную нам форму:

1с объектыпечати что это

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

Если у вас что-то не получается, рекомендую воспользоваться механизмом отладки внешних печатных форм.

Скачать получившийся пример внешней печатной формы можно по ссылке — ШаблонВнешнейПечатнойФормыБСП 2.0 (8.2).

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

Другие статьи по 1С:

Если вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):

К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.

Источник

Внешние печатные формы в 1С 8.2 и 8.3

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

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

Кроме этого, нужно отметить, что создание внешних печатных форм различается для обычного приложения (Бухгалтерия 2.0.*, ЗиУП 2.5.*, УТ 10.3.*) и управляемого приложения (Бухгалтерия 3.0.*, ЗиУП 3.*, УТ 11.*). В статье будут рассмотрены оба варианта.

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

Внешняя печатная форма в управляемом приложении

Начнем с того, что в настоящее время встречается чаще — с управляемого приложения. В тексте ниже будет приведен пример создания и подключения внешней печатной формы для документа «Приходный кассовый ордер» (Бухгалтерия предприятия, редакция 3.0).

Создание

Как уже было сказано выше, внешняя печатная форма — это просто-напросто внешняя обработка соответствующая некоторым требованиям. Первым требованием является реализация в модуле печатной формы экспортной функции СведенияОВнешнейОбработке().

Итак, создаем новую внешнюю обработку и в модуле объекта этой обработки размещаем примерно такой код:

Код в основном прокомментирован, но некоторые моменты нужно обговорить отдельно. Функция СведенияОВнешнейОбработке() является общей для всех внешних объектов. Вид внешнего объекта указывается в параметре «Вид» (у нас указана «ПечатнаяФорма»).

Большинство параметров не являются обязательными для заполнения. В нашем случае обязательно указать параметры «Вид», «Версия» и «Команды» — это обязательные параметры для всех видов внешних объектов («Команды» необязательны для отчетов). Кроме этого будет полезно указать параметры «Назначение». Но вообще, желательно указывать как можно больше информации — это поможет не запутаться как Вашим клиентам так и Вам самим.

Параметр «БезопасныйРежим» со значением «Истина» накладывает следующие ограничения:

Параметру «БезопасныйРежим» рекомендуется присваивать значение «Истина». Если необходима какая-либо функциональность, запрещаемая безопасным режимом, то можно получить дополнительное разрешения на эту функциональность (как в примере выше).

Кроме функции СведенияОВнешнейОбработке() необходимо реализовать еще одну экспортную функцию — Печать(). Эта функция должна иметь следующие параметры:

Пример реализации функции Печать():

Источник

Базовое понимание внедрения механизма печати в любом документе конфигурации на БСП

Введение

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

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

Начнем с простого создания документа ТестоваяПечатьДокументов в конфигурации на БСП. В качестве конфигурации я беру чистую библиотеку стандартных подсистем версии 3.1.4.148. Разработка ведется на Платформе 1с 8.3.18.1208.

выглядит это вот так:

выглядит она вот так:

Далее, для «формы списка» добавляем внутренние БСП подключаемые процедуры:

А для «формы документа» добавляем вот такие внутренние БСП подключаемые процедуры:

Далее, заполним модуль менеджера нашего документа. Напишем в нем такой код:

Тут нет ничего сложного, но особое внимание хочу обратить на вот эту процедуру добавления команд

Заключение и выводы

В данной статье мы рассмотрели основной алгоритм БСП для размещения команд печати на любых документах конфигурации, в основе которой лежит современная библиотека стандартных подсистем. Напомню, что разработка примера велась на «чистой» библиотеке стандартных подсистем версии 3.1.4.148 и Платформе 1с 8.3.18.1208.

Другие мои материалы по БСП

Так же прошу ознакомиться с другими моими статьями по функционалу библиотеки стандартных подсистем и типовым конфигурациям:

Источник

Изготовление внешних печатных форм

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

Если вам нужен макет счета или типового документа, то его можно скопировать из типовой в свою обработку методом: Ctrl+C (Копировать) Ctrl+V(вставить)

По части регистрации внешней печатной формы приведем пример

Внимание: Работаем в модуле объекта!

По печатным формам можно так же в поисковике пробить: Технология создания внешних печатных форм.

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

Я все таки хочу пояснить немного технологию изготовления собственных макетов

В функцию печати для управляемых форм передаем как минимум две переменные:

1. В типовых сейчас(как бухгалтерия 3.0 или УТ11) в родных макетах немного другие понятия в параметрах запроса, в отличие от Бухгалтерии2.0, как:

Для внешних печатных форм

Для бухгалтерии 3.0 и в том же духе

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

Приведем пример запроса из бух2.0

и сделаем тот же запрос в бух.3.0

В обычных формах мы выполнили запрос и приступаем к заполнению документа, на управляемых формах мы сразу же врезаемся в Цикл.

И тут выскакивает ошибка: Неверное Значение аргумента!

Ошибка выскакивает, так как мы пытаемся идти по полю, которого в запросе не существует. В запросе данного поля нет, для устранения ошибки необходимо добавить в запрос Поле: Ссылка

Далее в цикле начинаем заполнять данные. Привожу образец из бухгалтерии 2.0:

По сравнению с бухгалтерией 2.0 в бухгалтерии 3.0 все модули поменялись, теперь пример будет таким:

Пример для Управленияторговлей Ред11:

В функцию СведенияОЮрФизЛице() необходимо передавать поля с псевдонимом, какой вы ему присвоили. То есть если в запросе было: ВЫБРАТЬ Организация КАК Поставщик, то именно Поле с именем Поставщик должно фигурировать в переменной Шапка результата запроса.

Далее хочу сказать про функцию ФорматСумм();

Бухгалтерия3.0 и Торговля11

Для ERP2.0 больше функций.

Функция СформироватьСуммуПрописью() тоже в различных конфигурациях находится в разных модулях

Вывод данных физических лиц:

Вывод штрихкода на печать для торговли и ERP2.0

Вывод номера на печать

Я поработаю над функцией Формирования печатной формы. Примерно опишу как я делала свою самодельную печатную форму.

Приведу пример рисования печатной формы

Создаём макет типа: ТабличныйДокумент.Перед нами откроется таблица типа в Экселе

1с объектыпечати что это

Далее для создания областей выделяем область ячеек(например слева выделяем несколько номеров ячеек), Далее идем в меню:

1с объектыпечати что это

Пишем Имя, например: Заголовок и жмём ОК.

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

Правда если это одна область, тогда

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

Если вас не устраивают ячейки в виде таблицы, вы можете выбрать нужное количество ячеек и через Меню: Таблица/Ячейки/Объединить.

Если перестарались, то там же: Таблица/Ячейки/РазбитьЯчейку.

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

То же самое касается ячеек в верхней части макета, их точно так же в случае надобности можно разбивать.

Для данных таблиц лучше создавать две области: Область Шапка(с названиями колонок) и область Строка(с параметрами для заполнения

Создаем ОбластьШапки, выделяем ячейки и щелкаем правой кнопкой Мыши, в контекстном меню ВЫбираем: Свойства

В свойствах есть такие функции, как: Границасверху,ГраницаСнизу,ГраницаСлева,ГраницаСправа и Обвести..

Для начала, если вам нужна просто колонка для наименования, то много строк там ни к чему. Выбираем колонку в области, выделяем все ячейки колонки и с помощью праволй кнопки мыши в контекстном меню выбираем «Объединить»

У вас получится пустая колонка для размещения текста.

далее в свойствах(так же вызываем через контекстное меню) выбираем нужный функционал

Заполнение: Текст \\оставляем как есть

Использование:Ячейка\\оставляем как есть

В Оформлении вы можете сделать побольше шрифт и изменить его свойства.

1с объектыпечати что это

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

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

Это чаще всего требуется при заполнении области Строка, а так же при заполнении Даты, Номера Документа, вывод дванных кладовщика, Руководителя, Бухгалтера..

Тогда мы можем спокойно заполнять макет так:

Живой пример из обработки:

Привожу пример для УТ11

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

Обработка в вложении для экспериментов.

Информация будет добавляться по мере надобности)

Источник

Внешняя печатная форма с использованием БСП и вызовом клиентского метода

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

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

В дополнении указано, что в параметре формы «ДополнительнаяОбработкаСсылка», передается ссылка этого объекта с типом Справочники.ДополнительныеОтчетыИОбработки. И на этом все.

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

Но, при прямом вызове этой процедуры с помощью

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

На этом месте я застрял на пару часов. «Гугление» особого результата не принесло. В основном предлагалось сформировать табличный документ и использовать его метод «Показать()». Но, хотелось получить результат аналогичный полученному с помощью «ВызоваСерверногоМетода», т. е. вывести документ в стандартную форму БСП «ПечатьДокументов». Наконец, на просторах интернета наткнулся на статью, где описана передача параметров во «внешнюю» форму обработки. Адаптировав информацию в статье под свою задачу, все получилось.

Итак, для реализации задачи необходимо:

Указать в интерфейсе регистрации обработки использование «ВызвовКлиентскогоМетода»

Реализовать две процедуры «Печать» в соответствии с требованиями БСП, в основной форме обработки «НаКлиенте» и в модуле объекта обработки.

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

Код процедуры «Печать» в форме выглядит так:

На этом, в общем то, и все.

В файле пример обработки, использующей данный метод. Обработка печатает «Международную транспортную накладную (CMR)», на основе документов «РеализацияТоваровУслуг» и «ТранспортнаяНакладная». В случае отсутствия транспортных накладных, пользователю выводится предложение их создать и форма со ссылкой на созданный документ в случае согласия, для заполнения транспортной накладной согласно требованиям.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *