Имя: Пароль:
1C
 
Напечатать документы из отчета
,
0 Sochinec
 
19.06.24
17:56
УНФ
Сделан свой отчет на СКД  
Прошу подсказать - необходимо распечатать все документы необходимой печатной формой
смысл такой - одним клиентам будет одна печатная форма - другим другая

Отчет сделан . форма отчета то же
1 - как получить массив документов из отчета
2 -ну и вывести этот массив на печать

Спасибо
1 ЖНЕЦ
 
19.06.24
18:35
(0) Элементарно
в расшифровку контрагента - массив документов
в расшифровку КНОПКИ - массив контрагентов

нажал на кнопку -цикл
по контрагентами (у них должен признак какой макет печатать)
по всем его документам - печать
2 Sochinec
 
20.06.24
12:32
Не получилось ... сделал обработку где заполнена ТЧ ссыками док реализация
подскажите что должно быть в коде что бы масово напечатать УПД
Спасибо
3 Волшебник
 
20.06.24
12:34
(2) цикл
4 Sochinec
 
20.06.24
12:37
(3) да помню что надо создать массив док и передать - а куда не помню в бсп -))
Но там еще у меня будет что для разных кл разная печ форма
5 Волшебник
 
20.06.24
12:39
(4) попроб-й всё таки напис прог код и покаж его нам что б мы заценили, крут ты или чушь городиш_ъ
Как слышно, приём?
6 Михаил Козлов
 
20.06.24
12:40
Посмотрите в Вашей конфигурации, что является менеджером печати для УПД. В КА - обработка ПечатьОбщихФорм. Скорее всего, у менеджера печати есть процедура Печать(...), в которую нужно передать массив ссылок на счета-фактуры выданные.
Т.е. предварительно нужно эти СФ создать (и заполнить. Например, установить дату СФ).
Либо (3) в цикле создать СФ и распечатать.
Либо просто создать СФ, а печать массива документов - штатными средствами.
7 Мультук
 
гуру
20.06.24
12:51
(0)

Как я понимаю суть задачи.

Есть отчёт на СКД.
Пользователь вводит свои параметры и отборы, жмёт кнопку -- и отчёт выводит ему некий список документов (возможно с доп.полями: контрагент, сумма и т.п.)

Далее пользователь хочет по нажатию кнопки для каждого документа, что есть в отчете, напечатать некие печатные формы

У Sochinec по этому поводу вопрос: а как достать эти самые ссылки на документы из готового отчёта?

1) Вариант 1
В тайне от пользователя сформировать отчёт еще раз, но не в табличный документ, а  в таблицуЗначений
Минусы:
-- отчёт то поменяется
-- если структура отчёта это "таблица", то ничего не выйдет

2) Обойти расшифровки отчёта и достать данные оттуда
Нюанс: скорее всего по нужному полю должна быть группировка (не проверял)

Пример из СКД отчёта (но увы под обычные формы, возможно для УФ нужно что-то "подправить"

Функция МассивКонтрагентов()
    ТипЛяля = Тип("СправочникСсылка.Контрагенты");
    
    мас = Новый Массив;
    Для каждого строка из ДанныеРасшифровки.Элементы Цикл
        Если ТипЗнч(строка) = Тип("ЭлементРасшифровкиКомпоновкиДанныхПоля") Тогда
                ПоляЭлемента = Строка.ПолучитьПоля();
                Для каждого строкаПоля из ПоляЭлемента Цикл
                    Если строкаПоля.поле = "Контрагент" и типЗнч(строкаПоля.Значение) = ТипЛяля Тогда
                        Если мас.Найти(строкаПоля.Значение) = неопределено Тогда
                            мас.Добавить(строкаПоля.Значение);
                        КонецЕсли;    
                    КонецЕсли;    
                КонецЦикла;    
        КонецЕсли;        
    КонецЦикла;
    
    Возврат мас;
КонецФункции


3) Еще вариант? Не знаю.
8 Sochinec
 
20.06.24
14:07
(5) заказы сделал

    МасДок = новый Массив;
    Для Каждого стр из Объект.Документы цикл    
        Если стр.пп тогда
            МасДок.Добавить(стр.Заказ);
        Конецесли;    
    КонецЦикла;      
    ИмяМенеджераПечати = "Документ.ЗаказПокупателя";
    ИменаМакетов = "ЗаказПокупателя";
    ДополнительныеПараметрыПечати = Новый Структура(); // здесь можно передать необходимые дополнительные параметры, которые будут видны в функции печати
    ПараметрыПечати = Новый Структура("ЗаголовокФормы,Идентификатор,ДополнительныеПараметры","Заказ Покупателя","ЗаказПокупателя",ДополнительныеПараметрыПечати);
    МассивОбъектов = Новый Массив();     
    УправлениеПечатьюКлиент.ВыполнитьКомандуПечати(ИмяМенеджераПечати, ИменаМакетов, МасДок, ЭтотОбъект, ПараметрыПечати);
9 Sochinec
 
20.06.24
14:11
так то работает - но думал что задействовать Общую Форму "ПечатьДокументов"
10 Sochinec
 
20.06.24
14:25
А вот с УПД как я понимаю печатается через
Обработка.ПечатьСчетФактура.УниверсальныйПередаточныйДокумент
точнее не понимаю как -))
11 Kongo2019
 
20.06.24
14:31
В типовых сделано так что обработка печати на входе получает массив доков. Ну чтобы можно было несколько выделить их списка и напечатать сразу. Может сюда как-то привязаться?
12 Sochinec
 
20.06.24
14:54
понимаю что кол экземпляров надо задать в "ДополнительныеПараметрыПечати" но не вижу как называется значение
13 Sochinec
 
20.06.24
15:04
ДополнительныеПараметрыПечати = Новый Структура(); ДополнительныеПараметрыПечати.Вставить("КоличествоЭкземпляров", 2);
    
    ПараметрыПечати = Новый Структура("ЗаголовокФормы,Идентификатор,ДополнительныеПараметры","Накладная","Накладная",ДополнительныеПараметрыПечати);

Все равно 1 ввывел

Экземпляров - то же не взлетело