Имя: Пароль:
1C
1С v8
Пакетная печать документов
0 егаис
 
07.07.15
11:14
Доброго дня
Есть некая обработка, в табличной части которого есть ссылки на документы "РеализацияТиУ". Подскажите, как реализовать пакетную печать Актов и Счетов-фактур?
1 Ёпрст
 
гуру
07.07.15
11:17
открыть групповую обработку документов, настроить отбор и печатать нужную печатную форму. усё.
2 егаис
 
07.07.15
11:18
штатно это понятно, мне нужно распечатать с самописной обработки. У юзера прав и интерфейс минимум - Счета и реализация. Плюс эта обработка
3 егаис
 
07.07.15
11:49
(1) даже если передавать ссылки в эту обработку, разьве  в БП 3 есть такая обработка?
4 Альбатрос
 
07.07.15
11:51
(2) А что за проблема-то? Есть соответствующие методы объекта...
5 егаис
 
07.07.15
11:58
(4) можно примером кинуть? буду признателен
6 егаис
 
07.07.15
12:08
МассивДокументов = Новый Массив;
    Для Каждого Строка Из Объект.Документы Цикл
        Если НЕ ЗначениеЗаполнено(Строка.Ссылка) Тогда  //нет документа, пропустим
            Продолжить;
        КонецЕсли;    
        МассивДокументов.Добавить(Строка.Ссылка);
    КонецЦикла;    
    Документы.РеализацияТоваровУслуг.Печать(МассивДокументов, Новый Структура, "Акт, СчетФактура", ОбъектыПечати)
Что есть объекты печати?
Так не работает почему-то
7 егаис
 
07.07.15
12:20
&НаСервере
Процедура РаспечататьНаСервере()
    
    МассивДокументов = Новый Массив;
    Для Каждого Строка Из Объект.Документы Цикл
        Если НЕ ЗначениеЗаполнено(Строка.Ссылка) Тогда  //нет документа, пропустим
            Продолжить;
        КонецЕсли;    
        МассивДокументов.Добавить(Строка.Ссылка);
    КонецЦикла;    
    
    Макеты = Новый ТаблицаЗначений;
    Макеты.Колонки.Добавить("ИмяМакета");
    Макеты.Колонки.Добавить("ИмяВРЕГ");
    Макеты.Колонки.Добавить("СинонимМакета");
    Макеты.Колонки.Добавить("ТабличныйДокумент");
    Макеты.Колонки.Добавить("Экземпляров");
    Макеты.Колонки.Добавить("Картинка");
    Макеты.Колонки.Добавить("ПолныйПутьКМакету");
    Макеты.Колонки.Добавить("ИмяФайлаПечатнойФормы");
    
    Макет = Макеты.Добавить();
    Макет.ИмяМакета = "Акт";
    Макет.ИмяВРЕГ = ВРег("Акт");
    Макет.Экземпляров = 2;

    Макет = Макеты.Добавить();
    Макет.ИмяМакета = "СчетФактура";
    Макет.ИмяВРЕГ = ВРег("СчетФактура");
    Макет.Экземпляров = 2;
    
    Документы.РеализацияТоваровУслуг.Печать(МассивДокументов, Новый Структура, Макеты, Новый СписокЗначений, Новый Структура);
    
КонецПроцедуры

все равно не выводится, чяднт?
8 mikecool
 
07.07.15
12:30
(6) нажми на печать в документе и посмотри, что туда должно попадать
сделай аналогично
профит
9 егаис
 
07.07.15
12:45
трындец, все сделал как в типовом, все оказалось проще
&НаСервере
Процедура РаспечататьНаСервере()
    
    МассивДокументов = Новый Массив;
    Для Каждого Строка Из Объект.Документы Цикл
        Если НЕ ЗначениеЗаполнено(Строка.Ссылка) Тогда  //нет документа, пропустим
            Продолжить;
        КонецЕсли;    
        МассивДокументов.Добавить(Строка.Ссылка);
    КонецЦикла;    
    
    Макеты = Новый Массив;
    Макеты.Добавить("Акт");    
    УправлениеПечатью.СформироватьПечатныеФормы("Документ.РеализацияТоваровУслуг", Макеты, МассивДокументов, Новый Структура("ДополнитьКомплектВнешнимиПечатнымиФормами", Ложь));
    
КонецПроцедуры

но все равно не печатает ((
10 егаис
 
07.07.15
13:33
где я туплю?
и такой вариант не работает
&НаСервере
Процедура РаспечататьНаСервере()
    
    МассивДокументов = Новый Массив;
    Для Каждого Строка Из Объект.Документы Цикл
        Если НЕ ЗначениеЗаполнено(Строка.Ссылка) Тогда  //нет документа, пропустим
            Продолжить;
        КонецЕсли;    
        МассивДокументов.Добавить(Строка.Ссылка);
    КонецЦикла;    
    
    ТаблицаСведенийАктаОбОказанииУслуг = Документы.РеализацияТоваровУслуг.ПолучитьТаблицуСведенийАктаОбОказанииУслуг(МассивДокументов);
    КоллекцияПечатныхФорм = УправлениеПечатью.ПодготовитьКоллекциюПечатныхФорм("Акт");
    СтруктураПараметровПечати = Новый Структура;
    СтруктураПараметровПечати.Вставить("ВидДокументаПечати",  "РеализацияТоваровУслуг");
    СтруктураПараметровПечати.Вставить("ИмяПараметровПечати", "ПАРАМЕТРЫ_ПЕЧАТИ_РеализацияТоваровУслуг_Акт");
    СтруктураПараметровПечати.Вставить("ИмяМакетаПечати",     "Документ.РеализацияТоваровУслуг.ПФ_MXL_Акт");
    УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "Акт", "Акт об оказании услуг",
        ПечатьТорговыхДокументов.ПечатьАктаОбОказанииУслуг(ТаблицаСведенийАктаОбОказанииУслуг, Новый СписокЗначений, СтруктураПараметровПечати),,
                "Документ.РеализацияТоваровУслуг.ПФ_MXL_Акт");
                
    КонецПроцедуры
11 Альбатрос
 
07.07.15
13:38
ну так может ошибки огласишь?
12 егаис
 
07.07.15
13:40
просто не выводится макет, видно что отрабаывает код (по времени), но макета нет
13 Альбатрос
 
07.07.15
13:43
(12) Ну отладчиком тогда, у меня нет под рукой БП3
14 егаис
 
07.07.15
14:23
ептыть, через гланды решил. Может кому пригодиться
&НаКлиенте
Функция Распечатать(Команда)
    
    МассивДокументов = Новый Массив;
    Для Каждого Строка Из Объект.Документы Цикл
        Если НЕ ЗначениеЗаполнено(Строка.Ссылка) Тогда  //нет документа, пропустим
            Продолжить;
        КонецЕсли;    
        МассивДокументов.Добавить(Строка.Ссылка);
    КонецЦикла;    
    
    ТабДок = ПечатьАктаВыполненныхРабот(МассивДокументов);
    
    КоллекцияПечатныхФорм = УправлениеПечатьюКлиент.НоваяКоллекцияПечатныхФорм("Макет");
    ПечатнаяФорма = УправлениеПечатьюКлиент.ОписаниеПечатнойФормы(КоллекцияПечатныхФорм, "Макет");
    ПечатнаяФорма.ТабличныйДокумент = ТабДок;
    УправлениеПечатьюКлиент.ПечатьДокументов(КоллекцияПечатныхФорм);
    
КонецФункции

&НаСервере
Функция ПечатьАктаВыполненныхРабот(МассивДокументов)
    
    ТаблицаСведенийАктаОбОказанииУслуг = Документы.РеализацияТоваровУслуг.ПолучитьТаблицуСведенийАктаОбОказанииУслуг(МассивДокументов);
    СтруктураПараметровПечати = Новый Структура;
    СтруктураПараметровПечати.Вставить("ВидДокументаПечати",  "РеализацияТоваровУслуг");
    СтруктураПараметровПечати.Вставить("ИмяПараметровПечати", "ПАРАМЕТРЫ_ПЕЧАТИ_РеализацияТоваровУслуг_Акт");
    СтруктураПараметровПечати.Вставить("ИмяМакетаПечати",     "Документ.РеализацияТоваровУслуг.ПФ_MXL_Акт");
    Возврат ПечатьТорговыхДокументов.ПечатьАктаОбОказанииУслуг(ТаблицаСведенийАктаОбОказанииУслуг, Новый СписокЗначений, СтруктураПараметровПечати);
    
КонецФункции
Ошибка? Это не ошибка, это системная функция.