Делаю ВПФ Спецификация. Необходимо сделать 3 вида вывода: одну без факсимиле, вторую с одной печатью и третью со второй печать. В ВПФ добавлен 1 макет где указаны все подписи и печати. Нужно чтобы пользователю выводилось на выбор 3 разных варианта макета.
Я создала Функцию ПечатьСпецификации, где формируется табличный документ. Как прописать процедуру печати и включить варианты макета?
Я создала Функцию ПечатьСпецификации, где формируется табличный документ. Как прописать процедуру печати и включить варианты макета?
Функция ПечатьСпецификации(НазваниеМакета) Экспорт
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ЗаказПокупателя.ДоговорКонтрагента,
| ЗаказПокупателя.Организация,
| ЗаказПокупателя.Контрагент.НаименованиеПолное КАК Контрагент,
| ЗаказПокупателя.Грузополучатель,
| ЗаказПокупателя.Грузоотправитель,
| ЗаказПокупателя.УсловияДоставки.ПредставлениеДляПечати КАК УсловияДоставки,
| ЗаказПокупателя.СрокПоставки.ПредставлениеДляПечати КАК СрокПоставки,
| ЗаказПокупателя.КонтактноеЛицоКонтрагента.Наименование КАК ФИОКонтактноеЛицо,
| ЗаказПокупателя.КонтактноеЛицоКонтрагента.Должность КАК ДолжностьКонтактноеЛицо,
| ЗаказПокупателя.УсловияОплаты.ПредставлениеДляПечати КАК УсловияОплаты,
| ЗаказПокупателя.ВалютаДокумента,
| ЗаказПокупателя.Дата,
| ЗаказПокупателя.НомерСпецификации,
| ЗаказПокупателя.ДатаСпецификации
|ИЗ
| Документ.ЗаказПокупателя КАК ЗаказПокупателя
|ГДЕ
| ЗаказПокупателя.Ссылка = &Ссылка
|;
|
|//////////////////////////////////////////////////////////// ////////////////////
|ВЫБРАТЬ
| ЗаказПокупателяТовары.Ссылка,
| ЗаказПокупателяТовары.Номенклатура,
| ЗаказПокупателяТовары.ЕдиницаИзмерения,
| ЗаказПокупателяТовары.Количество,
| ЗаказПокупателяТовары.Цена,
| ЗаказПокупателяТовары.Сумма,
| ЗаказПокупателяТовары.СтавкаНДС
|ИЗ
| Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары
|ГДЕ
| ЗаказПокупателяТовары.Ссылка = &Ссылка";
Запрос.УстановитьПараметр("Ссылка", СсылкаНаОбъект);
РезультатЗапроса = Запрос.ВыполнитьПакет();
Выборка = РезультатЗапроса[0].Выбрать();
Выборка.Следующий();
ВыборкаТовары = РезультатЗапроса[1].Выбрать();
ТабДокумент = Новый ТабличныйДокумент;
ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_Спецификация";
Макет = ПолучитьМакет("Спецификация");
// Выводим шапку
ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
ЗаполнитьЗначенияСвойств(ОбластьШапка.Параметры,Выборка);
ТабДокумент.Вывести(ОбластьШапка);
ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
ТабДокумент.Вывести(ОбластьШапкаТаблицы);
ОбластьСтрокаТаблицы = Макет.ПолучитьОбласть("СтрокаТаблицы");
НомерСтроки = 0;
Всего = 0;
Пока ВыборкаТовары.Следующий() Цикл
НомерСтроки = НомерСтроки + 1;
ОбластьСтрокаТаблицы.Параметры.НомерСтроки = НомерСтроки;
ЗаполнитьЗначенияСвойств(ОбластьСтрокаТаблицы.Параметры,ВыборкаТовары);
Если УчетНДС.ПолучитьСтавкуНДС(ВыборкаТовары.СтавкаНДС) = 0 Тогда
ОбластьСтрокаТаблицы.Параметры.ЦенаБезНДС = ВыборкаТовары.Цена;
Иначе
ЦенаБезНДС = ВыборкаТовары.Цена - УчетНДС.РассчитатьСуммуНДС(ВыборкаТовары.Цена,СсылкаНаОбъект.УчитыватьНДС,СсылкаНаОбъект.СуммаВключаетНДС,УчетНДС.ПолучитьСтавкуНДС(ВыборкаТовары.СтавкаНДС));
ОбластьСтрокаТаблицы.Параметры.ЦенаБезНДС = ОбщегоНазначения.ФорматСумм(ЦенаБезНДС);
КонецЕсли;
ОбластьСтрокаТаблицы.Параметры.СтоимостьБезНДС = ОбщегоНазначения.ФорматСумм(ЦенаБезНДС*ВыборкаТовары.Количество);
ТабДокумент.Вывести(ОбластьСтрокаТаблицы);
Всего = Всего + ОбластьСтрокаТаблицы.Параметры.СтоимостьБезНДС;
КонецЦикла;
ОбластьИтого = Макет.ПолучитьОбласть("Итого");
ОбластьИтого.Параметры.Всего = ОбщегоНазначения.ФорматСумм(Всего);
ТабДокумент.Вывести(ОбластьИтого);
ОбластьИтогоПрописью = Макет.ПолучитьОбласть("ИтогоПрописью");
// Вывести Сумму прописью
ОбластьИтогоПрописью.Параметры.Всего = ОбщегоНазначения.ФорматСумм(Всего);
ОбластьИтогоПрописью.Параметры.ВсегоПрописью = ОбщегоНазначения.СформироватьСуммуПрописью(Всего, Выборка.ВалютаДокумента);
ТабДокумент.Вывести(ОбластьИтогоПрописью);
ОбластьУсловия = Макет.ПолучитьОбласть("Условия");
ЗаполнитьЗначенияСвойств(ОбластьУсловия.Параметры,Выборка);
ОбластьУсловия.Параметры.АдресПоставщика = УправлениеКонтактнойИнформацией.ПолучитьАдресИзКонтактнойИнформации(Выборка.Грузоотправитель,"Юридический");
ОбластьУсловия.Параметры.Контрагент = Выборка.Контрагент;
ОбластьУсловия.Параметры.АдресПолучателя = УправлениеКонтактнойИнформацией.ПолучитьАдресИзКонтактнойИнформации(Выборка.Грузополучатель,"Юридический");
ОбластьУсловия.Параметры.ДоговорКонтрагента = Выборка.ДоговорКонтрагента;
ТабДокумент.Вывести(ОбластьУсловия);
ОбластьПодписи = Макет.ПолучитьОбласть("Подписи");
Руководители = РегламентированнаяОтчетность.ОтветственныеЛицаОрганизации(Выборка.Организация,Выборка.Дата);
ОбластьПодписи.Параметры.ПодписантПоставщика = Руководители.РуководительДолжность;
ОбластьПодписи.Параметры.ФИОПоставщик = Руководители.Руководитель;
ОбластьПодписи.Параметры.Контрагент = Выборка.Контрагент;
ОбластьПодписи.Параметры.ПодписантПокупателя = Выборка.ДолжностьКонтактноеЛицо;
ОбластьПодписи.Параметры.ФИОПокупатель =
ОбщегоНазначения.ФамилияИнициалыФизЛица(Выборка.ФИОКонтактноеЛицо);
// Вывести подписи
ТабДокумент.Вывести(ОбластьПодписи);
Если НазваниеМакета = "Спецификация с факсимиле" Тогда
ОбластьКартинка = Макет.ПолучитьОбласть("Печать1");
ТабДокумент.Вывести(ОбластьКартинка);
КонецЕсли;
Возврат ТабДокумент;
КонецФункции
ПоказатьПо теме из базы знаний
- Список сертификатов на товары. Внешняя печатная форма для УТ 10.3 (Базовая)
- АЦРК: внешние печатные формы для УТ 10.3 с использованием "АЦРК: Менеджер подписей 3"
- Складские документы (внешние печатные формы) для УТ 10.3
- Внешние печатные формы для Управления торговлей 10.3
- Внешние печатные формы для Управления торговлей 11.5
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Можете добавить несколько вариантов вашей печатной формы через параметры авторегистрации и обрабатывать их при выводе.
Подробнее можно посмотреть здесьhttps://infostart.ru/public/60272/
Подробнее можно посмотреть здесь
СписокКнопок = Новый СписокЗначений;
СписокКнопок.Добавить("Без подписи");
СписокКнопок.Добавить("Подпись1");
СписокКнопок.Добавить("Подпись2");
Ответ = Вопрос("Вывод факсимильных подписей и печати",СписокКнопок,);
Если Ответ = "Без подписи" Тогда
ОбластьМакета = Макет.ПолучитьОбласть("Подписи");
ИначеЕсли Ответ = "Подпись1" тогда
ОбластьМакета = Макет.ПолучитьОбласть("ПодписиСПечатью1");
Иначе
ОбластьМакета = Макет.ПолучитьОбласть("ПодписиСПечатью2");
КонецЕсли;
ПоказатьМожно вот так топорно сделать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот