Имя: Пароль:
1C
1С v8
Заказ покупателя с учетом корректировки
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, СуммаНДС);
   ОбластьМакета.Параметры.ИтоговаяСтрока ="Всего наименований " + ЗапросТовары.Количество()
   + ", на сумму " + ФорматСумм(СуммаКПрописи, Шапка.ВалютаДокумента);
   ОбластьМакета.Параметры.СуммаПрописью = СформироватьСуммуПрописью(СуммаКПрописи, Шапка.ВалютаДокумента);
   ТабДокумент.Вывести(ОбластьМакета);

   // Вывести подписи
   Если Тип = "Счет" Тогда
       ОбластьМакета = Макет.ПолучитьОбласть("ПодвалСчета");

       Руководители = ОтветственныеЛицаОрганизации(Шапка.Руководители, Шапка.Дата,);
       Руководитель = Руководители.Руководитель;
       Бухгалтер    = Руководители.ГлавныйБухгалтер;

       ОбластьМакета.Параметры.ФИОРуководителя  = "/" + Руководитель  + "/";
       ОбластьМакета.Параметры.ФИОБухгалтера    = "/" + Бухгалтер     + "/";
       ОбластьМакета.Параметры.ФИООтветственный = "/" + Ответственный + "/";

   Иначе
       ОбластьМакета = Макет.ПолучитьОбласть("ПодвалЗаказа");
   КонецЕсли;
   ОбластьМакета.Параметры.Заполнить(Шапка);
   ТабДокумент.Вывести(ОбластьМакета);

   Возврат ТабДокумент;

КонецФункции // ПечатьСчетаЗаказаКорректировки()