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

Обработка печатной формы WORD клиент-сервер УФ

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

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

Как мы видим, использовать будем ВызовКлиентскогоМетода, по скольку открыть файл нужно будет на компьютере пользователя.

Далее понадобится создать еще две процедуры здесь же:

2. Функция добавления команды, которую мы вызываем ранее(просто, чтобы все было визуально разделено и не награмождалось скопом в одной функции):

3. И функция по созданию этой самой таблицы команд:

(Из комментариев можно подробней понять, для чего используется тот или иной параметр-поле данной таблицы)

На этом настройка регистрации внешней обработки в нужной вам конфигурации закончена.

Далее. Самое интересное: создание, заполнение и вывод макета клиенту.

Первое, что нам необходимо сделать, это создать макет нашего документа(Изображение 3). Макет понадобится двоичный, т.к. обычный мы на клиент не передадим(как я и говорил ранее). Заменяем нужные данные в шаблоне, перед загрузкой в обработку, «Параметрами», у меня они выглядят так, на примере: «<Сотрудник>«(кавычки не учитывать), после чего загружаем в Обработку-Макет.

Теперь в модуле формы создаем процедуру, которая будет вызвана при обращении к печати именно в таком виде(за исключением содержимого, заполнять можете как вам угодно), процедура так же должна быть экспортной и на клиенте, так как вызывается из конфигурации и выполнение назначено на клиентской стороне:

Макет я собираю и вызываю в отдельной процедуре, обязательно на клиенте.

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

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

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

Источник

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

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

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

Ты же вызываешь обработку модуля через Реквизит формы в значение?

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

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

Источник

Открытие формы настроек при запуске печатной формы в управляемом приложении

category Программирование системы clock10.04.2018 07:51 eye22232

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

Обработка для внешней печатной формы

Обработка содержит две формы: ФормаТестов, ФормаНастроек.

В функции СведенияОВнешнейОбработке() для свойства «Использование» нужно установить значение «ВызовКлиентскогоМетода». Это означает, что при запуске печатной формы из 1С Предприятия, будет автоматически запускаться экспортная функция Печать() ИЗ ОСНОВНОЙ ФОРМЫ ОБРАБОТКИ, при этом форма не открывается.

Форма тестов

Так как в свойствах команды было указано «ВызовКлиентскогоМетода», то экспортная функция Печать(), должна быть расположена в модуле основной формы обработки (в данном случае ФормаТестов), сама форма открыта не будет. Но для отладки, печатная форма будет запускаться через главное меню Файл->Открыть. Поэтому предусмотрим на форме тестов команду для вызова экспортной функции Печать().

Форма настроек

На форме настроек расположим несколько полей ввода. Зададим обработчик действия для кнопки «ПродолжитьПечать».

Еще нужно добавить 2 параметра формы: ИдентификаторКоманды, МассивОбъектов, которые передаются при открытии формы. Эти параметры должны быть с признаком Ключевой параметр.

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

1. Владислав 13.09.2018 11:14

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

Обработка для внешней печатной формы

Обработка содержит две формы: ФормаТестов, ФормаНастроек.

В функции СведенияОВнешнейОбработке() для свойства «Использование» нужно установить значение «ВызовКлиентскогоМетода». Это означает, что при запуске печатной формы из 1С Предприятия, будет автоматически запускаться экспортная функция Печать() ИЗ ОСНОВНОЙ ФОРМЫ ОБРАБОТКИ, при этом форма не открывается.

Форма тестов

Так как в свойствах команды было указано «ВызовКлиентскогоМетода», то экспортная функция Печать(), должна быть расположена в модуле основной формы обработки (в данном случае ФормаТестов), сама форма открыта не будет. Но для отладки, печатная форма будет запускаться через главное меню Файл->Открыть. Поэтому предусмотрим на форме тестов команду для вызова экспортной функции Печать().

Форма настроек

На форме настроек расположим несколько полей ввода. Зададим обработчик действия для кнопки «ПродолжитьПечать».

Еще нужно добавить 2 параметра формы: ИдентификаторКоманды, МассивОбъектов, которые передаются при открытии формы. Эти параметры должны быть с признаком Ключевой параметр.

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

1. Владислав 13.09.2018 11:14
<ВнешняяОбработка.ВнешняяОбработка1.Форма.ФормаНастроек.Форма(17)>: Поле объекта не обнаружено (ИдентификаторКоманды)
КоллекцияПечатныхФорм = УправлениеПечатью.ПодготовитьКоллекциюПечатныхФорм(Параметры.ИдентификаторКоманды);

Подскажите, в чем ошибка?

2. Admin 04.10.2018 10:20
Возможно в форме настроек не добавлен параметр ИдентификаторКоманды типа «строка» с признаком Ключевой параметр.

Для того чтобы добавить сообщение, необходимо Войти или Зарегистрироваться

Источник

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Источник

