Программно открыть форму из ВПФ #674106


#0 by Alekzander
Наверняка многие сталкивались с такой задачей: нужно при печати ВПФ вывести сначала предварительную форму, в которой нужно или можно заполнить некоторые поля, а затем уже вывести на печать. Так вот, столкнулся я с такой проблемкой, никак не хочет форма выводиться (а у меня УТ 11.1), перперобовал и ОткрытьМодально, и Форма = ЭтотОбъект.получитьФорму("Форма").ОткрытьМодально; - даже такую пробовал пользовать, естественно, на клиенте, но что-то не выходит, форма не открывается. Подскажите плиз, как правильно это сделать?
#1 by Alekzander
ап
#2 by Alekzander
Неужели никто не может подсказать?
#3 by mikecool
чего? ну сделай первую основную форму с полями для указания параметров, а из нее открывай вспомогательную или  просто вызывай функцию
#4 by Alekzander
нее, мне надо как: нажимаю на печать, открывается формочка для указания параметров, а из неё уже производится печать. Основная-то мне форма зачем? я ж ВПФ делаю.
#5 by Alekzander
Форму открыл. Теперь нужно заполнить её данными из реквизитов внешней обработки, встаёт другой вопрос - как обратиться к реквизитам этой самой обработки? Пробовал вот такой вариант: ОбъектОбработки = РеквизитФормыВЗначение("Объект"); но система ругается. Как быть, как правильно обратиться к реквизитам обработки?
#6 by Alekzander
ау
#7 by ZZBase
В модуле внешней печатной формы есть экспортная процедура "печать". Внутри нее сделай открыть модально некую форму этой самой же обработки, и по кнопке закрыть вернешшся опять в эту процедуру и дальше формируй печатную форму.
#8 by banco
правильно читать документацию
#9 by fimanich
+ Давненько внешние печатные не делал, вроде там функция экспортная, а не процедура, помню в случае, описанном в , внутри функции вместо возврат ТабДок я открывал нужную форму, а затем ставил Возврат Неопределено, а весь код вывода на печать уже в этой доп. форме... Но это давно было, кстати на обычном приложении, так что возможно, вариант из более интересный...
#10 by fimanich
а вот если метод Печать находится в модуле объект,а то в управляемом приложении исполняется на сервере, стало быть форму эту дополнительную некуда открывать, так что тогда   - может чего нибудь там в документации есть
#11 by banco
есть, БСП, Дополнительные отчеты и обработки
#12 by Alekzander
ап. Вчера был слишком занят, чтобы этим заниматься, так что тема актуальна. Посмотрел БСП, но подходящего примера не нашёл. Старший программист говорит, что нужно сделать так, чтобы форма открывалась сразу, при нажатии кнопки Печать, то бишь даже без перехода в модуль самой ВПФ. Как тогда такой вариант можно реализовать? В БСП похожее что-то есть, но абсолютно непонятно, как организовывается открытие формы без процедуры Печать в модуле обработки. Подскажите плиз.
#13 by cw014
СП не предлагать? Глобальный контекст.ОткрытьФорму (Global context.OpenForm) Глобальный контекст (Global context) ОткрытьФорму (OpenForm) Вариант синтаксиса: По названию Синтаксис: ОткрытьФорму(<ИмяФормы>, <Параметры>, <Владелец>, <Уникальность>, <Окно>) Параметры: Тип: Строка. Имя формы. Образуется как полный путь к объекту метаданных Форма (например, "Справочник.Контрагенты.Форма.ФормаОбъекта", "ОбщаяФорма.ФормаСохраненияФайла") или как полный путь к прикладному объекту, дополненный именем формы по умолчанию (например, "Справочник.Товары.ФормаВыбора"). Имена форм по умолчанию ФормаОбъекта (ObjectForm) - форма объекта по умолчанию; ФормаГруппы (FolderForm) - форма группы по умолчанию; ФормаЗаписи (RecordForm) - форма записи регистра по умолчанию; ФормаСписка (ListForm) - форма списка по умолчанию; ФормаВыбора (ChoiceForm) - форма выбора по умолчанию; ФормаВыбораГруппы (FolderChoiceForm) - форма выбора группы по умолчанию; ФормаКонстант (ConstantsForm) - форма констант по умолчанию; Форма (Form) - форма отчета и обработки по умолчанию; ФормаНастроек (SettingsForm) - форма настроек отчета по умолчанию; ФормаЗагрузки (LoadForm) - форма загрузки настроек; ФормаСохранения (SaveForm) - форма сохранения настроек; ФормаВарианта (VariantForm) - форма редактирования варианта отчета; ФормаЗагрузкиПользовательскихНастроекОтчетов (ReportUserSettingsLoadForm) - форма загрузки настроек отчета; ФормаСохраненияПользовательскихНастроекОтчетов (ReportUserSettingsSaveForm) - форма сохранения настроек отчета; ФормаЗагрузкиВариантовОтчетов (ReportVariantsLoadForm) - форма загрузки варианта отчета; ФормаСохраненияВариантовОтчетов (ReportVariantsSaveForm) - форма сохранения варианта отчета; ФормаЗагрузкиНастроекДанныхФорм (FormDataSettingsLoadForm) - форма загрузки настроек данных форм; ФормаСохраненияНастроекДанныхФорм (FormDataSettingsSaveForm) - форма сохранения настроек данных форм. Имена ФормаЗагрузкиПользовательскихНастроекОтчетов, ФормаСохраненияПользовательскихНастроекОтчетов, ФормаЗагрузкиВариантовОтчетов, ФормаСохраненияВариантовОтчетов, ФормаЗагрузкиНастроекДанныхФорм и ФормаСохраненияНастроекДанныхФорм нужно использовать без имени объектов метаданных. //ОБРАТИТЬ СЮДА ВНИМАНИЕ Для внешних отчетов и обработок имя формы задается следующим образом: ВнешнийОтчет.<имя отчета>.Форма.<имя формы>; ВнешнийОтчет.<имя отчета>.<имя стандартной формы>; ВнешняяОбработка.<имя обработки>.Форма.<имя формы>; ВнешняяОбработка.<имя обработки>.<имя стандартной формы>. При этом внешний отчет или обработка должны быть предварительно зарегистрированы в системе с помощью метода Подключить или Подключить соответственно. <Имя отчета> и <имя обработки> - это имена, под которыми зарегистрированы внешний отчет или обработка. Тип: Структура. Параметры формы. Ключ структуры - имя параметра, а значение - значение параметра формы. Имя элемента должно совпадать с именем параметра структуры. Владелец формы - форма или элемент управления другой формы. Тип: Произвольный. В данном параметре может быть задан некоторый ключ, значение которого будет использоваться для поиска уже открытых форм. Если будет найдена форма с таким же ключом уникальности, вместо открытия новой формы будет активизирована найденная форма. Ложь - искать форму с ключом уникальности по умолчанию, Истина - не искать форму вообще, любое другое значение устанавливает ключ уникальности, по которому будет произведен поиск. Значение по умолчанию: Ложь Тип: ОкноКлиентскогоПриложения;ВариантОткрытияОкна. Окно приложения, в котором будет открыта форма. Применимо только для управляемой формы. Окном может быть только основное окно приложения или вспомогательное окно формы. Если указан тип ВариантОткрытияОкна, окно формы будет создано согласно выбранному варианту. Вариант синтаксиса: По форме Синтаксис: ОткрытьФорму(<Форма>, <Окно>) Параметры: Тип: Форма; УправляемаяФорма. Форма или управляемая форма. В режиме тонкого и веб-клиентов только управляемая форма. Тип: ОкноКлиентскогоПриложения; ВариантОткрытияОкна. Окно приложения, в котором будет открыта форма. Применимо только для управляемой формы. Окном может быть только основное окно приложения или вспомогательное окно формы. В случае использования ВариантОткрытияОкна, окно формы будет создано согласно выбранному варианту. Возвращаемое значение: Тип: Форма; УправляемаяФорма. Описание: Открывает и возвращает форму или управляемую форму. В тонком и веб-клиенте только управляемую форму. Перед открытием осуществляется поиск уже открытой такой же формы. Поиск осуществляется по типу формы, значениям ключевых параметров формы, владельцу формы, пользовательскому ключу уникальности. Можно открывать уже полученную форму. В этом случае в параметрах передается уже полученная форма и окно, в котором открыть форму. Можно открыть по имени формы. В этом случае в параметры передаются имя формы, параметры формы, владелец, ключ уникальности и окно, в котором должна быть открыта форма. Доступность: Тонкий клиент, веб-клиент, толстый клиент. Примечание: Для варианта "По названию" параметры вызова аналогичны параметрам метода ПолучитьФорму. Обычные формы внешних обработок не поддерживаются. В управляемом приложении не следует выполнять программное открытие и закрытие одной и той же формы в одном вызове встроенного языка. Если при открытии обычной формы в параметре <ИмяФормы> указано не стандартное имя формы, передаваемые параметры не обрабатываются. В процессе выполнения может быть несколько обращений к серверу. Часть из них кэшируются. Как минимум одно обращение к серверу есть всегда и оно не кэшируется. Кэширование зависит от версии платформы и версии конфигурации в целом. Если установлена низкая скорость соединения и не указывается текущая строка, то кэшируется форма выбора. Очистка кэша осуществляется с периодичностью в 20 мин. Удаляются формы, которые не использовались в этот период времени. См. также: Глобальный контекст, метод ПолучитьФорму Глобальный контекст, метод ПолучитьОбщуюФорму Глобальный контекст, метод ОткрытьФормуМодально
#14 by bborisko
К сожаление функция печать, которая вызывается при печати внешней печатной формы, находится в модуле объекта - и соответственно в УФ с сервера форму не открыть(
#15 by banco
а документацию БСП по созданию внешних печатных форм прочитал?
#16 by Alekzander
Короче, решил сделать немного по-другому: тупо открываю внешнюю обработку, выбираю нужный документ, нажимаю кнопку Заполнить (форма заполняется данными из дока) и вывожу уже на печать. Сейчас вот такая проблема нарисовалась: при попытке вывода на печать вылетает ошибка: {Форма.Форма.Форма}: Ошибка при вызове метода контекста (Печать)     Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);     по причине: Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа. по причине: Ошибка преобразования данных XDTO: НачалоСвойства: param    Форма: Элемент    Тип: { по причине: Ошибка отображения типов: Отсутствует отображение для типа '{' Насколько понял из прочитанного в инете, такая ошибка может говорить о разном, но всё же, в моём случае, что могло быть сделано не так?
#17 by Alekzander
PS функция Печать выполняется на сервере...
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С