Использование команд печати для запуска форм выбора.
Доброго всем времени суток!
Недавно столкнулся со следующй задачей, может многоопытные мне подскажут куда копать. Решил я активно юзать бсп, и все было хорошо и замечательно но возникло несколько вопросов. Конкретно следующий, раньше я пользовался ВПФ и все в них просто и понятно, если перед запуском отчета нужна была форма с выбором некоторых значений то в ВПФ это реализуется легко и просто, а вот как такое сделать используя команды печати в БСП. Не теоретически понятно, что нужно указать свой менеджер и обработчик в командах печати, но в документации БСП таких примеров нету, пока я для скорости работы сделал клиенту отчет на ВПФ, но хотелось бы перенести эти печатные формы в расширение для клиента и вот тут я встрял ибо решительно непонятно как это сделать, а на эксперименты нет времени ибо сроки. Есть у кого наработки или подсказки как это сделать?
Недавно столкнулся со следующй задачей, может многоопытные мне подскажут куда копать. Решил я активно юзать бсп, и все было хорошо и замечательно но возникло несколько вопросов. Конкретно следующий, раньше я пользовался ВПФ и все в них просто и понятно, если перед запуском отчета нужна была форма с выбором некоторых значений то в ВПФ это реализуется легко и просто, а вот как такое сделать используя команды печати в БСП. Не теоретически понятно, что нужно указать свой менеджер и обработчик в командах печати, но в документации БСП таких примеров нету, пока я для скорости работы сделал клиенту отчет на ВПФ, но хотелось бы перенести эти печатные формы в расширение для клиента и вот тут я встрял ибо решительно непонятно как это сделать, а на эксперименты нет времени ибо сроки. Есть у кого наработки или подсказки как это сделать?
По теме из базы знаний
Найденные решения
В общем закончив штопать отчетные формочки клиенту с помощью ВПФ, таки решил сесть и разобраться с вопросом как же реализовывать дополнительную форму в расширении с помощью БСП, почитав внимательно документацию нашел там следующее
Решение оказалось на диво простое
Ну и соответсвенно в коде основной формы отчета размещаем
Как вариант можно сделать эту функцию в общем модуле и обращаться к ней, но тут как кому удобно.
И чуть не забыл при использовании клиентского контекста передается только структура в которой и хранится все, у меня это честно выдранное из текста по БСП "ПараметрыПечати", там же мы получаем документы для печати ПараметрыПечати.ОбъектыПечати
И все заработало,спасибо тем кто захотел помочь.
В отдельных случаях для формирования некоторых печатных форм может потребоваться клиентский контекст. Например, для запроса дополнительных параметров печатной формы у пользователя непосредственно перед печатью. В таких случаях механизм формирования печатной формы необходимо размещать в клиентском модуле, а при описании команды печати в процедуре ДобавитьКомандыПечати использовать параметр Обработчик для передачи управления в этот модуль.
Решение оказалось на диво простое
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.МенеджерПечати = "Отчет.МойОтчет"; //здесь указываем очет в котором находится экспортная процедура
КомандаПечати.Идентификатор = "ТестовыйОтчет";
КомандаПечати.Представление = НСтр("ru = 'Тестовый Отчет'");
КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
КомандаПечати.Обработчик="ОткрытьФормуМоегоОтчета"; //это экспортая функция размещенная на основной форме отчета
Ну и соответсвенно в коде основной формы отчета размещаем
Функция ОткрытьФормуМоегоОтчета(ПараметрыПечати) Экспорт
ПараметрыПечати= Новый Структура;
ПараметрыПечати.Вставить("ПараметрыПечати",ПараметрыПечати);
ОткрытьФорму("Отчет.МЭС_ОтчетТестовый.Форма.ФормаНекихПараметров",ПараметрыПечати);
КонецФункции
Как вариант можно сделать эту функцию в общем модуле и обращаться к ней, но тут как кому удобно.
И чуть не забыл при использовании клиентского контекста передается только структура в которой и хранится все, у меня это честно выдранное из текста по БСП "ПараметрыПечати", там же мы получаем документы для печати ПараметрыПечати.ОбъектыПечати
И все заработало,спасибо тем кто захотел помочь.
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2) Ну согласен, только если в ВПФ достаточно создать форму и в Использовании указать ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы() то вот как это задействовать в БСП мне не совсем понятно. Если бы мне нужно было просто создать открытие формы отчета по кнопке с выпадающим меню то я бы использовал подключаемые команды и все было бы прекрасно. Но мне надо встроить в уже существующий набор команд печати, а вот здесь я поплыл.
В общем закончив штопать отчетные формочки клиенту с помощью ВПФ, таки решил сесть и разобраться с вопросом как же реализовывать дополнительную форму в расширении с помощью БСП, почитав внимательно документацию нашел там следующее
Решение оказалось на диво простое
Ну и соответсвенно в коде основной формы отчета размещаем
Как вариант можно сделать эту функцию в общем модуле и обращаться к ней, но тут как кому удобно.
И чуть не забыл при использовании клиентского контекста передается только структура в которой и хранится все, у меня это честно выдранное из текста по БСП "ПараметрыПечати", там же мы получаем документы для печати ПараметрыПечати.ОбъектыПечати
И все заработало,спасибо тем кто захотел помочь.
В отдельных случаях для формирования некоторых печатных форм может потребоваться клиентский контекст. Например, для запроса дополнительных параметров печатной формы у пользователя непосредственно перед печатью. В таких случаях механизм формирования печатной формы необходимо размещать в клиентском модуле, а при описании команды печати в процедуре ДобавитьКомандыПечати использовать параметр Обработчик для передачи управления в этот модуль.
Решение оказалось на диво простое
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.МенеджерПечати = "Отчет.МойОтчет"; //здесь указываем очет в котором находится экспортная процедура
КомандаПечати.Идентификатор = "ТестовыйОтчет";
КомандаПечати.Представление = НСтр("ru = 'Тестовый Отчет'");
КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
КомандаПечати.Обработчик="ОткрытьФормуМоегоОтчета"; //это экспортая функция размещенная на основной форме отчета
Ну и соответсвенно в коде основной формы отчета размещаем
Функция ОткрытьФормуМоегоОтчета(ПараметрыПечати) Экспорт
ПараметрыПечати= Новый Структура;
ПараметрыПечати.Вставить("ПараметрыПечати",ПараметрыПечати);
ОткрытьФорму("Отчет.МЭС_ОтчетТестовый.Форма.ФормаНекихПараметров",ПараметрыПечати);
КонецФункции
Как вариант можно сделать эту функцию в общем модуле и обращаться к ней, но тут как кому удобно.
И чуть не забыл при использовании клиентского контекста передается только структура в которой и хранится все, у меня это честно выдранное из текста по БСП "ПараметрыПечати", там же мы получаем документы для печати ПараметрыПечати.ОбъектыПечати
И все заработало,спасибо тем кто захотел помочь.
(11) Сам себя не похвалишь - никто не похвалит! ))
Да, именно так это и работает в принципе.
Молодец, конечно, что самостоятельно до этого допёр! Сейчас на форуме редко кто хочет самостоятельно шевелить мозгами, даже ему указали доскональное направление (в хорошем смысле).
Да, именно так это и работает в принципе.
Молодец, конечно, что самостоятельно до этого допёр! Сейчас на форуме редко кто хочет самостоятельно шевелить мозгами, даже ему указали доскональное направление (в хорошем смысле).
Решение оказалось неожиданно простым, подобных примеров в демке БСП я не нашел, даже странно. В ВПФ там легко и просто все делается, а тут несколько перемудрили. А ответ сюда поместил я для других программистов, поскольку в документации, скажем честно об этом сказано вскользь, в демке БСП пример на который ссылается документация вообще не связан с формой просто показана возможность. Так что вдруг кому еще пригодится.
И да, нигде не сказано что в Команда.МенеджерПечати можно размещать ссылку на объект, где нет процедуры Печать об этом можно догадаться только изучив демку с БСП :) Ну или очень внимательно читая документацию, там есть этот пример, но без пояснений.
И да, нигде не сказано что в Команда.МенеджерПечати можно размещать ссылку на объект, где нет процедуры Печать об этом можно догадаться только изучив демку с БСП :) Ну или очень внимательно читая документацию, там есть этот пример, но без пояснений.
(13) Да, баловался я как-то этими печатными формами основательно...
Прикрепленные файлы:
Руководство пользователя НПФ 1.0.docx
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот