|
Печать макета документа на управляемых формах | ☑ | ||
---|---|---|---|---|
0
art93
03.08.15
✎
07:36
|
Нужно напечатать макет документа https://cloud.mail.ru/public/99cx/CWVTkbi3W
Пробую по аналогии с расходной накладной сделать Вот два метода сделал, вроде правильно: Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт КомандаПечати = КомандыПечати.Добавить(); КомандаПечати.Идентификатор = "ПФ_ЗаказНаСопровождение"; КомандаПечати.Представление = НСтр("ru = 'Заказ на сопровождение'"); КомандаПечати.ПроверкаПроведенияПередПечатью = Истина; КомандаПечати.Порядок = 10; КонецПроцедуры Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ПФ_ЗаказНаСопровождение") Тогда УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию( КоллекцияПечатныхФорм, "ПФ_ЗаказНаСопровождение", НСтр("ru = 'Заказ на сопровождение'"), СформироватьПечатнуюФормуЗаказНаСопровождение(МассивОбъектов, ОбъектыПечати, Неопределено), , "Документ.ЗаказНаСопровождение.ПФ_ЗаказНаСопровождение"); КонецЕсли; КонецПроцедуры Или ошибки есть? Теперь реализовать метод СформироватьПечатнуюФормуЗаказНаСопровождение и всё? |
|||
1
zak555
03.08.15
✎
07:43
|
ага
|
|||
2
zak555
03.08.15
✎
07:43
|
не метод, а функции, которая вернёт табличный документ
|
|||
3
art93
03.08.15
✎
08:31
|
Функция СформироватьПечатнуюФормуЗаказНаСопровождение(МассивОбъектов, ОбъектыПечати, КомплектыПечати)
УстановитьПривилегированныйРежим(Истина); ТабличныйДокумент = Новый ТабличныйДокумент; ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ЗаказНаСопровождение_ПФ_ЗаказНаСопровождение"; Макет = УправлениеПечатью.МакетПечатнойФормы("Документ.ЗаказНаСопровождение.ПФ_ЗаказНаСопровождение"); НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1; Область = Макет.ПолучитьОбласть("Шапка"); СтруктураДанныхШапка = Новый Структура; // Код из старой программы, помогите реализовать на управляемых формах Область.Параметры.Номер = Объект.Номер; Область.Параметры.Дата = Формат(Дата,"ДФ=dd.MM.yyyy"); Область.Параметры.Контрагент = Контрагент; Область.Параметры.КонтЛицо = СокрЛП(КонтактноеЛицоКонтрагента.Наименование) + ПолучитьТелефонКО(КонтактноеЛицоКонтрагента);//zor(100706) Область.Параметры.Телефон = Телефон; Область.Параметры.Факс = Факс; Область.Параметры.Адрес = Адрес; Область.Параметры.Автор = Ответственный.Наименование; Область.Параметры.ДатаПередачи = Формат(ДатаПередачиИсполнителю,"ДФ=dd.MM.yyyy"); // Область.Параметры.Заполнить(СтруктураДанныхШапка); ТабличныйДокумент.Вывести(Область); УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент, НомерСтрокиНачало, ОбъектыПечати,); ТабличныйДокумент.АвтоМасштаб = Истина; Если ПривилегированныйРежим() Тогда УстановитьПривилегированныйРежим(Ложь); КонецЕсли; Возврат ТабличныйДокумент; КонецФункции |
|||
4
art93
03.08.15
✎
08:33
|
В коде есть вставка из старой программы, помогите пожалуйста понять, как это реализуется на управляемых формах.
|
|||
5
1Сергей
03.08.15
✎
08:37
|
это надо перебрать массив объектов в цикле
|
|||
6
zak555
03.08.15
✎
08:40
|
сслыкаНаДок = МассивОбъектов[0];
Контрагент= сслыкаНаДок.Контрагент; КонтактноеЛицоКонтрагента= сслыкаНаДок .КонтактноеЛицоКонтрагента; //... //потом реализуешь через метод заполнить у параметров ТД |
|||
7
art93
03.08.15
✎
08:48
|
сслыкаНаДок = Документы.ЗаказНаСопровождение;
Контрагент= сслыкаНаДок.Контрагент; КонтактноеЛицоКонтрагента= сслыкаНаДок.КонтактноеЛицоКонтрагента; То есть вот так? и так далее? |
|||
8
zak555
03.08.15
✎
08:50
|
синтаксический контроль подскажет какие переменные не определены
|
|||
9
art93
03.08.15
✎
09:00
|
он ничего не показал, но и никаких действий не сделал похоже
|
|||
10
art93
03.08.15
✎
09:01
|
Вот что на данный момент у меня написано для печати, что не так, помогите поправить пожалуйста
Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт КомандаПечати = КомандыПечати.Добавить(); КомандаПечати.Идентификатор = "ПФ_ЗаказНаСопровождение"; КомандаПечати.Представление = НСтр("ru = 'Заказ на сопровождение'"); КомандаПечати.ПроверкаПроведенияПередПечатью = Истина; КомандаПечати.Порядок = 10; КонецПроцедуры Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ПФ_ЗаказНаСопровождение") Тогда УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию( КоллекцияПечатныхФорм, "ПФ_ЗаказНаСопровождение", НСтр("ru = 'Заказ на сопровождение'"), СформироватьПечатнуюФормуЗаказНаСопровождение(МассивОбъектов, ОбъектыПечати, Неопределено), , "Документ.ЗаказНаСопровождение.ПФ_ЗаказНаСопровождение"); КонецЕсли; КонецПроцедуры Функция СформироватьПечатнуюФормуЗаказНаСопровождение(МассивОбъектов, ОбъектыПечати, КомплектыПечати) УстановитьПривилегированныйРежим(Истина); ТабличныйДокумент = Новый ТабличныйДокумент; ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ЗаказНаСопровождение_ПФ_ЗаказНаСопровождение"; Макет = УправлениеПечатью.МакетПечатнойФормы("Документ.ЗаказНаСопровождение.ПФ_ЗаказНаСопровождение"); НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1; Область = Макет.ПолучитьОбласть("Шапка"); СтруктураДанныхШапка = Новый Структура; сслыкаНаДок = Документы.ЗаказНаСопровождение; Контрагент= сслыкаНаДок.Контрагент; КонтактноеЛицоКонтрагента= сслыкаНаДок.КонтактноеЛицоКонтрагента; Номер = сслыкаНаДок.Номер; Дата = Формат(Дата,"ДФ=dd.MM.yyyy"); Автор = сслыкаНаДок.Ответственный.Наименование; ДатаПередачи = Формат(сслыкаНаДок.ДатаПередачиИсполнителю,"ДФ=dd.MM.yyyy"); Область.Параметры.Заполнить(СтруктураДанныхШапка); ТабличныйДокумент.Вывести(Область); УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент, НомерСтрокиНачало, ОбъектыПечати,); ТабличныйДокумент.АвтоМасштаб = Истина; Если ПривилегированныйРежим() Тогда УстановитьПривилегированныйРежим(Ложь); КонецЕсли; Возврат ТабличныйДокумент; КонецФункции |
|||
11
1Сергей
03.08.15
✎
09:01
|
(7) трудно было первую строчку в (6) прочитать?
|
|||
12
art93
03.08.15
✎
09:08
|
Я просто не понял, как это? Мы обращаемся к пустому массиву и хотим взять оттуда Контрагента?
Простите за глупые вопросы, просто не могу понять |
|||
13
1Сергей
03.08.15
✎
09:10
|
(12) чего это у тебя пустой?
|
|||
14
art93
03.08.15
✎
09:12
|
сслыкаНаДок = МассивОбъектов[0];
|
|||
15
art93
03.08.15
✎
09:18
|
Напишите пожалуйста, как должно быть реализовано, начало, в мой код, а дальше я по аналогии
|
|||
16
1Сергей
03.08.15
✎
09:18
|
МассивОбъектов не пустой
|
|||
17
art93
03.08.15
✎
09:23
|
Понял, заменил на сслыкаНаДок = МассивОбъектов[0];
А нужно ли на форму что то добавлять или программно кнопка должна добавиться? |
|||
18
art93
03.08.15
✎
12:53
|
Код для печати.Прописанный в Модуле менеджера. Подскажите ещё что нужно прописать и где?
Заранее спасибо Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт КомандаПечати = КомандыПечати.Добавить(); КомандаПечати.Идентификатор = "ПФ_ЗаказНаСопровождение"; КомандаПечати.Представление = НСтр("ru = 'Заказ на сопровождение'"); КомандаПечати.ПроверкаПроведенияПередПечатью = Истина; КомандаПечати.Порядок = 10; КонецПроцедуры Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ПФ_ЗаказНаСопровождение") Тогда УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию( КоллекцияПечатныхФорм, "ПФ_ЗаказНаСопровождение", НСтр("ru = 'Заказ на сопровождение'"), СформироватьПечатнуюФормуЗаказНаСопровождение(МассивОбъектов, ОбъектыПечати, Неопределено), , "Документ.ЗаказНаСопровождение.ПФ_ЗаказНаСопровождение"); КонецЕсли; КонецПроцедуры Функция СформироватьПечатнуюФормуЗаказНаСопровождение(МассивОбъектов, ОбъектыПечати, КомплектыПечати) УстановитьПривилегированныйРежим(Истина); ТабличныйДокумент = Новый ТабличныйДокумент; ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ЗаказНаСопровождение_ПФ_ЗаказНаСопровождение"; Макет = УправлениеПечатью.МакетПечатнойФормы("Документ.ЗаказНаСопровождение.ПФ_ЗаказНаСопровождение"); НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1; Область = Макет.ПолучитьОбласть("Шапка"); сслыкаНаДок = МассивОбъектов[0]; Контрагент= сслыкаНаДок.Контрагент; КонтактноеЛицоКонтрагента= сслыкаНаДок.КонтактноеЛицоКонтрагента; Номер = сслыкаНаДок.Номер; Дата = Формат(Дата,"ДФ=dd.MM.yyyy"); Автор = сслыкаНаДок.Ответственный.Наименование; ДатаПередачи = Формат(сслыкаНаДок.ДатаПередачиИсполнителю,"ДФ=dd.MM.yyyy"); ТабличныйДокумент.Вывести(Область); УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент, НомерСтрокиНачало, ОбъектыПечати,); ТабличныйДокумент.АвтоМасштаб = Истина; Если ПривилегированныйРежим() Тогда УстановитьПривилегированныйРежим(Ложь); КонецЕсли; Возврат ТабличныйДокумент; КонецФункции |
|||
19
art93
03.08.15
✎
13:08
|
Кто нибудь подскажет хотя бы направление?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |