Регистрация Правила Главная форума Поиск |
0
- 26.12.2014 - 08:44
|
Конфигурация БП 3.0 Внешняя обработка должна печатать список документов за какой либо период, например документы счета и акты за месяц. в обработке на форме есть табличная часть, я ее в серверной процедуре заполняю списком документов. затем по нажатии на кнопку "Печать" нужно все эти документы (перебором) распечатать автоматически. ТабДок на серверной процедуре не доступен, а если передать на клиентскую процедуру результат таблицы значений со списком документов, он тоже там не доступен. Когда я передаю из серверной процедуры на клиент ТабДок, то он всегда имеет только последнее значение, а остальные затираются. а нужно как то передать на клиента в ТабДок все табличныеДокументы, которые я хочу распечатать. Как это реализовать? и еще, можно ли как то сделать, чтобы печать сразу шла, без вызова преварительного просмотра? спасибо. | |
1
- 26.12.2014 - 10:23
|
Общий модуль УправлениеПечатьюКлиент // Выполнить команду печати, которая открывает результат в форме печати документов. // // Если в параметре ПараметрыПечати передать структуру, содержащую свойство // ПереопределитьПользовательскиеНастройкиКоличества = Истина, то пользовательские // настройки количества копий не будут восстановлены, и не запишутся. Процедура ВыполнитьКомандуПечати(ИмяМенеджераПечати, ИменаМакетов, ПараметрКоманды, ВладелецФормы, ПараметрыПечати = Неопределено) Экспорт // Выполнить команду печати, которая результат выводит на принтер Процедура ВыполнитьКомандуПечатиНаПринтер(ИмяМенеджераПечати , ИменаМакетов, ПараметрКоманды, ПараметрыПечати = Неопределено) Экспорт | |
2
- 26.12.2014 - 10:54
|
Наверное я что то не так сделал. У меня в модуле формы обработки две процедуры: &НаКлиенте Процедура РаспечататьДокументы(Команда) ТабДок = Новый ТабличныйДокумент; РаспечататьДокументыНаСервере(ТабДок); ТабДок.Показать(); КонецПроцедуры //////////////////////////////////////////// &НаСервере Процедура РаспечататьДокументыНаСервере(ТабДок) Для каждого Стр Из Объект.Документы Цикл Если Стр.Признак Тогда Док = Стр.Документ;//получили ссылку документа Если Лев(Строка(Док), 4) = "Счет" Тогда Массив = Док; МассивОбъектов = Новый Массив; МассивОбъектов.Добавить(Док); //ссылка на документ ОбъектПечати = Новый СписокЗначений; ТаблицаСведенийСчетНаОплату = Документы.СчетНаОплатуПокупателю.ПолучитьТаблицуСв еденийСчетаНаОплату(Массив); ТабДок = ПечатьТорговыхДокументов.ПечатьСчетаНаОплату(Табли цаСведенийСчетНаОплату, ОбъектПечати); //тут я добавил процедуру: УправлениеПечатью.СформироватьПечатныеФормыДляБыст ройПечати("Документ.СчетНаОплатуПокупателю", "СчетЗаказ", МассивОбъектов, Неопределено) КонецЕсли; КонецЕсли; КонецЦикла; КонецПроцедуры ////////////// когда я вызываю из серверной процедуры процедуру общего модуля "УправлениеПечатьюКлиент", программа ругается, поскольку вызов сервера в этом модуле не установлен. мне нужно воспользоваться чем то из сервера? пока что результат не поменялся, я понимаю что не ту процедуру использую. | |
3
- 26.12.2014 - 11:18
|
МассивОбъектов формируешь на сервере и возвращаешь на клиент, на клиенте вызываешь "ВыполнитьКомандуПечати" больше ничего делать не надо | |
| Интернет-форум Краснодарского края и Краснодара |