Внешняя печатная форма бгу 2 (Акт об оказании услуг, подпись и печать, факсимиле )
1С:Бухгалтерия государственного учреждения
Платформа 1С v8.3
Государственные, бюджетные структуры
Бюджетный учет
Внешняя обработка (ert,epf)
Подскажите как добавить подпись и печать, факсимиле во внешнюю печатную форму "Акт об оказании услуг" ?
Функция ПечатьАктаОбОказанииУслуг(МассивОбъектов, ОбъектыПечати)
Макет = ПолучитьМакет("ПФ_MXL_АктВыполненныхУслугВн");
ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
ОбластьСтрока = Макет.ПолучитьОбласть("Строка");
ОбластьИтоги = Макет.ПолучитьОбласть("Итоги");
ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
ТабличныйДокумент = Новый ТабличныйДокумент;
ТабличныйДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Портрет;
ТабличныйДокумент.КлючПараметровПечати = "ПАРАМЕТРЫПЕЧАТИ_АКТВЫПОЛНЕННЫХУСЛУГ";
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| АктОбОказанииУслуг.Ссылка КАК Ссылка,
| АктОбОказанииУслуг.Номер КАК пНомер,
| АктОбОказанииУслуг.Дата КАК пДата,
| АктОбОказанииУслуг.Организация КАК Организация,
| ВЫБОР
| КОГДА ИспользоватьУчетПоПодразделениям.Значение
| И ЕСТЬNULL(АктОбОказанииУслуг.Подразделение.ОбособленноеПодразделение, ЛОЖЬ)
| И ЕСТЬNULL(АктОбОказанииУслуг.Подразделение.НаименованиеПолное, """") <> """"
| ТОГДА АктОбОказанииУслуг.Подразделение.НаименованиеПолное
| КОГДА АктОбОказанииУслуг.Организация.НаименованиеПолное = """"
| ТОГДА АктОбОказанииУслуг.Организация.Наименование
| ИНАЧЕ АктОбОказанииУслуг.Организация.НаименованиеПолное
| КОНЕЦ КАК НаименованиеОрганизации,
| АктОбОказанииУслуг.Организация.ИНН КАК ИННОрганизации,
| ВЫБОР
| КОГДА ИспользоватьУчетПоПодразделениям.Значение
| И ЕСТЬNULL(АктОбОказанииУслуг.Подразделение.ОбособленноеПодразделение, ЛОЖЬ)
| И ЕСТЬNULL(АктОбОказанииУслуг.Подразделение.РегистрацияВНалоговомОргане, ЗНАЧЕНИЕ(Справочник.РегистрацииВНалоговомОргане.ПустаяСсылка)) <> ЗНАЧЕНИЕ(Справочник.РегистрацииВНалоговомОргане.ПустаяСсылка)
| ТОГДА АктОбОказанииУслуг.Подразделение.РегистрацияВНалоговомОргане.КПП
| ИНАЧЕ АктОбОказанииУслуг.Организация.КПП
| КОНЕЦ КАК КППОрганизации,
| АктОбОказанииУслуг.Организация.КодОКПО КАК ОрганизацияКодОКПО,
| АктОбОказанииУслуг.Контрагент КАК Контрагент,
| ВЫБОР
| КОГДА АктОбОказанииУслуг.Контрагент.НаименованиеСокращенное = """"
| ТОГДА ВЫБОР
| КОГДА АктОбОказанииУслуг.Контрагент.ВидКонтрагента = ЗНАЧЕНИЕ(Перечисление.ЮрФизЛицо.ЮрЛицо)
| И НЕ АктОбОказанииУслуг.Контрагент.ЮридическоеФизическоеЛицо.НаименованиеПолное = """"
| ТОГДА АктОбОказанииУслуг.Контрагент.ЮридическоеФизическоеЛицо.НаименованиеПолное
| ИНАЧЕ АктОбОказанииУслуг.Контрагент.Наименование
| КОНЕЦ
| ИНАЧЕ АктОбОказанииУслуг.Контрагент.НаименованиеСокращенное
| КОНЕЦ КАК КонтрагентНаименование,
| АктОбОказанииУслуг.Контрагент.ИНН КАК КонтрагентИНН,
| АктОбОказанииУслуг.Контрагент.КПП КАК КонтрагентКПП,
| ВЫБОР
| КОГДА КонтрагентыКППИстория.Ссылка ЕСТЬ NULL
| ТОГДА ЛОЖЬ
| ИНАЧЕ ИСТИНА
| КОНЕЦ КАК БылоИзменениеКППКонтрагента,
| ПРЕДСТАВЛЕНИЕ(АктОбОказанииУслуг.Договор) КАК пДоговор,
| ВЫБОР
| КОГДА АктОбОказанииУслуг.ВалютаДокумента = &ПустаяВалюта
| ТОГДА &РегламентированнаяВалюта
| ИНАЧЕ АктОбОказанииУслуг.ВалютаДокумента
| КОНЕЦ КАК ВалютаДокумента,
| ВЫБОР
| КОГДА АктОбОказанииУслуг.ВалютаДокумента = &ПустаяВалюта
| ИЛИ АктОбОказанииУслуг.ВалютаДокумента = &РегламентированнаяВалюта
| ТОГДА ""Руб.""
| ИНАЧЕ ПРЕДСТАВЛЕНИЕ(АктОбОказанииУслуг.ВалютаДокумента)
| КОНЕЦ КАК пВалюта,
| АктОбОказанииУслуг.СуммаВключаетНДС КАК СуммаВключаетНДС,
| АктОбОказанииУслуг.Руководитель КАК Руководитель,
| ВЫРАЗИТЬ(АктОбОказанииУслуг.Контрагент КАК Справочник.Контрагенты).ОбособленноеПодразделение КАК КонтрагентОбособленноеПодразделение,
| ВЫРАЗИТЬ(АктОбОказанииУслуг.Контрагент КАК Справочник.Контрагенты).ГоловнаяОрганизация КАК КонтрагентГоловнаяОрганизация,
| ВЫБОР
| КОГДА АктОбОказанииУслуг.Контрагент.ОбособленноеПодразделение = ИСТИНА
| ТОГДА ВЫБОР
| КОГДА АктОбОказанииУслуг.Контрагент.ГоловнаяОрганизация = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
| ТОГДА """"
| КОГДА НЕ АктОбОказанииУслуг.Контрагент.ГоловнаяОрганизация.НаименованиеСокращенное = """"
| ТОГДА АктОбОказанииУслуг.Контрагент.ГоловнаяОрганизация.НаименованиеСокращенное
| КОГДА АктОбОказанииУслуг.Контрагент.ГоловнаяОрганизация.ВидКонтрагента = ЗНАЧЕНИЕ(Перечисление.ЮрФизЛицо.ЮрЛицо)
| И НЕ АктОбОказанииУслуг.Контрагент.ГоловнаяОрганизация.ЮридическоеФизическоеЛицо.НаименованиеПолное = """"
| ТОГДА ВЫРАЗИТЬ(АктОбОказанииУслуг.Контрагент.ГоловнаяОрганизация.ЮридическоеФизическоеЛицо.НаименованиеПолное КАК СТРОКА(1000))
| ИНАЧЕ АктОбОказанииУслуг.Контрагент.ГоловнаяОрганизация.Наименование
| КОНЕЦ
| ИНАЧЕ """"
| КОНЕЦ КАК КонтрагентГоловнаяОрганизацияПредставление,
| ВЫБОР
| КОГДА АктОбОказанииУслуг.Контрагент.ОбособленноеПодразделение = ИСТИНА
| ТОГДА ВЫБОР
| КОГДА АктОбОказанииУслуг.Контрагент.ГоловнаяОрганизация = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
| ТОГДА """"
| ИНАЧЕ АктОбОказанииУслуг.Контрагент.ГоловнаяОрганизация.ЮридическоеФизическоеЛицо.ИНН
| КОНЕЦ
| ИНАЧЕ """"
| КОНЕЦ КАК КонтрагентГоловнаяОрганизацияИНН,
| АктОбОказанииУслуг.Руководитель.Подпись КАК РуководительПодпись
|ИЗ
| Документ.АктОбОказанииУслуг КАК АктОбОказанииУслуг
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты.КППИстория КАК КонтрагентыКППИстория
| ПО АктОбОказанииУслуг.Контрагент = КонтрагентыКППИстория.Ссылка
| И (КонтрагентыКППИстория.НомерСтроки = 1)
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Константа.ИспользоватьУчетПоПодразделениям КАК ИспользоватьУчетПоПодразделениям
| ПО (ИСТИНА)
|ГДЕ
| АктОбОказанииУслуг.Ссылка В(&МассивОбъектов)
|
|УПОРЯДОЧИТЬ ПО
| пДата,
| пНомер
|;
|
|//////////////////////////////////////////////////////////// ////////////////////
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| АктОбОказанииУслугУслугиОказанные.Ссылка КАК Ссылка,
| АктОбОказанииУслугУслугиОказанные.НомерСтроки КАК пНом,
| ВЫБОР
| КОГДА ЕСТЬNULL(АктОбОказанииУслугУслугиОказанные.Номенклатура, ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)) = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
| ТОГДА АктОбОказанииУслугУслугиОказанные.СодержаниеУслуги
| КОГДА ПОДСТРОКА(АктОбОказанииУслугУслугиОказанные.СодержаниеУслуги, 1, 1000) <> """"
| ТОГДА АктОбОказанииУслугУслугиОказанные.СодержаниеУслуги
| КОГДА АктОбОказанииУслугУслугиОказанные.Номенклатура.НаименованиеПолное = """"
| ТОГДА АктОбОказанииУслугУслугиОказанные.Номенклатура.Наименование
| ИНАЧЕ АктОбОказанииУслугУслугиОказанные.Номенклатура.НаименованиеПолное
| КОНЕЦ КАК пНаименование,
| ЕСТЬNULL(АктОбОказанииУслугУслугиОказанные.Количество, 0) КАК пКоличество,
| ЕСТЬNULL(АктОбОказанииУслугУслугиОказанные.Цена, 0) КАК пЦена,
| ЕСТЬNULL(АктОбОказанииУслугУслугиОказанные.Сумма, 0) КАК пСумма,
| АктОбОказанииУслугУслугиОказанные.СтавкаНДС КАК СтавкаНДС,
| ЕСТЬNULL(АктОбОказанииУслугУслугиОказанные.СуммаНДС, 0) КАК пСуммаНДС,
| ЕСТЬNULL(АктОбОказанииУслугУслугиОказанные.Всего, 0) КАК Всего,
| ПРЕДСТАВЛЕНИЕ(АктОбОказанииУслугУслугиОказанные.Номенклатура.ЕдиницаИзмерения) КАК пЕдИзм
|ИЗ
| Документ.АктОбОказанииУслуг.УслугиОказанные КАК АктОбОказанииУслугУслугиОказанные
|ГДЕ
| АктОбОказанииУслугУслугиОказанные.Ссылка В(&МассивОбъектов)
|
|УПОРЯДОЧИТЬ ПО
| Ссылка,
| пНом
|ИТОГИ ПО
| Ссылка";
Запрос.УстановитьПараметр("МассивОбъектов", МассивОбъектов);
Запрос.УстановитьПараметр("ПустаяВалюта",Справочники.Валюты.ПустаяСсылка());
Запрос.УстановитьПараметр("РегламентированнаяВалюта", Константы.ВалютаРегламентированногоУчета.Получить());
РезультатЗапроса = Запрос.ВыполнитьПакет();
ВыборкаШапка = РезультатЗапроса[0].Выбрать();
ВыборкаВсеСтроки = РезультатЗапроса[1].Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
ПервыйДокумент = Истина;
Пока ВыборкаШапка.Следующий() Цикл
Если Не ПервыйДокумент Тогда
ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;
ПервыйДокумент = Ложь;
НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1;
МассивДляПроверки = Новый Массив;
МассивДляПроверки.Добавить(ОбластьИтоги);
МассивДляПроверки.Добавить(ОбластьПодвал);
ОбластьШапка.Параметры.Заполнить(ВыборкаШапка);
НаименованиеОрганизации = СтрШаблон(НСтр("ru = '%1 ИНН %2 КПП %3'"),
ВыборкаШапка.НаименованиеОрганизации, ВыборкаШапка.ИННОрганизации, ВыборкаШапка.КППОрганизации);
ПараметрОрганизация = Новый Структура;
ПараметрОрганизация.Вставить("пНаименованиеОрганизации", НаименованиеОрганизации);
ОбластьШапка.Параметры.Заполнить(ПараметрОрганизация);
РегистрыСведений.НастройкиПечатиПрефиксаНомера.УстановитьНомерДляПечатиВОбластьПечати(ОбластьШапка,
"пНомер",ВыборкаШапка.пНомер, ВыборкаШапка.Ссылка, Неопределено, Истина);
АдресОрганизации = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияОбъекта(ВыборкаШапка.Организация,
Справочники.ВидыКонтактнойИнформации.ЮрАдресОрганизации);
ТелефонОрганизации = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияОбъекта(ВыборкаШапка.Организация,
Справочники.ВидыКонтактнойИнформации.ТелефонОрганизации);
ДопДанныеПечати = Новый Структура;
ДопДанныеПечати.Вставить("пАдресТелефон", АдресОрганизации + ?(ПустаяСтрока(ТелефонОрганизации), "", ", тел.:"+ТелефонОрганизации));
Если ВыборкаШапка.БылоИзменениеКППКонтрагента Тогда
КПП = Справочники.Контрагенты.ПолучитьКПП(ВыборкаШапка.Контрагент, ВыборкаШапка.пДата);
Иначе
КПП = ВыборкаШапка.КонтрагентКПП;
КонецЕсли;
ИНН = ВыборкаШапка.КонтрагентИНН;
КонтрагентНаименование = ВыборкаШапка.КонтрагентНаименование;
ДопДанныеПечати.Вставить("пЗаказчик", "" + КонтрагентНаименование
+ ?(ПустаяСтрока(ИНН), "", " ИНН " + ИНН)
+ ?(ПустаяСтрока(КПП), "", " КПП " + КПП));
ДопДанныеПечати.Вставить("пДата", Формат(ВыборкаШапка.пДата, "ДЛФ=DD"));
ОбластьШапка.Параметры.Заполнить(ДопДанныеПечати);
ТабличныйДокумент.Вывести(ОбластьШапка);
ВыборкаВсеСтроки.Сбросить();
ОтборСтрок = Новый Структура("Ссылка", ВыборкаШапка.Ссылка);
Если ВыборкаВсеСтроки.НайтиСледующий(ОтборСтрок) Тогда
ВыборкаСтрок = ВыборкаВсеСтроки.Выбрать();
КоличествоСтрок = ВыборкаСтрок.Количество();
Иначе
КоличествоСтрок = 0;
КонецЕсли;
ИтогСумма = 0;
ИтогНДС = 0;
Пока КоличествоСтрок > 0 И ВыборкаСтрок.Следующий() Цикл
Попытка
Если ВыборкаСтрок.пНом = КоличествоСтрок Тогда
МассивДляПроверки.Добавить(ОбластьСтрока);
Если НЕ ТабличныйДокумент.ПроверитьВывод(МассивДляПроверки) Тогда
ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
ТабличныйДокумент.Вывести(ОбластьЗаголовок);
КонецЕсли;
ИначеЕсли НЕ ТабличныйДокумент.ПроверитьВывод(ОбластьСтрока) Тогда
ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
ТабличныйДокумент.Вывести(ОбластьЗаголовок);
КонецЕсли;
Исключение
Сообщить("В системе не установлено ни одного принтера.");
КонецПопытки;
ОбластьСтрока.Параметры.Заполнить(ВыборкаСтрок);
ТабличныйДокумент.Вывести(ОбластьСтрока);
ИтогСумма = ИтогСумма + ВыборкаСтрок.пСумма;
ИтогНДС = ИтогНДС + ВыборкаСтрок.пСуммаНДС;
КонецЦикла;
Если КоличествоСтрок = 0 Тогда
Область = Макет.ПолучитьОбласть("Строка");
ТабличныйДокумент.Вывести(Область);
КонецЕсли;
ДопДанныеПечати = Новый Структура;
ДопДанныеПечати.Вставить("пИтогСумма", ИтогСумма);
ДопДанныеПечати.Вставить("пИтогНДС", ИтогНДС);
Если ВыборкаШапка.СуммаВключаетНДС Тогда
ДопДанныеПечати.Вставить("пТекстНДС", "В том числе НДС");
пИтогВсего = ИтогСумма;
Иначе
ДопДанныеПечати.Вставить("пТекстНДС", "Итого НДС");
пИтогВсего = ИтогСумма + ИтогНДС;
КонецЕсли;
ДопДанныеПечати.Вставить("пИтогВсего", пИтогВсего);
ОбластьИтоги.Параметры.Заполнить(ДопДанныеПечати);
ТабличныйДокумент.Вывести(ОбластьИтоги);
ДопДанныеПечати = Новый Структура;
ДопДанныеПечати.Вставить("пИтогВсегоПрописью", ОбщегоНазначенияБГУ.СформироватьСуммуПрописью(пИтогВсего, ВыборкаШапка.ВалютаДокумента));
ДопДанныеПечати.Вставить("пИтогНДСПрописью", ОбщегоНазначенияБГУ.СформироватьСуммуПрописью(ИтогНДС, ВыборкаШапка.ВалютаДокумента));
ДопДанныеПечати.Вставить("РуководительФИО", Справочники.Сотрудники.ФамилияИО(ВыборкаШапка.Руководитель, Истина, ВыборкаШапка.пДата));
ДанныеПодписанта = Новый Структура("СсылкаНаОбъект, Период, Должность", ВыборкаШапка.Руководитель, ВыборкаШапка.пДата);
Справочники.Сотрудники.ПолучитьДанныеСотрудника(ДанныеПодписанта);
ДопДанныеПечати.Вставить("РуководительДолжность", ДанныеПодписанта.Должность);
ОбластьПодвал.Параметры.Заполнить(ДопДанныеПечати);
ТабличныйДокумент.Вывести(ОбластьПодвал);
// В табличном документе зададим имя области, в которую был
// выведен объект. Нужно для возможности печати покомплектно.
УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент,
НомерСтрокиНачало, ОбъектыПечати, ВыборкаШапка.Ссылка, СведенияОДокументе.Документ);
КонецЦикла;
Возврат ТабличныйДокумент;
КонецФункции
ПоказатьОтветы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Добрый день! Полагаю на макете внешней печатной формы выделить область, загружать рисунок из хранилища и передавать на эту область.
код типа такого (пример присоединения в макете)
ТабДок = Новый ТабличныйДокумент;
ОтчетОбъект = РеквизитФормыВЗначение("Объект");
Макет = ОтчетОбъект.ПолучитьМакет("Макет");
ОбластьСтрока=Макет.ПолучитьОбласть("Строка|Наименование");
ОбластьКартинка=Макет.ПолучитьОбласть("Строка|Картинка");
Рисунок = ОбластьКартинка.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка);
Рисунок.Верх = 0;
Рисунок.Лево = 0;
Рисунок.Высота = 5;
Рисунок.Ширина = 5;
Рисунок.Линия = Новый Линия(ТипЛинииРисункаТабличногоДокумента.НетЛинии);
Для Каждого стр из Таблица Цикл
ОбластьСтрока.Параметры.Наименование=стр.Наименование;
Рисунок.Картинка = стр.Картинка;
ТабДок.Вывести(ОбластьСтрока);
ТабДок.Присоединить(ОбластьКартинка);
КонецЦикла;
Возврат ТабДок;
Показатькод типа такого (пример присоединения в макете)
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот