Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 11:40

Как печатную форму добавить в общую кнопку печать?

Автор vurdalak, 02 ноя 2012, 13:52

0 Пользователей и 1 гость просматривают эту тему.

vurdalak

УПП 1с 8.2 Что нужно сделать чтобы мой макет добавить в общую кнопку печать.
Код процедуры кнопки "Печать":

Процедура ОсновныеДействияФормыПечать(Кнопка)

УниверсальныеМеханизмы.ОткрытьФормуВыбораПечатныхФормОбъекта(ЭтотОбъект, ЭтаФорма);

КонецПроцедуры // ОсновныеДействияФормыПечать()


Вот код:
Процедура ПечатьСтоимость()
ТабДок = Новый ТабличныйДокумент;
Макет = ПолучитьОбщийМакет("Стоимость");
ОбластьТовары = Макет.ПолучитьОбласть("Товары");
ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
ОбластьНижняя = Макет.ПолучитьОбласть("Нижняя");
   

Запрос = Новый Запрос(
"ВЫБРАТЬ
|    ЗаказПокупателю.НомерСтроки КАК НомерСтроки,
|    ЗаказПокупателю.Номенклатура КАК Номенклатура,
|    ЗаказПокупателю.Количество  КАК Количество,
|     ЗаказПокупателю.Цена  КАК Цена,
|     ЗаказПокупателю.Сумма  КАК Сумма,
|    ЗаказПокупателю.Ссылка КАК Ссылка
|ИЗ
|    Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателю
|ГДЕ
|Ссылка = &Ссылка");
Запрос.УстановитьПараметр("Ссылка", Ссылка);

Результат = Запрос.Выполнить().Выбрать();
ОбластьШапка.Параметры.НомерСчета = СтруктурнаяЕдиница.НомерСчета;
ОбластьШапка.Параметры.ДатаОткрытия = СтруктурнаяЕдиница.ДатаОткрытия;
ОбластьШапка.Параметры.Заказчик = Контрагент;
ОбластьШапка.Параметры.НомерДокумента = Номер;
ОбластьШапка.Параметры.Дата = Дата;
ИтогоВДок = 0;
Пока Результат.Следующий() Цикл
ИтогоВДок = ИтогоВДок + Результат.Сумма;
КонецЦикла;
ОбластьШапка.Параметры.Итого = ИтогоВДок;
ТабДок.Вывести(ОбластьШапка);

Результат = Запрос.Выполнить().Выбрать();
Пока Результат.Следующий() Цикл
ОбластьТовары.Параметры.НомерСтроки = Результат.НомерСтроки;
ОбластьТовары.Параметры.Номенклатура = Результат.Номенклатура;
ОбластьТовары.Параметры.Количество = Результат.Количество;
ОбластьТовары.Параметры.Цена = Результат.Цена;
ОбластьТовары.Параметры.Сумма = Результат.Сумма;
ТабДок.Вывести(ОбластьТовары);
КонецЦикла;
ОбластьНижняя.Параметры.Итого = ИтогоВДок;
ТабДок.Вывести(ОбластьНижняя);


ТабДок.ОтображатьСетку = Ложь;
ТабДок.Защита = Ложь;
ТабДок.ТолькоПросмотр = Ложь;
ТабДок.ОтображатьЗаголовки = Ложь;
ТабДок.Показать();



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


Yura063

Добавьте ВПФ, Подключите к конфигурации и она сама появится! )))
Помогли, отблагодари!

vurdalak

Да так можно, но мне бы хотелось чтобы печатная форма была встроенная как и все остальные в типовой.

Yura063

Тогда добавляй макет и процедуру печать для своей печатной формы!
Помогли, отблагодари!

vurdalak

Процедура ОсновныеДействияФормыПечать(Кнопка)

УниверсальныеМеханизмы.ОткрытьФормуВыбораПечатныхФормОбъекта(ЭтотОбъект, ЭтаФорма);

КонецПроцедуры // ОсновныеДействияФормыПечать()

Вот эта процедура вызывается общей кнопкой "Печать" из общего модуля "УниверсальныеМеханизмы":
Процедура ОткрытьФормуВыбораПечатныхФормОбъекта(Объект, ФормаВладелец) Экспорт

// Открыть форму выбора печатных форм
Форма = ПолучитьОбщуюФорму("ФормаВыбораПечатныхФорм", ФормаВладелец, Объект);

Если Форма.ОткрытьМодально() <> Истина Тогда
Возврат;
КонецЕсли;

// Печать макета объекта
Для каждого СтрокаКнопки Из Форма.ЭлементыФормы.ДеревоМакетовПечати.ВыделенныеСтроки Цикл

Расшифровка = СтрокаКнопки.Расшифровка;

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

КонецЦикла;

КонецПроцедуры // ОткрытьФормуВыбораПечатныхФормОбъекта()

И как сюда добавить мою процедуру?

Добавлено: 02 ноя 2012, 17:54


Как добавить в общую форму "ФормаВыбораПечатныхФорм" мою печатную форму и процедуру.
Добавлено: 04 ноя 2012, 16:37


Никто не знает как это сделать?

vurdalak

в общем я добрался где все это делается:
Функция ПолучитьСтруктуруПечатныхФорм() Экспорт

СтруктураПечатныхФорм = Новый Структура("Заказ,ЗаказКорректировка,Счет,Бланк",
                                        "Заказ покупателя",
                                        "Заказ покупателя (с учетом корректировок)",
                                        "Счет на оплату (с учетом корректировок)",
                                        "Бланк товарного наполнения");

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

Возврат СтруктураПечатныхФорм;

КонецФункции // ПолучитьСтруктуруПечатныхФорм()


где находятся эти макеты никто не скажет?
                                                 Заказ,ЗаказКорректировка,Счет,Бланк",
                                           "Заказ покупателя",
                                           "Заказ покупателя (с учетом корректировок)",
                                           "Счет на оплату (с учетом корректировок)",
                                           "Бланк товарного наполнения
В общих макетах я не нашел.

Dethmontt

Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

cska-fanat-kz

СтруктураПечатныхФорм = Новый Структура("Заказ,ЗаказКорректировка,Счет,Бланк",
                                            "Заказ покупателя",
                                            "Заказ покупателя (с учетом корректировок)",
                                            "Счет на оплату (с учетом корректировок)",
                                            "Бланк товарного наполнения");

Макеты соответственно называются: Заказ,ЗаказКорректировка,Счет,Бланк.
Искать среди макетов документа или в общих макетах.

Должна быть еще стандартная процедура Печать(), где прописывается вызов процедуры печати вашей печ. формы.
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

vurdalak


Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск