1с напечатать внешнюю печатную форму программно

v8.3: Как программно сформировать внешнюю печатную форму документа

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

В синтакс-помощнике посмотрите: Нужно сначала ее подключить, потом создать, а потом уже использовать по назначению

zerbite 15.01.2016 11:59
Ответ № 3
00
Код 1C v 8.2 УП
IBReiter 15.01.2016 14:49
Ответ № 4
00

В обычном приложении можно так

Код 1C v 8.3

zerbite 19.01.2016 09:30
Ответ № 5
00

добрый день, IBReiter, спасибо за ваш ответ. но есть моменты.

в свою очередь есть другая функция СформироватьПечатнуюФормуПриемоСдаточногоАкта(МассивОбъектов[0], ОбъектыПечати), которую при желании можно сделать Экспортной, и там действительно в конце происходит

возврат табличного документа.

но сейчас если печатаешь из документа то открывается специалальная обработка печати документов. а если будет просто ТабличныйДокумент.показать() то будет открыто просто табличное поле.

9a311aa87e917fb66bf8fc7a9803f231

ответ оказался очень простой

Источник

v8.3: Как программно сформировать внешнюю печатную форму документа

у меня уже есть вот такая процедура:

Попытка
ИмяВременногоФайла = КаталогВременныхФайлов()+»тмп_впф.epf»;
Исключение
Сообщить («Невозможно создать файл обработке в каталоге временных файлов >. Возможно, не хватает прав доступа в Windows в папку для данного сеанса 1С «);
Возврат;
КонецПопытки;

ДвоичныеДанные = СсылкаНаВПФ.ХранилищеОбработки.Получить();
ДвоичныеДанные.Записать(ИмяВременногоФайла);

МассивОбъектовНазначения = Новый Массив;
МассивОбъектовНазначения.Добавить(Объект.ПрихНакл);

// Проба печати
Попытка
ТаблДок = ОбрОбъект.печать(МассивОбъектовНазначения, Новый СписокЗначений, Истина, Ложь);
ТаблДок.Вывести();
Исключение
А=1; // Точка останова для отладки!
Сообщить(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке() )); // ВНЕШНЮЮ печатную форму из справончика ВПФ можно спокойно поправить!
КонецПопытки;

но она не работает, вы дает вот такую ошибку:

<Форма.Форма.Форма(206)>: Обращение к процедуре объекта как к функции (печать)
ТаблДок = ОбрОбъект.печать(МассивОбъектовНазначения, Новый СписокЗначений, Истина, Ложь);

Источник

Вызов внешней печатной формы программно

Необходимо вызвать программно внешнюю печатную форму. Есть справочник «Внешние обработки», где хранятся внешние печатные формы и обработки, как вызвать функцию во внешней печатной форме?

Обр = Справочники.ВнешниеОбработки.НайтиПоКоду(«000000058»);
Если Обр = Справочники.ВнешниеОбработки.ПустаяСсылка() Тогда
Сообщить(«Внешняя печатная форма не найдена»);
Иначе
ВнешняяПечатнаяФорма=обр.ПолучитьОбъект();
ТабДок=ВнешняяПечатнаяФорма.Печать();
УниверсальныеМеханизмы.НапечататьДокумент(ТабДок, 2, Ложь, «ррр»);

Конечно же такая конструкция не работает.

Открывается форма внешней обработки. Это не нужно.

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

Открывается форма внешней обработки. Это не нужно.

Если Контрагент=Справочники.Контрагенты.НайтиПоКоду(«8627») Тогда
ТекСсылка = Справочники.ВнешниеОбработки.НайтиПоКоду(«000000058»);
Если Обр = Справочники.ВнешниеОбработки.ПустаяСсылка() Тогда
Сообщить(«Внешняя печатная форма не найдена»);
Иначе
ИмяФайла = ПолучитьИмяВременногоФайла();
ДвоичныеДанные = ТекСсылка.ХранилищеВнешнейОбработки.Получить();
ДвоичныеДанные.Записать(ИмяФайла);

Объект = ТекСсылка.ПолучитьОбъект();
Форма = ВнешниеОбработки.ПолучитьФорму(ИмяФайла);
Форма.ОбработкаОбъект.ЭтотОбъект.СсылкаНаОбъект=ЭтотОбъект.Ссылка;
Форма.Открыть();
Форма.Закрыть();
УдалитьФайлы(ИмяФайла);

Источник

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

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

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

maket VPF

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

maket VPF

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

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

vneshnie obrabotki

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

novaya vneshnyaya pechatnaya forma v 1S

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

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

nash shablon

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

itog rabotyi VPF

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

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

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

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

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

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

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

Источник

Внешняя печатная форма непроведенного документа на управляемых формах

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

0301a0231c0651cc5602955f415b858c

2055a3776844bec9236a68307b2641eb

Скачать файлы

Специальные предложения

f71a8c4e70c0ff03708038e2b0210df8

9c2808762ec294cd4c55532520b9c521

895fb1e0f7afc3c0ed0d73bf5ee9d9d0

egais promo

b34b292ed32e9501f98cc31df406353e

789363929b9f37ddc5641a069a5fe52e

5b19cd6c4494a88b2abefce64a1b7565

199e2be4fd21dd8f4209d8ec34616c76

Добрый день. Не понятно, как это не дает? Какая конфигурация? Какая версия БСП? Проверил на 5 разных конфигурациях (УТ11, Розница 2.2, БП3.0, ЗУП3.1, УСЦ1.6) и все прекрасно работает и выдает печатную форму, даже когда документ не проведен (но записан и есть ссылка).

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

вот пример УТ 11.2.3.185, не хочет. без проведения

Столкнулся с такой же проблемой. Сделал так:
1. В модуле объекта вместо «ОткрытияФормы» прописал «ВызовКлиентскогоМетода»;
2. В модуле формы создал экспортную процедуру Печать

3. Добавил серверную процедуру для формирования коллекции печатных форм

4. пришлось еще добавить в форму процедуру ПодготовитьКоллекциюПечатныхФорм т.к. в модуле УправлениеПечатью она не экспортная

Источник

Понравилась статья? Поделить с друзьями:
Добавить комментарий
  • Как сделать успешный бизнес на ритуальных услугах
  • Выездной кейтеринг в России
  • Риски бизнеса: без чего не обойтись на пути к успеху
  • 1с найти элемент формы программно
  • 1с найти элемент формы по имени

  • Процедура ПечатьИзВПФ(ИмяВПФ); //
    СсылкаНаВПФ = Справочники.ДополнительныеОтчетыИОбработки.НайтиПоНаименованию(ИмяВПФ);
    Если СсылкаНаВПФ.Пустая() Тогда
    Сообщить(«В справочнике ‘Внешние обработки’ не нашли внешнюю печатную форму с наименованием ‘»+ИмяВПФ+»‘»);
    Возврат;
    КонецЕсли;