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