К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

Помогите разобраться с табличным документом, а то я уже голову сломал

Гость
0 - 26.12.2014 - 08:44
Конфигурация БП 3.0
Внешняя обработка должна печатать список документов за какой либо период, например документы счета и акты за месяц.
в обработке на форме есть табличная часть, я ее в серверной процедуре заполняю списком документов.
затем по нажатии на кнопку "Печать" нужно все эти документы (перебором) распечатать автоматически.
ТабДок на серверной процедуре не доступен, а если передать на клиентскую процедуру результат таблицы значений со списком документов, он тоже там не доступен.
Когда я передаю из серверной процедуры на клиент ТабДок, то он всегда имеет только последнее значение, а остальные затираются. а нужно как то передать на клиента в ТабДок все табличныеДокументы, которые я хочу распечатать.
Как это реализовать?
и еще, можно ли как то сделать, чтобы печать сразу шла, без вызова преварительного просмотра?
спасибо.



Uho
1 - 26.12.2014 - 10:23
Общий модуль УправлениеПечатьюКлиент

// Выполнить команду печати, которая открывает результат в форме печати документов.
//
// Если в параметре ПараметрыПечати передать структуру, содержащую свойство
// ПереопределитьПользовательскиеНастройкиКоличества = Истина, то пользовательские
// настройки количества копий не будут восстановлены, и не запишутся.
Процедура ВыполнитьКомандуПечати(ИмяМенеджераПечати, ИменаМакетов, ПараметрКоманды, ВладелецФормы, ПараметрыПечати = Неопределено) Экспорт


// Выполнить команду печати, которая результат выводит на принтер
Процедура ВыполнитьКомандуПечатиНаПринтер(ИмяМенеджераПечати , ИменаМакетов, ПараметрКоманды, ПараметрыПечати = Неопределено) Экспорт
Гость
2 - 26.12.2014 - 10:54
Наверное я что то не так сделал. У меня в модуле формы обработки две процедуры:
&НаКлиенте
Процедура РаспечататьДокументы(Команда)
ТабДок = Новый ТабличныйДокумент;
РаспечататьДокументыНаСервере(ТабДок);
ТабДок.Показать();
КонецПроцедуры

////////////////////////////////////////////
&НаСервере
Процедура РаспечататьДокументыНаСервере(ТабДок)
Для каждого Стр Из Объект.Документы Цикл
Если Стр.Признак Тогда
Док = Стр.Документ;//получили ссылку документа
Если Лев(Строка(Док), 4) = "Счет" Тогда
Массив = Док;
МассивОбъектов = Новый Массив;
МассивОбъектов.Добавить(Док); //ссылка на документ
ОбъектПечати = Новый СписокЗначений;
ТаблицаСведенийСчетНаОплату = Документы.СчетНаОплатуПокупателю.ПолучитьТаблицуСв еденийСчетаНаОплату(Массив);
ТабДок = ПечатьТорговыхДокументов.ПечатьСчетаНаОплату(Табли цаСведенийСчетНаОплату, ОбъектПечати);

//тут я добавил процедуру:

УправлениеПечатью.СформироватьПечатныеФормыДляБыст ройПечати("Документ.СчетНаОплатуПокупателю", "СчетЗаказ", МассивОбъектов, Неопределено)
КонецЕсли;
КонецЕсли;
КонецЦикла;

КонецПроцедуры

//////////////
когда я вызываю из серверной процедуры процедуру общего модуля "УправлениеПечатьюКлиент", программа ругается, поскольку вызов сервера в этом модуле не установлен.
мне нужно воспользоваться чем то из сервера?
пока что результат не поменялся, я понимаю что не ту процедуру использую.
Uho
3 - 26.12.2014 - 11:18
МассивОбъектов формируешь на сервере и возвращаешь на клиент, на клиенте вызываешь "ВыполнитьКомандуПечати"

больше ничего делать не надо


К списку вопросов






Copyright ©, Все права защищены