8.х Изменение макета Накладная - док. Реализация товаров и услуг

Тема в разделе "Другие решения", создана пользователем Alex_Staf, 27 янв 2014.

  1. TopicStarter Overlay
    Alex_Staf
    Offline

    Alex_Staf

    Регистрация:
    8 мар 2010
    Сообщения:
    32
    Симпатии:
    0
    Баллы:
    1
    Добрый день, нужна консультация.
    УТ 10.3

    Необходимо добавить в макет Накладной (док. Реализация товаров и услуг) колонку, она должна располагаться после колонки "№".
    При выводе, 1С-ка задает ширину новой колонки как у названия товаров, а колонку с названием выводит узкой.
    Если новую колонку вывожу после наименования товара - с шириной все нормально.
    Кроме функции "ПечатьДокуента" еще где то рассчитывается ширина колонок перед выводом?

    Заранее спасибо.
  2. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    По коду отладчиком смотрите.
  3. shurikvz
    Offline

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

    Регистрация:
    1 окт 2009
    Сообщения:
    8.410
    Симпатии:
    316
    Баллы:
    104
    В ПечатьДокумента и рассчитывается, в зависимости от наличия скидок и необходимости выводить доп код, если мне память не изменяет. Ищите в процедуре обращения к параметру области "ШиринаКолонки".
  4. TopicStarter Overlay
    Alex_Staf
    Offline

    Alex_Staf

    Регистрация:
    8 мар 2010
    Сообщения:
    32
    Симпатии:
    0
    Баллы:
    1
    Да, там есть, расчет ширины колонки для наименование товара - по этому моменту все понятно.
    Почему при выводе когда таб. док. выводится на экран ширина колонки Товар присваивается колонке "Артикул". Хотя по коду ширина присваивается для колонки Товар.
    Ниже привожу функцию формирующую таб. документ и макет (для примера добавил область Тест), колонка Тест должна выводиться второй:

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

    Вложения:

  5. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    Оформляйте код тегами code1c

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