Как передать ссылку на документ в управляемую внешнюю печатную форму
Показывать по
10
20
40
сообщений
- 1
- 2
06.05.2011
12:17
#1
Добрый день! Помогите пожалуйста со следующим вопросом.
В УТ 11 редакция (управляемое приложение) мне нужно создать внешнюю печатную форму, которая могла бы вызываться из документов некоторого типа и выполнять какие-то действия (в частности, печатать этикетки из документов Поступление товаров услуг и Перемещение товаров). Подключить внешнюю обработку удалось, указала и вид и назначение, и все остальное, что нужно - форма вызывается из нужных документов, НО: я никак не могу понять, как передать в обработку ссылку на вызвавший ее документ. В 10.3 это было реализовано через реквизит СсылкаНаОбъект, в который автоматически передавалась ссылка. В 11 редакции такого нет. Подскажите пожалуйста, как это сделать!
В УТ 11 редакция (управляемое приложение) мне нужно создать внешнюю печатную форму, которая могла бы вызываться из документов некоторого типа и выполнять какие-то действия (в частности, печатать этикетки из документов Поступление товаров услуг и Перемещение товаров). Подключить внешнюю обработку удалось, указала и вид и назначение, и все остальное, что нужно - форма вызывается из нужных документов, НО: я никак не могу понять, как передать в обработку ссылку на вызвавший ее документ. В 10.3 это было реализовано через реквизит СсылкаНаОбъект, в который автоматически передавалась ссылка. В 11 редакции такого нет. Подскажите пожалуйста, как это сделать!
06.05.2011
15:16
#3
Ну так в этой обработке тоже СсылкаНаОбъект выбирается на форме. А мне нужно, чтобы при добавлении печатной формы в виде внешней Дополнительной обработки вызывающий ее документ передавал в нее ссылку на себя (т.е. обработка еще "не знает, кто ее вызовет")
06.05.2011
16:03
#4
> "не знает, кто ее вызовет"
Понятно что не знает. Я не занимался еще управляемыми формами, но исследование найденного на просторах интернета "ТоварныйЧек" показало, что в процедуру Печать передается МассивОбъектовНазначения ...
Задайте в гугле СведенияОВнешнейОбработке и посмотрите темы на Мисте.
Понятно что не знает. Я не занимался еще управляемыми формами, но исследование найденного на просторах интернета "ТоварныйЧек" показало, что в процедуру Печать передается МассивОбъектовНазначения ...
Задайте в гугле СведенияОВнешнейОбработке и посмотрите темы на Мисте.
06.05.2011
16:49
#5
""Найденный на просторах интернета "ТоварныйЧек"""" я тоже смотрела. Только вот там МассивОбъектовНазначения формируется как: МассивОбъектовНазначения.Добавить(Объект.СсылкаНаОбъект); а СсылкаНаОбъект задается на форме, как я уже писала. С этим вариантом все ясно.
СведенияОВнешнейОбработке - это функция, которая возвращает РегистрационныеДанные об обработке, нужна чтобы подключить обработку в дополнительные, т.е. это совсем не то.
Мне нужно, чтобы зарегистрированная как дополнительная внешняя обработка, вызываясь из любого документа, получала себе ссылку на этот документ. Как подключить обработку и как ее вызывать я знаю, мне нужен только момент передачи ссылки. Вот этот момент я никак не пойму(("
СведенияОВнешнейОбработке - это функция, которая возвращает РегистрационныеДанные об обработке, нужна чтобы подключить обработку в дополнительные, т.е. это совсем не то.
Мне нужно, чтобы зарегистрированная как дополнительная внешняя обработка, вызываясь из любого документа, получала себе ссылку на этот документ. Как подключить обработку и как ее вызывать я знаю, мне нужен только момент передачи ссылки. Вот этот момент я никак не пойму(("
06.05.2011
16:57
#6
Я подключил эту обработку и из ЧекаККМ вызвал. Никакая форма кроме готового отчета у меня не открывалась. А Форма в обработке - это просто форма для тестирования. Из конфигурации идет прямое обращение к процедуре Печать.
Там даже в комментарии написано:
// Экспортная процедура печати, вызываемая из основной программы
Вот и обрабатывайте МассивОбъектовНазначения ...
Там даже в комментарии написано:
// Экспортная процедура печати, вызываемая из основной программы
Вот и обрабатывайте МассивОбъектовНазначения ...
11.05.2011
17:55
#7
А вы уверены, что открылся готовый отчет обработки, а не стандартная процедура печати? У меня открылась она...
>>Из конфигурации идет прямое обращение к процедуре Печать
++Поясните пожалуйста, не поняла, это как?
>>Вот и обрабатывайте МассивОбъектовНазначения
++Вобщем-то как раз это я и спрашиваю - как ее обработать, чтобы ссылку с процедуру передать(((
>>Из конфигурации идет прямое обращение к процедуре Печать
++Поясните пожалуйста, не поняла, это как?
>>Вот и обрабатывайте МассивОбъектовНазначения
++Вобщем-то как раз это я и спрашиваю - как ее обработать, чтобы ссылку с процедуру передать(((
11.05.2011
18:14
#8
"> А вы уверены, что открылся готовый отчет обработки
Абсолютно
> чтобы ссылку с процедуру передать
Ссылка в массиве!
В модуле обработки написано:
Скажите какое из слов: "МассивОбъектовНазначения - ... Как правило, содержит один элемент с ссылкой на вызвавший форму объект (документ, справочник)" было не понятно?
Поясняю: стандартный код общих модулей конфигурации вызывает процедуру Печать из в МодулеОбработки. Попробуйте убрать слово Экспорт и не будет у вас работать! Для платформы 8.1 точно также была нужна экспортная процедура Печать, только вызывалась без параметров, и параметром считался реквизит СсылкаНаОбъект. Теперь, судя по всему, нафиг никому не нужен, разве что для совместимости с 8.1."
Абсолютно
> чтобы ссылку с процедуру передать
Ссылка в массиве!
В модуле обработки написано:
// Экспортная процедура печати, вызываемая из основной программы
//
// Параметры:
// ВХОДЯЩИЕ:
// МассивОбъектовНазначения - Массив - список объектов ссылочного типа для печати документа
// Как правило, содержит один элемент с ссылкой на вызвавший форму объект (документ, справочник)
//
// ИСХОДЯЩИЕ:
// КоллекцияПечатныхФорм - ТаблицаЗначений - таблица сформированных табличных документов.
// Как правило, содержит одну строку с именем текущей печатной формы
// ОбъектыПечати - СписокЗначений - список объектов печати.
// ПараметрыВывода - Структура - Параметры сформированных табличных документов. Содержит поля:
// ДоступнаПечатьПоКомплектно - булево - по умолчанию Ложь
// ПолучательЭлектронногоПисьма
// ОтправительЭлектронногоПисьма
//
Процедура Печать(МассивОбъектовНазначения, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ТоварныйЧек") Тогда
ТабличныйДокумент = СформироватьПечатнуюФормуТоварногоЧека(МассивОбъектовНазначения, ОбъектыПечати);
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
КоллекцияПечатныхФорм,
"ТоварныйЧек",
"Товарный чек",
ТабличныйДокумент
);
КонецЕсли;
КонецПроцедуры
Скажите какое из слов: "МассивОбъектовНазначения - ... Как правило, содержит один элемент с ссылкой на вызвавший форму объект (документ, справочник)" было не понятно?
Поясняю: стандартный код общих модулей конфигурации вызывает процедуру Печать из в МодулеОбработки. Попробуйте убрать слово Экспорт и не будет у вас работать! Для платформы 8.1 точно также была нужна экспортная процедура Печать, только вызывалась без параметров, и параметром считался реквизит СсылкаНаОбъект. Теперь, судя по всему, нафиг никому не нужен, разве что для совместимости с 8.1."
11.05.2011
18:25
#9
"В этой обработке для печати товарного чека МассивОбъектовНазначения заполняется в модуле формы обработки:
Процедура ВыполнитьПечать()
МассивОбъектовНазначения = Новый Массив;
МассивОбъектовНазначения.Добавить(Объект.СсылкаНаОбъект);
.....
КонецПроцедуры
""""Как правило, содержит один элемент с ссылкой..."""" - ну да, что туда передадут, то и содержит.
Где мне сформировать этот МассивОбъектовНазначения перед вызовом печатной формы, ну никак я не пойму! =("
Процедура ВыполнитьПечать()
МассивОбъектовНазначения = Новый Массив;
МассивОбъектовНазначения.Добавить(Объект.СсылкаНаОбъект);
.....
КонецПроцедуры
""""Как правило, содержит один элемент с ссылкой..."""" - ну да, что туда передадут, то и содержит.
Где мне сформировать этот МассивОбъектовНазначения перед вызовом печатной формы, ну никак я не пойму! =("
11.05.2011
21:41
#10
В конфигурациях этих унифицированы алгоритмы обращения к внешним печатным формам, поэтому если форма подготовлена в соответствии с придуманными правилами, то она и подключается "ровно" и в нее система по умолчанию передает сама этот МассивОбъектов, который формирует в каком то общем модуле конфигурации. Вот тут кусок кода я приводил, который полностью устроил конфигурацию и через МассивОбъектов как раз внешняя обработка получала сведения о документе, который обычно в самом деле один, из которого она вызывается, тем не менее, не возбраняется передать массив ссылок и алгоритм сформировал бы в моем случае набор печатных форм.
- 1
- 2
Читают тему
(гостей: 1)