Шаблон разработки печатных форм и подключения к конфигурациям на БСП 2.х и БСП 3.0

16 Comments

  1. d.samsonov92y
    «Вместо поставки внешних печатных форм в виде внешних обработок рекомендуется вести их разработку с помощью расширений конфигурации.» [ИТС, БСП гл. 3.38 Печать]

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

    за статью спс)

    Reply
  2. SarethDark

    Запрос в цикле? Сомнительное решение… Правильнее одним запросом выбрать данные по всем объектам, а потом в цикле обходить группировки.

    Reply
  3. feva

    Уххх сразу флэшбэки ловить начал. «Джони эти расширения по всюду, они даже во внешних обработках, Джони..». А Так спасибо!)

    Reply
  4. Кадош

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

    Reply
  5. user633533_encantado

    Весь модуль менеджера документа тащить в расширение ?

    Reply
  6. motorkuzbassa.it

    для УРБД это провал, расширения потребуется включать в обмен, в котором они будут ездить всегда, в отличии от допов, которые уезжают только при изменении…

    Reply
  7. simy4

    Подскажите пожалуйста, а если перед печатью нужно вывести диалоговое окно, как быть?

    Reply
  8. tolX5

    (7)Можно дать «круголя» в клиентский контекст, запросить у пользователя интерактивно доп. параметры перед печатью и вернуться назад на сервер в процедуру Печать модуля менеджера вот так:

    1. В процедуре ДобавитьКомандыПечати определяем в параметре КомандыПечати.Обработчик имя Клиентской функции, в которую перенаправим управление;

    2. Добавляем эту Клиентскую функцию в модуль формы обработки или общий клиентский модуль;

    3. Из клиентского контекста возвращаем управление на сервер вызовом метода УправлениеПечатьюКлиент.ВыполнитьКомандуПечати

    Например, вот так (1):

    Команда.Обработчик = «ПечатьАктПередачиНаКомиссиюКлиент»;

    (2) (3) Например так, в форме запрашиваем реквизит «Автомобиль» и передаем в процедуру формирования табличного документа на сервер.

    &НаКлиенте
    Перем ПараметрыФормы;
    
    &НаКлиенте
    Функция ПечатьАктПередачиНаКомиссиюКлиент(ПараметрыПечати) Экспорт
    
    ПараметрыФормы = ПараметрыПечати;
    
    ЭтотОбъект.РежимОткрытияОкна = РежимОткрытияОкнаФормы.БлокироватьОкноВладельца;
    ЭтотОбъект.Открыть();
    
    КонецФункции
    
    &НаКлиенте
    Процедура ПриЗакрытии(ЗавершениеРаботы)
    
    ДополнительныеПараметрыПечати = Новый Структура;
    ДополнительныеПараметрыПечати.Вставить(«Автомобиль», ЭтаФорма.Автомобиль);
    
    УправлениеПечатьюКлиент.ВыполнитьКомандуПечати(ПараметрыФормы.МенеджерПечати, ПараметрыФормы.Идентификатор,
    ПараметрыФормы.ОбъектыПечати, ПараметрыФормы.Форма, ДополнительныеПараметрыПечати);
    
    КонецПроцедуры
    

    Показать

    Reply
  9. tolX5

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

    Reply
  10. tolX5

    (5)Сама «соль» в том, что документ и его модуль менеджера «ваще» не трогаем, все в модуле обработки созданной в расширении.

    Reply
  11. tolX5

    (6) ушел от УРБД очень давно, неужели если нет изменений в расширении поедет в узел?

    Reply
  12. motorkuzbassa.it

    (11) Да.

    Reply
  13. motorkuzbassa.it

    (7)Используйте типовые шаблоны внешек БСП , они более чем , покрывают все потребности. и с предварительным окном и пр…

    Reply
  14. simy4

    (13)спасибо за совет. видимо я не до конца точно выразился.

    …как быть, при условии работы в расширении с конфигурациями на БСП 3.

    Reply
  15. simy4

    (8)благодарю. у меня получилось следующим образом:

    Менеджер обработки:

    Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
    
    Команда = КомандыПечати.Добавить();
    Команда.Представление = НСтр(«ru = ‘ТЕстовая печать (расширение)'»);
    Команда.Идентификатор = «ТестовыйИдентификатор»;
    Команда.ПроверкаПроведенияПередПечатью = Истина;
    Команда.Порядок = 1;
    Команда.Обработчик = «ОткрытьФормуПечати»;
    Команда.МенеджерПечати= «Обработка.ТестоваяПечать»;
    
    КонецПроцедуры
    

    Показать

    Форма обработки:

    &НаКлиенте
    Функция ОткрытьФормуПечати(ПараметрыПечати) Экспорт //процедура
    //кешируем параметры печати в реквизиты формы
    
    АдресОбъектовПечати = ПоместитьВоВременноеХранилище(ПараметрыПечати.ОбъектыПечати, УникальныйИдентификатор);
    МенеджерПечати   = ПараметрыПечати.МенеджерПечати;
    ИменаМакетов  = ПараметрыПечати.Идентификатор;
    Открыть();
    
    
    КонецФункции
    
    
    &НаКлиенте
    Процедура Печать(Команда)
    
    ОбъектыПечати = ПолучитьИзВременногоХранилища(АдресОбъектовПечати);
    УправлениеПечатьюКлиент.ВыполнитьКомандуПечати(МенеджерПечати, ИменаМакетов, ОбъектыПечати, ЭтотОбъект, Новый Структура(«Тест»));
    
    КонецПроцедуры

    Показать

    Reply
  16. mikecool

    (2) уже много мест в типовых переделано, где получаются данные по всему массиву переданных объектов, а далее по ключу забираются нужные

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *