Не удалось сформировать внешнюю печатную форму недостаточно фактических параметров

Внешняя печатная форма.Ошибка при запуске.

Создал внешнюю печатную форму из внутренней.Добавляю ее в предприятие.Но при запуске печати пишет ошибку : Не удалось сформировать внешнюю печатную форму!
Недостаточно фактических параметров

вот код который в модуле объекта.

Перем мВалютаРегламентированногоУчета Экспорт;
Перем Проведен Экспорт;

Запрос = Новый Запрос;
Запрос.УстановитьПараметр(“ТекущийДокумент”, ЭтотОбъект.Ссылка);
Запрос.Текст =
“ВЫБРАТЬ
| ПоступлениеТоваровУслуг.Номер КАК Номер,
| ПоступлениеТоваровУслуг.Дата КАК ДатаСоставления,
| ПоступлениеТоваровУслуг.НомерВходящегоДокумента КАК НомерСопроводительногоДокумента,
| ПоступлениеТоваровУслуг.Организация,
| ПоступлениеТоваровУслуг.Организация КАК ЮрФизЛицо,
| ПоступлениеТоваровУслуг.Склад КАК МестоПриемки,
| ПоступлениеТоваровУслуг.Склад.Представление КАК СкладНаименование,
| ПоступлениеТоваровУслуг.Контрагент.Код КАК ПоставщикКод,
| ПоступлениеТоваровУслуг.Контрагент КАК Поставщик,
| ЕСТЬNULL(ПоступлениеТоваровУслуг.ДоговорКонтрагента.РасчетыВУсловныхЕдиницах, ЛОЖЬ) КАК РасчетыВУсловныхЕдиницах,
| ПоступлениеТоваровУслуг.ВалютаДокумента,
| ПоступлениеТоваровУслуг.КурсВзаиморасчетов КАК Курс,
| ПоступлениеТоваровУслуг.КратностьВзаиморасчетов КАК Кратность,
| ПоступлениеТоваровУслуг.УчитыватьНДС,
| ПоступлениеТоваровУслуг.СуммаВключаетНДС,
| ПоступлениеТоваровУслуг.СчетУчетаРасчетовСКонтрагентом КАК СубСчет
|ИЗ
| Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг
|ГДЕ
| ПоступлениеТоваровУслуг.Ссылка = &ТекущийДокумент”;

Шапка = Запрос.Выполнить().Выбрать();
Шапка.Следующий();

ЗапросПоТоварам = Новый Запрос();
ЗапросПоТоварам.УстановитьПараметр(“ТекущийДокумент”, СсылкаНаОбъект);
ЗапросПоТоварам.УстановитьПараметр(“Курс”, ЗаполнениеДокументов.КурсДокумента(СсылкаНаОбъект.ПолучитьОбъект(), мВалютаРегламентированногоУчета));
ЗапросПоТоварам.УстановитьПараметр(“Кратность”, ЗаполнениеДокументов.КратностьДокумента(СсылкаНаОбъект.ПолучитьОбъект(), мВалютаРегламентированногоУчета));
ЗапросПоТоварам.Текст = “ВЫБРАТЬ
| ПоступлениеТоваровУслуг.Номенклатура КАК Номенклатура,
| ВЫРАЗИТЬ(ПоступлениеТоваровУслуг.Номенклатура.НаименованиеПолное КАК СТРОКА(1000)) КАК ТоварНаименование,
| ПоступлениеТоваровУслуг.Номенклатура.Код КАК ТоварКод,
| ПоступлениеТоваровУслуг.Номенклатура.БазоваяЕдиницаИзмерения.Наименование КАК ЕдиницаИзмеренияНаименование,
| ПоступлениеТоваровУслуг.Номенклатура.БазоваяЕдиницаИзмерения.Код КАК ЕдиницаИзмеренияКод,
| ПоступлениеТоваровУслуг.СтавкаНДС КАК СтавкаНДС,
| СУММА(ПоступлениеТоваровУслуг.Количество) КАК КоличествоПринято,
| СУММА(ПоступлениеТоваровУслуг.Сумма * &Курс / &Кратность) КАК Стоимость,
| СУММА(ПоступлениеТоваровУслуг.СуммаНДС * &Курс / &Кратность) КАК СуммаНДС,
| МИНИМУМ(ПоступлениеТоваровУслуг.НомерСтроки) КАК НомерСтроки
|ИЗ
| Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслуг
|ГДЕ
| ПоступлениеТоваровУслуг.Ссылка = &ТекущийДокумент
|
|СГРУППИРОВАТЬ ПО
| ПоступлениеТоваровУслуг.Номенклатура,
| ПоступлениеТоваровУслуг.ЕдиницаИзмерения,
| ПоступлениеТоваровУслуг.Цена,
| ПоступлениеТоваровУслуг.СтавкаНДС
|
|УПОРЯДОЧИТЬ ПО
| НомерСтроки”;

Если Константы.ДополнительнаяКолонкаПечатныхФормДокументов.Получить() = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Артикул Тогда
ЗапросПоТоварам.Текст = СтрЗаменить(ЗапросПоТоварам.Текст, “Номенклатура.Код”,”Номенклатура.Артикул”);
КонецЕсли;

Если Проведен И (Шапка.РасчетыВУсловныхЕдиницах
ИЛИ (Шапка.ВалютаДокумента <> мВалютаРегламентированногоУчета >= ‘20090101000000’)) Тогда

Запрос.Текст = Текст;
СуммаВзаиморасчетов = Запрос.Выполнить().Выгрузить()[0].Сумма;

Если НЕ СуммаВзаиморасчетов = NULL Тогда

МассивРаспределения = Новый Массив;

Для Каждого СтрокаТовар Из ЗапросТовары Цикл

МассивРаспределения.Добавить(СуммаСНДС);
СтрокаТовар.СуммаБезНДС = СуммаБезНДС;

ЗапросТовары.Колонки.Добавить(“СуммаРублевая”);
УчетНДС.РаспределитьСуммуПоСтолбцу(МассивРаспределения, СуммаВзаиморасчетов, ЗапросТовары, “СуммаРублевая”);

Для Каждого СтрокаТовар Из ЗапросТовары Цикл

Если РасчетСуммыНДСПоСтавке Тогда
//Выделение суммы НДС, Расчет суммы без НДС
ЗначениеСтавкиНДС = УчетНДС.ПолучитьСтавкуНДС(СтрокаТовар.СтавкаНДС);

Иначе
МассивРаспределения.Очистить();
МассивРаспределения.Добавить(СтрокаТовар.СуммаБезНДС);
МассивРаспределения.Добавить(СтрокаТовар.СуммаНДС);
МассивРаспределенныхСумм = ОбщегоНазначения.РаспределитьПропорционально(СтрокаТовар.СуммаРублевая, МассивРаспределения);
Если МассивРаспределенныхСумм <> Неопределено Тогда
СтрокаТовар.Стоимость = МассивРаспределенныхСумм[0];
СтрокаТовар.СуммаНДС = МассивРаспределенныхСумм[1];
КонецЕсли;
КонецЕсли;

Если Шапка.СуммаВключаетНДС Тогда
СтрокаТовар.Стоимость = СтрокаТовар.Стоимость+СтрокаТовар.СуммаНДС;
КонецЕсли;

ТабДокумент = Новый ТабличныйДокумент;

// Зададим параметры макета
ТабДокумент.ПолеСверху = 0;
ТабДокумент.ПолеСлева = 0;
ТабДокумент.ПолеСнизу = 0;
ТабДокумент.ПолеСправа = 0;
ТабДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;

ОбластьМакетаШапка = Макет.ПолучитьОбласть(“Шапка”);
ОбластьМакетаЗаголовокДокумента = Макет.ПолучитьОбласть(“ЗаголовокДокумента”);
ОбластьМакетаЗаголовокТаблицы = Макет.ПолучитьОбласть(“ЗаголовокТаблицы”);
ОбластьМакетаСтрока = Макет.ПолучитьОбласть(“Строка”);
ОбластьМакетаПодвалСтрок = Макет.ПолучитьОбласть(“ПодвалСтрок”);
ОбластьМакетаИтого = Макет.ПолучитьОбласть(“Итого”);
ОбластьМакетаПодвал = Макет.ПолучитьОбласть(“Подвал”);

// Выводим общие реквизиты шапки
СведенияОПокупателе = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.ЮрФизЛицо, Шапка.ДатаСоставления);

ОбластьМакетаШапка.Параметры.Заполнить(Шапка);
ОбластьМакетаШапка.Параметры.ПредставлениеОрганизации = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПокупателе);
ОбластьМакетаШапка.Параметры.ОрганизацияПоОКПО = СведенияОПокупателе.КодПоОКПО;
ОбластьМакетаШапка.Параметры.НомерДокумента = ОбщегоНазначения.ПолучитьНомерНаПечать(Шапка);

// Выводим заголовок документа
ОбластьМакетаЗаголовокДокумента.Параметры.Заполнить(Шапка);
ОбластьМакетаЗаголовокДокумента.Параметры.ДатаСоставления = Шапка.ДатаСоставления;
ПредставлениеКонтрагента = ФормированиеПечатныхФорм.ОписаниеОрганизации(
УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Поставщик, Шапка.ДатаСоставления), “НаименованиеДляПечатныхФорм,”);
ОбластьМакетаЗаголовокДокумента.Параметры.ПоставщикНаименование = ПредставлениеКонтрагента;
ТабДокумент.Вывести(ОбластьМакетаЗаголовокДокумента);

// Выводим заголовок таблицы
ТабДокумент.Вывести(ОбластьМакетаЗаголовокТаблицы);

// Инициализация итогов в документе
ИтогоКоличествоПринято = 0;
ИтогоСуммаБезНДС = 0;
ИтогоСуммаНДС = 0;
ИтогоВсегоСНДС = 0;
Ном = 0;

// Инициализация счетчиков страниц и строк
НомерСтраницы = 1;
НомерСтроки = 0;
КоличествоСтрок = ЗапросТовары.Количество();

// Выводим многострочную часть документа
Для Каждого ВыборкаСтрок Из ЗапросТовары Цикл

НомерСтроки = НомерСтроки + 1;

Если НЕ ФормированиеПечатныхФорм.ПроверитьВыводТабличногоДокумента(ТабДокумент, СтрокаСПодвалом) Тогда

НомерСтраницы = НомерСтраницы + 1;
ОбластьМакетаЗаголовокТаблицы.Параметры.НомерСтраницы = “Страница ” + НомерСтраницы;

// Выводим итоги по документу
ОбластьМакетаИтого.Параметры.ИтогоКоличествоПринято = ИтогоКоличествоПринято;
ОбластьМакетаИтого.Параметры.ИтогоСуммаБезНДС = ИтогоСуммаБезНДС;
ОбластьМакетаИтого.Параметры.ИтогоСуммаНДС = ИтогоСуммаНДС;
ОбластьМакетаИтого.Параметры.ИтогоВсегоСНДС = ИтогоВсегоСНДС;
ТабДокумент.Вывести(ОбластьМакетаИтого);

// Выводим итоги по документу
ОбластьМакетаПодвал = Макет.ПолучитьОбласть(“Подвал”);
ОбластьМакетаПодвал.Параметры.Заполнить(Шапка);
ТабДокумент.Вывести(ОбластьМакетаПодвал);

Функция Печать(ИмяМакета, КоличествоЭкземпляров = 1, НаПринтер = Ложь, НепосредственнаяПечать = Ложь) Экспорт

ТабДокумент = ПечатьМ4();
Возврат ТабДокумент;

КонецФункции // Печать
МВалютаРегламентированногоУчета = Константы.ВалютаРегламентированногоУчета.Получить();

Источник

v8: Ошибка при формировании внешней печатной формы.

Запрос = Новый Запрос;

// Установим параметры запроса
Запрос.УстановитьПараметр(“ДокументСсылка”, СсылкаНаОбъект);

Запрос.Текст =
“ВЫБРАТЬ
| ЗарплатаКВыплатеОрганизацииЗарплата.Физлицо КАК Физлицо,
| ДепонированиеОрганизацийДепонированиеЗаработнойПлаты.Ведомость КАК Ведомость,
| СУММА(ЗарплатаКВыплатеОрганизацииЗарплата.Сумма + ЗарплатаКВыплатеОрганизацииЗарплата.КомпенсацияЗаЗадержкуЗарплаты) КАК Сумма
|ИЗ
| Документ.ДепонированиеОрганизаций.ДепонированиеЗаработнойПлаты КАК ДепонированиеОрганизацийДепонированиеЗаработнойПлаты
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗарплатаКВыплатеОрганизаций.Зарплата КАК ЗарплатаКВыплатеОрганизацииЗарплата
| ПО ДепонированиеОрганизацийДепонированиеЗаработнойПлаты.Ведомость = ЗарплатаКВыплатеОрганизацииЗарплата.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СведенияОВыплатахРаботникамОрганизацийПоПлатежнымВедомостям КАК РанееВыплаченныеСуммы
| ПО ДепонированиеОрганизацийДепонированиеЗаработнойПлаты.Ведомость = РанееВыплаченныеСуммы.Ведомость
| И (ЗарплатаКВыплатеОрганизацииЗарплата.Физлицо = РанееВыплаченныеСуммы.Физлицо)
| И (РанееВыплаченныеСуммы.Регистратор <> &ДокументСсылка)
|ГДЕ
| ДепонированиеОрганизацийДепонированиеЗаработнойПлаты.Ссылка = &ДокументСсылка
| И ЗарплатаКВыплатеОрганизацииЗарплата.ВыплаченностьЗарплаты = ЗНАЧЕНИЕ(Перечисление.ВыплаченностьЗарплаты.Задепонировано)
| И РанееВыплаченныеСуммы.Физлицо ЕСТЬ NULL
|
|СГРУППИРОВАТЬ ПО
| ДепонированиеОрганизацийДепонированиеЗаработнойПлаты.Ведомость,
| ЗарплатаКВыплатеОрганизацииЗарплата.Физлицо”;

