Печатная форма, ВызовКлиентскогоМетода или ОткрытиеФормы, БСП 2.2, как открыть в форме "ПечатьДокумента"?

1. PetroP 06.12.17 13:55 Сейчас в теме
Создаю внешнюю обработку типа "ПечатнаяФорма" для БСП 2.2.
Есть необходимость получать данные на клиенте. Для этого используется вариант запуска "ВызовКлиентскогоМетода" или "ОткрытиеФормы".
Сделано (в варианте "ВызовКлиентскогоМетода"):
1. функция "СведенияОВнешнейОбработке" в модуле объекта.
2. клиентская процедура "Печать" в модуле формы.
3. в модуле формы производится открытие формы, заполнение данных и формирование табличного документа.
Как открыть этот сформированный табличный документ в общей форме "ПечатьДокумента"?

p.s.: в БСП 2.3 и выше с этим проблем нет...
По теме из базы знаний
Найденные решения
2. user785506 09.01.18 22:26 Сейчас в теме
(1)
Уже не помню откуда был первоисточник, но в моей внешней обработке для БП 3.0.54.20 сделал так (извините, но не знаю как вставить чтобы выглядело как текст модуля):
- - -
В модуле объекта
функция СведенияОВнешнейОбработке:
ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.2.2.1");
ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиПечатнаяФорма();
ПараметрыРегистрации.Назначение.Добавить("Документ.СчетНаОплатуПокупателю");

НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы();
- - -
В форме обработки:
--
Добавлено два реквизита, тип СписокЗначений:
СзОбъектыНазначения
СзПараметры
- -
Процедура ПриСозданииНаСервере
СзПараметры.Добавить(Параметры.ДополнительнаяОбработкаСсылка,"ДополнительнаяОбработкаСсылка");
СзПараметры.Добавить(Параметры.ИдентификаторКоманды,"ИдентификаторКоманды");

Для Каждого ЭлементОбъектыНазначения Из Параметры.ОбъектыНазначения Цикл
СзОбъектыНазначения.Добавить(ЭлементОбъектыНазначения);
КонецЦикла;
- -
Добавлена Команда и Процедура НаКлиенте: ОткрытьПечФорму
//
ПараметрыОткрытия = Новый Структура("ИсточникДанных, ПараметрыИсточника");
ПараметрыОткрытия.ПараметрыИсточника = Новый Структура("ИдентификаторКоманды, ОбъектыНазначения");
//
Для каждого Запись Из СзПараметры Цикл
Если Запись.Представление="ДополнительнаяОбработкаСсылка" Тогда
ПараметрыОткрытия.ИсточникДанных = Запись.Значение;
ИначеЕсли Запись.Представление="ИдентификаторКоманды" Тогда
ПараметрыОткрытия.ПараметрыИсточника.ИдентификаторКоманды = Запись.Значение;
КонецЕсли;
КонецЦикла;
//
ПараметрыОткрытия.ПараметрыИсточника.ОбъектыНазначения = СзОбъектыНазначения;
ОткрытьФорму("ОбщаяФорма.ПечатьДокументов", ПараметрыОткрытия);
ЭтаФорма.Закрыть();
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user785506 09.01.18 22:26 Сейчас в теме
(1)
Уже не помню откуда был первоисточник, но в моей внешней обработке для БП 3.0.54.20 сделал так (извините, но не знаю как вставить чтобы выглядело как текст модуля):
- - -
В модуле объекта
функция СведенияОВнешнейОбработке:
ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.2.2.1");
ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиПечатнаяФорма();
ПараметрыРегистрации.Назначение.Добавить("Документ.СчетНаОплатуПокупателю");

НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы();
- - -
В форме обработки:
--
Добавлено два реквизита, тип СписокЗначений:
СзОбъектыНазначения
СзПараметры
- -
Процедура ПриСозданииНаСервере
СзПараметры.Добавить(Параметры.ДополнительнаяОбработкаСсылка,"ДополнительнаяОбработкаСсылка");
СзПараметры.Добавить(Параметры.ИдентификаторКоманды,"ИдентификаторКоманды");

Для Каждого ЭлементОбъектыНазначения Из Параметры.ОбъектыНазначения Цикл
СзОбъектыНазначения.Добавить(ЭлементОбъектыНазначения);
КонецЦикла;
- -
Добавлена Команда и Процедура НаКлиенте: ОткрытьПечФорму
//
ПараметрыОткрытия = Новый Структура("ИсточникДанных, ПараметрыИсточника");
ПараметрыОткрытия.ПараметрыИсточника = Новый Структура("ИдентификаторКоманды, ОбъектыНазначения");
//
Для каждого Запись Из СзПараметры Цикл
Если Запись.Представление="ДополнительнаяОбработкаСсылка" Тогда
ПараметрыОткрытия.ИсточникДанных = Запись.Значение;
ИначеЕсли Запись.Представление="ИдентификаторКоманды" Тогда
ПараметрыОткрытия.ПараметрыИсточника.ИдентификаторКоманды = Запись.Значение;
КонецЕсли;
КонецЦикла;
//
ПараметрыОткрытия.ПараметрыИсточника.ОбъектыНазначения = СзОбъектыНазначения;
ОткрытьФорму("ОбщаяФорма.ПечатьДокументов", ПараметрыОткрытия);
ЭтаФорма.Закрыть();
3. ipoloskov 162 26.02.18 12:13 Сейчас в теме
(2) Что-то туплю - не пойму, где в описанной схеме формируется и передается табличный документ - разобрался, табдок формируется в процедуре Печать модуля объекта.
У меня БСП 2.4.4. Автор пишет, что в БСП 2.3 и выше с этим проблем нет. Как можно сделать этих версиях?
4. user617395_levchenko 26.02.18 14:00 Сейчас в теме
(3) Я бы для начала попробовал так же как показал в (2) - может прокатит? В БСП 2.3 и выше еще не приходилось разбираться.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот