Как передать в процедуру печати БСП доп. параметры?
☑
0
toypaul
гуру
03.09.21
✎
10:25
И не просто статичные параметры, которые можно объявить при добавлении команды, а параметры, которые определяются (выбором в форме) перед печатью.
1
toypaul
гуру
03.09.21
✎
10:36
Ничего лучше не придумалось ...
Процедура ПередатьВПараметрыКоманды(ИмяКоманды, ДополнительныеПараметры)
АдресКомандПечатиВоВременномХранилище = ЭтотОбъект.Команды.Найти("АдресКомандПечатиВоВременномХранилище").Действие;
КомандыПечати = ПолучитьИзВременногоХранилища(АдресКомандПечатиВоВременномХранилище);
НайденныеСтроки = КомандыПечати.НайтиСтроки(Новый Структура("ИмяКомандыНаФорме", ИмяКоманды));
Для каждого КомандаПечати Из НайденныеСтроки Цикл
Для каждого Элемент Из ДополнительныеПараметры Цикл
КомандаПечати.ДополнительныеПараметры.Вставить(Элемент.Ключ, Элемент.Значение);
КонецЦикла;
КонецЦикла;
ПоместитьВоВременноеХранилище(КомандыПечати, АдресКомандПечатиВоВременномХранилище);
КонецПроцедуры
вызывается из команды обработки печати
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("МойПараметр", МойПараметр);
ПередатьВПараметрыКоманды(КомандаДопПараметр.Имя, ДополнительныеПараметры);
УправлениеПечатьюКлиент.ВыполнитьПодключаемуюКомандуПечати(КомандаДопПараметр, ЭтотОбъект, Объект);
2
runoff_runoff
03.09.21
✎
13:44
может пойти другим путем.. создать печатную форму БСП с выполнением на клиенте (клиентский метод).. а потом получать параметры из ВладелецФормы?..
3
toypaul
гуру
03.09.21
✎
13:55
(2) слишком муторно. кроме того у меня не внешняя ПФ
4
runoff_runoff
03.09.21
✎
15:11
годится для внешних или из расширения..
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший