v8.3: Как программно сформировать внешнюю печатную форму документа
имеется обработка в которой есть реквизит Объект.ПрихНакл, в которой хранится ссылка на документ ПоступлениеТоваровУслуг, для этого документа прописана внешняя печатная форма «Приемо-сдаточный акт», из документа все печатает. а как эту форму сформировать из обработки, или с любого другого случайного места?
В синтакс-помощнике посмотрите: Нужно сначала ее подключить, потом создать, а потом уже использовать по назначению
zerbite
15.01.2016 11:59
Ответ № 3
Код 1C v 8.2 УП
IBReiter
15.01.2016 14:49
Ответ № 4
В обычном приложении можно так
Код 1C v 8.3
zerbite
19.01.2016 09:30
Ответ № 5
добрый день, IBReiter, спасибо за ваш ответ. но есть моменты.
в свою очередь есть другая функция СформироватьПечатнуюФормуПриемоСдаточногоАкта(МассивОбъектов[0], ОбъектыПечати), которую при желании можно сделать Экспортной, и там действительно в конце происходит
возврат табличного документа.
но сейчас если печатаешь из документа то открывается специалальная обработка печати документов. а если будет просто ТабличныйДокумент.показать() то будет открыто просто табличное поле.
Программная печать внешних печатных форм для УТ 11 (управляемые формы) двумя методами, с выводом шаблона на экран и печатью напрямую на принтер
Предлагаю на суд читателей два алгоритма печати внешних печатных форм.
1. Печать с выводом шаблона на экран.
В результате, Вы сможете лицезреть заполненный шаблон печатной формы на экране.
В случае, когда надо печатать массив документов с различными шаблонами форм (внешними печатными формами), то
2. Печать внешней печатной формы прямо на принтер.
сразу печатает на принтер.
P.S. Чтобы не потерялось и, может, кому пригодится.
Специальные предложения
Обновление20.02.18 13:15
См. также
Аналог PIVOT в запросе 1С (как выполнить транспонирование таблицы в запросе 1С) Промо
В статье показывается простой метод реализации аналога оператора PIVOT в запросе 1С без использования соединений.
12.12.2020 4589 Eugen-S 23
Обзор полезных методов БСП 3.1.4. Часть 2
27.04.2021 16368 rayastar 7
Обзор полезных методов БСП 3.1.4
25.03.2021 41753 rayastar 51
Звуковое управление в 1С 8.3
В данной статье описано создание библиотеки для звукового управления (выполнение команд голосом) для платформы 1С 8.3. Задача была поставлена так, чтобы модуль функционировал непосредственно на клиенте 1С, осуществляя управление формами, и взаимодействовал с интерфейсом.
16.03.2021 7251 velemir 33
Руководство для новичков. Написав статью http://infostart.ru/public/238584/, я понял, что многие не понимают того, что написано. Поэтому в этой статье постараюсь более подробно остановиться на азах и без кода на вражеском языке (C#)
27.01.2016 85881 Serginio 116
Serverless (Faas) в 1С. Создание и вызов Yandex Cloud Functions
28.12.2020 8987 comol 31
Полезные функции БСП (Часть 2)
Список полезных функций из состава Библиотеки стандартных подсистем 3.1.
10.03.2020 21007 user5300 20
Программная работа с настройками СКД
Нюансы программной работы с настройками системы компоновки данных в отчетах и динамических списках. Обзор всех видов настроек компоновки. Что в каких случаях правильно применять. В качестве примера рассмотрена работа с отборами и группировками.
27.01.2020 66438 ids79 26
Как я начал администрировать сервер 1С: Предприятие 8.3 с телефона Промо
Развитие инструментов управления кластером серверов 1С:Предприятие 8.3.
14.04.2017 67694 user700211_a.straltsou 30
[СКД] Программное создание схемы компоновки данных
Сделаем отчет на СКД полностью программно, без использования макета «схема компоновки данных».
15.01.2020 44017 John_d 22
Последовательности событий при проведении документа 1С. Шпаргалка + про формы + про расширения
Собрал информацию о событиях/подписках/расширениях в одном месте.
30.12.2019 35724 kuzyara 38
Шпаргалка (БСП). Добавление в новый документ механизма печати дополнительных печатных форм
Постоянно приходится вспоминать, как добавить механизм печати (БСП) в новый документ. Поэтому решил написать шпаргалку.
10.10.2019 30720 John_d 21
Использование программных перечислений, ч.1: строковые константы Промо
Часто ли у вас возникает необходимость в коде выполнять сравнение на строку?
10.12.2016 41166 unichkin 74
Полезные процедуры и функции для программиста
Все мы пишем программный код и часто используем процедуры, облегчающие его написание. Ниже приведена выборка таких полезных процедур и функций.
07.10.2019 39911 HostHost 41
Таблица значений. Нюансы
Обзор некоторых аспектов использования общеизвестного инструмента 1С.
01.10.2019 53444 Yashazz 56
[Шпаргалка] Программное создание элементов формы
Программное создание практически всех популярных элементов формы.
06.09.2019 103681 rpgshnik 77
Вспомогательные инструкции в коде 1С Промо
Помогаем редактору кода 1С помогать нам писать и анализировать код.
15.10.2018 36225 tormozit 106
Агрегатные функции СКД, о которых мало кто знает
Пользуетесь ли Вы всеми возможными агрегатными функциями, которые предоставляет система компоновки данных? Если Вы используете только: СУММА, КОЛИЧЕСТВО, МИНИМУМ, МАКСИМУМ, СРЕДНЕЕ, то эта статья для Вас.
05.09.2019 78346 ids79 56
Отслеживание выполнения фонового задания
Запуск фонового задания из модуля внешней обработки. Отслеживание выполнения задания в виде прогресса, расположенного на форме.
17.08.2019 45411 ids79 22
Функции СКД: ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив
Подробное описание и использование внутренних функций системы компоновки данных: Вычислить, ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив, ВычислитьВыражениеСГруппировкойТаблицаЗначений.
08.08.2019 153840 ids79 75
Оформление и рефакторинг сложных логических выражений Промо
В сложных логических выражениях нередко самому автору спустя какое-то время тяжело разобраться, не говоря уже о других программистах. Предлагаемая методика позволяет повысить наглядность таких выражений путем оформления в виде И-ИЛИ дерева и одновременно выполнять их рефакторинг.
20.09.2012 82921 tormozit 131
Набор данных объект. Использование в схеме компоновки нескольких наборов данных. Различные варианты связи наборов: объединение, соединение. Использование иерархии в отчетах на СКД. Создание собственной иерархии, иерархия детальных записей. Использование вложенных схем в отчетах на СКД.
26.07.2019 106551 ids79 17
Обработчики событий при записи объектов. Зачем и что за чем?
Программисту, имеющему немного опыта на платформе 1С 8.3, бывает сложно разобраться: ПередЗаписью, ПриЗаписи, ПослеЗаписи, на сервере, на клиенте, в модуле формы, в модуле объекта. Эта шпаргалка была создана в процессе обучения и реального опыта с целью разложить всё по полочкам, чтобы было четкое понимание в каком случае какой обработчик нужно использовать и в какой последовательности они запускаются при записи и проведении документов. Данная статья будет полезна в большей степени начинающим разработчикам. Но и опытным позволит освежить информацию, упорядочить её.
25.07.2019 113904 AlbinaAAA 49
Автоматическое и не автоматическое заполнение полей компоновки данных. Использование расширений языка запросов для СКД «<…>», секция ВЫБРАТЬ, секция ГДЕ, параметры виртуальных таблиц. Автоматизированное использование дополнительных данных в запросе: секция ХАРАКТЕРИСТИКИ.
17.07.2019 48737 ids79 27
Запись значения в поле ввода/формы со срабатыванием события ПриИзменении Промо
Иногда возникает необходимость после записи значения в какое либо поле ввода/формы вызвать для него обработчик события ПриИзменении, а о вызове самого события приходится только мечтать. В этой статье приводится программный способ вызова этого события.
11.07.2007 54540 tormozit 51
«Меньше копипаста!», или как Вася универсальную процедуру писал
Программист Вася разбирает подход создания универсальных методов на примере программного вывода СКД.
04.07.2019 22598 SeiOkami 53
Основные принципы работы СКД. Понятия схемы компоновки и макета компоновки. Описание основных элементов схемы компоновки: наборы данных, поля, вычисляемые поля, ресурсы, параметры.
25.06.2019 76726 ids79 28
Подсистема «Варианты отчетов». Используете ли Вы ее правильно?
Небольшая история про использование подсистемы «Варианты отчетов» из БСП. Используете ли Вы ее правильно?
04.06.2019 56563 YPermitin 55
Как сделать из &НаКлиентеНаСервереБезКонтекста почти &НаКлиентеНаСервере Промо
Как сделать метод формы, доступный на клиенте и на сервере одновременно, и сохранить при этом удобство разработки
10.09.2017 51313 tormozit 74
Регистры накопления. Структура хранения в базе данных
Структура хранения регистров накопления в базе данных для платформы 1С:Предприятие 8.x. Первая часть в серии публикаций.
16.05.2019 64331 YPermitin 31
Выгрузка документа по условию
Что делать, если документы нужно выгружать не все подряд, а по какому-то фильтру: статусу, дате, набору условий. А что если он соответствовал этим условиям, а потом перестал? А если потом опять начал? Такие ситуации заставили попотеть не одного программиста.
25.04.2019 18052 m-rv 3
Как прикрутить ГУИД к регистру сведений
. и немного теории обмена данными. В частности, разберем боль всех, кто пишет небанальные обмены данными: как набору записей регистра сведений назначить гуид и далее использовать его в обмене для идентификации этого набора.
16.04.2019 23385 m-rv 18
Как сделать запрос на изменение данных Промо
В статье приведены особенности внутренней архитектуры и примеры работы с расширением языка запросов 1С.
01.06.2018 37093 m-rv 23
О расширениях замолвите слово.
О чём стоит задуматься при принятии решения о создании расширения конфигурации…
07.04.2019 42826 ellavs 131
Git-репозитории для 1С-кода (опыт использования при небольших проектах)
Инструкции по взаимодействию с Git-репозиторием, которые писались для тех наших программистов, которые вообще никогда не работали с Git (руководства в духе «Как получить код из git-репозитория?», «Как отправить код в git-репозиторий»).
28.03.2019 32117 ellavs 90
Добавление отчетов в типовые конфигурации 1С
Описание различных способов добавления общих и контекстных отчетов в конфигурации 1С, построенные на базе БСП. Основные моменты и нюансы.
07.03.2019 78928 ids79 49
Функциональные опции 1С 8.3 – все возможные варианты использования
Примеры использования функциональных опций для управления интерфейсом и элементами управляемых форм, с различными вариантами хранения значений: константа, реквизит справочника, ресурс регистра сведений.
22.02.2019 53433 ids79 20
Информирование пользователя. Работа с объектом «СообщениеПользователю»
Различные варианты и нюансы использования объекта СообщениеПользователю и другие способы информирования пользователя: без привязки к какой-либо форме и с выводом сообщения в отдельном окне.
15.02.2019 101635 ids79 70
Возможности типовых шаблонов ограничения доступа на уровне записей (RLS)
Краткий обзор применения типовых шаблонов ограничения доступа на уровне записей в конфигурациях, созданных на базе БСП: #ПоЗначениям, #ПоНаборамЗначений, #ПоЗначениямРасширенный, #ПоЗначениямИНаборамРасширенный
03.02.2019 65938 ids79 11
Разработка и сценарное тестирование с Vanessa-ADD. Концепция, теория и сквозной пример создания сценария
Первая часть цикла публикаций, посвященных Vanessa-ADD
09.01.2019 71858 Vladimir Litvinenko 84
Универсальные функции ЗУП 3.1 / ЗКГУ 3.1, которые помогут в разработке
В статье размещен список стандартных процедур и функций с примерами, которые могут помочь при разработке (доработке) конфигураций Зарплата и управление персоналом ред. 3.1 и Зарплата и кадры государственного учреждения 3.1. Иногда бывает довольно сложно правильно получить данные или долго, поэтому лучшим вариантом будет использование стандартных процедур. Буду очень признателен, если Вы поделитесь своим опытом и предложите свои варианты стандартных процедур которые помогают в работе. Или предложите, как дополнить имеющиеся процедуры.
14.11.2018 147900 GeterX 135
Автоматические и управляемые блокировки применительно к типовым конфигурациям 1С
Основные принципы работы с режимами автоматических и управляемых блокировок в 1С Предприятие 8. Теория и применение в типовых конфигурациях: БП, УТ, ЕРП
10.11.2018 45080 ids79 46
Git + 1С. Часть 1. Как подключиться к команде разработки и начать использовать Git
Первая статья из цикла инструкций по работе с Git в 1С-разработке. Рассмотрим, как настроить рабочее место, как получить свою «копию» проекта для разработки и приступить к полезным действиям. Все примеры будут изложены в рамках трёх практических кейсов: 1. Моя команда дорабатывает типовую конфигурацию, использует приватный репозиторий на BitBucket, в котором версионируются внешние отчеты/обработки, расширения конфигураций и правила обмена; 2. Я участвую в стартап-команде, которая разрабатывает свою конфигурацию с использованием Git и GitLab; 3. Я принимаю участие в развитии OpenSource-продукта на GitHub как заинтересованный разработчик (контрибьютор).
18.10.2018 93614 stas_ganiev 86
Основные понятия и механизмы оптимизации клиент-серверного взаимодействия в 1C
У многих начинающих 1С программистов часто возникают вопросы про клиент-серверное взаимодействие в 1С и чтобы разобраться в непростых механизмах платформы, необходимо понять, что же такое контекст, для чего предназначены директивы компиляции, что представляют собой контекстные/внеконтекстные вызовы и как наиболее оптимально описывать прикладные задачи в модулях управляемых форм.
v8.3: Как программно сформировать внешнюю печатную форму документа
у меня уже есть вот такая процедура:
Процедура ПечатьИзВПФ(ИмяВПФ); // СсылкаНаВПФ = Справочники.ДополнительныеОтчетыИОбработки.НайтиПоНаименованию(ИмяВПФ); Если СсылкаНаВПФ.Пустая() Тогда Сообщить(«В справочнике ‘Внешние обработки’ не нашли внешнюю печатную форму с наименованием ‘»+ИмяВПФ+»‘»); Возврат; КонецЕсли;
Попытка ИмяВременногоФайла = КаталогВременныхФайлов()+»тмп_впф.epf»; Исключение Сообщить («Невозможно создать файл обработке в каталоге временных файлов >. Возможно, не хватает прав доступа в Windows в папку для данного сеанса 1С «); Возврат; КонецПопытки;
МассивОбъектовНазначения = Новый Массив; МассивОбъектовНазначения.Добавить(Объект.ПрихНакл);
// Проба печати Попытка ТаблДок = ОбрОбъект.печать(МассивОбъектовНазначения, Новый СписокЗначений, Истина, Ложь); ТаблДок.Вывести(); Исключение А=1; // Точка останова для отладки! Сообщить(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке() )); // ВНЕШНЮЮ печатную форму из справончика ВПФ можно спокойно поправить! КонецПопытки;
но она не работает, вы дает вот такую ошибку:
<Форма.Форма.Форма(206)>: Обращение к процедуре объекта как к функции (печать) ТаблДок = ОбрОбъект.печать(МассивОбъектовНазначения, Новый СписокЗначений, Истина, Ложь);
Создание внешней печатной формы под УП с возможностью передачи параметров (для конфигураций на БСП)
Статья отображает частное мнение автора по данному вопросу и не претендует на истину в последней инстанции. Поэтому если кто-то может предложить иные способы решения данной проблемы, можете писать их в комментах)
Видеоверсию данной статьи можете посмотреть тут: http://youtu.be/9JlR-2rNW6o
Поставим задачу: вывести счет на оплату покупателя внешний с дополнительным комментарием.
Первый метод.Вывод табличного документа.
Данный метод можно назвать довольно топорным, но зато быстрым и не требующим каких-то особых дополнительных движений. Мы просто получаем табличный документ счета, и выводим его на экран.
Для описания этого метода возьмем обработку СчетНаОплатуПокупателюВнешний.e pf из предыдущей моей статьи. Добавим реквизит обработки: Комментарий, тип строка(100).
Добавим форму обработки, на которой разместим данный реквизит, разместим кнопку «Печать» и создадим команду формы «Печать»
Также у формы создадим параметр «ОбъектыНазначения» тип«Произвольный» (сделайте его ключевым)
Поясню, при открытии формы, в этот параметр будут записаны все объекты, для которых открывается данная печатная форма.
&НаСервере Функция ПечатьСерверная ()
КонецФункции &НаКлиенте Процедура Печать ( Команда )
Теперь перейдем в модуль обработки. И внесем кое какие изменения в уже написанный код.
Теперь перейдем в процедуру Печать, сделаем функцией, и оставим только первый параметр МассивОбъектов
Смотрим на тело функции, тот код который там написан в нашем случае не применим. Поэтому мы вычистим ее, оставив только код, с помощью которого можно получить табличный документ это функция ПолучитьТаблицуСведенийСчетаНаОплатуи функция ПечатьСчетаНаОплату, функция ПечатьСчетаНаОплату возвращает табличный документ.
Поскольку параметр объекты печати является списком значений,содержащим распечатываемые документ(справочники), то создадим данный список, и заполним его объектами из массива и возвратим табличный документ.
Теперь изменим макет, добавив комментарий в подвал счета.
Осталось в функции ПечатьСчетаНаОплату у соответствующей области макета соответствующему параметру присвоить реквизит обработки Комментарий .
Обращаю ваше внимание, у других конфигураций и других объектов могу быть иные процедуры формирования табличного документа, чем те которые приведены в примере, в данной статья показан общий механизм.
Заканчиваем работу с модулем обработки и переходим в модуль формы. В функцию ПечатьСерверная()
Вызовем функцию ПечатьСерверная на клиенте, и покажем сформированный табличный документ.
Сохраняем печатную форму и добавляем в дополнительные отчеты и обработки конфигурации.
Перейдем в документ, выберем данную печатную форму.
Выйдет форма, в которой мы заполним поле комментарий.
Нажимаем печать и выходит табличный документ.
Возможно многих и устроит подобный вариант выхода печатной формы. Кто же хочет, что бы выходила типовая форма.
То изучайте вторую и третью часть этой статьи.
Второй метод. Использованиедополнительных сведений документа.
Для этого заходим в список счетов на оплату покупателю инажимаем кнопку дополнительные сведения
Откроется форма Дополнительных сведений, пока она пустая,т.к. нет ни каких сведений привязанных к данному документу.
Что бы создать их заходим в Все действия – Изменить составдополнительных сведений.
Пишем наименование КомментарийДополнительный, тип значениявыбираем строка. И записываем новое дополнительное сведение.
Все оно создано, и появится в списке дополнительных сведений документа Счет наоплату покупателю. Запишем в него какой-нибудь комментарий, и сохраним.
Теперь нам осталось узнать под каким именем данноедополнительное сведение сохранилось в плане видов характеристик « Дополнительные реквизиты и сведения ».
Зайдем в него через меню «Все функции».
Все. Все необходимые приготовления мы сделали, теперьперейдем к написанию обработки, которая будет подставлять в комментарийзначение данного дополнительного сведенья.
Как и в предыдущей части, за основу мы будем брать обработкуиз моей предыдущей статьи.
Исправим в процедуре сведения СведенияОВнешнейОбработке() наименование параметра регистрации и представление команды, что бы можно былоотличить нашу новую обработку.
Функция СведенияОВнешнейОбработке () экспорт
Теперь создадим функцию, которая получает по ссылке надокумент, и по ссылке на доп сведение значения. Кто не знает, поясню, чтозначения доп сведений в БСП хранятся в регистре сведений «ДополнительныеСведения»
Где в измерении Объект хранится ссылка на документ, визмерении Свойство – ссылка на план видов характеристик Дополнительные сведенияи реквизиты, а в ресурсе Значение – значение данного сведения для данногодокумента.
Посмотрите на состав регистра в нашем случае.
Поэтому создадим функцию в которую будем передавать массивдокументов и массив дополнительных сведений, а возвращать она будетсоответствующую выгрузку запроса.
МассивДопСведений = Новый Массив ;
Теперь добавим в макет новый параметр «Комментарий»
Первым делом нам необходимо извлечь из таблицы значений ТаблицаДопСвойств значение для распечатываемого документа и нужного дополнительного свойства. Дляэтого получим ссылку на доп. свойства используя наименование, которое мы ужезнаем.
//Получимзначение доп свойства для данного документа
После этого создаем структуру с полями Документ иДопСведение, в которую вставим ссылку на наш документ и ссылку на найденноедополнительное сведение.
Ищем в таблице значений ТаблицаДопСвойств строки по данномуотбору.
Проверим, есть ли в полученном массиве записи, и если естьто возьмем первый элемент массива, который будет являться строкой таблицы значений, и получим содержимоеколонки «Значение». Запишем этосодержимое в параметр.
ЗначениеДопСведения = МассивЗначения [0]. Значение ;
Осталось сохранить обработку, добавить ее в дополнительныепечатные формы и посмотреть как выйдет наш счет.
Данным способом можно решить большинство задач где необходимо ввести дополнительные параметры во внешнюю печатную форму. Но если он вас чем-то не устраивает, остается третий способ интерактивным вызовом формы ПечатьДокументов и передачей в нее параметров. Он приведен в комментариях к моей предыдущей статье.