![]() |
![]() |
![]() |
|
выводит на печать на каждую строку отдельный документ | ☑ | ||
---|---|---|---|---|
0
mi4asib
26.06.12
✎
11:02
|
ПечатьАктовОбОказанииУслуг
Запрос = Новый Запрос; Запрос.УстановитьПараметр("ТекущийДокумент", ЭтотОбъект.Ссылка); Запрос.Текст = "ВЫБРАТЬ | ОказаниеУслуг.Ссылка.Номер, | ОказаниеУслуг.Ссылка.Дата, | ОказаниеУслуг.Ссылка.Организация, | ОказаниеУслуг.Ссылка.Организация КАК Поставщик, | ОказаниеУслуг.Ссылка.УчитыватьНДС, | ОказаниеУслуг.Ссылка.СуммаВключаетНДС, | ОказаниеУслуг.Ссылка.СтавкаНДС, | ОказаниеУслуг.Ссылка.Номенклатура, | ВЫБОР | КОГДА (НЕ ОказаниеУслуг.Ссылка.Номенклатура.НаименованиеПолное ПОДОБНО """") | ТОГДА ВЫРАЗИТЬ(ОказаниеУслуг.Ссылка.Номенклатура.НаименованиеПолное КАК СТРОКА(1000)) | ИНАЧЕ ОказаниеУслуг.Ссылка.Номенклатура.Наименование | КОНЕЦ КАК Товар, | ОказаниеУслуг.Количество КАК Количество, | ОказаниеУслуг.Ссылка.Номенклатура.БазоваяЕдиницаИзмерения КАК ЕдиницаИзмерения, | ОказаниеУслуг.НомерСтроки КАК НомерСтроки, | ОказаниеУслуг.Контрагент КАК Получатель, | ОказаниеУслуг.ДоговорКонтрагента, | ОказаниеУслуг.Цена КАК Цена, | ОказаниеУслуг.Сумма, | ОказаниеУслуг.СуммаНДС |ИЗ | Документ.ОказаниеУслуг.Контрагенты КАК ОказаниеУслуг |ГДЕ | ОказаниеУслуг.Ссылка = &ТекущийДокумент | И ОказаниеУслуг.Сумма > 0 | |УПОРЯДОЧИТЬ ПО | НомерСтроки"; Выборка = Запрос.Выполнить().Выбрать(); ТабДокумент = Новый ТабличныйДокумент; ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ОказаниеУслуг_Акты"; Пока Выборка.Следующий() Цикл Макет = ПолучитьМакет("Акт"); ОбластьМакета = Макет.ПолучитьОбласть("Акт"); ОбластьМакета.Параметры.ТекстЗаголовка = "Акт № " + ОбщегоНазначения.ПолучитьНомерНаПечать(Выборка)+"/"+Выборка.НомерСтроки + " от " + Формат(Выборка.Дата, "ДФ='дд ММММ гггг'")+ " г.";; ПредставлениеПоставщика = ФормированиеПечатныхФорм.ОписаниеОрганизации(УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Выборка.Организация, Выборка.Дата), "НаименованиеДляПечатныхФорм,"); ОбластьМакета.Параметры.ПредставлениеПоставщика = ПредставлениеПоставщика; ОбластьМакета.Параметры.Поставщик = Выборка.Поставщик; ПредставлениеПолучателя = ФормированиеПечатныхФорм.ОписаниеОрганизации(УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Выборка.Получатель, Выборка.Дата), "НаименованиеДляПечатныхФорм,"); ОбластьМакета.Параметры.ПредставлениеПолучателя = ПредставлениеПолучателя; ОбластьМакета.Параметры.Получатель = Выборка.Получатель; // Вывести табличную часть ОбластьМакета.Параметры.Заполнить(Выборка); ОбластьМакета.Параметры.НомерСтроки = 1; ОбластьМакета.Параметры.Товар = СокрЛП(Выборка.Товар); Сумма = Выборка.Сумма; СуммаНДС = Выборка.СуммаНДС; ОбластьМакета.Параметры.Всего = ОбщегоНазначения.ФорматСумм(Сумма); Если Выборка.УчитыватьНДС Тогда Если СуммаНДС <> 0 Тогда ОбластьМакета.Параметры.ВсегоНДС = ОбщегоНазначения.ФорматСумм(СуммаНДС); ОбластьМакета.Параметры.НДС = ?(Выборка.СуммаВключаетНДС, "В том числе НДС", " Сумма НДС"); Иначе ОбластьМакета.Параметры.ВсегоНДС = "-"; ОбластьМакета.Параметры.НДС = "Без налога (НДС)"; КонецЕсли; КонецЕсли; СуммаКПрописи = Сумма + ?(Выборка.СуммаВключаетНДС, 0, СуммаНДС); ОбластьМакета.Параметры.ИтоговаяСтрока ="Всего оказано услуг 1, на сумму " + ОбщегоНазначения.ФорматСумм(СуммаКПрописи, мВалютаРегламентированногоУчета); ОбластьМакета.Параметры.СуммаПрописью = ОбщегоНазначения.СформироватьСуммуПрописью(СуммаКПрописи, мВалютаРегламентированногоУчета); ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц(); ТабДокумент.Вывести(ОбластьМакета); КонецЦикла; Возврат ТабДокумент; код функции ( документ "оказание услуг" 2.0 типовая ) не могу понять почему на каждую строку выводит отдельную печатную форму... изменил до этого в документе "оказание услуг" поиск дублей ( т.к. нужно что бы печатались разные услуги ( до этого в типовой ругался на один договор в разных строках ) ) закоментил вот это : //// Проверим дубли строк //ТаблицаДляПроверки = Контрагенты.Выгрузить(, "Контрагент,ДоговорКонтрагента"); //ТаблицаДляПроверки.Колонки.Добавить("КоличествоСтрок"); //ТаблицаДляПроверки.ЗаполнитьЗначения(1, "КоличествоСтрок"); //ТаблицаДляПроверки.Свернуть("Контрагент,ДоговорКонтрагента", "КоличествоСтрок"); //Для Каждого СтрокаТаблицы Из ТаблицаДляПроверки Цикл // Если СтрокаТаблицы.КоличествоСтрок>1 И ЗначениеЗаполнено(СтрокаТаблицы.Контрагент) И ЗначениеЗаполнено(СтрокаТаблицы.ДоговорКонтрагента) Тогда // ТекстОшибки = "Строка с контрагентом "+СтрокаТаблицы.Контрагент+" и договором "+СтрокаТаблицы.ДоговорКонтрагента+" указана повторно (строки "; // МассивСтрок = Контрагенты.НайтиСтроки(Новый Структура("Контрагент,ДоговорКонтрагента", // СтрокаТаблицы.Контрагент, СтрокаТаблицы.ДоговорКонтрагента)); // Для каждого Строка Из МассивСтрок Цикл // ТекстОшибки = ТекстОшибки+Строка.НомерСтроки+","; // КонецЦикла; // ТекстОшибки = Лев(ТекстОшибки, СтрДлина(ТекстОшибки)-1); // ТекстОшибки = ТекстОшибки + ")!"; // // Сообщить(ТекстОшибки, СтатусСообщения.Важное); // Отказ = Истина; // КонецЕсли; //КонецЦикла; |
|||
1
mi4asib
26.06.12
✎
11:03
|
документ "оказание услуг" 2.0 типовая, печать "акт об оказании услуг"
|
|||
2
spu79
26.06.12
✎
11:04
|
Пока Выборка.Следующий() Цикл
Макет = ПолучитьМакет("Акт"); |
|||
3
mi4asib
26.06.12
✎
11:08
|
убрать цикл этот ?
|
|||
4
Hande hoch
26.06.12
✎
11:09
|
Макет = ПолучитьМакет("Акт");
Пока Выборка.Следующий() Цикл |
|||
5
spu79
26.06.12
✎
11:10
|
КонецЦикла;
Возврат ТабДокумент; вот это правильно, но при такой конструкции в одном ТабДокумент, кол-во макетов = кол-во строк |
|||
6
mi4asib
26.06.12
✎
11:13
|
спасибо, заработало как нужно ;)
|
|||
7
spu79
26.06.12
✎
11:15
|
епт, а куда ж оно на фиг денеться с подводной лодке, если правильно код писать))))
|
|||
8
mi4asib
26.06.12
✎
11:24
|
не, надо что бы в один макет печаталась вся табличная часть
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |