|
Как шапку в тор12 продублировать на каждой странице? | ☑ | ||
---|---|---|---|---|
0
ddd2005
12.05.12
✎
10:11
|
Добрый день
Как шапку в тор12 продублировать на каждой странице? |
|||
1
chelentano
12.05.12
✎
10:12
|
(0) открыть СП, почитать про свойства табличного документа
|
|||
2
ddd2005
12.05.12
✎
10:13
|
Функция ПечатьТОРГ12(БезУслуг = Ложь)
Ссылка = СсылкаНаОбъект; мВалютаРегламентированногоУчета = глЗначениеПеременной("ВалютаРегламентированногоУчета"); ЕдиницаИзмеренияВеса = Константы.ЕдиницаИзмеренияВеса.Получить(); ДопКолонка = Константы.ДополнительнаяКолонкаПечатныхФормДокументов.Получить(); Если ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Артикул Тогда ТоварКод = "Артикул"; Иначе ТоварКод = "Код"; КонецЕсли; ТекстЗапросаШапка = "ВЫБРАТЬ | Номер, | Дата КАК ДатаДокумента, | РеализацияТоваровУслуг.Организация, | РеализацияТоваровУслуг.Организация КАК ЮрФизЛицо, | РеализацияТоваровУслуг.Организация КАК Поставщик, | РеализацияТоваровУслуг.Организация КАК Контрагент, | РеализацияТоваровУслуг.Организация КАК Руководители, | АдресДоставки КАК АдресДоставки, | ВЫБОР КОГДА Грузополучатель = &ПустойКонтрагент | ТОГДА Контрагент | ИНАЧЕ Грузополучатель КОНЕЦ КАК Грузополучатель, | ВЫБОР КОГДА Грузоотправитель = &ПустойКонтрагент | ТОГДА РеализацияТоваровУслуг.Организация | ИНАЧЕ Грузоотправитель КОНЕЦ КАК Грузоотправитель, | БанковскийСчетОрганизации КАК БанковскийСчет, | Контрагент КАК Покупатель, | Контрагент КАК Плательщик, | Сделка, | ДоговорКонтрагента.Представление КАК Основание, | ДоговорКонтрагента.ВедениеВзаиморасчетов КАК ВедениеВзаиморасчетов, | ОтветственныеЛица.ФизическоеЛицо КАК ОтветственноеЛицо, | ПРЕДСТАВЛЕНИЕ( | ВЫБОР КОГДА РеализацияТоваровУслуг.ОтражатьВБухгалтерскомУчете | ТОГДА ЕСТЬNULL(ТаблицаСоответствиеОрганизации.ПодразделениеОрганизации, """") | ИНАЧЕ РеализацияТоваровУслуг.Подразделение | КОНЕЦ) КАК ПредставлениеПодразделения, | ВЫБОР КОГДА РеализацияТоваровУслуг.ОтражатьВБухгалтерскомУчете | ТОГДА ЕСТЬNULL(ТаблицаСоответствиеОрганизации.ПодразделениеОрганизации, """") | ИНАЧЕ РеализацияТоваровУслуг.Подразделение | КОНЕЦ КАК Подразделение, | ВалютаДокумента, | КурсВзаиморасчетов КАК Курс, | КратностьВзаиморасчетов КАК Кратность, | УчитыватьНДС, | СуммаВключаетНДС, | ОтпускРазрешил, | ОтпускПроизвел, | ДоверенностьНомер, | ДоверенностьДата, | ДоверенностьВыдана, | ДоверенностьЧерезКого |ИЗ | Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг | |ЛЕВОЕ СОЕДИНЕНИЕ | РегистрСведений.ОтветственныеЛица.СрезПоследних(&ДатаСреза, СтруктурнаяЕдиница = &СтруктурнаяЕдиница) КАК ОтветственныеЛица |ПО | ОтветственныеЛица.СтруктурнаяЕдиница = РеализацияТоваровУслуг.Склад |ЛЕВОЕ СОЕДИНЕНИЕ |( | ВЫБРАТЬ | СоответсвиеПодразделений.Подразделение, | СоответсвиеПодразделений.Организация, | МИНИМУМ(СоответсвиеПодразделений.ПодразделениеОрганизации) КАК ПодразделениеОрганизации, | МАКСИМУМ(СоответсвиеПодразделений.ПодразделениеОрганизации) КАК ПодразделениеОрг | ИЗ | РегистрСведений.СоответствиеПодразделенийИПодразделенийОрганизаций КАК СоответсвиеПодразделений | ГДЕ | Подразделение = &Подразделение | И Организация = &Организация | И Организация <> ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка) | И Подразделение <> ЗНАЧЕНИЕ(Справочник.Подразделения.ПустаяСсылка) | СГРУППИРОВАТЬ ПО | Подразделение, | Организация | ИМЕЮЩИЕ | КОЛИЧЕСТВО(*) = 1 |) ТаблицаСоответствиеОрганизации |ПО | ТаблицаСоответствиеОрганизации.Подразделение = РеализацияТоваровУслуг.Подразделение | И ТаблицаСоответствиеОрганизации.Организация = РеализацияТоваровУслуг.Организация |ГДЕ | РеализацияТоваровУслуг.Ссылка = &ТекущийДокумент |"; ТекстЗапросаТовары = "ВЫБРАТЬ | ВложенныйЗапрос.Номенклатура КАК Номенклатура, | ВЫРАЗИТЬ(ВложенныйЗапрос.Номенклатура.НаименованиеПолное КАК Строка(1000)) КАК ТоварНаименование, | ВложенныйЗапрос.Номенклатура." + ТоварКод + " КАК ТоварКод, | ВложенныйЗапрос.ЕдиницаИзмерения.Представление КАК БазоваяЕдиницаНаименование, | ВложенныйЗапрос.ЕдиницаИзмерения.ЕдиницаПоКлассификатору.Код КАК БазоваяЕдиницаКодПоОКЕИ, | ВложенныйЗапрос.ЕдиницаИзмерения КАК ЕдиницаИзмерения, | ВложенныйЗапрос.ЕдиницаИзмеренияМест.Представление КАК ВидУпаковки, | ВложенныйЗапрос.КоэффициентМест / ВложенныйЗапрос.Коэффициент КАК КоличествоВОдномМесте, | ВЫБОР | КОГДА ВложенныйЗапрос.КоличествоМест > 0 ТОГДА ВложенныйЗапрос.КоличествоМест * ВложенныйЗапрос.ЕдиницаИзмеренияМест.Вес | ИНАЧЕ ВложенныйЗапрос.Количество * ВложенныйЗапрос.ЕдиницаИзмерения.Вес | КОНЕЦ КАК МассаБрутто, | ВложенныйЗапрос.Характеристика КАК Характеристика, | ВложенныйЗапрос.Серия КАК Серия, | ВложенныйЗапрос.СтавкаНДС КАК СтавкаНДС, | ВложенныйЗапрос.Цена КАК Цена, | ВЫБОР | КОГДА((ВложенныйЗапрос.ПроцентСкидкиНаценки = 0) И | (ВложенныйЗапрос.ПроцентАвтоматическихСкидок = 0)) | ТОГДА ЛОЖЬ | ИНАЧЕ Истина | КОНЕЦ КАК ЕстьСкидкиПоСтроке, | ВложенныйЗапрос.Количество КАК Количество, | ВложенныйЗапрос.КоличествоМест КАК КоличествоМест, | ВложенныйЗапрос.Сумма КАК Сумма, | ВложенныйЗапрос.СуммаНДС КАК СуммаНДС, | ВложенныйЗапрос.НомерСтроки КАК НомерСтроки, | ВложенныйЗапрос.Метка КАК Метка |ИЗ | | ( | ВЫБРАТЬ | РеализацияТоваровУслуг.Номенклатура, | РеализацияТоваровУслуг.Коэффициент, | РеализацияТоваровУслуг.ЕдиницаИзмерения, | РеализацияТоваровУслуг.ЕдиницаИзмеренияМест, | РеализацияТоваровУслуг.ЕдиницаИзмеренияМест.Коэффициент КАК КоэффициентМест, | РеализацияТоваровУслуг.ХарактеристикаНоменклатуры КАК Характеристика, | РеализацияТоваровУслуг.СерияНоменклатуры КАК Серия, | РеализацияТоваровУслуг.СтавкаНДС, | РеализацияТоваровУслуг.Цена * &Курс / &Кратность КАК Цена, | РеализацияТоваровУслуг.ПроцентСкидкиНаценки, | РеализацияТоваровУслуг.ПроцентАвтоматическихСкидок, | СУММА(РеализацияТоваровУслуг.Количество) КАК Количество, | СУММА(РеализацияТоваровУслуг.КоличествоМест) КАК КоличествоМест, | СУММА(РеализацияТоваровУслуг.Сумма * &Курс / &Кратность) КАК Сумма, | СУММА(РеализацияТоваровУслуг.СуммаНДС * &Курс / &Кратность) КАК СуммаНДС, | МИНИМУМ(РеализацияТоваровУслуг.НомерСтроки) КАК НомерСтроки, | 0 КАК Метка | ИЗ | Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслуг | ГДЕ | РеализацияТоваровУслуг.Ссылка = &ТекущийДокумент | |СГРУППИРОВАТЬ ПО | РеализацияТоваровУслуг.Номенклатура, | РеализацияТоваровУслуг.Коэффициент, | РеализацияТоваровУслуг.ЕдиницаИзмерения, | РеализацияТоваровУслуг.ЕдиницаИзмеренияМест, | РеализацияТоваровУслуг.ХарактеристикаНоменклатуры, | РеализацияТоваровУслуг.СерияНоменклатуры, | РеализацияТоваровУслуг.СтавкаНДС, | РеализацияТоваровУслуг.Цена, | РеализацияТоваровУслуг.ПроцентСкидкиНаценки, | РеализацияТоваровУслуг.ПроцентАвтоматическихСкидок | ) КАК ВложенныйЗапрос |"; СтрокаВыборкиПоляСодержания = ОбработкаТабличныхЧастей.ПолучитьЧастьЗапросаДляВыбораСодержания("РеализацияТоваровУслуг"); Если НЕ БезУслуг Тогда ТекстЗапросаТовары = ТекстЗапросаТовары + " | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | РеализацияТоваровУслуг.Номенклатура КАК Номенклатура, | " + СтрокаВыборкиПоляСодержания + " КАК ТоварНаименование, | РеализацияТоваровУслуг.Номенклатура." + ТоварКод + " КАК ТоварКод, | РеализацияТоваровУслуг.Номенклатура.ЕдиницаХраненияОстатков.Представление КАК БазоваяЕдиницаНаименование, | РеализацияТоваровУслуг.Номенклатура.ЕдиницаХраненияОстатков.ЕдиницаПоКлассификатору.Код КАК БазоваяЕдиницаКодПоОКЕИ, | РеализацияТоваровУслуг.Номенклатура.ЕдиницаХраненияОстатков КАК ЕдиницаИзмерения, | NULL КАК ВидУпаковки, | NULL КАК КоличествоВОдномМесте, | 0 КАК МассаБрутто, | NULL КАК Характеристика, | NULL КАК Серия, | РеализацияТоваровУслуг.СтавкаНДС КАК СтавкаНДС, | РеализацияТоваровУслуг.Цена * &Курс / &Кратность КАК Цена, | ВЫБОР | КОГДА(РеализацияТоваровУслуг.ПроцентСкидкиНаценки = 0) | ТОГДА ЛОЖЬ | ИНАЧЕ Истина | КОНЕЦ КАК ЕстьСкидкиПоСтроке, | РеализацияТоваровУслуг.Количество КАК Количество, | NULL КАК КоличествоМест, | РеализацияТоваровУслуг.Сумма * &Курс / &Кратность КАК Сумма, | РеализацияТоваровУслуг.СуммаНДС * &Курс / &Кратность КАК СуммаНДС, | РеализацияТоваровУслуг.НомерСтроки КАК НомерСтроки, | 1 КАК Метка |ИЗ | Документ.РеализацияТоваровУслуг.Услуги КАК РеализацияТоваровУслуг | |ГДЕ | РеализацияТоваровУслуг.Ссылка = &ТекущийДокумент |"; КонецЕсли; ТекстЗапросаТовары = ТекстЗапросаТовары + " | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | РеализацияТоваровУслуг.Номенклатура КАК Номенклатура, | ВЫРАЗИТЬ(РеализацияТоваровУслуг.Номенклатура.НаименованиеПолное КАК Строка(1000)) КАК ТоварНаименование, | РеализацияТоваровУслуг.Номенклатура." + ТоварКод + " КАК ТоварКод, | РеализацияТоваровУслуг.Номенклатура.ЕдиницаХраненияОстатков.Представление КАК БазоваяЕдиницаНаименование, | РеализацияТоваровУслуг.Номенклатура.ЕдиницаХраненияОстатков.ЕдиницаПоКлассификатору.Код КАК БазоваяЕдиницаКодПоОКЕИ, | РеализацияТоваровУслуг.Номенклатура.ЕдиницаХраненияОстатков КАК ЕдиницаИзмерения, | NULL КАК ВидУпаковки, | NULL КАК КоличествоВОдномМесте, | РеализацияТоваровУслуг.Количество * РеализацияТоваровУслуг.Номенклатура.ЕдиницаХраненияОстатков.Вес КАК МассаБрутто, | NULL КАК Характеристика, | NULL КАК Серия, | ""Без НДС"" КАК СтавкаНДС, | РеализацияТоваровУслуг.Цена * &Курс / &Кратность КАК Цена, | Ложь КАК ЕстьСкидкиПоСтроке, | РеализацияТоваровУслуг.Количество КАК Количество, | NULL КАК КоличествоМест, | РеализацияТоваровУслуг.Сумма * &Курс / &Кратность КАК Сумма, | 0 КАК СуммаНДС, | РеализацияТоваровУслуг.НомерСтроки КАК НомерСтроки, | 2 КАК Метка |ИЗ | Документ.РеализацияТоваровУслуг.ВозвратнаяТара КАК РеализацияТоваровУслуг | |ГДЕ | РеализацияТоваровУслуг.Ссылка = &ТекущийДокумент | | |УПОРЯДОЧИТЬ ПО Метка ВОЗР, НомерСтроки ВОЗР | |"; ТабДокумент = Новый ТабличныйДокумент; // Зададим параметры печатной формы по умолчанию ТабДокумент.ПолеСверху = 0; ТабДокумент.ПолеСлева = 0; ТабДокумент.ПолеСнизу = 0; ТабДокумент.ПолеСправа = 0; ТабДокумент.РазмерКолонтитулаСверху = 0; ТабДокумент.РазмерКолонтитулаСнизу = 0; ТабДокумент.АвтоМасштаб = Истина; ТабДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт; // Восстановим установленные пользователем параметры печатной формы ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_РеализацияТоваровУслуг_ТОРГ12"; Макет = ПолучитьМакет("Макет"); ПервыйДокумент = Истина; //Для каждого Ссылка Из МассивОбъектов Цикл Если Не ПервыйДокумент Тогда ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц(); КонецЕсли; ПервыйДокумент = Ложь; НомерСтрокиНачало = ТабДокумент.ВысотаТаблицы + 1; Запрос = Новый Запрос; Запрос.УстановитьПараметр("ДатаСреза", Ссылка.Дата); Запрос.УстановитьПараметр("СтруктурнаяЕдиница", Ссылка.Склад); Запрос.УстановитьПараметр("ТекущийДокумент", Ссылка); Запрос.УстановитьПараметр("ПустойКонтрагент", Справочники.Контрагенты.ПустаяСсылка()); Запрос.УстановитьПараметр("Организация", Ссылка.Организация); Запрос.УстановитьПараметр("Подразделение", Ссылка.Подразделение); Запрос.Текст = ТекстЗапросаШапка; Шапка = Запрос.Выполнить().Выбрать(); Шапка.Следующий(); Запрос = Новый Запрос; Запрос.УстановитьПараметр("ТекущийДокумент", Ссылка); // Вычислим курс документа для печати Если Ссылка.ВалютаДокумента <> мВалютаРегламентированногоУчета И Ссылка.ДоговорКонтрагента.РасчетыВУсловныхЕдиницах И Ссылка.ДоговорКонтрагента.ВестиПоДокументамРасчетовСКонтрагентом Тогда ЗапросКурсАванса = Новый Запрос; ЗапросКурсАванса.УстановитьПараметр("ДокументСсылка", Ссылка); ЗапросКурсАванса.Текст = "ВЫБРАТЬ | Док.СуммаВзаиморасчетов, | Док.СуммаРегл |ИЗ | Документ.РеализацияТоваровУслуг.ДокументыРасчетовСКонтрагентом КАК Док |ГДЕ Док.Ссылка = &ДокументСсылка |ИТОГИ СУММА(СуммаВзаиморасчетов), СУММА(СуммаРегл) ПО ОБЩИЕ"; Выборка = ЗапросКурсАванса.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Если Выборка.Следующий() Тогда КурсОплаты = ?(Выборка.СуммаВзаиморасчетов = 0, 0, Выборка.СуммаРегл/Выборка.СуммаВзаиморасчетов); ВыборкаСуммаВзаиморасчетов = Выборка.СуммаВзаиморасчетов; ВыборкаСуммаРегл = Выборка.СуммаРегл; Иначе КурсОплаты = 0; ВыборкаСуммаВзаиморасчетов = 0; ВыборкаСуммаРегл = 0; КонецЕсли; СуммаВзаиморасчетов = МодульВалютногоУчета.ПересчитатьИзВалютыВВалюту(УчетНДС.ПолучитьСуммуДокументаСНДС(Ссылка), Ссылка.ВалютаДокумента, Ссылка.ДоговорКонтрагента.ВалютаВзаиморасчетов, ЗаполнениеДокументов.КурсДокумента(Ссылка, мВалютаРегламентированногоУчета), Ссылка.КурсВзаиморасчетов, ЗаполнениеДокументов.КратностьДокумента(Ссылка, мВалютаРегламентированногоУчета), Ссылка.КратностьВзаиморасчетов); НеоплаченнаяСумма = СуммаВзаиморасчетов - ВыборкаСуммаВзаиморасчетов; Если НеоплаченнаяСумма > 0 Тогда КурсДляПечати = (НеоплаченнаяСумма * Ссылка.КурсВзаиморасчетов + ВыборкаСуммаРегл)/(НеоплаченнаяСумма + ВыборкаСуммаВзаиморасчетов); Иначе КурсДляПечати = КурсОплаты; КонецЕсли; Если КурсДляПечати = 0 Тогда Запрос.УстановитьПараметр("Курс", Ссылка.КурсВзаиморасчетов); Запрос.УстановитьПараметр("Кратность", ?(Ссылка.КратностьВзаиморасчетов=0,1,Ссылка.КратностьВзаиморасчетов)); Иначе Запрос.УстановитьПараметр("Курс", КурсДляПечати); Запрос.УстановитьПараметр("Кратность", 1); КонецЕсли; ИначеЕсли Ссылка.ВалютаДокумента = Ссылка.ДоговорКонтрагента.ВалютаВзаиморасчетов Тогда // Документ оформлен в валюте взаиморасчетов Запрос.УстановитьПараметр("Курс", Ссылка.КурсВзаиморасчетов); Запрос.УстановитьПараметр("Кратность", ?(Ссылка.КратностьВзаиморасчетов=0,1,Ссылка.КратностьВзаиморасчетов)); Иначе // Документ оформлен в валюте регламентированного учета Запрос.УстановитьПараметр("Курс", 1); Запрос.УстановитьПараметр("Кратность", 1); КонецЕсли; Запрос.Текст = ТекстЗапросаТовары; ЗапросТовары = Запрос.Выполнить().Выгрузить(); // Выводим общие реквизиты шапки СведенияОПоставщике = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.ЮрФизЛицо, Шапка.ДатаДокумента,, Шапка.БанковскийСчет); СведенияОПокупателе = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Покупатель, Шапка.ДатаДокумента); СведенияОГрузополучателе = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Грузополучатель, Шапка.ДатаДокумента); СведенияОГрузоотправитель = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Грузоотправитель, Шапка.ДатаДокумента); ОбластьМакета = Макет.ПолучитьОбласть("Шапка"); ОбластьМакета.Параметры.Заполнить(Шапка); ОбластьМакета.Параметры.НомерДокумента = ОбщегоНазначения.ПолучитьНомерНаПечать(Шапка); ОбластьМакета.Параметры.ДатаДокумента = Шапка.ДатаДокумента; Если Шапка.ЮрФизЛицо = Шапка.Грузоотправитель Тогда ОбластьМакета.Параметры.ПредставлениеОрганизации = ФормированиеПечатныхФормСервер.ОписаниеОрганизации(СведенияОПоставщике); Иначе ОбластьМакета.Параметры.ПредставлениеОрганизации = ФормированиеПечатныхФормСервер.ОписаниеОрганизации(СведенияОГрузоотправитель, "ПолноеНаименование,ИНН,ФактическийАдрес,Телефоны,НомерСчета,Банк,БИК,КоррСчет"); КонецЕсли; ОбластьМакета.Параметры.ПредставлениеПодразделения = Шапка.Подразделение; ОбластьМакета.Параметры.ПредставлениеГрузополучателя = ФормированиеПечатныхФормСервер.ОписаниеОрганизации(СведенияОГрузополучателе, "ПолноеНаименование,ИНН,ФактическийАдрес,Телефоны,НомерСчета,Банк,БИК,КоррСчет"); Если СокрЛП(Шапка.АдресДоставки) <> "" Тогда ОбластьМакета.Параметры.АдресДоставки = УправлениеКонтактнойИнформацией.ПолучитьПредставлениеАдресаПоСтрока(Шапка.АдресДоставки); Иначе ОбластьМакета.Параметры.АдресДоставки = ФормированиеПечатныхФормСервер.ОписаниеОрганизации(СведенияОГрузополучателе, "ФактическийАдрес"); КонецЕсли; ОбластьМакета.Параметры.ПредставлениеПоставщика = ФормированиеПечатныхФормСервер.ОписаниеОрганизации(СведенияОПоставщике); ОбластьМакета.Параметры.ПредставлениеПлательщика = ФормированиеПечатныхФормСервер.ОписаниеОрганизации(СведенияОПокупателе); Если Шапка.ВедениеВзаиморасчетов <> Перечисления.ВедениеВзаиморасчетовПоДоговорам.ПоЗаказам И Шапка.ВедениеВзаиморасчетов <> Перечисления.ВедениеВзаиморасчетовПоДоговорам.ПоСчетам Тогда ОбластьМакета.Параметры.Основание = Шапка.Основание; Иначе Если ЗначениеЗаполнено(Шапка.Сделка) Тогда ОбластьМакета.Параметры.Основание = ОбщегоНазначения.СформироватьЗаголовокДокумента(Шапка.Сделка, Строка(Шапка.Сделка.Метаданные().Синоним)); КонецЕсли; КонецЕсли; //изм____ ОбластьМакета.Параметры.НомерМагазина=ЗначениеСвойстваПоОбъекту(СсылкаНаОбъект.Грузополучатель,"НомерМагазина"); ОбластьМакета.Параметры.НомерПоставщика=ЗначениеСвойстваПоОбъекту(СсылкаНаОбъект.ДоговорКонтрагента,"НомерПокупателя"); ОбластьМакета.Параметры.НомерЗаказа=СсылкаНаОбъект.НН_НомерЗаказа;//НН_НомерЗаказа; //изм____ // Выводим всевозможные коды ОбластьМакета.Параметры.ОрганизацияПоОКПО = СведенияОГрузоотправитель.КодПоОКПО; ОбластьМакета.Параметры.ВидДеятельностиПоОКДП = ""; ОбластьМакета.Параметры.ГрузополучательПоОКПО = СведенияОГрузополучателе.КодПоОКПО; ОбластьМакета.Параметры.ПоставщикПоОКПО = СведенияОПоставщике.КодПоОКПО; ОбластьМакета.Параметры.ПлательщикПоОКПО = СведенияОПокупателе.КодПоОКПО; ОбластьМакета.Параметры.ОснованиеНомер = ""; ОбластьМакета.Параметры.ОснованиеДата = ""; ОбластьМакета.Параметры.ТранспортнаяНакладнаяНомер = ""; ОбластьМакета.Параметры.ТранспортнаяНакладнаяДата = ""; ТабДокумент.Вывести(ОбластьМакета); НомерСтраницы = 1; КоличествоСтрок = ЗапросТовары.Количество(); // инициализация итогов по странице ИтогоМассаБруттоНаСтранице = 0; ИтогоМестНаСтранице = 0; ИтогоКоличествоНаСтранице = 0; ИтогоСуммаНаСтранице = 0; ИтогоНДСНаСтранице = 0; ИтогоСуммаСНДСНаСтранице = 0; ИтогМестНаСтранице = 0; // инициализация итогов по документу ИтогоМассаБрутто = 0; ИтогоМест = 0; ИтогоКоличество = 0; ИтогоСуммаСНДС = 0; ИтогоСумма = 0; ИтогоНДС = 0; НомерСтроки = 0; ИтогМест =0; ИтогМестН=0; МассаГрузаНетто = 0; МассаГрузаБрутто = 0; ИтогМассаГрузаНетто = 0; ИтогМассаГрузаБрутто = 0; // Создаем массив для проверки вывода МассивВыводимыхОбластей = Новый Массив; // Выводим многострочную часть докмента ЗаголовокТаблицы = Макет.ПолучитьОбласть("ЗаголовокТаб"); ОбластьМакета = Макет.ПолучитьОбласть("Строка"); ОбластьИтоговПоСтранице = Макет.ПолучитьОбласть("ИтогоПоСтранице"); ОбластьПодвала = Макет.ПолучитьОбласть("Подвал"); ОбластьМакетаВсего = Макет.ПолучитьОбласть("Всего"); Для Каждого ВыборкаСтрок Из ЗапросТовары Цикл Если НЕ ЗначениеЗаполнено(ВыборкаСтрок.Номенклатура) Тогда Продолжить; КонецЕсли; НомерСтроки = НомерСтроки + 1; ОбластьМакета.Параметры.Заполнить(ВыборкаСтрок); ОбластьМакета.Параметры.Номер = ЗапросТовары.Индекс(ВыборкаСтрок) + 1; ОбластьМакета.Параметры.ТоварНаименование = СокрЛП(ВыборкаСтрок.ТоварНаименование) + ФормированиеПечатныхФормСервер.ПредставлениеСерий(ВыборкаСтрок) + ?(ВыборкаСтрок.Метка = 2, " (возвратная тара)", ""); Если НЕ ЗначениеЗаполнено(ЕдиницаИзмеренияВеса) Тогда МассаБрутто = 0; Иначе МассаБрутто = ВыборкаСтрок.МассаБрутто; МассаБрутто = ?(МассаБрутто <> Неопределено И МассаБрутто <> NULL, МассаБрутто, 0); КонецЕсли; Мест = ВыборкаСтрок.КоличествоМест; Мест = ?(Мест <> Неопределено И Мест <> NULL, Мест, 0); Количество = ВыборкаСтрок.Количество; СуммаСНДС = Окр((ВыборкаСтрок.Сумма + ?(Шапка.СуммаВключаетНДС, 0, ВыборкаСтрок.СуммаНДС)), 2); СуммаНДС = Окр(ВыборкаСтрок.СуммаНДС, 2); СуммаБезНДС = СуммаСНДС - СуммаНДС; //изм____ ОбластьМакета.Параметры.КодМетро= ЗначениеСвойстваПоОбъекту(ВыборкаСтрок.Номенклатура,"АртикулМетро");//ВыборкаСтрок.Номенклатура.АртикулМетро; ОбластьМакета.Параметры.КоличествоВОдномМесте= ЗначениеСвойстваПоОбъекту(ВыборкаСтрок.Номенклатура,"ЕдиницВОдномМесте"); ОбластьМакета.Параметры.КоличествоМест =ВыборкаСтрок.Количество/число(ЗначениеСвойстваПоОбъекту(ВыборкаСтрок.Номенклатура,"ЕдиницВОдномМесте")); ПКоличествоМест=ВыборкаСтрок.Количество/число(ЗначениеСвойстваПоОбъекту(ВыборкаСтрок.Номенклатура,"ЕдиницВОдномМесте")); КМое=число(ЗначениеСвойстваПоОбъекту(ВыборкаСтрок.Номенклатура,"ЕдиницВОдномМесте")); //?(ПустоеЗначение(ТабДок.КолВоФизическихУпаковок)=1,К,СокрЛП(ТабДок.КолВоФизическихУпаковок)); //Сообщить("!!! "+число(ЗначениеСвойстваПоОбъекту(ВыборкаСтрок.Номенклатура,"ВесУпаковкиКГ"))+" !! "+?(КМое=0,ВыборкаСтрок.Количество,ВыборкаСтрок.Количество/КМое)*КМое*(число(ЗначениеСвойстваПоОбъекту(ВыборкаСтрок.Номенклатура,"ВесУпаковкиКГ")/1000))); Если число(ЗначениеСвойстваПоОбъекту(ВыборкаСтрок.Номенклатура,"ВесУпаковкиКГ"))>0 Тогда МассаГрузаНетто =?(КМое=0,ВыборкаСтрок.Количество,ВыборкаСтрок.Количество/КМое)*КМое*(число(ЗначениеСвойстваПоОбъекту(ВыборкаСтрок.Номенклатура,"ВесУпаковкиКГ")));// /1000 //Сообщить("1 "+ВыборкаСтрок.Количество+" КМое "+КМое+" "+число(ЗначениеСвойстваПоОбъекту(ВыборкаСтрок.Номенклатура,"ВесУпаковкиКГ"))); Иначе Сообщить("не указана масса одной единицы "+ВыборкаСтрок.Номенклатура); КонецЕсли; Если число(ЗначениеСвойстваПоОбъекту(ВыборкаСтрок.Номенклатура,"ВесВУпаковкеГР"))>0 Тогда МассаГрузаБрутто =(?(КМое=0,ВыборкаСтрок.Количество,ВыборкаСтрок.Количество/КМое))*число(ЗначениеСвойстваПоОбъекту(ВыборкаСтрок.Номенклатура,"ВесВУпаковкеГР")/1000);//+МассаГрузаНетто; //+(?(К=0,ТабДок.Количество,ТабДок.Количество/КМое)*КМое)*(ТабДок.Товар.НН_ВесВУПаковке/1000); Иначе Сообщить("не указана масса упаковки "+ВыборкаСтрок.Номенклатура); КонецЕсли; //изм____ ОбластьМакета.Параметры.МассаБрутто = МассаБрутто; ОбластьМакета.Параметры.СуммаСНДС = СуммаСНДС; ОбластьМакета.Параметры.СуммаНДС = СуммаНДС; ОбластьМакета.Параметры.СтавкаНДС = ВыборкаСтрок.СтавкаНДС; ОбластьМакета.Параметры.СуммаБезНДС = СуммаБезНДС; Если Шапка.СуммаВключаетНДС Или ВыборкаСтрок.ЕстьСкидкиПоСтроке Тогда ОбластьМакета.Параметры.Цена = ?(Количество = 0, 0, СуммаБезНДС / Количество); Иначе ОбластьМакета.Параметры.Цена = ВыборкаСтрок.Цена; КонецЕсли; Если НомерСтроки = 1 Тогда // первая срока ЗаголовокТаблицы.Параметры.НомерСтраницы = "Страница " + НомерСтраницы; ТабДокумент.Вывести(ЗаголовокТаблицы); Иначе МассивВыводимыхОбластей.Очистить(); МассивВыводимыхОбластей.Добавить(ОбластьМакета); МассивВыводимыхОбластей.Добавить(ОбластьИтоговПоСтранице); Если Но |
|||
3
ddd2005
12.05.12
✎
10:14
|
понимаю что здесь кроется
НомерСтраницы = НомерСтраницы + 1; ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц(); ЗаголовокТаблицы.Параметры.НомерСтраницы = "Страница " + НомерСтраницы; ТабДокумент.Вывести(ЗаголовокТаблицы); |
|||
4
ddd2005
12.05.12
✎
10:21
|
тут ни чего не написано толком
http://v8.1c.ru/overview/DeveloperTabDocEditor.htm |
|||
5
Wobland
12.05.12
✎
10:22
|
(0) тебе нужно повторять при печати некоторые строки?
|
|||
6
ddd2005
12.05.12
✎
10:23
|
всю шапку
|
|||
7
Wobland
12.05.12
✎
10:24
|
(6) вся шапка является частным случаем некоторых строк? если да, то повторяй ;)
|
|||
8
ddd2005
12.05.12
✎
10:24
|
СведенияОПоставщике = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.ЮрФизЛицо, Шапка.ДатаДокумента,, Шапка.БанковскийСчет);
СведенияОПокупателе = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Покупатель, Шапка.ДатаДокумента); СведенияОГрузополучателе = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Грузополучатель, Шапка.ДатаДокумента); СведенияОГрузоотправитель = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Грузоотправитель, Шапка.ДатаДокумента); ОбластьМакета = Макет.ПолучитьОбласть("Шапка"); ОбластьМакета.Параметры.Заполнить(Шапка); ОбластьМакета.Параметры.НомерДокумента = ОбщегоНазначения.ПолучитьНомерНаПечать(Шапка); ОбластьМакета.Параметры.ДатаДокумента = Шапка.ДатаДокумента; Если Шапка.ЮрФизЛицо = Шапка.Грузоотправитель Тогда ОбластьМакета.Параметры.ПредставлениеОрганизации = ФормированиеПечатныхФормСервер.ОписаниеОрганизации(СведенияОПоставщике); Иначе ОбластьМакета.Параметры.ПредставлениеОрганизации = ФормированиеПечатныхФормСервер.ОписаниеОрганизации(СведенияОГрузоотправитель, "ПолноеНаименование,ИНН,ФактическийАдрес,Телефоны,НомерСчета,Банк,БИК,КоррСчет"); КонецЕсли; ОбластьМакета.Параметры.ПредставлениеПодразделения = Шапка.Подразделение; ОбластьМакета.Параметры.ПредставлениеГрузополучателя = ФормированиеПечатныхФормСервер.ОписаниеОрганизации(СведенияОГрузополучателе, "ПолноеНаименование,ИНН,ФактическийАдрес,Телефоны,НомерСчета,Банк,БИК,КоррСчет"); Если СокрЛП(Шапка.АдресДоставки) <> "" Тогда ОбластьМакета.Параметры.АдресДоставки = УправлениеКонтактнойИнформацией.ПолучитьПредставлениеАдресаПоСтрока(Шапка.АдресДоставки); Иначе ОбластьМакета.Параметры.АдресДоставки = ФормированиеПечатныхФормСервер.ОписаниеОрганизации(СведенияОГрузополучателе, "ФактическийАдрес"); КонецЕсли; ОбластьМакета.Параметры.ПредставлениеПоставщика = ФормированиеПечатныхФормСервер.ОписаниеОрганизации(СведенияОПоставщике); ОбластьМакета.Параметры.ПредставлениеПлательщика = ФормированиеПечатныхФормСервер.ОписаниеОрганизации(СведенияОПокупателе); Если Шапка.ВедениеВзаиморасчетов <> Перечисления.ВедениеВзаиморасчетовПоДоговорам.ПоЗаказам И Шапка.ВедениеВзаиморасчетов <> Перечисления.ВедениеВзаиморасчетовПоДоговорам.ПоСчетам Тогда ОбластьМакета.Параметры.Основание = Шапка.Основание; Иначе Если ЗначениеЗаполнено(Шапка.Сделка) Тогда ОбластьМакета.Параметры.Основание = ОбщегоНазначения.СформироватьЗаголовокДокумента(Шапка.Сделка, Строка(Шапка.Сделка.Метаданные().Синоним)); КонецЕсли; КонецЕсли; //изм____ ОбластьМакета.Параметры.НомерМагазина=ЗначениеСвойстваПоОбъекту(СсылкаНаОбъект.Грузополучатель,"НомерМагазина"); ОбластьМакета.Параметры.НомерПоставщика=ЗначениеСвойстваПоОбъекту(СсылкаНаОбъект.ДоговорКонтрагента,"НомерПокупателя"); ОбластьМакета.Параметры.НомерЗаказа=СсылкаНаОбъект.НН_НомерЗаказа;//НН_НомерЗаказа; //изм____ // Выводим всевозможные коды ОбластьМакета.Параметры.ОрганизацияПоОКПО = СведенияОГрузоотправитель.КодПоОКПО; ОбластьМакета.Параметры.ВидДеятельностиПоОКДП = ""; ОбластьМакета.Параметры.ГрузополучательПоОКПО = СведенияОГрузополучателе.КодПоОКПО; ОбластьМакета.Параметры.ПоставщикПоОКПО = СведенияОПоставщике.КодПоОКПО; ОбластьМакета.Параметры.ПлательщикПоОКПО = СведенияОПокупателе.КодПоОКПО; ОбластьМакета.Параметры.ОснованиеНомер = ""; ОбластьМакета.Параметры.ОснованиеДата = ""; ОбластьМакета.Параметры.ТранспортнаяНакладнаяНомер = ""; ОбластьМакета.Параметры.ТранспортнаяНакладнаяДата = ""; ТабДокумент.Вывести(ОбластьМакета); |
|||
9
ddd2005
12.05.12
✎
10:25
|
пытался просто добавить
ТабДокумент.Вывести(ОбластьМакета); но не выводит шапку документа |
|||
10
ddd2005
12.05.12
✎
10:30
|
(7) то есть весь кусок (8) опять повторять?
|
|||
11
СноваЗдорова
12.05.12
✎
10:33
|
(9) Значит область Макета содержит другие данные. У меня в ТОРГ 12 Макет шапки содержится в переменной ОбластьМакетаШапка
|
|||
12
ddd2005
12.05.12
✎
10:34
|
(11) ну у меня внешняя торг 12 такая
кинь свой код можно на базе твоего сделаю что мне надо |
|||
13
ddd2005
12.05.12
✎
10:36
|
у меня тоже вроде бы шапка формируется отдельно
ОбластьМакета = Макет.ПолучитьОбласть("Шапка"); ОбластьМакета.Параметры.Заполнить(Шапка); ОбластьМакета.Параметры.НомерДокумента = ОбщегоНазначения.ПолучитьНомерНаПечать(Шапка); ОбластьМакета.Параметры.ДатаДокумента = Шапка.ДатаДокумента; но как его повторить? |
|||
14
СноваЗдорова
12.05.12
✎
10:39
|
(13) Создай другую переменную, не тупи! Вместо:
ОбластьМакета = Макет.ПолучитьОбласть("Шапка"); ОбластьМакета.Параметры.Заполнить(Шапка); ОбластьМакета.Параметры.НомерДокумента = ОбщегоНазначения.ПолучитьНомерНаПечать(Шапка); ОбластьМакета.Параметры.ДатаДокумента = Шапка.ДатаДокумента; сделай ОбластьМакетаШапка = Макет.ПолучитьОбласть("Шапка"); ОбластьМакетаШапка.Параметры.Заполнить(Шапка); ОбластьМакетаШапка.Параметры.НомерДокумента = ОбщегоНазначения.ПолучитьНомерНаПечать(Шапка); ОбластьМакетаШапка.Параметры.ДатаДокумента = Шапка.ДатаДокумента; и т.д... |
|||
15
Kerk
12.05.12
✎
10:39
|
НомерСтраницы = НомерСтраницы + 1;
ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц(); ЗаголовокТаблицы.Параметры.НомерСтраницы = "Страница " + НомерСтраницы; ТабДокумент.Вывести(ЗаголовокТаблицы); Ну и добавь тут вывод шапки дополнительно... |
|||
16
СноваЗдорова
12.05.12
✎
10:42
|
(14) и вывод в табличный документ шапки тоже проверь, чтобы было ОбластьМакета ШАпка
|
|||
17
ddd2005
12.05.12
✎
10:45
|
Видно суббота спасибо (14) получилось
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |