8.х Акт...

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

  1. TopicStarter Overlay
    Ashok
    Offline

    Ashok

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

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

    Регистрация:
    25 апр 2007
    Сообщения:
    2.576
    Симпатии:
    13
    Баллы:
    29
    Так в чем проблема создать в макете параметр и заполнить его, по аналогии со всеми остальными параметрами?
  3. TopicStarter Overlay
    Ashok
    Offline

    Ashok

    Регистрация:
    16 июн 2009
    Сообщения:
    4
    Симпатии:
    0
    Баллы:
    1
    Не хватает знаний в 1С...
  4. x_under
    Offline

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

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

    Вот яркий пример заполнения параметра
    ОбластьМакета.Параметры.ПредставлениеПоставщика = ПредставлениеПоставщика;
  5. TopicStarter Overlay
    Ashok
    Offline

    Ashok

    Регистрация:
    16 июн 2009
    Сообщения:
    4
    Симпатии:
    0
    Баллы:
    1
    то как добавить параметр ясно ... просто вопрос в том что не знаю как точно прописать в коде текущий месяц, год. также не могу понять как прописать по договору как он отдает информацию (номер, дата договора).

    Чтобы получилось нечто:
    Период оказания услуг: июнь 2009г. // Текущий месяц, год
    к договору №001 от 01.01.09
    // Договор контрагента
  6. x_under
    Offline

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

    Регистрация:
    25 апр 2007
    Сообщения:
    2.576
    Симпатии:
    13
    Баллы:
    29
    Посмотри функцию ПредставлениеПериода. Сразу все станет понятно.
    К реквизитам договора обратись просто через точку:
    Код:
    НомерДоговора = СсылкаНаОБъект.ДоговорКонтрагента.Номер;
    

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