8.х УТ Печать Счет фактуры

Тема в разделе ""1С:Управление торговлей УТ"", создана пользователем milkis, 26 сен 2012.

  1. TopicStarter Overlay
    milkis
    Offline

    milkis

    Регистрация:
    25 сен 2012
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    Как в СФ сделать, что если имеется в области макета услуга "Скидка" вывести ее в отдельную область, после итого. А еще ниже область ИтогоСоСкидкой? Сумма скидки записывается с минусом. На логику не обращать внимание.
    Код:
    // Выводим строки таблицы
    ОбластьМакета = Макет.ПолучитьОбласть("Строка");
    ОбластьМакетаПодвал = Макет.ПолучитьОбласть("Подвал");
    ОбластьМакетаИтого = Макет.ПолучитьОбласть("Итого");
    НомерСтроки = 0;
    КоличествоСтрок = ВыборкаСтрокТовары.Количество();
    Для Каждого Строчка Из ВыборкаСтрокТовары Цикл
    НомерСтроки = НомерСтроки + 1;
    ОбластьМакета.Параметры.Заполнить(Строчка);
    Если НЕ ЗначениеЗаполнено(Строчка.ТоварНаименование) Тогда
    ОбластьМакета.Параметры.ТоварНаименование = Строчка.Товар;
    КонецЕсли;
    ОбластьМакета.Параметры.ТоварНаименование = СокрЛП(ОбластьМакета.Параметры.ТоварНаименование);
    Если ВидСчетаФактуры = Перечисления.ВидСчетаФактурыВыставленного.НаРеализацию Тогда
    ОбластьМакета.Параметры.Стоимость = Строчка.СуммаБезНДС;
    ОбластьМакета.Параметры.Цена = Строчка.Цена;
    Иначе
    ОбластьМакета.Параметры.Стоимость = 0;
    ОбластьМакета.Параметры.Количество = 0;
    ОбластьМакета.Параметры.Цена = 0;
    КонецЕсли;
    ОбластьМакета.Параметры.Всего = Строчка.СуммаСНДС;
    ОбластьМакета.Параметры.СтавкаНДС = Строчка.СтавкаНДС;
    Если Строчка.СтавкаНДС = Перечисления.СтавкиНДС.БезНДС Тогда
    ОбластьМакета.Параметры.СтавкаНДС = "без НДС";
    ОбластьМакета.Параметры.СуммаНДС = "без НДС";
    КонецЕсли;
    Если ВидСчетаФактуры <> Перечисления.ВидСчетаФактурыВыставленного.НаАванс
    И ВидСчетаФактуры <> Перечисления.ВидСчетаФактурыВыставленного.НаАвансКомитента Тогда
    ОбластьМакета.Параметры.Акциз = "без акциза";
    КонецЕсли;
    Если Строка(Строчка.ПредставлениеСтраны) = "Россия"
    ИЛИ Строка(Строчка.ПредставлениеСтраны) = "Российская Федерация"
    ИЛИ Строчка.СтранаПроисхождения = Справочники.КлассификаторСтранМира.РОССИЯ Тогда
    ОбластьМакета.Параметры.ПредставлениеСтраны = "";
    ОбластьМакета.Параметры.СтранаПроисхожденияКод = "";
    Иначе
    Если ЗначениеЗаполнено(Строчка.СтранаПроисхождения) Тогда
    ОбластьМакета.Параметры.ПредставлениеСтраны = СокрЛП(Строчка.СтранаПроисхождения.Наименование);
    КонецЕсли;
    КонецЕсли;
    // Проставляем прочерки в незаполненные графы в соответствии с Постановлением
    Если ВидСчетаФактуры = Перечисления.ВидСчетаФактурыВыставленного.НаАванс
    ИЛИ ВидСчетаФактуры = Перечисления.ВидСчетаФактурыВыставленного.НаАвансКомитента Тогда
    ОбластьМакета.Параметры.ЕдиницаИзмерения = "--";
    ОбластьМакета.Параметры.ЕдиницаИзмеренияКод = "--";
    ОбластьМакета.Параметры.Количество = "--";
    ОбластьМакета.Параметры.Цена = "--";
    ОбластьМакета.Параметры.Стоимость = "--";
    ОбластьМакета.Параметры.Акциз = "--";
    ОбластьМакета.Параметры.СтранаПроисхожденияКод = "--";
    ОбластьМакета.Параметры.ПредставлениеСтраны = "--";
    ОбластьМакета.Параметры.ПредставлениеГТД = "--";
    Иначе
    Если НЕ ЗначениеЗаполнено(ОбластьМакета.Параметры.ЕдиницаИзмерения) Тогда
    ОбластьМакета.Параметры.ЕдиницаИзмерения = "--";
    ОбластьМакета.Параметры.ЕдиницаИзмеренияКод = "--";
    КонецЕсли;
    Если НЕ ЗначениеЗаполнено(ОбластьМакета.Параметры.ЕдиницаИзмеренияКод) Тогда
    ОбластьМакета.Параметры.ЕдиницаИзмеренияКод = "--";
    КонецЕсли;
    Если НЕ ЗначениеЗаполнено(ОбластьМакета.Параметры.Количество) Тогда
    ОбластьМакета.Параметры.Количество = "--";
    ОбластьМакета.Параметры.ЕдиницаИзмерения = "--";
    ОбластьМакета.Параметры.ЕдиницаИзмеренияКод = "--";
    КонецЕсли;
    Если НЕ ЗначениеЗаполнено(ОбластьМакета.Параметры.Цена) Тогда
    ОбластьМакета.Параметры.Цена = "--";
    КонецЕсли;
    КонецЕсли;
    // Проверим возможность вывода табличного документа
    СтрокаСПодвалом = Новый Массив;
    СтрокаСПодвалом.Добавить(ОбластьМакета);
    Если НомерСтроки = КоличествоСтрок Тогда
    // Если последняя строка, то должен поместится итог и подвал
    СтрокаСПодвалом.Добавить(ОбластьМакетаИтого);
    СтрокаСПодвалом.Добавить(ОбластьМакетаПодвал);
    КонецЕсли;
    Если НЕ ФормированиеПечатныхФорм.ПроверитьВыводТабличногоДокумента(ТабДокумент, СтрокаСПодвалом) Тогда
    Если КоличествоСтрок > 0 Тогда
    // Вывод разделителя и заголовка таблицы на новой странице
    ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
    ТабДокумент.Вывести(ОбластьМакетаЗаголовокТаблицы);
    КонецЕсли;
    КонецЕсли;
    ТабДокумент.Вывести(ОбластьМакета);
    КонецЦикла;
    Если КоличествоСтрок > 0 Тогда
    ТабДокумент.Область(ТабДокумент.ВысотаТаблицы,,ТабДокумент.ВысотаТаблицы,).ВместеСоСледующим = Истина;
    КонецЕсли;
  2. x_under
    Offline

    x_under Модераторы Команда форума Модератор

    Регистрация:
    25 апр 2007
    Сообщения:
    2.576
    Симпатии:
    13
    Баллы:
    29
    Так а в чем пробела? Ищите соответствующую строчку с услугой и при ее наличии заполняйте колнку. Конкретно проблема в чем?

Поделиться этой страницей