|
БП 3.0: внешняя печатная форма - открыть форму из формы объекта назначения и пер | ☑ | ||
---|---|---|---|---|
0
Kleo
09.12.13
✎
09:15
|
Здравствуйте!
Необходимо в БП 3.0 сделать внешнюю печатную форму к документу "Счет на оплату покупателю", при нажатии на имя печ.формы - открывается форма обработки печатной формы. это все работает. но никак не могу передать значение ОбъектаНазначения в модуль формы, чтобы использовать этот параметр в дальнейшем для запроса. в модуле объекта у меня: Функция СведенияОВнешнейОбработке() Экспорт РегистрационныеДанные = Новый Структура; РегистрационныеДанные.Вставить("Наименование", "Печать ТТН"); РегистрационныеДанные.Вставить("БезопасныйРежим", Истина); РегистрационныеДанные.Вставить("Версия", "1.0"); //ДополнительнаяОбработка //ДополнительныйОтчет //ЗаполнениеОбъекта //Отчет //ПечатнаяФорма //СозданиеСвязанныхОбъектов РегистрационныеДанные.Вставить("Вид", "ПечатнаяФорма"); РегистрационныеДанные.Вставить("Информация", "Обработка для печати ТТН "); ///////////// команды ///////////////////////// тзКоманд = Новый ТаблицаЗначений; тзКоманд.Колонки.Добавить("Идентификатор"); тзКоманд.Колонки.Добавить("Представление"); тзКоманд.Колонки.Добавить("Модификатор"); тзКоманд.Колонки.Добавить("ПоказыватьОповещение"); тзКоманд.Колонки.Добавить("Использование"); строкаКоманды = тзКоманд.Добавить(); строкаКоманды.Идентификатор = "1"; строкаКоманды.Представление = "Печать ТТН"; строкаКоманды.ПоказыватьОповещение = Истина; строкаКоманды.Использование = "ОткрытиеФормы"; строкаКоманды = тзКоманд.Добавить(); строкаКоманды.Идентификатор = "2"; строкаКоманды.Представление = "команда ""Hello Word"" (ВызовКлиентскогоМетода)"; строкаКоманды.ПоказыватьОповещение = Истина; строкаКоманды.Использование = "ВызовКлиентскогоМетода"; //строкаКоманды = тзКоманд.Добавить(); //строкаКоманды.Идентификатор = "3"; //строкаКоманды.Представление = "команда ""Hello Word"" (ВызовСерверногоМетода)"; //строкаКоманды.ПоказыватьОповещение = Истина; //строкаКоманды.Использование = "ВызовСерверногоМетода"; //строкаКоманды.ПоказыватьОповещение = "Истина"; РегистрационныеДанные.Вставить("Команды", тзКоманд); ////////////// назначение (в каких объектах используется) ///////////////////////// //для печ.форм, заполнения, ввода свазанных объектов МассивНазначений = Новый Массив; //МассивНазначений.Добавить("Документ.*"); // все документы назначаются МассивНазначений.Добавить("Документ.СчетНаОплатуПокупателю"); РегистрационныеДанные.Вставить("Назначение", МассивНазначений); Возврат РегистрационныеДанные; КонецФункции в модуле формы: &НаКлиенте Процедура ПечатьТТН(Команда) // Вставить содержимое обработчика. //Сообщение = Новый СообщениеПользователю; //Сообщение.Текст = "Hello Word (из формы обработки)"; //Сообщение.Сообщить(); Печать(ИдентификаторКоманды, ОбъектыНазначения); Сообщить("Док" + Объект.СсылкаНаОбъект); КонецПроцедуры &НаКлиенте Процедура Печать(ИдентификаторКоманды, ОбъектыНазначения) Экспорт Сообщить("!!!!!"); Для каждого ОбъектНазначение из ОбъектыНазначения Цикл Сообщить("док "+ОбъектНазначение); КонецЦикла; Объект.СсылкаНаОбъект = ОбъектНазначение; //Если ИдентификаторКоманды = "2" Тогда // // // // Сообщение = Новый СообщениеПользователю; // // Текст = "Hello Word (ВызовКлиентскогоМетода)"; // // Текст = Текст + Символы.ПС; // // Для каждого ОбъектНазначение из ОбъектыНазначения Цикл // // Текст = Текст + ОбъектНазначение + Символы.ПС; // // КонецЦикла; // // // // Сообщение.Текст = Текст; // // Сообщение.Сообщить(); // //КонецЕсли; КонецПроцедуры так вот ссылку на объект в первой процедуре не определяет, а во второй видет, что это счет на оплату. как передать док. Счет на оплату в первую процедуру? ПечатьТТН - это кнопка на форме внешней печатной формы |
|||
1
Fedot200
09.12.13
✎
09:25
|
А если не так Сообщить("Док" + Объект.СсылкаНаОбъект);
а вот так Сообщить("Док" + ОбъектыНазначения[0].Ссылка); что будет? |
|||
2
Мимохожий Однако
09.12.13
✎
09:30
|
Есть примеры на инфостарте и в демо БСП.
|
|||
3
Kleo
09.12.13
✎
09:42
|
(1) без разницы. в процедуре Печать обработка понимает, что такое ОбъектыНазначения, а в ПечатьТТН - нет
|
|||
4
Kleo
09.12.13
✎
09:44
|
(2) там есть, но без открытия формы. нашла на инфостате, что нужно наоборот паараметры формы передатьв модуль объекта для процедуры печати, но непонятно в конце, какую все-таки форму открывают. форму документа?
|
|||
5
Kleo
09.12.13
✎
10:20
|
(2) скачала БСП и где смотреть примеры?
|
|||
6
Kleo
09.12.13
✎
10:23
|
нашла. там есть демо обработка внешней печатной формы, но без открытия доп.формы обработки
|
|||
7
Kleo
09.12.13
✎
10:27
|
подскажите, как быть? есть внешняя обработка печатной формы. есть у этой обаботки форма. все работает, она открывается. на этой форме есть реквизиты. так вот потом есть кнопка на этой форме, после нажатия на которую должна сформировать печатная форма. это все я знаю, как сделать. обычную печатную форму делала. проблема в том, что после открытия формы обработки не достпно значение структуры данных ОбъектыНазначения. как их вытащить.
|
|||
8
Kleo
09.12.13
✎
11:17
|
Получилось! Разоблась! Спасибо! Помогла обработка заполнения из БСП.
Сделала в модуле формы внешней обработки следующий код: &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) Для Каждого ЭлементОбъектыНазначения Из Параметры.ОбъектыНазначения Цикл ОбъектыНазначения.Добавить(ЭлементОбъектыНазначения); КонецЦикла; ИдентификаторКоманды = Параметры.ИдентификаторКоманды; КонецПроцедуры &НаСервере Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначения)Экспорт Сообщить("Привет"); Для каждого ОбъектНазначение из ОбъектыНазначения Цикл Сообщить("док "+ОбъектНазначение); КонецЦикла; КонецПроцедуры &НаКлиенте Процедура ПечатьТТН(Команда) ОбъектыНазначенияМассив = ОбъектыНазначения.ВыгрузитьЗначения(); ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначенияМассив); КонецПроцедуры А до этого в параметры формы добавила три параметра: 1) ДополнительнаяОбработкаСсылка - тип: СправочникСсылка.ДополнительныеОтчетыИОбработки (ключевой параметр) 2) ИдентификаторКоманды Тип - Строка 3) ОбъектыНазначения - Тип - Произвольный Затем в реквизитах формы добавляется два реквизита: 1) ИдентификаторКоманды Тип - Строка 2) ОбъектыНазначения - Тип - Список значений все в команде Выполнить команду я получила объект назначения!!! а дальше запрос и вывод печатной формы! |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |