Добрый день. Можете подсказать как можно сделать чтобы информация о исполнителе и заказчике выводились в самом вверху в два столбца по вертикали, а ниже было написано номер акта? Пробовал исправить все на макете, все равно Акт всегда находится выше исполнителя с заказчиком и плюс еще они всегда расположены в 2 строки по горизонтали.
Функция Печать() Экспорт
ЗапросШапка = Новый Запрос;
ЗапросШапка.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект);
ЗапросШапка.Текст =
"ВЫБРАТЬ
| Номер,
| Дата,
| ДоговорКонтрагента,
| ДоговорКонтрагента.РасчетыВУсловныхЕдиницах КАК РасчетыВУсловныхЕдиницах,
| Контрагент КАК Получатель,
| Организация КАК Поставщик,
| Организация,
| СуммаДокумента,
| ВалютаДокумента,
| УчитыватьНДС,
| СуммаВключаетНДС
|ИЗ
| Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
|
|ГДЕ
| РеализацияТоваровУслуг.Ссылка = &ТекущийДокумент";
Шапка = ЗапросШапка.Выполнить().Выбрать();
Шапка.Следующий();
ЗапросУслуги = Новый Запрос;
ЗапросУслуги.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект);
ЗапросУслуги.УстановитьПараметр("Курс", ЗаполнениеДокументов.КурсДокумента(ЭтотОбъект, мВалютаРегламентированногоУчета));
ЗапросУслуги.УстановитьПараметр("Кратность", ЗаполнениеДокументов.КратностьДокумента(ЭтотОбъект, мВалютаРегламентированногоУчета));
ЧастьЗапросаДляВыбораСодержанияУслуг = ФормированиеПечатныхФорм.ПолучитьЧастьЗапросаДляВыбораСодержанияУслуг("РеализацияТоваровУслуг");
//
ЗапросУслуги.Текст =
"ВЫБРАТЬ
| " + ЧастьЗапросаДляВыбораСодержанияУслуг + " КАК Номенклатура,
| " + ЧастьЗапросаДляВыбораСодержанияУслуг + " КАК Товар,
| Истина КАК Услуга,
| Количество,
| Номенклатура.БазоваяЕдиницаИзмерения КАК ЕдиницаИзмерения,
| Цена * &Курс / &Кратность КАК Цена,
| Сумма * &Курс / &Кратность КАК Сумма,
| СтавкаНДС,
| СуммаНДС * &Курс / &Кратность КАК СуммаНДС
|ИЗ
| Документ.РеализацияТоваровУслуг.Услуги КАК РеализацияТоваровУслуг
|
|ГДЕ
| РеализацияТоваровУслуг.Ссылка = &ТекущийДокумент
|";
Если СсылкаНаОбъект.Проведен И (Шапка.РасчетыВУсловныхЕдиницах
ИЛИ (Шапка.ВалютаДокумента <> мВалютаРегламентированногоУчета И Шапка.Дата >= '20090101000000')) Тогда
ЗапросУслуги.Текст = ЗапросУслуги.Текст +
"
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| Номенклатура КАК Номенклатура,
| ВЫРАЗИТЬ(Номенклатура.НаименованиеПолное КАК Строка(1000)) КАК Товар,
| Ложь КАК Услуга,
| Количество,
| ЕдиницаИзмерения КАК ЕдиницаИзмерения,
| Цена * &Курс / &Кратность КАК Цена,
| Сумма * &Курс / &Кратность КАК Сумма,
| СтавкаНДС,
| СуммаНДС * &Курс / &Кратность КАК СуммаНДС
|ИЗ
| Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслуг
|
|ГДЕ
| РеализацияТоваровУслуг.Ссылка = &ТекущийДокумент";
ТаблицаУслуги = ЗапросУслуги.Выполнить().Выгрузить();
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Ссылка", СсылкаНаОбъект);
Текст =
"ВЫБРАТЬ
| СУММА(Хозрасчетный.Сумма) КАК Сумма
|ИЗ
| РегистрБухгалтерии.Хозрасчетный КАК Хозрасчетный
|ГДЕ
| Хозрасчетный.Регистратор = &Ссылка
| И Хозрасчетный.СчетДт = Хозрасчетный.Регистратор.СчетУчетаРасчетовСКонтрагентом
| И Хозрасчетный.СчетКт В
| (ВЫБРАТЬ РАЗЛИЧНЫЕ
| РеализацияТоваровУслугТовары.СчетДоходовБУ
| ИЗ
| Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
| ГДЕ
| РеализацияТоваровУслугТовары.Ссылка = Хозрасчетный.Регистратор
|
| ОБЪЕДИНИТЬ
|
| ВЫБРАТЬ РАЗЛИЧНЫЕ
| РеализацияТоваровУслугУслуги.СчетДоходовБУ
| ИЗ
| Документ.РеализацияТоваровУслуг.Услуги КАК РеализацияТоваровУслугУслуги
| ГДЕ
| РеализацияТоваровУслугУслуги.Ссылка = Хозрасчетный.Регистратор)
|";
Запрос.Текст = Текст;
СуммаВзаиморасчетов = Запрос.Выполнить().Выгрузить()[0].Сумма;
РасчетСуммыНДСПоСтавке = УчетНДС.РасчетНДСвРубляхПоСтавкеДокумента(Шапка.Дата);
Если НЕ СуммаВзаиморасчетов = NULL Тогда
ТаблицаУслуги.Колонки.Добавить("СуммаБезНДС");
МассивРаспределения = Новый Массив;
Для Каждого СтрокаТовар Из ТаблицаУслуги Цикл
СуммаСНДС = СтрокаТовар.Сумма + ?(Шапка.СуммаВключаетНДС, 0, СтрокаТовар.СуммаНДС);
СуммаБезНДС = СуммаСНДС - СтрокаТовар.СуммаНДС;
МассивРаспределения.Добавить(СуммаСНДС);
СтрокаТовар.СуммаБезНДС = СуммаБезНДС;
КонецЦикла;
ТаблицаУслуги.Колонки.Добавить("СуммаРублевая");
УчетНДС.РаспределитьСуммуПоСтолбцу(МассивРаспределения, СуммаВзаиморасчетов, ТаблицаУслуги, "СуммаРублевая");
Для Каждого СтрокаТовар Из ТаблицаУслуги Цикл
Если РасчетСуммыНДСПоСтавке Тогда
//Выделение суммы НДС, Расчет суммы без НДС
ЗначениеСтавкиНДС = УчетНДС.ПолучитьСтавкуНДС(СтрокаТовар.СтавкаНДС);
СтрокаТовар.СуммаНДС = ?(ЗначениеСтавкиНДС = 0, 0, Окр(СтрокаТовар.СуммаРублевая * ЗначениеСтавкиНДС/(100+ЗначениеСтавкиНДС),2));
СтрокаТовар.Сумма = СтрокаТовар.СуммаРублевая - СтрокаТовар.СуммаНДС;
Иначе
МассивРаспределения.Очистить();
МассивРаспределения.Добавить(СтрокаТовар.СуммаБезНДС);
МассивРаспределения.Добавить(СтрокаТовар.СуммаНДС);
МассивРаспределенныхСумм = ОбщегоНазначения.РаспределитьПропорционально(СтрокаТовар.СуммаРублевая, МассивРаспределения);
Если МассивРаспределенныхСумм <> Неопределено Тогда
СтрокаТовар.Сумма = МассивРаспределенныхСумм[0];
СтрокаТовар.СуммаНДС = МассивРаспределенныхСумм[1];
КонецЕсли;
КонецЕсли;
Если Шапка.СуммаВключаетНДС Тогда
СтрокаТовар.Сумма = СтрокаТовар.Сумма+СтрокаТовар.СуммаНДС;
КонецЕсли;
КонецЦикла;
КонецЕсли;
Иначе
ТаблицаУслуги = ЗапросУслуги.Выполнить().Выгрузить();
КонецЕсли;
ТабДокумент = Новый ТабличныйДокумент;
ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_РеализацияТоваровУслуг_Акт";
Макет = ПолучитьМакет("Акт");
ОбластьМакета = Макет.ПолучитьОбласть("Заголовок");
ОбластьМакета.Параметры.ТекстЗаголовка = ОбщегоНазначения.СформироватьЗаголовокДокумента(Шапка, "Акт");
ТабДокумент.Вывести(ОбластьМакета);
//Добавленная строка
СведенияОПоставщике = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Организация, Шапка.Дата);
ОбластьМакета = Макет.ПолучитьОбласть("Поставщик");
//Первоначальная строка
//ПредставлениеПоставщика = ФормированиеПечатныхФорм.ОписаниеОрганизации(УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Организация, Шапка.Дата), "НаименованиеДляПечатныхФорм,");
ПредставлениеПоставщика = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПоставщике);
ОбластьМакета.Параметры.ПредставлениеПоставщика = ПредставлениеПоставщика;
ОбластьМакета.Параметры.Поставщик = Шапка.Поставщик;
ТабДокумент.Вывести(ОбластьМакета);
//Добавленная строка
СведенияОПокупателе = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Получатель, Шапка.Дата);
ОбластьМакета = Макет.ПолучитьОбласть("Покупатель");
//Первоначальная строка
//ПредставлениеПолучателя = ФормированиеПечатныхФорм.ОписаниеОрганизации(УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Получатель, Шапка.Дата), "ПолноеНаименование,");
ПредставлениеПолучателя = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПокупателе);
ОбластьМакета.Параметры.ПредставлениеПолучателя = ПредставлениеПолучателя;
ОбластьМакета.Параметры.Получатель = Шапка.Получатель;
ТабДокумент.Вывести(ОбластьМакета);
ЕстьСкидки = Ложь;
// Вывести табличную часть
ОбластьМакета = Макет.ПолучитьОбласть("ШапкаТаблицы");
ОбластьСтроки = Макет.ПолучитьОбласть("Строка");
ТабДокумент.Вывести(ОбластьМакета);
НомерСтроки = 0;
Сумма = 0;
СуммаНДС = 0;
Для Каждого СтрокаТабличнойЧасти Из ТаблицаУслуги Цикл
Если Не СтрокаТабличнойЧасти.Услуга Тогда
Продолжить;
КонецЕсли;
НомерСтроки = НомерСтроки + 1;
Сумма = Сумма + СтрокаТабличнойЧасти.Сумма;
СуммаНДС = СуммаНДС + СтрокаТабличнойЧасти.СуммаНДС;
ОбластьСтроки.Параметры.Заполнить(СтрокаТабличнойЧасти);
ОбластьСтроки.Параметры.НомерСтроки = НомерСтроки;
ОбластьСтроки.Параметры.Товар = СокрЛП(СтрокаТабличнойЧасти.Товар);
ТабДокумент.Вывести(ОбластьСтроки);
КонецЦикла;
ОбластьМакета = Макет.ПолучитьОбласть("Итого");
ОбластьМакета.Параметры.Всего = ОбщегоНазначения.ФорматСумм(Сумма);
ТабДокумент.Вывести(ОбластьМакета);
Если Шапка.УчитыватьНДС Тогда
ОбластьМакета = Макет.ПолучитьОбласть("ИтогоНДС");
Если СуммаНДС <> 0 Тогда
ОбластьМакета.Параметры.ВсегоНДС = ОбщегоНазначения.ФорматСумм(СуммаНДС);
ОбластьМакета.Параметры.НДС = ?(Шапка.СуммаВключаетНДС, "В том числе НДС", " Сумма НДС");
Иначе
ОбластьМакета.Параметры.ВсегоНДС = "-";
ОбластьМакета.Параметры.НДС = "Без налога (НДС)";
КонецЕсли;
ТабДокумент.Вывести(ОбластьМакета);
КонецЕсли;
СуммаКПрописи = Сумма + ?(Шапка.СуммаВключаетНДС, 0, СуммаНДС);
ОбластьМакета = Макет.ПолучитьОбласть("СуммаПрописью");
ОбластьМакета.Параметры.ИтоговаяСтрока ="Всего оказано услуг " + НомерСтроки
+ ", на сумму " + ОбщегоНазначения.ФорматСумм(СуммаКПрописи, мВалютаРегламентированногоУчета);
ОбластьМакета.Параметры.СуммаПрописью = ОбщегоНазначения.СформироватьСуммуПрописью(СуммаКПрописи, мВалютаРегламентированногоУчета);
ТабДокумент.Вывести(ОбластьМакета);
ОбластьМакета = Макет.ПолучитьОбласть("Подписи");
ТабДокумент.Вывести(ОбластьМакета);
Возврат ТабДокумент;
КонецФункции // ПечатьАктаОбОказанииУслуг()