Функция ПечатьКарточкиДепонента(Документ, ДепонируемыеСуммы = Неопределено) Экспорт

ТабДокумент = Новый ТабличныйДокумент;
ТабДокумент.ПолеСлева = 0;
ТабДокумент.ПолеСправа = 0;
ТабДокумент.ИмяПараметровПечати = “ПАРАМЕТРЫ_ПЕЧАТИ_ДепонированиеОрганизаций_КарточкиДепонента”;

// получаем данные для печати
Шапка = Новый Структура;
Шапка.Вставить(“Номер”, Документ.Номер);
Шапка.Вставить(“ДатаДок”, Документ.Дата);
Шапка.Вставить(“НазваниеОрганизации”, СокрЛП(Документ.Организация.НаименованиеПолное));

Депоненты = ДепонентыПоДокументу(Документ, ДепонируемыеСуммы);

// выводим общие данные
ОбластьМакета.Параметры.Заполнить(Шапка); // Шапка документа.

ВыведеноСтрок = 0;
ВалютаРасчетов = Константы.ВалютаРегламентированногоУчета.Получить();
// выводим данные по строкам документа.
Для Каждого Депонент Из Депоненты Цикл

ВыведеноСтрок = ВыведеноСтрок + 1;
ОбластьМакета.Параметры.Заполнить(Депонент);
ОбластьМакета.Параметры.НомерКарточки = “” + Шапка.Номер + “/” + ВыведеноСтрок;
ОбластьМакета.Параметры.СуммаПрописью = ОбщегоНазначения.СформироватьСуммуПрописью(Депонент.Сумма, ВалютаРасчетов);
ТабДокумент.Вывести(ОбластьМакета);

// разбиение на страницы
Если ВыведеноСтрок % 2 Тогда
ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;

Функция ДепонентыПоДокументу(Документ, ДепонируемыеСуммы = Неопределено)

Запрос = Новый Запрос;

// Установим параметры запроса
Запрос.УстановитьПараметр(“ДатаДепонирования”, Документ.Дата);
Запрос.УстановитьПараметр(“Организация”, ОбщегоНазначения.ГоловнаяОрганизация(Документ.Организация));

Если ДепонируемыеСуммы = Неопределено Тогда
Запрос.УстановитьПараметр(“Регистратор”, Документ.СсылкаНаОбъект);
ТекстЗапросаДепонируемыхСумм =
“ВЫБРАТЬ
| ВзаиморасчетыСДепонентамиОрганизаций.Физлицо,
| ВзаиморасчетыСДепонентамиОрганизаций.Ведомость,
| ВзаиморасчетыСДепонентамиОрганизаций.Сумма
|ПОМЕСТИТЬ ВТДепонированныеСуммы
|ИЗ
| РегистрНакопления.ВзаиморасчетыСДепонентамиОрганизаций КАК ВзаиморасчетыСДепонентамиОрганизаций
|ГДЕ
| ВзаиморасчетыСДепонентамиОрганизаций.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
| И ВзаиморасчетыСДепонентамиОрганизаций.Регистратор = &Регистратор”
Иначе
Запрос.УстановитьПараметр(“ДепонируемыеСуммы”, ДепонируемыеСуммы);
ТекстЗапросаДепонируемыхСумм =
“ВЫБРАТЬ
| ДепонируемыеСуммы.Физлицо,
| ДепонируемыеСуммы.Ведомость,
| ДепонируемыеСуммы.Сумма
|ПОМЕСТИТЬ ВТДепонированныеСуммы
|ИЗ
| &ДепонируемыеСуммы КАК ДепонируемыеСуммы”
КонецЕсли;

Функция Печать(ИмяМакета, КоличествоЭкземпляров = 1, НаПринтер = Ложь) Экспорт

// Получить экземпляр документа на печать
Если ИмяМакета = “КарточкаДепонента” тогда

ТабДокумент = Документы.ДепонированиеОрганизаций.ПечатьКарточкиДепонента(ЭтотОбъект, ДепонируемыеСуммыДляПечати());
УниверсальныеМеханизмы.НапечататьДокумент(ТабДокумент, КоличествоЭкземпляров, НаПринтер, ОбщегоНазначения.СформироватьЗаголовокДокумента(ЭтотОбъект,”Карточки депонентов”));

Источник

Создание внешней печатной формы (Ошибка)

Сделал внешнюю печатную форма Требование накладная, а при выводе на печать пишет:
Не удалось сформировать внешнюю печатную форму!
Поле объекта не обнаружено (Ссылка)

Вот модуль объекта:
Перем СсылкаНаОбъект Экспорт;

ТабДокумент = Новый ТабличныйДокумент;
ТабДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
ТабДокумент.ИмяПараметровПечати = “ПараметрыПечати_ТребованиеНакладная_М11”;

Область = Макет.ПолучитьОбласть(“Шапка”);
Область.Параметры.Заголовок = “ТРЕБОВАНИЕ-НАКЛАДНАЯ № ” + Строка(Документ.Номер);
Область.Параметры.КодОКПО = Документ.Организация.КодПоОКПО;
СведенияОбОрганизации = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Документ.Организация, Документ.Дата);
ПредставлениеОрганизации = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОбОрганизации, “НаименованиеДляПечатныхФорм,”);
Область.Параметры.ПредставлениеОрганизации = ПредставлениеОрганизации;
Область.Параметры.ДатаСоставления = Формат( Документ.Дата, “ДФ=dd.MM.yy”);
Область.Параметры.Склад = Документ.Склад;
Область.Параметры.КоррСчет = Документ.СчетЗатрат.Код;
Область.Параметры.ПредставлениеПодразделения = Документ.ПодразделениеЗатрат.Наименование;
ТабДокумент.Вывести(Область);

СтруктураПолей = Новый Структура;
СтруктураПолей.Вставить(“Счет”, “Счет”);
СтруктураПолей.Вставить(“Материал”, “Номенклатура”);
СтруктураПолей.Вставить(“МатериалНаименование”, “Номенклатура.НаименованиеПолное”);

Если Константы.ДополнительнаяКолонкаПечатныхФормДокументов.Получить() = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Артикул Тогда
СтруктураПолей.Вставить(“НоменклатурныйНомер”, “Номенклатура.Артикул”);
Иначе
СтруктураПолей.Вставить(“НоменклатурныйНомер”, “Номенклатура.Код”);
КонецЕсли;

СтруктураПолей.Вставить(“ЕдиницаИзмеренияНаименование”, “Номенклатура.БазоваяЕдиницаИзмерения”);
СтруктураПолей.Вставить(“ЕдиницаИзмеренияКод”, “Номенклатура.БазоваяЕдиницаИзмерения.Код”);
СтруктураПолей.Вставить(“Количество”, “Количество”);

ТаблицаМатериалов = ОбщегоНазначения.СформироватьЗапросПоТабличнойЧасти(ЭтотОбъект, “Материалы”, СтруктураПолей).Выгрузить();
ТаблицаМатериалов.Свернуть(“Материал, МатериалНаименование, Счет, НоменклатурныйНомер,ЕдиницаИзмеренияКод,ЕдиницаИзмеренияНаименование”, “Количество”);

// Поиск сумм списания активов для заполнения Цены и Суммы
ТаблицаСуммСписания = БухгалтерскийУчет.ПолучитьСуммуСписанияАктивов(ЭтотОБъект);

Для Каждого СтрокаТЧ Из ТаблицаМатериалов Цикл

ТаблицаМатериалов = ОбщегоНазначения.СформироватьЗапросПоТабличнойЧасти(ЭтотОбъект, “МатериалыЗаказчика”, СтруктураПолей).Выгрузить();

Для Каждого СтрокаТЧ Из ТаблицаМатериалов Цикл

Источник

Недостаточно фактических параметров

Подобных тем на форуме достаточно, понимаю, что неверное количество параметров,
но как их подогнать не понимаю, уже сутки бъюсь и не получается исправить ошибку, я новичок.

Написала внешнюю печатную форму счета:

.
Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
ПараметрыВывода.ДоступнаПечатьПоКомплектно = Истина;

Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, “СчетНаОплатуВнешний”) Тогда
ТаблицаСведенийСчетНаОплату = ПолучитьТаблицуСведенийСчетаНаОплату(МассивОбъектов);
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, “СчетНаОплатуВнешний”, “Счет на оплату”,
ПечатьСчетаНаОплату(ПараметрыПечати.Организация, ОбъектыПечати, “ПФ_MXL_СчетЗаказ1”)); //удалено ПечатьТорговыхДокументов.
ЗаполнитьПараметрыЭлектроннойПочты = Ложь;
КонецЕсли;

ОбщегоНазначенияБП.ЗаполнитьДополнительныеПараметрыПечати(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);

Ошибка такая:
<ОбщийМодуль.УправлениеПечатью.Модуль(1510)>: Недостаточно фактических параметров
ВнешняяОбработкаОбъект.Печать(

В общем модуле УправлениеПечатью выглядит так:
.
ВнешняяОбработкаОбъект.Печать(
ПараметрыИсточника.ОбъектыНазначения,
КоллекцияПечатныхФорм,
ОбъектыПечати,
ПараметрыВывода);
.

Как ее исправить? Что ещё добавить, что бы заработало?

ниже полный код внеш. печатной формы:

Функция СведенияОВнешнейОбработке () экспорт
ПараметрыРегистрации = Новый Структура;
ПараметрыРегистрации.Вставить(“Вид”, “ПечатнаяФорма”);
ПараметрыРегистрации.Вставить(“Назначение”,ПолучитьНазначениеОбработки());
ПараметрыРегистрации.Вставить(“Наименование”, “Счет на оплату ВНЕШНИЙ”);
ПараметрыРегистрации.Вставить(“Версия”, “1.0”);
ПараметрыРегистрации.Вставить(“Информация”, “Счет на оплату (внешняя печатная форма)”);
ПараметрыРегистрации.Вставить(“БезопасныйРежим”,Истина);

ДобавитьКоманду(Команды,”Счет на оплату (внешняя печатная форма)”,
“СчетНаОплатуВнешний”,
“ВызовСерверногоМетода”,
Ложь,
“ПечатьMXL”);
ПараметрыРегистрации.Вставить(“Команды”,Команды);
Возврат ПараметрыРегистрации;

Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
ПараметрыВывода.ДоступнаПечатьПоКомплектно = Истина;

Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, “СчетНаОплатуВнешний”) Тогда
ТаблицаСведенийСчетНаОплату = ПолучитьТаблицуСведенийСчетаНаОплату(МассивОбъектов);
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, “СчетНаОплатуВнешний”, “Счет на оплату”,
ПечатьСчетаНаОплату(ПараметрыПечати.Организация, ОбъектыПечати, “ПФ_MXL_СчетЗаказ1”)); //удалено ПечатьТорговыхДокументов.
ЗаполнитьПараметрыЭлектроннойПочты = Ложь;
КонецЕсли;

ОбщегоНазначенияБП.ЗаполнитьДополнительныеПараметрыПечати(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);

Функция ПолучитьТаблицуСведенийСчетаНаОплату(Знач МассивДокументов) //ЭкспортДокументыБезСчетовНаОплату = Неопределено

Запрос = Новый Запрос;
Запрос.УстановитьПараметр(“МассивДокументов”, МассивДокументов);
Запрос.УстановитьПараметр(“ДополнительнаяКолонкаПечатныхФормДокументов”, Константы.ДополнительнаяКолонкаПечатныхФормДокументов.Получить());
Запрос.Текст = ПолучитьТекстЗапросаДляФормированияТаблицыСведенийСчетаНаОплату();

Выборка = РезультатЗапроса[1].Выбрать();
СтрокиДокументов = РезультатЗапроса[2].Выгрузить();
СтрокиДокументов.Индексы.Добавить(“Документ”);

Пока Выборка.Следующий() Цикл

СведенияОДокументе = ТаблицаСведений.Добавить();
ЗаполнитьЗначенияСвойств(СведенияОДокументе, Выборка);

Отбор = Новый Структура(“Документ”, Выборка.Документ);
СтрокиДокумента = СтрокиДокументов.НайтиСтроки(Отбор);

Для Каждого Строка Из СтрокиДокумента Цикл

СтрокаТаблицыДокумента = ТаблицаДокумента.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаТаблицыДокумента, Строка);

ПорядокЗаполнения = Новый Структура(“ЗаполнятьРуководителя, ЗаполнятьГлавногоБухгалтера”);
ПечатьТорговыхДокументов.ЗаполнитьДанныеОтветственныхЛиц(СведенияОДокументе, ПорядокЗаполнения);

Если НЕ ЗначениеЗаполнено(СведенияОДокументе.РуководительДолжностьНаименование) Тогда
Если ОбщегоНазначения.ЗначениеРеквизитаОбъекта(СведенияОДокументе.Получатель, “ЮридическоеФизическоеЛицо”)
= Перечисления.ЮридическоеФизическоеЛицо.ФизическоеЛицо Тогда
СведенияОДокументе.РуководительДолжностьНаименование = “Индивидуальный предприниматель”;
КонецЕсли;
КонецЕсли;

ТекстЗапроса =
“ВЫБРАТЬ
| СчетНаОплату.Ссылка КАК Ссылка,
| СчетНаОплату.Дата КАК ДатаДокумента,
| СчетНаОплату.СуммаВключаетНДС КАК СуммаВключаетНДС
|ПОМЕСТИТЬ ДокументыДляПечати
|ИЗ
| Документ.СчетНаОплатуПокупателю КАК СчетНаОплату
|ГДЕ
| СчетНаОплату.Ссылка В(&МассивДокументов)
|
|ИНДЕКСИРОВАТЬ ПО
| Ссылка
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| СчетНаОплату.Ссылка КАК Документ,
| СчетНаОплату.Дата КАК ДатаДляПолученияСведений,
| ДанныеПервичныхДокументов.Номер КАК НомерДокумента,
| ДанныеПервичныхДокументов.Дата КАК ДатаДокумента,
| СчетНаОплату.ВалютаДокумента КАК Валюта,
| СчетНаОплату.ВалютаДокумента.Код КАК ВалютаКод,
| СчетНаОплату.ВалютаДокумента.Наименование КАК ВалютаНаименование,
| СчетНаОплату.СуммаДокумента КАК СуммаДокумента,
| СчетНаОплату.КратностьВзаиморасчетов КАК КратностьВзаиморасчетов,
| СчетНаОплату.КурсВзаиморасчетов КАК КурсВзаиморасчетов,
| СчетНаОплату.СуммаВключаетНДС КАК СуммаВключаетНДС,
| СчетНаОплату.Организация КАК Организация,
| СчетНаОплату.ПодразделениеОрганизации КАК Подразделение,
| СчетНаОплату.Организация КАК Поставщик,
| СчетНаОплату.Организация КАК Руководители,
| СчетНаОплату.ОрганизацияПолучатель КАК Получатель,
| СчетНаОплату.Контрагент КАК Покупатель,
| СчетНаОплату.ДоговорКонтрагента КАК ДоговорКонтрагента,
| СчетНаОплату.ДоговорКонтрагента.Номер КАК НомерДоговора,
| СчетНаОплату.ДоговорКонтрагента.ГосударственныйКонтракт.Код КАК ГосударственныйКонтракт,
| СчетНаОплату.ДоговорКонтрагента.Дата КАК ДатаДоговора,
| СчетНаОплату.ДоговорКонтрагента.Руководитель КАК ФИОИсполнителя,
| СчетНаОплату.ДоговорКонтрагента.ДолжностьРуководителя КАК ДолжностьИсполнителя,
| СчетНаОплату.ДоговорКонтрагента.РуководительКонтрагента КАК ФИОЗаказчика,
| СчетНаОплату.ДоговорКонтрагента.ДолжностьРуководителяКонтрагента КАК ДолжностьЗаказчика,
| СчетНаОплату.ДоговорКонтрагента.УчетАгентскогоНДСПокупателем КАК НДСИсчисляетсяНалоговымАгентом,
| СчетНаОплату.СтруктурнаяЕдиница КАК БанковскийСчетПродавца,
| СчетНаОплату.СтруктурнаяЕдиница.ТекстКорреспондента КАК ТекстКорреспондента,
| СчетНаОплату.СтруктурнаяЕдиница.БанкДляРасчетов КАК БанкДляРасчетов,
| СчетНаОплату.Руководитель КАК Руководитель,
| СчетНаОплату.ГлавныйБухгалтер КАК ГлавныйБухгалтер,
| СчетНаОплату.ЗаРуководителяНаОсновании КАК ЗаРуководителяНаОсновании,
| СчетНаОплату.ЗаГлавногоБухгалтераНаОсновании КАК ЗаГлавногоБухгалтераНаОсновании,
| ВЫБОР
| КОГДА СчетНаОплату.СтруктурнаяЕдиница.БанкДляРасчетов <> ЗНАЧЕНИЕ(Справочник.Банки.ПустаяСсылка)
| ТОГДА СчетНаОплату.СтруктурнаяЕдиница.БанкДляРасчетов.Наименование + “” “” + СчетНаОплату.СтруктурнаяЕдиница.БанкДляРасчетов.Город
| ИНАЧЕ СчетНаОплату.СтруктурнаяЕдиница.Банк.Наименование + “” “” + СчетНаОплату.СтруктурнаяЕдиница.Банк.Город
| КОНЕЦ КАК НаименованиеБанкаПолучателя,
| ВЫБОР
| КОГДА СчетНаОплату.СтруктурнаяЕдиница.БанкДляРасчетов <> ЗНАЧЕНИЕ(Справочник.Банки.ПустаяСсылка)
| ТОГДА СчетНаОплату.СтруктурнаяЕдиница.БанкДляРасчетов
| ИНАЧЕ СчетНаОплату.СтруктурнаяЕдиница.Банк
| КОНЕЦ КАК БанкПолучателя,
| ВЫБОР
| КОГДА СчетНаОплату.СтруктурнаяЕдиница.БанкДляРасчетов <> ЗНАЧЕНИЕ(Справочник.Банки.ПустаяСсылка)
| ТОГДА СчетНаОплату.СтруктурнаяЕдиница.БанкДляРасчетов.Код
| ИНАЧЕ СчетНаОплату.СтруктурнаяЕдиница.Банк.Код
| КОНЕЦ КАК БикБанкаПолучателя,
| ВЫБОР
| КОГДА СчетНаОплату.СтруктурнаяЕдиница.БанкДляРасчетов <> ЗНАЧЕНИЕ(Справочник.Банки.ПустаяСсылка)
| ТОГДА СчетНаОплату.СтруктурнаяЕдиница.БанкДляРасчетов.КоррСчет
| ИНАЧЕ СчетНаОплату.СтруктурнаяЕдиница.Банк.КоррСчет
| КОНЕЦ КАК СчетБанкаПолучателя,
| ВЫБОР
| КОГДА СчетНаОплату.СтруктурнаяЕдиница.БанкДляРасчетов <> ЗНАЧЕНИЕ(Справочник.Банки.ПустаяСсылка)
| ТОГДА СчетНаОплату.СтруктурнаяЕдиница.БанкДляРасчетов.Город
| ИНАЧЕ СчетНаОплату.СтруктурнаяЕдиница.Банк.Город
| КОНЕЦ КАК ГородБанкаПолучателя,
| ВЫБОР
| КОГДА СчетНаОплату.СтруктурнаяЕдиница.БанкДляРасчетов <> ЗНАЧЕНИЕ(Справочник.Банки.ПустаяСсылка)
| ТОГДА СчетНаОплату.СтруктурнаяЕдиница.Банк.КоррСчет
| ИНАЧЕ СчетНаОплату.СтруктурнаяЕдиница.НомерСчета
| КОНЕЦ КАК НомерСчетаПолучателя,
| ВЫБОР
| КОГДА СчетНаОплату.СтруктурнаяЕдиница.БанкДляРасчетов <> ЗНАЧЕНИЕ(Справочник.Банки.ПустаяСсылка)
| ТОГДА “” р/с “” + СчетНаОплату.СтруктурнаяЕдиница.НомерСчета + “” в “” + СчетНаОплату.СтруктурнаяЕдиница.Банк.Наименование + “” “” + СчетНаОплату.СтруктурнаяЕдиница.Банк.Город
| КОНЕЦ КАК БанкТекстКорресподента,
| СчетНаОплату.СуммаСкидки КАК СуммаСкидки,
| СчетНаОплату.СтруктурнаяЕдиница.НомерСчета КАК НомерСчета,
| СчетНаОплату.СтруктурнаяЕдиница.Банк.Наименование КАК БанкНаименование,
| СчетНаОплату.СтруктурнаяЕдиница.Банк.Код КАК БИК,
| СчетНаОплату.СтруктурнаяЕдиница.Банк.КоррСчет КАК КоррСчет,
| ЕСТЬNULL(СчетНаОплату.ДополнительныеУсловия.ТекстУсловий, “”””) КАК ТекстДополнительныхУсловий,
| ЕСТЬNULL(СрокиОплатыДокументов.СрокОплаты, ДАТАВРЕМЯ(1, 1, 1)) КАК СрокОплаты
|ИЗ
| Документ.СчетНаОплатуПокупателю КАК СчетНаОплату
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДанныеПервичныхДокументов КАК ДанныеПервичныхДокументов
| ПО СчетНаОплату.Ссылка = ДанныеПервичныхДокументов.Документ
| И СчетНаОплату.Организация = ДанныеПервичныхДокументов.Организация
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СрокиОплатыДокументов КАК СрокиОплатыДокументов
| ПО СчетНаОплату.Ссылка = СрокиОплатыДокументов.Документ
| И СчетНаОплату.Организация = СрокиОплатыДокументов.Организация
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ДополнительныеУсловия КАК СправочникДополнительныеУсловия
| ПО СчетНаОплату.ДополнительныеУсловия = СправочникДополнительныеУсловия.Ссылка
|ГДЕ
| СчетНаОплату.Ссылка В
| (ВЫБРАТЬ
| ДокументыДляПечати.Ссылка
| ИЗ
| ДокументыДляПечати КАК ДокументыДляПечати)
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| СчетНаОплату.Ссылка КАК Документ,
| ДокументыДляПечати.ДатаДокумента КАК ДатаДокумента,
| ЗНАЧЕНИЕ(Перечисление.ТабличныеЧастиДокументов.Товары) КАК ТабличнаяЧасть,
| 1 КАК ПорядокТабличнойЧасти,
| СчетНаОплату.НомерСтроки КАК НомерСтроки,
| СчетНаОплату.Номенклатура КАК Номенклатура,
| СчетНаОплату.Номенклатура.Услуга КАК ЭтоУслуга,
| ВЫБОР
| КОГДА &ДополнительнаяКолонкаПечатныхФормДокументов = ЗНАЧЕНИЕ(Перечисление.ДополнительнаяКолонкаПечатныхФормДокументов.Код)
| ТОГДА СчетНаОплату.Номенклатура.Код
| КОГДА &ДополнительнаяКолонкаПечатныхФормДокументов = ЗНАЧЕНИЕ(Перечисление.ДополнительнаяКолонкаПечатныхФормДокументов.Артикул)
| ТОГДА СчетНаОплату.Номенклатура.Артикул
| ИНАЧЕ “”””
| КОНЕЦ КАК НоменклатураАртикул,
| &ЧастьЗапросаДляВыбораСодержанияУслуг КАК НоменклатураНаименование,
| &ЧастьЗапросаДляВыбораСодержанияУслуг КАК Содержание,
| ЕСТЬNULL(СчетНаОплату.Номенклатура.ЕдиницаИзмерения, ЗНАЧЕНИЕ(Справочник.КлассификаторЕдиницИзмерения.ПустаяСсылка)) КАК ЕдиницаИзмерения,
| ЕСТЬNULL(СчетНаОплату.Номенклатура.ЕдиницаИзмерения.Код, “”””) КАК ЕдиницаИзмеренияКод,
| ЕСТЬNULL(СчетНаОплату.Номенклатура.ЕдиницаИзмерения.Наименование, “”””) КАК ЕдиницаИзмеренияНаименование,
| ЕСТЬNULL(СчетНаОплату.Номенклатура.ЕдиницаИзмерения.НаименованиеПолное, “”””) КАК ЕдиницаИзмеренияНаименованиеПолное,
| СчетНаОплату.Количество КАК Количество,
| СчетНаОплату.Цена КАК Цена,
| СчетНаОплату.Сумма КАК Сумма,
| СчетНаОплату.СуммаСкидки КАК СуммаСкидки,
| СчетНаОплату.СтавкаНДС КАК СтавкаНДС,
| СчетНаОплату.СуммаНДС КАК СуммаНДС
|ИЗ
| Документ.СчетНаОплатуПокупателю.Товары КАК СчетНаОплату
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ДокументыДляПечати КАК ДокументыДляПечати
| ПО СчетНаОплату.Ссылка = ДокументыДляПечати.Ссылка
|
|УПОРЯДОЧИТЬ ПО
| ДатаДокумента,
| Документ,
| ПорядокТабличнойЧасти,
| НомерСтроки”;

Процедура ВывестиЗаголовокПредупреждение(Организация, ТабличныйДокумент, Макет)

Если Не ЗначениеЗаполнено(Макет.Области.Найти(“ЗаголовокПредупреждениеСЛоготипом”))
И Не ЗначениеЗаполнено(Макет.Области.Найти(“ЗаголовокПредупреждение”)) Тогда
Возврат;
КонецЕсли;

Если ТипЗнч(Организация) <> Тип(“СправочникСсылка.Организации”) Тогда
Возврат;
КонецЕсли;

ДвоичныеДанныеКартинки = Справочники.Организации.ДвоичныеДанныеКартинкиОрганизации(Организация, “ФайлЛоготип”);

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

Функция ПечатьСчетаНаОплату(СведенияСчетаНаОплату, ОбъектыПечати, ПараметрыПечати) Экспорт

ТабличныйДокумент = Новый ТабличныйДокумент;
ТабличныйДокумент.АвтоМасштаб = Истина;
ТабличныйДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Портрет;
ТабличныйДокумент.КлючПараметровПечати = “ПАРАМЕТРЫ_ПЕЧАТИ_ЗаказПокупателя_СчетЗаказ”;

ДополнительнаяКолонкаПечатныхФормДокументов = Константы.ДополнительнаяКолонкаПечатныхФормДокументов.Получить();
Если НЕ ЗначениеЗаполнено(ДополнительнаяКолонкаПечатныхФормДокументов) Тогда
ДополнительнаяКолонкаПечатныхФормДокументов = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.НеВыводить;
КонецЕсли;
ВыводитьКоды = ДополнительнаяКолонкаПечатныхФормДокументов <> Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.НеВыводить;

Для Каждого СведенияОДокументе Из СведенияСчетаНаОплату Цикл

Если НЕ ПервыйДокумент Тогда
ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;

ПервыйДокумент = Ложь;
ЕстьСкидка = (СведенияОДокументе.ТаблицаДокумента.Итог(“СуммаСкидки”) <> 0) И ЗначениеЗаполнено(Макет.Области.Найти(“Скидка”));

// Запомним номер строки, с которой начали выводить текущий документ.
НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1;

// Выводим шапку счета
ВывестиЗаголовокПредупреждение(СведенияОДокументе.Получатель, ТабличныйДокумент, Макет);

СведенияОПолучателе = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛице(СведенияОДокументе.Получатель, СведенияОДокументе.ДатаДляПолученияСведений);

// Получим логотип организации
ДвоичныеДанныеКартинки = Неопределено;
Если ТипЗнч(СведенияОДокументе.Получатель) = Тип(“СправочникСсылка.Организации”) Тогда
ДвоичныеДанныеКартинки = Справочники.Организации.ДвоичныеДанныеКартинкиОрганизации(СведенияОДокументе.Получатель, “ФайлЛоготип”);
КонецЕсли;

Если ЗначениеЗаполнено(ДвоичныеДанныеКартинки)
И ЗначениеЗаполнено(Макет.Области.Найти(“ЗаголовокСчетаСЛоготипом”)) Тогда
ОбластьМакета = Макет.ПолучитьОбласть(“ЗаголовокСчетаСЛоготипом”);
Попытка
ОбластьМакета.Рисунки.ЛоготипСчета.Картинка = Новый Картинка(ДвоичныеДанныеКартинки);
Исключение
КонецПопытки;
Иначе
ОбластьМакета = Макет.ПолучитьОбласть(“ЗаголовокСчета”);
КонецЕсли;

ОбластьМакета.Параметры.Заполнить(СведенияОДокументе);
ДанныеПечатиЗаголовокСчета = Новый Структура;
ДанныеПечатиЗаголовокСчета.Вставить(“ИННПолучателя”, СведенияОПолучателе.ИНН);
ДанныеПечатиЗаголовокСчета.Вставить(“КПППолучателя”, СведенияОПолучателе.КПП);

Если ТипЗнч(СведенияОДокументе.БанковскийСчетПродавца) = Тип(“СправочникСсылка.БанковскиеСчета”) Тогда
ДанныеПечатиЗаголовокСчета.Вставить(“БИКБанкаПолучателя”,СведенияОДокументе.БикБанкаПолучателя);
ДанныеПечатиЗаголовокСчета.Вставить(“БанкПолучателя”,СведенияОДокументе.БанкПолучателя);
ДанныеПечатиЗаголовокСчета.Вставить(“БанкПолучателяПредставление”,СокрЛП(СведенияОДокументе.НаименованиеБанкаПолучателя));
ДанныеПечатиЗаголовокСчета.Вставить(“СчетБанкаПолучателя”,СведенияОДокументе.СчетБанкаПолучателя);
ДанныеПечатиЗаголовокСчета.Вставить(“СчетБанкаПолучателяПредставление”,СведенияОДокументе.СчетБанкаПолучателя);
ДанныеПечатиЗаголовокСчета.Вставить(“СчетПолучателяПредставление”, СведенияОДокументе.НомерСчетаПолучателя);
ДанныеПечатиЗаголовокСчета.Вставить(“СчетПолучателя”, СведенияОДокументе.НомерСчетаПолучателя);
КонецЕсли;

НомерДокумента = НомерСчетаНаОплату(СведенияОДокументе.ГосударственныйКонтракт, СведенияОДокументе.НомерДокумента);

ТекстЗаголовка = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр(“ru=’Счет на оплату № %1 от %2 г.'”),
НомерДокумента, Формат(СведенияОДокументе.ДатаДокумента, “ДФ=’дд ММММ гггг'”));

ОбластьМакета.Параметры.Заполнить(Новый Структура(“ТекстЗаголовка”, ТекстЗаголовка));

ОбластьМакета = Макет.ПолучитьОбласть(“Поставщик”);
ОбластьМакета.Параметры.Заполнить(СведенияОДокументе);
СведенияОбОрганизации = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛице(СведенияОДокументе.Поставщик, СведенияОДокументе.ДатаДляПолученияСведений);
ПредставлениеПоставщика = ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(
СведенияОбОрганизации, “НаименованиеДляПечатныхФорм,ИНН,КПП,ЮридическийАдрес,Телефоны,”);

ОбластьМакета.Параметры.Заполнить(Новый Структура(“ПредставлениеПоставщика”, ПредставлениеПоставщика));
ТабличныйДокумент.Вывести(ОбластьМакета);

ОбластьМакета = Макет.ПолучитьОбласть(“Покупатель”);
ОбластьМакета.Параметры.Заполнить(СведенияОДокументе);
СведенияОПокупателе = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛице(СведенияОДокументе.Покупатель, СведенияОДокументе.ДатаДляПолученияСведений);
ПредставлениеПокупателя = ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(
СведенияОПокупателе, “НаименованиеДляПечатныхФорм,ИНН,КПП,ЮридическийАдрес,Телефоны,”);
Основание = СокрЛП(Строка(СведенияОДокументе.ДоговорКонтрагента));
ДанныеПечатиПокупатель = Новый Структура;
ДанныеПечатиПокупатель.Вставить(“ПредставлениеПокупателя”, ПредставлениеПокупателя);
ДанныеПечатиПокупатель.Вставить(“Основание”, Основание);

ОбластьНомера = Макет.ПолучитьОбласть(“ШапкаТаблицы|НомерСтроки”);
ОбластьКодов = Макет.ПолучитьОбласть(“ШапкаТаблицы|КолонкаКодов”);
ОбластьДанных = Макет.ПолучитьОбласть(“ШапкаТаблицы|Данные”);
ОбластьСуммы = Макет.ПолучитьОбласть(“ШапкаТаблицы|Сумма”);

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

ОбластьКолонкаТовар = Макет.Область(“Товар”);
Если Не ВыводитьКоды Тогда
ОбластьКолонкаТовар.ШиринаКолонки = ОбластьКолонкаТовар.ШиринаКолонки + Макет.Область(“КолонкаКодов”).ШиринаКолонки;
КонецЕсли;
Если Не ЕстьСкидка И ЗначениеЗаполнено(Макет.Области.Найти(“Скидка”)) Тогда
ОбластьКолонкаТовар.ШиринаКолонки = ОбластьКолонкаТовар.ШиринаКолонки + Макет.Область(“Скидка”).ШиринаКолонки;
КонецЕсли;

ОбластьНомера = Макет.ПолучитьОбласть(“Строка|НомерСтроки”);
ОбластьКодов = Макет.ПолучитьОбласть(“Строка|КолонкаКодов”);
ОбластьДанных = Макет.ПолучитьОбласть(“Строка|Данные”);
ОбластьСуммы = Макет.ПолучитьОбласть(“Строка|Сумма”);

Сумма = 0;
СуммаНДС = 0;
ВсегоСкидок = 0;
ВсегоБезСкидок = 0;
НомерСтроки = 0;

НДСИсчисляетсяНалоговымАгентом = СведенияОДокументе.НДСИсчисляетсяНалоговымАгентом = Истина
И УчетНДС.ВедетсяУчетНДСПоФЗ335(СведенияОДокументе.ДатаДляПолученияСведений);

Для Каждого Строка Из СведенияОДокументе.ТаблицаДокумента Цикл

НомерСтроки = НомерСтроки + 1;
ОбластьНомера.Параметры.Заполнить(Новый Структура(“НомерСтроки”, НомерСтроки));

Если ВыводитьКоды Тогда
ОбластьКодов.Параметры.Заполнить(Новый Структура(“Артикул”, Строка.НоменклатураАртикул));
ТабличныйДокумент.Присоединить(ОбластьКодов);
КонецЕсли;
ДанныеПечатиСтрокаОбластьДанных = Новый Структура;
ДанныеПечатиСтрокаОбластьДанных.Вставить(“Товар”, СокрЛП(Строка.НоменклатураНаименование));
ДанныеПечатиСтрокаОбластьДанных.Вставить(“Количество”, Строка.Количество);
ДанныеПечатиСтрокаОбластьДанных.Вставить(“ЕдиницаИзмерения”, Строка.ЕдиницаИзмеренияНаименование);
ДанныеПечатиСтрокаОбластьДанных.Вставить(“Цена”, ОбщегоНазначенияБПВызовСервера.ФорматСумм(Строка.Цена));
ОбластьДанных.Параметры.Заполнить(ДанныеПечатиСтрокаОбластьДанных);
ТабличныйДокумент.Присоединить(ОбластьДанных);

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

ТабличныйДокумент.Присоединить(ОбластьСуммы);
Сумма = Сумма + Строка.Сумма;
СуммаНДС = СуммаНДС + Строка.СуммаНДС;
ВсегоСкидок = ВсегоСкидок + Строка.СуммаСкидки;

Если ЗначениеЗаполнено(Макет.Области.Найти(“Подвал”)) Тогда

ОбластьПодвал = Макет.ПолучитьОбласть(“Подвал”);
ТабличныйДокумент.Вывести(ОбластьПодвал);

Если СведенияОДокументе.СуммаСкидки <> 0 Тогда

ДанныеОбъекта = Новый Структура(“СуммаСкидки, СуммаВключаетНДС”);
ЗаполнитьЗначенияСвойств(ДанныеОбъекта, СведенияОДокументе);
ТаблицаТовары = СведенияОДокументе.ТаблицаДокумента.Скопировать();

Если ЗначениеЗаполнено(Макет.Области.Найти(“СкидкаПоДокументу”)) Тогда

ОбластьСуммы.Параметры.Заполнить(Новый Структура(“СуммаСкидки”, ОбщегоНазначенияБПВызовСервера.ФорматСумм(СведенияОДокументе.СуммаСкидки)));
ТабличныйДокумент.Вывести(ОбластьСуммы);

ИначеЕсли ВсегоСкидок <> 0 Тогда

ДанныеЗаполненияИтого = Новый Структура(“Всего”, ОбщегоНазначенияБПВызовСервера.ФорматСумм(Сумма));

ДанныеЗаполненияНДС = Новый Структура(“НДС, ВсегоНДС”, НДС, ВсегоНДС);

Если ЗначениеЗаполнено(Макет.Области.Найти(“Скидка”)) Тогда

ОбластьИтого = Макет.ПолучитьОбласть(“Итого”);
ОбластьИтого.Параметры.Заполнить(ДанныеЗаполненияИтого);

// Вывести ИтогоНДС
ОбластьИтогоНДС = Макет.ПолучитьОбласть(“ИтогоНДС”);
ОбластьИтогоНДС.Параметры.Заполнить(ДанныеЗаполненияНДС);

// Вывести ИтогоКОплате
ОбластьИтогоКОплате = Макет.ПолучитьОбласть(“ИтогоКОплате”);
ОбластьИтогоКОплате.Параметры.Заполнить(ДанныеЗаполненияИтогоКОплате);

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

// Вывести ИтогоНДС
ОбластьНомера = Макет.ПолучитьОбласть(“ИтогоНДС|НомерСтроки”);
ОбластьКодов = Макет.ПолучитьОбласть(“ИтогоНДС|КолонкаКодов”);
ОбластьДанных = Макет.ПолучитьОбласть(“ИтогоНДС|Данные”);
ОбластьСуммы = Макет.ПолучитьОбласть(“ИтогоНДС|Сумма”);

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

// Вывести ИтогоКОплате
ОбластьНомера = Макет.ПолучитьОбласть(“ИтогоКОплате|НомерСтроки”);
ОбластьКодов = Макет.ПолучитьОбласть(“ИтогоКОплате|КолонкаКодов”);
ОбластьДанных = Макет.ПолучитьОбласть(“ИтогоКОплате|Данные”);
ОбластьСуммы = Макет.ПолучитьОбласть(“ИтогоКОплате|Сумма”);
ТабличныйДокумент.Вывести(ОбластьНомера);
Если ВыводитьКоды Тогда
ТабличныйДокумент.Присоединить(ОбластьКодов);
КонецЕсли;
ТабличныйДокумент.Присоединить(ОбластьДанных);
ОбластьСуммы.Параметры.Заполнить(ДанныеЗаполненияИтогоКОплате);

// Срок оплаты
Если СведенияОДокументе.СрокОплаты <> Дата(1,1,1) И
ЗначениеЗаполнено(Макет.Области

Источник

Leave a Reply

Your email address will not be published. Required fields are marked *