8.х Внешняя печатная форма двойная, подскажите как сделать

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем Vladius, 8 апр 2012.

  1. TopicStarter Overlay
    Vladius
    Offline

    Vladius Опытный в 1С

    Регистрация:
    10 ноя 2010
    Сообщения:
    663
    Симпатии:
    3
    Баллы:
    29
    Необходимо в документе Реализация сделать печать акта двойного, просто с права добавить ещё один отчёт, целый день промучался так и не смог сделать...( Пробовал после ТабДокумент.Вывести(Область) добавить ТабДокумент.Присоединить(Область) при этом установив ориентацию ландшафт, но не помогло...
  2. mialord
    Offline

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

    Регистрация:
    31 июл 2009
    Сообщения:
    5.400
    Симпатии:
    40
    Баллы:
    54
    Сделайте еще один макет. Когда сформируете табличный документ получайте второй макет и выводите в него табличное поле
    В конфе смотрите документ "Выставлено
    "

    Вложения:

    • 1Cv8.rar
      Размер файла:
      214,1 КБ
      Просмотров:
      34
  3. TopicStarter Overlay
    Vladius
    Offline

    Vladius Опытный в 1С

    Регистрация:
    10 ноя 2010
    Сообщения:
    663
    Симпатии:
    3
    Баллы:
    29
    Попробовал просто скопировать код с момента где создается макет. То есть второй раз создал макет и заполнил его, все получилось выводится два раза но вертикально, указал ориентацию ландшафт все равно вертикально выводит, в чем проблема?
  4. x_under
    Offline

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

    Регистрация:
    25 апр 2007
    Сообщения:
    2.576
    Симпатии:
    13
    Баллы:
    29
    Полный код в покажите. Вообще надо делать что-то подобное:

    Код:
    // первая печатная форма
    ТабДокументАкт = ПЕчатьАкта();
    // вторая форма
    ТабДокументСчет = ПечатьСчета();
    // а теперь объединение в результат
    ТабДокументРезультат = Новый ТабличныйДокумент;
    ТабДокументРезультат.Вывести(ТабДокументАкт);
    ТабДокументРезультат.Присоединить(ТабДокуменСчет);
  5. TopicStarter Overlay
    Vladius
    Offline

    Vladius Опытный в 1С

    Регистрация:
    10 ноя 2010
    Сообщения:
    663
    Симпатии:
    3
    Баллы:
    29
    В полном коде много букв )))
    Код:
    Функция Печать() Экспорт
    
    ЗапросШапка = Новый Запрос;
    ЗапросШапка.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект.Ссылка);
    ЗапросШапка.Текст =
    "ВЫБРАТЬ
    | Номер,
    | Дата,
    | ДоговорКонтрагента,
    | ДоговорКонтрагента.Дата КАК ДоговорДата,
    | ДоговорКонтрагента.Номер КАК ДоговорНомер,
    | ДоговорКонтрагента.НаименованиеДляПечати КАК ДоговорНаименованиеДляПечати,
    | Получил КАК ПредставительПокупателя,
    | ПредставительОрганизации КАК ПредставительПоставщика,
    | Контрагент КАК Покупатель,
    | Контрагент.ЮрФизЛицо КАК ПокупательЮрФизЛицо,
    | Организация КАК Поставщик,
    | Организация,
    | Сделка,
    | СуммаДокумента,
    | ВалютаДокумента,
    | УчитыватьНДС,
    | СуммаВключаетНДС,
    | ВЫРАЗИТЬ(МестоСоставленияДокумента КАК СТРОКА(1000)) КАК МестоСоставленияДокумента
    |ИЗ
    | Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
    |
    |ГДЕ
    | РеализацияТоваровУслуг.Ссылка = &ТекущийДокумент";
    Шапка = ЗапросШапка.Выполнить().Выбрать();
    Шапка.Следующий();
    
    ЗапросУслуги = Новый Запрос;
    ЗапросУслуги.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект.Ссылка);
    ЗапросУслуги.Текст = "
    |ВЫБРАТЬ
    | НомерСтроки КАК НомерСтрокиТЧ,
    | Номенклатура КАК Номенклатура,
    | ВЫРАЗИТЬ(Содержание КАК СТРОКА(1000)) КАК Товар,
    | Количество,
    | Номенклатура.БазоваяЕдиницаИзмерения.Представление КАК ЕдиницаИзмерения,
    | Цена,
    | Сумма,
    | СуммаСкидки,
    | СуммаБезСкидки,
    | СтавкаНДС,
    | СуммаНДС
    |ИЗ
    | Документ.РеализацияТоваровУслуг.Услуги КАК РеализацияТоваровУслуг
    |
    |ГДЕ
    | РеализацияТоваровУслуг.Ссылка = &ТекущийДокумент
    |
    |УПОРЯДОЧИТЬ ПО
    | НомерСтрокиТЧ
    |";
    ТаблицаУслуги = ЗапросУслуги.Выполнить().Выгрузить();
    
    ТабДокумент = Новый ТабличныйДокумент;
    ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_РеализацияТоваровУслуг_Акт";
    Макет = ПолучитьМакет("Акт");
    // печать производится на языке, указанном в настройках пользователя
    КодЯзыкаПечать = Локализация.ПолучитьЯзыкФормированияПечатныхФорм(УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"), "РежимФормированияПечатныхФорм"));
    Макет.КодЯзыкаМакета = КодЯзыкаПечать;
    
    СведенияОПоставщике = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Поставщик, Шапка.Дата,,,КодЯзыкаПечать);
    СведенияОПокупателе = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Покупатель, Шапка.Дата,,,КодЯзыкаПечать);
    
    РуководителиОрганизации = ОбщегоНазначения.ОтветственныеЛица(Шапка.Организация, Шапка.Дата);
    РуководителиКонтрагента = ОбщегоНазначения.ОтветственныеЛицаКонтрагента(Шапка.Покупатель, Шапка.Дата);
    
    // шапка акта "УТВЕРЖДАЮ"
    ОбластьМакета = Макет.ПолучитьОбласть("Шапка");
    ОбластьМакета.Параметры.Заполнить(Шапка);
    ОбластьМакета.Параметры.ДолжностьРуководителяПоставщика = РуководителиОрганизации.РуководительДолжность;
    ОбластьМакета.Параметры.ПредставлениеПоставщика = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПоставщике, "ПолноеНаименование,",,КодЯзыкаПечать);
    ОбластьМакета.Параметры.РуководительПоставщика = РуководителиОрганизации.РуководительПредставление;
    
    ОбластьМакета.Параметры.ДолжностьРуководителяПокупателя = ?(ПустаяСтрока(РуководителиКонтрагента.РуководительДолжность) И Шапка.ПокупательЮрФизЛицо = Перечисления.ЮрФизЛицо.ЮрЛицо, "Директор", РуководителиКонтрагента.РуководительДолжность);
    ОбластьМакета.Параметры.ПредставлениеПокупателя = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПокупателе, "ПолноеНаименование,",,КодЯзыкаПечать);
    ОбластьМакета.Параметры.РуководительПокупателя = РуководителиКонтрагента.РуководительПредставление;
    
    ТабДокумент.Вывести(ОбластьМакета);
    
    ОбластьМакета = Макет.ПолучитьОбласть("Заголовок");
    ОбластьМакета.Параметры.ТекстЗаголовка = ОбщегоНазначения.СформироватьЗаголовокДокумента(Шапка, НСтр("ru='АКТ оказания услуг';uk='АКТ надання послуг'",КодЯзыкаПечать) + Символы.ПС,КодЯзыкаПечать);
    ТабДокумент.Вывести(ОбластьМакета);
    
    ДанныеПредставителя = ОбщегоНазначения.ДанныеФизЛица(Шапка.Организация,Шапка.ПредставительПоставщика, Шапка.Дата);
    ДолжностьПредставителя = СокрЛП(ДанныеПредставителя.Должность);
    
    ДолжностьФИОПредставителя = ?(ЗначениеЗаполнено(ДолжностьПредставителя),ДолжностьПредставителя + " ","") +
    ?(ДанныеПредставителя.Фамилия = Неопределено,"",ДанныеПредставителя.Фамилия + " ") +
    ?(ДанныеПредставителя.Имя = Неопределено,"",ДанныеПредставителя.Имя + " ") +
    ?(ДанныеПредставителя.Отчество = Неопределено,"",ДанныеПредставителя.Отчество);
    
    // Начинаем формировать собственно текст акта
    ОбластьМакета = Макет.ПолучитьОбласть("ТекстАктаНачало");
    ОбластьМакета.Параметры.Заполнить(Шапка);
    
    ОбластьМакета.Параметры.ПредставительПоставщика = ДолжностьФИОПредставителя;
    ОбластьМакета.Параметры.ПредставительПокупателя = Шапка.ПредставительПокупателя;
    
    ОбластьМакета.Параметры.ПредставлениеПоставщика = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПоставщике, "ПолноеНаименование,");
    ОбластьМакета.Параметры.ПредставлениеПокупателя = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПокупателе, "ПолноеНаименование,");
    ТабДокумент.Вывести(ОбластьМакета);
    
    // выводим сведения о договоре и сделке
    СписокДополнительныхПараметров = "ДоговорНаименованиеДляПечати,Сделка,";
    МассивСтруктурСтрок = ФормированиеПечатныхФорм.ДополнительнаяИнформация(Шапка,СписокДополнительныхПараметров, КодЯзыкаПечать);
    ОбластьМакета = Макет.ПолучитьОбласть("ДопИнформация");
    Для каждого СтруктураСтроки Из МассивСтруктурСтрок Цикл
    ОбластьМакета.Параметры.Заполнить(СтруктураСтроки);
    ТабДокумент.Вывести(ОбластьМакета);
    КонецЦикла;
    
    // Заканчиваем формировать текст акта
    ОбластьМакета = Макет.ПолучитьОбласть("ТекстАктаКонец");
    ТабДокумент.Вывести(ОбластьМакета);
    
    ОбластьШапки = "ШапкаТаблицы";
    ОбластьСтроки = "Строка";
    ОбластьИтого = "Итого";
    
    ЕстьСкидки = (ТаблицаУслуги.Итог("СуммаСкидки") <> 0);
    Если ЕстьСкидки Тогда
    ОбластьШапки = ОбластьШапки + "Скидки";
    ОбластьСтроки = ОбластьСтроки + "Скидки";
    ОбластьИтого = ОбластьИтого + "Скидки";
    Конецесли;
    
    // Вывести табличную часть
    ОбластьМакета = Макет.ПолучитьОбласть(ОбластьШапки);
    Суффикс = "";
    Если Шапка.УчитыватьНДС Тогда
    Если Шапка.СуммаВключаетНДС Тогда
    Суффикс = Суффикс + НСтр("ru=' с ';uk=' з '",КодЯзыкаПечать);
    Иначе
    Суффикс = Суффикс + НСтр("ru=' без ';uk=' без '",КодЯзыкаПечать);
    КонецЕсли;
    Суффикс = Суффикс + НСтр("ru='НДС';uk='ПДВ'",КодЯзыкаПечать);
    КонецЕсли;
    ОбластьМакета.Параметры.Цена = НСтр("ru='Цена';uk='Ціна'",КодЯзыкаПечать) + Суффикс;
    ОбластьМакета.Параметры.Сумма = НСтр("ru='Сумма';uk='Сума'",КодЯзыкаПечать)+ Суффикс;
    ТабДокумент.Вывести(ОбластьМакета);
    
    ОбластьСтроки = Макет.ПолучитьОбласть(ОбластьСтроки);
    
    НомерСтроки = 0;
    
    Для Каждого СтрокаТабличнойЧасти Из ТаблицаУслуги Цикл
    
    НомерСтроки = НомерСтроки + 1;
    
    ОбластьСтроки.Параметры.Заполнить(СтрокаТабличнойЧасти);
    ОбластьСтроки.Параметры.Товар = СокрЛП(СтрокаТабличнойЧасти.Товар);
    ОбластьСтроки.Параметры.НомерСтроки = НомерСтроки;
    
    ТабДокумент.Вывести(ОбластьСтроки);
    
    КонецЦикла;
    
    Если ТаблицаУслуги <> Неопределено Тогда
    
    СуммаВсего = ТаблицаУслуги.Итог("Сумма");
    ВсегоНДС = ТаблицаУслуги.Итог("СуммаНДС");
    СуммаБезСкидки = ТаблицаУслуги.Итог("СуммаБезСкидки");
    СуммаСкидки = ТаблицаУслуги.Итог("СуммаСкидки");
    
    Иначе
    
    СуммаВсего = 0;
    ВсегоНДС = 0;
    СуммаБезСкидки = 0;
    СуммаСкидки = 0;
    
    КонецЕсли;
    
    ОбластьМакета = Макет.ПолучитьОбласть(ОбластьИтого);
    ОбластьМакета.Параметры.Всего = ОбщегоНазначения.ФорматСумм(СуммаВсего);
    Если ЕстьСкидки Тогда
    ОбластьМакета.Параметры.ВсегоСуммаБезСкидки = ОбщегоНазначения.ФорматСумм(СуммаБезСкидки);
    ОбластьМакета.Параметры.ВсегоСуммаСкидки = ОбщегоНазначения.ФорматСумм(СуммаСкидки);
    КонецЕсли;
    ТабДокумент.Вывести(ОбластьМакета);
    
    // Вывести ИтогоНДС
    Если Шапка.УчитыватьНДС Тогда
    // НДС
    ОбластьМакета = Макет.ПолучитьОбласть("ИтогоНДС");
    ОбластьМакета.Параметры.ВсегоНДС = ОбщегоНазначения.ФорматСумм(ВсегоНДС);
    ОбластьМакета.Параметры.НДС = ?(Шапка.СуммаВключаетНДС, НСтр("ru='В том числе НДС:';uk='У тому числі ПДВ:'",КодЯзыкаПечать), НСтр("ru='Сумма НДС:';uk='Сума ПДВ:'",КодЯзыкаПечать));
    ТабДокумент.Вывести(ОбластьМакета);
    
    // всего с НДС (если сумма не включает НДС)
    Если НЕ Шапка.СуммаВключаетНДС Тогда
    ОбластьМакета = Макет.ПолучитьОбласть("ИтогоНДС");
    ОбластьМакета.Параметры.ВсегоНДС = ОбщегоНазначения.ФорматСумм(СуммаВсего + ВсегоНДС);
    ОбластьМакета.Параметры.НДС = НСтр("ru='Всего с НДС:';uk='Всього із ПДВ:'",КодЯзыкаПечать);
    ТабДокумент.Вывести(ОбластьМакета);
    КонецЕсли;
    КонецЕсли;
    
    // Выводим Сумму прописью
    ОбластьМакета = Макет.ПолучитьОбласть("СуммаПрописью");
    СуммаКПрописиСНДС = СуммаВсего + ?(Шапка.СуммаВключаетНДС, 0, ВсегоНДС);
    СуммаКПрописиБезНДС = СуммаВсего - ?(Шапка.СуммаВключаетНДС, ВсегоНДС, 0);
    Если Шапка.УчитыватьНДС Тогда
    ОбластьМакета.Параметры.СуммаПрописью = НСтр("ru='Общая стоимость работ (услуг) составила без НДС ';uk='Загальна вартість робіт (послуг) склала без ПДВ '",КодЯзыкаПечать) + ОбщегоНазначения.СформироватьСуммуПрописью(СуммаКПрописиБезНДС, Шапка.ВалютаДокумента,КодЯзыкаПечать) +
    НСтр("ru=', НДС ';uk=', ПДВ '",КодЯзыкаПечать) + ОбщегоНазначения.СформироватьСуммуПрописью(ВсегоНДС, Шапка.ВалютаДокумента,КодЯзыкаПечать) +
    НСтр("ru=', общая стоимость работ (услуг) с НДС ';uk=', загальна вартість робіт (послуг) із ПДВ '",КодЯзыкаПечать) + ОбщегоНазначения.СформироватьСуммуПрописью(СуммаКПрописиСНДС, Шапка.ВалютаДокумента,КодЯзыкаПечать) +
    ".";
    Иначе
    ОбластьМакета.Параметры.СуммаПрописью = НСтр("ru='Общая стоимость работ (услуг) составила ';uk='Загальна вартість робіт (послуг) склала '",КодЯзыкаПечать) + ОбщегоНазначения.СформироватьСуммуПрописью(СуммаКПрописиБезНДС, Шапка.ВалютаДокумента,КодЯзыкаПечать) + ".";
    КонецЕсли;
    ТабДокумент.Вывести(ОбластьМакета);
    
    Если ЗначениеЗаполнено(Шапка.МестоСоставленияДокумента) Тогда
    ОбластьМакета = Макет.ПолучитьОбласть("МестоСоставления");
    ОбластьМакета.Параметры.МестоСоставления = СокрЛП(Шапка.МестоСоставленияДокумента);
    ТабДокумент.Вывести(ОбластьМакета);
    КонецЕсли;
    
    // выводим подписи
    ОбластьМакета = Макет.ПолучитьОбласть("Подписи");
    ОбластьМакета.Параметры.Заполнить(Шапка);
    
    ОбластьМакета.Параметры.ПредставительПоставщика = ДолжностьФИОПредставителя;
    ОбластьМакета.Параметры.ПредставительПокупателя = Шапка.ПредставительПокупателя;
    
    ОбластьМакета.Параметры.РеквизитыПоставщика = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПоставщике, "ПолноеНаименование,/,КодПоЕДРПОУ,КодПоДРФО,Телефоны,/,ИНН,НомерСвидетельства,/,НомерСчета,Банк,МФО,/,ЮридическийАдрес,/,ПлательщикНалогаНаПрибыль,",,КодЯзыкаПечать);
    ОбластьМакета.Параметры.РеквизитыПокупателя = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПокупателе, "ПолноеНаименование,/,КодПоЕДРПОУ,КодПоДРФО,Телефоны,/,ИНН,НомерСвидетельства,/,НомерСчета,Банк,МФО,/,ЮридическийАдрес,/,ПлательщикНалогаНаПрибыль,",,КодЯзыкаПечать);
    
    ТабДокумент.Вывести(ОбластьМакета);
    Макет = ПолучитьМакет("Акт");
    // печать производится на языке, указанном в настройках пользователя
    КодЯзыкаПечать = Локализация.ПолучитьЯзыкФормированияПечатныхФорм(УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"), "РежимФормированияПечатныхФорм"));
    Макет.КодЯзыкаМакета = КодЯзыкаПечать;
    
    СведенияОПоставщике = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Поставщик, Шапка.Дата,,,КодЯзыкаПечать);
    СведенияОПокупателе = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Покупатель, Шапка.Дата,,,КодЯзыкаПечать);
    
    РуководителиОрганизации = ОбщегоНазначения.ОтветственныеЛица(Шапка.Организация, Шапка.Дата);
    РуководителиКонтрагента = ОбщегоНазначения.ОтветственныеЛицаКонтрагента(Шапка.Покупатель, Шапка.Дата);
    
    // шапка акта "УТВЕРЖДАЮ"
    ОбластьМакета = Макет.ПолучитьОбласть("Шапка");
    ОбластьМакета.Параметры.Заполнить(Шапка);
    ОбластьМакета.Параметры.ДолжностьРуководителяПоставщика = РуководителиОрганизации.РуководительДолжность;
    ОбластьМакета.Параметры.ПредставлениеПоставщика = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПоставщике, "ПолноеНаименование,",,КодЯзыкаПечать);
    ОбластьМакета.Параметры.РуководительПоставщика = РуководителиОрганизации.РуководительПредставление;
    
    ОбластьМакета.Параметры.ДолжностьРуководителяПокупателя = ?(ПустаяСтрока(РуководителиКонтрагента.РуководительДолжность) И Шапка.ПокупательЮрФизЛицо = Перечисления.ЮрФизЛицо.ЮрЛицо, "Директор", РуководителиКонтрагента.РуководительДолжность);
    ОбластьМакета.Параметры.ПредставлениеПокупателя = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПокупателе, "ПолноеНаименование,",,КодЯзыкаПечать);
    ОбластьМакета.Параметры.РуководительПокупателя = РуководителиКонтрагента.РуководительПредставление;
    
    ТабДокумент.Вывести(ОбластьМакета);
    
    ОбластьМакета = Макет.ПолучитьОбласть("Заголовок");
    ОбластьМакета.Параметры.ТекстЗаголовка = ОбщегоНазначения.СформироватьЗаголовокДокумента(Шапка, НСтр("ru='АКТ оказания услуг';uk='АКТ надання послуг'",КодЯзыкаПечать) + Символы.ПС,КодЯзыкаПечать);
    ТабДокумент.Вывести(ОбластьМакета);
    
    ДанныеПредставителя = ОбщегоНазначения.ДанныеФизЛица(Шапка.Организация,Шапка.ПредставительПоставщика, Шапка.Дата);
    ДолжностьПредставителя = СокрЛП(ДанныеПредставителя.Должность);
    
    ДолжностьФИОПредставителя = ?(ЗначениеЗаполнено(ДолжностьПредставителя),ДолжностьПредставителя + " ","") +
    ?(ДанныеПредставителя.Фамилия = Неопределено,"",ДанныеПредставителя.Фамилия + " ") +
    ?(ДанныеПредставителя.Имя = Неопределено,"",ДанныеПредставителя.Имя + " ") +
    ?(ДанныеПредставителя.Отчество = Неопределено,"",ДанныеПредставителя.Отчество);
    
    // Начинаем формировать собственно текст акта
    ОбластьМакета = Макет.ПолучитьОбласть("ТекстАктаНачало");
    ОбластьМакета.Параметры.Заполнить(Шапка);
    
    ОбластьМакета.Параметры.ПредставительПоставщика = ДолжностьФИОПредставителя;
    ОбластьМакета.Параметры.ПредставительПокупателя = Шапка.ПредставительПокупателя;
    
    ОбластьМакета.Параметры.ПредставлениеПоставщика = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПоставщике, "ПолноеНаименование,");
    ОбластьМакета.Параметры.ПредставлениеПокупателя = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПокупателе, "ПолноеНаименование,");
    ТабДокумент.Вывести(ОбластьМакета);
    
    // выводим сведения о договоре и сделке
    СписокДополнительныхПараметров = "ДоговорНаименованиеДляПечати,Сделка,";
    МассивСтруктурСтрок = ФормированиеПечатныхФорм.ДополнительнаяИнформация(Шапка,СписокДополнительныхПараметров, КодЯзыкаПечать);
    ОбластьМакета = Макет.ПолучитьОбласть("ДопИнформация");
    Для каждого СтруктураСтроки Из МассивСтруктурСтрок Цикл
    ОбластьМакета.Параметры.Заполнить(СтруктураСтроки);
    ТабДокумент.Вывести(ОбластьМакета);
    КонецЦикла;
    
    // Заканчиваем формировать текст акта
    ОбластьМакета = Макет.ПолучитьОбласть("ТекстАктаКонец");
    ТабДокумент.Вывести(ОбластьМакета);
    
    ОбластьШапки = "ШапкаТаблицы";
    ОбластьСтроки = "Строка";
    ОбластьИтого = "Итого";
    
    ЕстьСкидки = (ТаблицаУслуги.Итог("СуммаСкидки") <> 0);
    Если ЕстьСкидки Тогда
    ОбластьШапки = ОбластьШапки + "Скидки";
    ОбластьСтроки = ОбластьСтроки + "Скидки";
    ОбластьИтого = ОбластьИтого + "Скидки";
    Конецесли;
    
    // Вывести табличную часть
    ОбластьМакета = Макет.ПолучитьОбласть(ОбластьШапки);
    Суффикс = "";
    Если Шапка.УчитыватьНДС Тогда
    Если Шапка.СуммаВключаетНДС Тогда
    Суффикс = Суффикс + НСтр("ru=' с ';uk=' з '",КодЯзыкаПечать);
    Иначе
    Суффикс = Суффикс + НСтр("ru=' без ';uk=' без '",КодЯзыкаПечать);
    КонецЕсли;
    Суффикс = Суффикс + НСтр("ru='НДС';uk='ПДВ'",КодЯзыкаПечать);
    КонецЕсли;
    ОбластьМакета.Параметры.Цена = НСтр("ru='Цена';uk='Ціна'",КодЯзыкаПечать) + Суффикс;
    ОбластьМакета.Параметры.Сумма = НСтр("ru='Сумма';uk='Сума'",КодЯзыкаПечать)+ Суффикс;
    ТабДокумент.Вывести(ОбластьМакета);
    
    ОбластьСтроки = Макет.ПолучитьОбласть(ОбластьСтроки);
    
    НомерСтроки = 0;
    
    Для Каждого СтрокаТабличнойЧасти Из ТаблицаУслуги Цикл
    
    НомерСтроки = НомерСтроки + 1;
    
    ОбластьСтроки.Параметры.Заполнить(СтрокаТабличнойЧасти);
    ОбластьСтроки.Параметры.Товар = СокрЛП(СтрокаТабличнойЧасти.Товар);
    ОбластьСтроки.Параметры.НомерСтроки = НомерСтроки;
    
    ТабДокумент.Вывести(ОбластьСтроки);
    
    КонецЦикла;
    
    Если ТаблицаУслуги <> Неопределено Тогда
    
    СуммаВсего = ТаблицаУслуги.Итог("Сумма");
    ВсегоНДС = ТаблицаУслуги.Итог("СуммаНДС");
    СуммаБезСкидки = ТаблицаУслуги.Итог("СуммаБезСкидки");
    СуммаСкидки = ТаблицаУслуги.Итог("СуммаСкидки");
    
    Иначе
    
    СуммаВсего = 0;
    ВсегоНДС = 0;
    СуммаБезСкидки = 0;
    СуммаСкидки = 0;
    
    КонецЕсли;
    
    ОбластьМакета = Макет.ПолучитьОбласть(ОбластьИтого);
    ОбластьМакета.Параметры.Всего = ОбщегоНазначения.ФорматСумм(СуммаВсего);
    Если ЕстьСкидки Тогда
    ОбластьМакета.Параметры.ВсегоСуммаБезСкидки = ОбщегоНазначения.ФорматСумм(СуммаБезСкидки);
    ОбластьМакета.Параметры.ВсегоСуммаСкидки = ОбщегоНазначения.ФорматСумм(СуммаСкидки);
    КонецЕсли;
    ТабДокумент.Вывести(ОбластьМакета);
    
    // Вывести ИтогоНДС
    Если Шапка.УчитыватьНДС Тогда
    // НДС
    ОбластьМакета = Макет.ПолучитьОбласть("ИтогоНДС");
    ОбластьМакета.Параметры.ВсегоНДС = ОбщегоНазначения.ФорматСумм(ВсегоНДС);
    ОбластьМакета.Параметры.НДС = ?(Шапка.СуммаВключаетНДС, НСтр("ru='В том числе НДС:';uk='У тому числі ПДВ:'",КодЯзыкаПечать), НСтр("ru='Сумма НДС:';uk='Сума ПДВ:'",КодЯзыкаПечать));
    ТабДокумент.Вывести(ОбластьМакета);
    
    // всего с НДС (если сумма не включает НДС)
    Если НЕ Шапка.СуммаВключаетНДС Тогда
    ОбластьМакета = Макет.ПолучитьОбласть("ИтогоНДС");
    ОбластьМакета.Параметры.ВсегоНДС = ОбщегоНазначения.ФорматСумм(СуммаВсего + ВсегоНДС);
    ОбластьМакета.Параметры.НДС = НСтр("ru='Всего с НДС:';uk='Всього із ПДВ:'",КодЯзыкаПечать);
    ТабДокумент.Вывести(ОбластьМакета);
    КонецЕсли;
    КонецЕсли;
    
    // Выводим Сумму прописью
    ОбластьМакета = Макет.ПолучитьОбласть("СуммаПрописью");
    СуммаКПрописиСНДС = СуммаВсего + ?(Шапка.СуммаВключаетНДС, 0, ВсегоНДС);
    СуммаКПрописиБезНДС = СуммаВсего - ?(Шапка.СуммаВключаетНДС, ВсегоНДС, 0);
    Если Шапка.УчитыватьНДС Тогда
    ОбластьМакета.Параметры.СуммаПрописью = НСтр("ru='Общая стоимость работ (услуг) составила без НДС ';uk='Загальна вартість робіт (послуг) склала без ПДВ '",КодЯзыкаПечать) + ОбщегоНазначения.СформироватьСуммуПрописью(СуммаКПрописиБезНДС, Шапка.ВалютаДокумента,КодЯзыкаПечать) +
    НСтр("ru=', НДС ';uk=', ПДВ '",КодЯзыкаПечать) + ОбщегоНазначения.СформироватьСуммуПрописью(ВсегоНДС, Шапка.ВалютаДокумента,КодЯзыкаПечать) +
    НСтр("ru=', общая стоимость работ (услуг) с НДС ';uk=', загальна вартість робіт (послуг) із ПДВ '",КодЯзыкаПечать) + ОбщегоНазначения.СформироватьСуммуПрописью(СуммаКПрописиСНДС, Шапка.ВалютаДокумента,КодЯзыкаПечать) +
    ".";
    Иначе
    ОбластьМакета.Параметры.СуммаПрописью = НСтр("ru='Общая стоимость работ (услуг) составила ';uk='Загальна вартість робіт (послуг) склала '",КодЯзыкаПечать) + ОбщегоНазначения.СформироватьСуммуПрописью(СуммаКПрописиБезНДС, Шапка.ВалютаДокумента,КодЯзыкаПечать) + ".";
    КонецЕсли;
    ТабДокумент.Вывести(ОбластьМакета);
    
    Если ЗначениеЗаполнено(Шапка.МестоСоставленияДокумента) Тогда
    ОбластьМакета = Макет.ПолучитьОбласть("МестоСоставления");
    ОбластьМакета.Параметры.МестоСоставления = СокрЛП(Шапка.МестоСоставленияДокумента);
    ТабДокумент.Вывести(ОбластьМакета);
    КонецЕсли;
    
    // выводим подписи
    ОбластьМакета = Макет.ПолучитьОбласть("Подписи");
    ОбластьМакета.Параметры.Заполнить(Шапка);
    
    ОбластьМакета.Параметры.ПредставительПоставщика = ДолжностьФИОПредставителя;
    ОбластьМакета.Параметры.ПредставительПокупателя = Шапка.ПредставительПокупателя;
    
    ОбластьМакета.Параметры.РеквизитыПоставщика = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПоставщике, "ПолноеНаименование,/,КодПоЕДРПОУ,КодПоДРФО,Телефоны,/,ИНН,НомерСвидетельства,/,НомерСчета,Банк,МФО,/,ЮридическийАдрес,/,ПлательщикНалогаНаПрибыль,",,КодЯзыкаПечать);
    ОбластьМакета.Параметры.РеквизитыПокупателя = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПокупателе, "ПолноеНаименование,/,КодПоЕДРПОУ,КодПоДРФО,Телефоны,/,ИНН,НомерСвидетельства,/,НомерСчета,Банк,МФО,/,ЮридическийАдрес,/,ПлательщикНалогаНаПрибыль,",,КодЯзыкаПечать);
    
    ТабДокумент.Вывести(ОбластьМакета);
    
    ТабДокумент.АвтоМасштаб=Истина;
    ТабДокумент.ОриентацияСтраницы=ОриентацияСтраницы.Ландшафт;
    
    Возврат ТабДокумент;
    
    КонецФункции
  6. TopicStarter Overlay
    Vladius
    Offline

    Vladius Опытный в 1С

    Регистрация:
    10 ноя 2010
    Сообщения:
    663
    Симпатии:
    3
    Баллы:
    29
    Ну что никто не поможет?(( Хотя бы понять почему ориентация не меняется на Ландшафт...
  7. Tiger86
    Offline

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

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    области вы выодите друг за другом. вот у вас и вертикально они выводятся. Думаю вам поможет вариант x_under

    ваш код разбейте на 2 части - каждая формирует свой таб док, потом как вам предложите выведите их. Должно сработать!
  8. TopicStarter Overlay
    Vladius
    Offline

    Vladius Опытный в 1С

    Регистрация:
    10 ноя 2010
    Сообщения:
    663
    Симпатии:
    3
    Баллы:
    29
    Я сделал как посоветовал mialord. Сделал я это так, добавил второй макет, затем получил макет:
    Код:
    МакетСтраницы = ПолучитьМакет("Страница");
    ОбластьСтраница = МакетСтраницы.ПолучитьОбласть("ОбластьСтрокаМакета|ОбластьКолонкаМакета");
    
    Затем перед Возврат ТабДокумент;
    Написал это:
    Код:
    ОбластьСтраница.ВставитьОбласть(ТабДокумент.Область());
    ТабДокумент.Присоединить(ОбластьСтраница);
    
    И все равно выводится вертикально, mialord что я не дописал?
  9. Tiger86
    Offline

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

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    Если не затруднить, выложите скрин макета?
  10. TopicStarter Overlay
    Vladius
    Offline

    Vladius Опытный в 1С

    Регистрация:
    10 ноя 2010
    Сообщения:
    663
    Симпатии:
    3
    Баллы:
    29
    Да, конечно!
    [​IMG]
  11. Tiger86
    Offline

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

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    Конечно макет многообещающий
    А вы в С-П читали про функцию ВставитьОбласть? Посмотрите внимательно, там указывается тип смещения, посмотрите на пример

  12. iceborn
    Offline

    iceborn Опытный в 1С

    Регистрация:
    17 июн 2010
    Сообщения:
    204
    Симпатии:
    0
    Баллы:
    26
    Ну так это второй макет, если вы правильно поняли )) Открыл ещё одну печатную форму двойную там так же само сделан пустой макет. Думаю дело не в макете. Да, тип смещения попробовал, не помогло.
  13. iceborn
    Offline

    iceborn Опытный в 1С

    Регистрация:
    17 июн 2010
    Сообщения:
    204
    Симпатии:
    0
    Баллы:
    26
    ой, на работе не со своего аккаунта написал ))
  14. TopicStarter Overlay
    Vladius
    Offline

    Vladius Опытный в 1С

    Регистрация:
    10 ноя 2010
    Сообщения:
    663
    Симпатии:
    3
    Баллы:
    29
    Кароче взял просто скопировал все содержимое макета в правую сторону и все, задолбался я программно это реализовывать.

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