Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   Помогите разобраться с табличным документом, а то я уже голову сломал (http://forums.kuban.ru/f1040/pomogite_razobrat-sya_s_tablichnym_dokumentom_ya_uzhe_golovu_slomal-6390986.html)

Antidot 26.12.2014 08:44

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

Uho 26.12.2014 10:23

Общий модуль УправлениеПечатьюКлиент

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


// Выполнить команду печати, которая результат выводит на принтер
Процедура ВыполнитьКомандуПечатиНаПринтер(ИмяМенеджераПечати, ИменаМакетов, ПараметрКоманды, ПараметрыПечати = Неопределено) Экспорт

Antidot 26.12.2014 10:54

Наверное я что то не так сделал. У меня в модуле формы обработки две процедуры:
&НаКлиенте
Процедура РаспечататьДокументы(Команда)
ТабДок = Новый ТабличныйДокумент;
РаспечататьДокументыНаСервере(ТабДок);
ТабДок.Показать();
КонецПроцедуры

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

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

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

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

//////////////
когда я вызываю из серверной процедуры процедуру общего модуля "УправлениеПечатьюКлиент", программа ругается, поскольку вызов сервера в этом модуле не установлен.
мне нужно воспользоваться чем то из сервера?
пока что результат не поменялся, я понимаю что не ту процедуру использую.

Uho 26.12.2014 11:18

МассивОбъектов формируешь на сервере и возвращаешь на клиент, на клиенте вызываешь "ВыполнитьКомандуПечати"

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


Текущее время: 07:27. Часовой пояс GMT +3.