Создание внешней печатной формы для управляемого приложения в 1С 8.3

Рассмотрим написание простейшей внешней печатной формы в 1С 8.3 для управляемого приложения на примере конфигураций Бухгалтерия 3.0 и Управление торговлей 11 (данная печатная форма будет работать в обоих этих конфигурациях).

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

Создание внешней обработки

В конфигураторе 1C Предприятия 8 создаем внешнюю обработку (Файл->Новый->Внешняя обработка), задаем имя, добавляем реквизит Документ с типом ДокументСсылка.РеализацияТоваровУслуг, он не является обязательным для работы печатной формы, но пригодится нам для ее регистрации в базе.

sozdanie pustoy obrabotki v 1S 8.3

Создание макета печатной формы

Добавляем новый макет, тип макета оставляем Табличный документ. На макете создаем три области: Шапка, Данные и Подвал. Сделать это можно выделив нужное количество строк и нажав меню Таблица->Имена->Назначить имя (Ctrl+Shift+N).

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

В области Данные создадим параметры для вывода строк табличной части(Номенклатура, цена и т.д.), а в области Подвал для итогов по количеству и сумме.

sozdanie parametra na makete

Программирование

Зайдем в модуль объекта печатной формы Действия->Открыть модуль объекта.

sozdanie rekvizita

Получите понятные самоучители по 1С бесплатно:

Теперь в модуле объекта следует создать обязательную функцию СведенияОВнешнейОбработке(). Она необходима для регистрации печатной формы в справочнике ДополнительныеОтчетыИОбработки, в ней собирается структура с данными для подключения формы. Эта функция, а также ряд сопутствующих ей, практически одинаковы для всех печатных форм, поэтому их можно просто копировать в новую печатную форму ничего не меняя.

Рассмотрим содержание функции СведенияОВнешнейОбработке(). Для начала создадим ее в модуле:

Создадим структуру ПараметрыРегистрации в которой и будут храниться все данные необходимые для регистрации.

Создадим массив МассивНазначений в котором будут храниться наименования документов и справочников из которых будет производиться печать.

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

А теперь заполним переменную.

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

А теперь добавим полученные данные в массив.

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

Приступим к заполнению структуры ПараметрыРегистрации.

Вид внешней обработки, может быть: ЗаполнениеОбъекта, ДополнительныйОтчет, СозданиеСвязанныхОбъектов, ПечатнаяФорма и т.д.

Назначение заполним уже полученным массивом:

Наименование из уже заполненной переменной:

Номер версии можно поставить любой по желанию:

Безопасный режим не даст печатной форме вносить изменения в базу данных. Но она у нас вполне безобидна =), поэтому ставим значение Ложь.

В поле Информация вносим описание печатной формы для пользователя. Запишем туда Наименование.

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

Вызовем сознанную функцию.

Добавим команду печати, вынеся этот процесс в отдельную функцию:

Параметры функции ДобавитьКоманду:

Вызов функции выглядит так:

Осталось передать заполненную таблицу команд в ПараметрыРегистрации:

И возвратить их из функции:

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

Приступим к написанию кода, который будет формировать нашу печатную форму. Так как при создании команды печати мы использовали параметр ВызовСерверногоМетода, то в модуле объекта создаем обязательную серверную процедуру Печать(если использовать ВызовКлиентскогоМетода, то процедура Печать должна быть клиентской и располагаться в модуле основной формы обработки).

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

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

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

В параметр запроса передаем МассивОбъектов, что бы указать в условии ГДЕ, что нам нужны данные только тех документов из которых выводим печатную форму. Чтобы получить выборку запроса, сначала выполняем его, а затем выгружаем.

Теперь при помощи цикла обойдем все ссылки из массива объектов и в одном табличном документесформируем печатные формы для всех выбранных документов.

В данном цикле начнем формирование печатных форм каждого из документов.

Заполним параметры шапки и выведем ее в табличный документ.

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

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

Заполним и выведем область Подвал.

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

Возвращаем заполненный табличный документ из функции ПечатьФормы.

Код функции ПечатьФормы целиком:

Теперь осталось добавить сформированный табличный документ Коллекцию печатных форм. Для добавления табличного документа в коллекцию можно воспользоваться типовой процедурой ВывестиТабличныйДокументВКоллекцию из модуля УправлениеПечатью(процедура есть и в Бухгалтерии 3.0и в Управление торговлей 11). В параметры этой процедуры необходимо передать:

Для параметров ИмяМакета и СинонимМакета используем уже созданные нами процедуры, которые использовались для заполнения сведений о внешней обработки. Таким образом процедура Печать будет выглядеть следующим образом:

Обратите внимание, что для заполнения параметра ТабличныйДокумент вызывается функция ПечатьФормы, которая описана выше.

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

Смотрите видео по созданию внешней печатной формы для управляемого приложения:

Источник

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