&НаКлиенте
Процедура ПечатьАкта(Команда)
СтандартнаяОбработка = Ложь;
ПараметрыИсточника = Новый Структура;
ПараметрыИсточника.Вставить("ИдентификаторКоманды", Параметры.ИдентификаторКоманды);
ПараметрыИсточника.Вставить("ОбъектыНазначения", Параметры.ОбъектыНазначения);
ПараметрыОткрытия = УправлениеПечатьюСлужебныйКлиент.ПараметрыОткрытияФормыПечати();
ПараметрыОткрытия.Вставить("ИсточникДанных", Параметры.ДополнительнаяОбработкаСсылка);
ПараметрыОткрытия.Вставить("ПараметрыИсточника", ПараметрыИсточника);
ПараметрыОткрытия.Вставить("ПараметрКоманды", Параметры.ОбъектыНазначения);
ПараметрыОткрытия.УникальныйИдентификаторХранилища = ЭтаФорма.УникальныйИдентификатор;
СформированныеПечатныеФормы = УправлениеПечатьюВызовСервера.НачатьФормированиеПечатныхФорм(ПараметрыОткрытия);
ПараметрыОткрытия.ВладелецФормы = ВладелецФормы;
РезультатФоновойОперации = Новый Структура;
РезультатФоновойОперации.Вставить("Статус", "Выполнено");
РезультатФоновойОперации.Вставить("КраткоеПредставлениеОшибки", "");
РезультатФоновойОперации.Вставить("ПодробноеПредставлениеОшибки", "");
РезультатФоновойОперации.Вставить("Сообщения", Новый ФиксированныйМассив(Новый Массив));
РезультатФоновойОперации.Вставить("АдресРезультата", ПоместитьВоВременноеХранилище(СформированныеПечатныеФормы, ПараметрыОткрытия.УникальныйИдентификаторХранилища));
ВыполнитьКомандуПечатиПослеФормированияПечатныхФорм(РезультатФоновойОперации, ПараметрыОткрытия);
КонецПроцедуры
&НаКлиенте
Процедура ВыполнитьКомандуПечатиПослеФормированияПечатныхФорм(РезультатФоновойОперации, ПараметрыОткрытия) Экспорт
Если РезультатФоновойОперации <> Неопределено Тогда
Если РезультатФоновойОперации.Статус = "Ошибка" Тогда
ВызватьИсключение РезультатФоновойОперации.КраткоеПредставлениеОшибки;
КонецЕсли;
СтруктураРезультата = ПолучитьИзВременногоХранилища(РезультатФоновойОперации.АдресРезультата);
ПараметрыОткрытия.Вставить("ОбъектыПечати", СтруктураРезультата.ОбъектыПечати);
ПараметрыОткрытия.Вставить("ПараметрыВывода", СтруктураРезультата.ПараметрыВывода);
ПараметрыОткрытия.Вставить("ПараметрыПечати", СтруктураРезультата.ПараметрыПечати);
КоллекцияПечатныхФорм = СтруктураРезультата.КоллекцияПечатныхФорм;
ОфисныеДокументы = СтруктураРезультата.ОфисныеДокументы;
Для Каждого ПечатнаяФорма Из КоллекцияПечатныхФорм Цикл
ОфисныеДокументыНовыеАдреса = Новый Соответствие();
Если ЗначениеЗаполнено(ПечатнаяФорма.ОфисныеДокументы) Тогда
Для Каждого ОфисныйДокумент Из ПечатнаяФорма.ОфисныеДокументы Цикл
ОфисныеДокументыНовыеАдреса.Вставить(ПоместитьВоВременноеХранилище(ОфисныеДокументы[ОфисныйДокумент.Ключ], ПараметрыОткрытия.УникальныйИдентификаторХранилища), ОфисныйДокумент.Значение);
КонецЦикла;
ПечатнаяФорма.ОфисныеДокументы = ОфисныеДокументыНовыеАдреса;
КонецЕсли;
КонецЦикла;
ПараметрыОткрытия.Вставить("КоллекцияПечатныхФорм", КоллекцияПечатныхФорм);
СообщенияЗадания = Новый Массив(РезультатФоновойОперации.Сообщения);
ОбщегоНазначенияКлиентСервер.ДополнитьМассив(СообщенияЗадания, СтруктураРезультата.Сообщения);
ПараметрыОткрытия.Вставить("Сообщения", СообщенияЗадания);
ВладелецФормы = ПараметрыОткрытия.ВладелецФормы;
ПараметрыОткрытия.Удалить("ВладелецФормы");
ОткрытьФорму("ОбщаяФорма.ПечатьДокументов", ПараметрыОткрытия, ВладелецФормы, Строка(Новый УникальныйИдентификатор));
КонецЕсли;
КонецПроцедуры |