|
|
|
почему печатает пустые листы. | ☑ | ||
|---|---|---|---|---|
|
0
Dooro
07.06.11
✎
14:14
|
Не могу выловить в коде или в макете почему печатает пустые листы в налоговой.
Где искать и на что обратить внимание? |
|||
|
1
le_
07.06.11
✎
14:18
|
Может, все не помещается на один лист? Пустая строка, например, в конце страницы выводит на другой лист?
|
|||
|
2
Dooro
07.06.11
✎
14:22
|
да вроде помещается ..
дело в том что всегда печатает 1 экз налоговой - потом пустой лист 2 экз налоговой - потом пустой лист |
|||
|
3
Dooro
07.06.11
✎
14:24
|
ниже код в нескольких постах
Запрос = Новый Запрос; Запрос.УстановитьПараметр("ТекущийДокумент", ЭтотОбъект.Ссылка); Запрос.Текст = "ВЫБРАТЬ | НалоговаяНакладная.Номер, | НалоговаяНакладная.Дата, | НалоговаяНакладная.Контрагент, | НалоговаяНакладная.Организация, | НалоговаяНакладная.ЛьготаНДС, | НалоговаяНакладная.УсловиеПродажи, | НалоговаяНакладная.ФормаРасчетов, | НалоговаяНакладная.ХозОперация, | НалоговаяНакладная.ТекстДополненияКНаименованиюПриПродажеНижеОбычнойЦены, | НалоговаяНакладная.КтоВыписалНалоговуюНакладную.Представление КАК КтоВыписалНалоговуюНакладную, | НалоговаяНакладная.Контрагент2 |ИЗ | Документ.НалоговаяНакладная КАК НалоговаяНакладная |ГДЕ | НалоговаяНакладная.Ссылка = &ТекущийДокумент"; Шапка = Запрос.Выполнить().Выбрать(); Шапка.Следующий(); // Подготовим таблицы Отказ = Ложь; ТабДокумент = Новый ТабличныйДокумент; Макет = ПолучитьОбщийМакет("НалоговаяНакладная"); Макет.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт; // ТаблицаНоменклатуры = ЭтотОбъект.Товары ; // ТаблицаНоменклатурыКопия = ТаблицаНоменклатуры.Выгрузить(); // ТаблицаНоменклатуры = ТаблицаНоменклатурыКопия.Скопировать(); Запрос = Новый Запрос; Запрос.УстановитьПараметр("ТекущийДокумент", ЭтотОбъект.Ссылка); Запрос.Текст ="ВЫБРАТЬ | НалоговаяНакладная.НомерСтроки КАК НомерСтроки, | НалоговаяНакладная.Номенклатура.НаименованиеПолное КАК Номенклатура, | НалоговаяНакладная.ЕдиницаИзмерения.Наименование КАК ЕдиницаИзмерения, | НалоговаяНакладная.Количество КАК Количество, | НалоговаяНакладная.Цена КАК Цена, | НалоговаяНакладная.Сумма КАК Сумма, | НалоговаяНакладная.СтавкаНДС КАК СтавкаНДС, | НалоговаяНакладная.СуммаНДС КАК СуммаНДС, | НалоговаяНакладная.ПроцентСкидки КАК ПроцентСкидки, | НалоговаяНакладная.СуммаСкидки КАК СуммаСкидки, | НалоговаяНакладная.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры, | НалоговаяНакладная.ДатаОтгрузкиОплаты КАК ДатаОтгрузкиОплаты, | НалоговаяНакладная.СтатьяКнигиПродаж КАК СтатьяКнигиПродаж, | НалоговаяНакладная.СуммаПревышения КАК СуммаПревышения, | НалоговаяНакладная.СуммаНДСПревышения КАК СуммаНДСПревышения, | НалоговаяНакладная.Номенклатура.ТекстДляПечатиВКолонкеКоличествоНалоговойНакладной КАК ТекстДляПечатиВКолонкеКоличество, | НалоговаяНакладная.Товаротранспортная КАК ТовароТранспортная, | НалоговаяНакладная.Номенклатура КАК Номенклатура1 |ИЗ | Документ.НалоговаяНакладная.Товары КАК НалоговаяНакладная |ГДЕ | НалоговаяНакладная.Ссылка = &ТекущийДокумент"; РезультатЗапроса = Запрос.Выполнить(); ТаблицаНоменклатуры = РезультатЗапроса.Выгрузить(); ТаблицаНоменклатурыКопия = ТаблицаНоменклатуры.Скопировать(); Для Страница = 1 По 2 Цикл // Выводим отступ ОбластьМакета = Макет.ПолучитьОбласть("Пробел"); ТабДокумент.Вывести(ОбластьМакета); // Выводим область оригинал/копия Если Страница = 1 Тогда ОбластьМакета = Макет.ПолучитьОбласть("Оригинал"); Если ЭтотОбъект.УПродавца = Истина Тогда ОбластьМакета.Параметры.крест2 = "X"; ОбластьМакета.Параметры.ккк1 = "0"; ОбластьМакета.Параметры.ккк2 = "2"; ТабДокумент.Вывести(ОбластьМакета); Иначе ОбластьМакета.Параметры.крест1 = "X"; ТабДокумент.Вывести(ОбластьМакета); КонецЕсли; ИначеЕсли Страница = 2 Тогда ОбластьМакета = Макет.ПолучитьОбласть("ПерваяКопия"); ТабДокумент.Вывести(ОбластьМакета); ТаблицаНоменклатуры = ТаблицаНоменклатурыКопия.Скопировать(); КонецЕсли; // Выводим заголовок накладной ОбластьМакета = Макет.ПолучитьОбласть("Заголовок"); ОбластьМакета.Параметры.Заполнить(Шапка); ДатаРазбить = ЭтотОбъект.ДатаСвоя; ДатаРазбить = Строка(Лев(ДатаРазбить,10)); ДатаРазбить = СтрЗаменить(ДатаРазбить,".",""); Для Д = 1 По 8 Цикл ОбластьМакета.Параметры["Д"+Д] = Сред(ДатаРазбить, Д, 1); КонецЦикла; //////////////////////////Номер//////////////////////////////// НомерНалог = ЭтотОбъект.НомерСвой; Результат=""; Для Счетчик=1 По СтрДлина(НомерНалог) Цикл Результат=Результат+Сред(НомерНалог,СтрДлина(НомерНалог)-Счетчик+1,1); КонецЦикла; Для н = 1 По 7 Цикл ОбластьМакета.Параметры["нм"+н] = Сред(Результат, н, 1); КонецЦикла; //ОбластьМакета.Параметры.Номер = СокрЛП(ЭтотОбъект.Номер); ОбластьМакета.Параметры.НазваниеОрганизации = спПолучитьНаименование(ЭтотОбъект.Организация); СтруктураОтбора = Новый Структура("Объект,ВидАдреса",ЭтотОбъект.Организация,Перечисления.ВидыАдресов.Юридический); ВыборкаАдрес = РегистрыСведений.Адреса.ПолучитьПоследнее(,СтруктураОтбора); ОбластьМакета.Параметры.АдресОрганизации = ""; //ОбластьМакета.Параметры.ТелефоныОрганизации = ЭтотОбъект.Организация.Телефоны; //НомерСвидетельстваОрганизации = ЭтотОбъект.Организация.НомерСвидетельства; //ОбластьМакета.Параметры.НомерСвидетельстваОрганизации = НомерСвидетельстваОрганизации; ИННОрганизации = ЭтотОбъект.Организация.ИНН; Для Инд = 1 По 12 Цикл ОбластьМакета.Параметры["ИННОрганизации_"+Инд] = Сред(ИННОрганизации, Инд, 1); КонецЦикла; ОбластьМакета.Параметры.НазваниеКонтрагента = спПолучитьНаименование(ЭтотОбъект.Контрагент2); //СтруктураОтбора = Новый Структура("Объект,ВидАдреса",ЭтотОбъект.Контрагент2,Перечисления.ВидыАдресов.Юридический); //ВыборкаАдрес = РегистрыСведений.Адреса.ПолучитьПоследнее(,СтруктураОтбора); ОбластьМакета.Параметры.АдресКонтрагента = ЭтотОбъект.Контрагент2.Адреса22;//ВыборкаАдрес.ПредставлениеАдреса; //ОбластьМакета.Параметры.ТелефоныКонтрагента = ЭтотОбъект.Контрагент2.Телефоны2; НомерСвидетельстваКонтрагента = ЭтотОбъект.Контрагент2.НомерСвидетельства; |
|||
|
4
Dooro
07.06.11
✎
14:24
|
////////////////////////////////////////////////////////
////////////////////////////////////////////////////////// Если ЗначениеНеЗаполнено(НомерСвидетельстваКонтрагента) Тогда ОбластьМакета.Параметры.н1 = "0"; ИначеЕсли ЭтотОбъект.УПродавца = Истина Тогда ОбластьМакета.Параметры.н1 = "0"; Иначе Результат=""; Для Счетчик=1 По СтрДлина(НомерСвидетельстваКонтрагента) Цикл Результат=Результат+Сред(НомерСвидетельстваКонтрагента,СтрДлина(НомерСвидетельстваКонтрагента)-Счетчик+1,1); КонецЦикла; Для н = 1 По 10 Цикл ОбластьМакета.Параметры["н"+н] = Сред(Результат, н, 1); КонецЦикла; КонецЕсли; //ОбластьМакета.Параметры.НомерСвидетельстваКонтрагента = НомерСвидетельстваКонтрагента; ИННКонтрагента = ЭтотОбъект.Контрагент2.ИНН; Если ЗначениеНеЗаполнено(ИННКонтрагента) Тогда ИННКонтрагента = "ХХХХХХХХХХХХ"; ИначеЕсли ЭтотОбъект.УПродавца = Истина Тогда ОбластьМакета.Параметры.н1 = "0"; Иначе ИННКонтрагента = Строка(ИННКонтрагента); Результат=""; Для Счетчик=1 По СтрДлина(ИННКонтрагента ) Цикл Результат=Результат+Сред(ИННКонтрагента,СтрДлина(ИННКонтрагента )-Счетчик+1,1); КонецЦикла; Для Инд = 1 По 12 Цикл ОбластьМакета.Параметры["ИННКонтрагента_"+Инд] = Сред(Результат, Инд, 1); КонецЦикла; КонецЕсли; ////////////////Остается у продавца ////////////////// Если ЭтотОбъект.УПродавца = Истина Тогда Для Инд = 1 По 12 Цикл ОбластьМакета.Параметры["ИННКонтрагента_"+Инд] = ""; КонецЦикла; ОбластьМакета.Параметры.ИННКонтрагента_1 = "0"; КонецЕсли; //////////////////////////////////////////////////////////// НомерТЛ = ЭтотОбъект.Контрагент2.Телефоны; Результат=""; Для Счетчик=1 По СтрДлина(НомерТЛ) Цикл Результат=Результат+Сред(НомерТЛ,СтрДлина(НомерТЛ)-Счетчик+1,1); КонецЦикла; Для н = 1 По 10 Цикл ОбластьМакета.Параметры["тл"+н] = Сред(Результат, н, 1); КонецЦикла; //////////////////////////////////////////////////////// ОбластьМакета.Параметры.Договор = "Договір роздрібної купівлі-продажу"; ОбластьМакета.Параметры.ОплатаН = "готівка (чек № "+ЭтотОбъект.НомерЧекаН+" від "+Лев(Строка(ЭтотОбъект.ДатаСвоя),10)+")"; ТабДокумент.Вывести(ОбластьМакета); //////////////////////////////////////////////////////// // Выводим шапку накладной ОбластьМакета = Макет.ПолучитьОбласть("Шапка"); ТабДокумент.Вывести(ОбластьМакета); ///---------------------------------------- // Выводим табличную часть ОбластьМакета = Макет.ПолучитьОбласть("РазделI"); ЭтоПерваяСтрока = Истина; //ТаблицаНоменклатуры = ЭтотОбъект.Товары ; // Выведем на печать все строки таблицы в раздел I, кроме строк, в которых указаны товаротранспортные услуги Для каждого СтрокаТаблицы Из ТаблицаНоменклатуры Цикл Если СтрокаТаблицы.ТовароТранспортная = Истина Тогда Продолжить КонецЕсли; Если ЭтоПерваяСтрока Тогда // в первой строке раздела укажем номер раздела ОбластьМакета.Параметры.НомерРаздела = "I"; ЭтоПерваяСтрока = Ложь; Иначе ОбластьМакета.Параметры.НомерРаздела = ""; КонецЕсли; ОбластьМакета.Параметры.Заполнить(СтрокаТаблицы); Если СтрокаТаблицы.Номенклатура1.Артикул = "" Тогда ОбластьМакета.Параметры.Количество = "посл." Иначе Если НЕ ЗначениеНеЗаполнено(СтрокаТаблицы.ТекстДляПечатиВКолонкеКоличество) Тогда ОбластьМакета.Параметры.Количество = СтрокаТаблицы.ТекстДляПечатиВКолонкеКоличество; КонецЕсли; КонецЕсли; // дата отгрузки/оплаты Если ЗначениеНеЗаполнено(СтрокаТаблицы.ДатаОтгрузкиОплаты) Тогда // укажем дату выписки накладной ОбластьМакета.Параметры.ДатаОтгрузкиОплаты = ЭтотОбъект.ДатаСвоя; КонецЕсли; Если ЗначениеНеЗаполнено(СтрокаТаблицы.Номенклатура) Тогда Сообщить("В одной из строк не заполнено наименование номенклатуры - проверьте заполнение документа!", СтатусСообщения.Важное); Продолжить; КонецЕсли; Если обЗначениеНеЗаполнено(ЭтотОбъект.ТипЦен) Тогда ЦенаВключаетНДС=Истина; Иначе ЦенаВключаетНДС=ЭтотОбъект.ТипЦен.ЦенаВключаетНДС; КонецЕсли; Если ЦенаВключаетНДС Тогда ЦенаБезНДС=Окр(СтрокаТаблицы.Цена*(100/(100+СтрокаТаблицы.СтавкаНДС.Ставка)),2); Иначе ЦенаБезНДС = Окр(СтрокаТаблицы.Цена,2); КонецЕсли; ОбластьМакета.Параметры.ЦенаБезНДС = Окр(ЦенаБезНДС,2); Если ЦенаВключаетНДС Тогда СуммаБезСкидки=Окр(СтрокаТаблицы.Сумма*(100/(100+СтрокаТаблицы.СтавкаНДС.Ставка)),2); Иначе СуммаБезСкидки=СтрокаТаблицы.Сумма; КонецЕсли; Колонка = "ЦенаБезНДС"; ОбластьМакета.Параметры[Колонка] = ФорматСумм(ЦенаБезНДС, ,"0,00"); // номенклатура с учетом харакетристики ОбластьМакета.Параметры.Номенклатура = "" + СтрокаТаблицы.Номенклатура + ?(ЗначениеНеЗаполнено(СтрокаТаблицы.ХарактеристикаНоменклатуры), "", "(" + СтрокаТаблицы.ХарактеристикаНоменклатуры +")"); //ОбластьМакета.Параметры.СуммаБезСкидки20 = "Х"; //ОбластьМакета.Параметры.СуммаБезСкидки0Укр = "Х"; //ОбластьМакета.Параметры.СуммаБезСкидки0Эксп = "Х"; //ОбластьМакета.Параметры.СуммаБезСкидкиБезНДС= "Х"; // Определим в какую колонку (в зависимости от ставки НДС) попадает сумма без НДС Колонка = "СуммаБезСкидки"+ ОпределитьКолонкуТаблицы(СтрокаТаблицы.СтавкаНДС); ОбластьМакета.Параметры[Колонка] = ФорматСумм(СуммаБезСкидки, ,"0,00"); ТабДокумент.Вывести(ОбластьМакета); КонецЦикла; // Выводми итог по I разделу и раздел II ОбластьМакета = Макет.ПолучитьОбласть("ИтогРазделIИТовТранс"); //ОбластьМакета.Параметры.СуммаБезТранс20 = "Х"; //ОбластьМакета.Параметры.СуммаБезТранс0Укр = "Х"; //ОбластьМакета.Параметры.СуммаБезТранс0Эксп = "Х"; //ОбластьМакета.Параметры.СуммаБезТрансБезНДС = "Х"; //ОбластьМакета.Параметры.СуммаТранс20 = "Х"; //ОбластьМакета.Параметры.СуммаТранс0Укр = "Х"; //ОбластьМакета.Параметры.СуммаТранс0Эксп = "Х"; //ОбластьМакета.Параметры.СуммаТрансБезНДС = "Х"; Сумма1разд = 0; //Сумма2разд = 0; // Получим итоговые суммы по товарам и товаротранспортным затратам ТаблицаНоменклатуры.Свернуть("СтавкаНДС, Товаротранспортная", " Сумма, СуммаСкидки, СуммаНДС"); Для каждого СтрокаТаблицы Из ТаблицаНоменклатуры Цикл СуффиксКолонки = ОпределитьКолонкуТаблицы(СтрокаТаблицы.СтавкаНДС); Если ЦенаВключаетНДС Тогда СуммаБезСкидки = Окр(СтрокаТаблицы.Сумма*(100/(100+СтрокаТаблицы.СтавкаНДС.Ставка)),2); Иначе СуммаБезСкидки=СтрокаТаблицы.Сумма; КонецЕсли; Сумма = 0; Сумма = СуммаБезСкидки; Если СтрокаТаблицы.Товаротранспортная Тогда Колонка = "СуммаТранс"; //Сумма2разд = Сумма2разд + Сумма; Иначе Колонка = "СуммаБезТранс"; Сумма1разд = Сумма1разд + Сумма; КонецЕсли; ОбластьМакета.Параметры[Колонка + СуффиксКолонки] = ФорматСумм(Сумма, ,"0,00"); КонецЦикла; // колонка 11 по товарам (раздел II) ОбластьМакета.Параметры.Сумма1разд = ФорматСумм(Сумма1разд, ,"0,00"); // колонка 11 по Товаротранспортным затратам (раздел II) //ОбластьМакета.Параметры.Сумма2разд = ФорматСумм(Сумма2разд, ,"0,00"); ТабДокумент.Вывести(ОбластьМакета); // Выводим раздел III (тара) ОбластьМакета = Макет.ПолучитьОбласть("ВозврТара"); //СуммаВозвратнойТары = 0; //ОбластьМакета.Параметры.ВозвТара = ФорматСумм(СуммаВозвратнойТары, ,"0,00"); ТабДокумент.Вывести(ОбластьМакета); // Выводим разделы IV...VII (скидки и итоги) ОбластьМакета = Макет.ПолучитьОбласть("Итоги"); ТаблицаНоменклатуры.Свернуть("СтавкаНДС", "Сумма, СуммаСкидки, СуммаНДС"); ИтогСуммаСкидки = 0; ИтогСуммаНадбавки = 0; ИтогНДС = 0; ИтогСуммаБезНДС = 0; //Всего = СуммаВозвратнойТары; Для каждого СтрокаТаблицы Из ТаблицаНоменклатуры Цикл СуффиксКолонки = ОпределитьКолонкуТаблицы(СтрокаТаблицы.СтавкаНДС); СтрокаТаблицы.СуммаСкидки=0; // Скидки Сумм |
|||
|
5
Dooro
07.06.11
✎
14:24
|
СуммаНадбавки = 0;
Если СтрокаТаблицы.СуммаСкидки > 0 Тогда //СуммаСкидки = СтрокаТаблицы.СуммаСкидки; Если ЦенаВключаетНДС Тогда СуммаСкидки=Окр(СтрокаТаблицы.СуммаСкидки*(100/(100+СтрокаТаблицы.СтавкаНДС.Ставка)),2); Иначе СуммаСкидки=СтрокаТаблицы.СуммаСкидки; КонецЕсли; ИтогСуммаСкидки = ИтогСуммаСкидки + СуммаСкидки; ИначеЕсли СтрокаТаблицы.СуммаСкидки < 0 Тогда Если ЦенаВключаетНДС Тогда СуммаНадбавки=-СтрокаТаблицы.СуммаСкидки*(100/(100+СтрокаТаблицы.СтавкаНДС.Ставка)); Иначе СуммаНадбавки=-СтрокаТаблицы.СуммаСкидки; КонецЕсли; //СуммаНадбавки = - СтрокаТаблицы.СуммаСкидки; ИтогСуммаНадбавки = ИтогСуммаНадбавки + СуммаНадбавки; КонецЕсли; //ОбластьМакета.Параметры["СуммаСкидки" + СуффиксКолонки] = ФорматСумм(СуммаСкидки, ,"0,00"); //ОбластьМакета.Параметры["СуммаНадбавки" + СуффиксКолонки] = ФорматСумм(СуммаНадбавки, ,"0,00"); ////////////////////Убрать Копейки///////////////////////////////////////////// СуммаНалоговая = Окр(ТаблицаНоменклатуры.Итог("Сумма"),2); БезНдсНалоговая = Окр(СуммаНалоговая*100/120,2); НДСНалоговая = Окр(СуммаНалоговая - БезНдсНалоговая,2); ////////////////////////////////////////////////////////////////////////////// // Итоги ОбластьМакета.Параметры["ИтогНДС" + СуффиксКолонки] = ФорматСумм(НДСНалоговая); Если СуффиксКолонки = "БезНДС" Тогда // п.10 Порядка заполнения налоговой накладной устанавливает особые правила заполнения этой ячейки: ОбластьМакета.Параметры["ИтогНДС" + СуффиксКолонки] = "Без ПДВ " + Шапка.ЛьготаНДС; КонецЕсли; Если ЦенаВключаетНДС Тогда СуммаБезСкидки=Окр(СтрокаТаблицы.Сумма*(100/(100+СтрокаТаблицы.СтавкаНДС.Ставка)),2); Иначе СуммаБезСкидки=СтрокаТаблицы.Сумма; КонецЕсли; //ОбластьМакета.Параметры["ИтогСуммаБезНДС" + СуффиксКолонки] = ФорматСумм(СуммаБезСкидки - СуммаСкидки + СуммаНадбавки, ,"0,00"); ОбластьМакета.Параметры["ИтогСуммаСНДС" + СуффиксКолонки] = ФорматСумм(СуммаНалоговая);//ФорматСумм(СуммаБезСкидки - СуммаСкидки + СуммаНадбавки + СтрокаТаблицы.СуммаНДС, ,"0,00"); КонецЦикла; // Итоги в 11 колонке ТаблицаНоменклатуры.Свернуть("","Сумма, СуммаСкидки, СуммаНДС"); Для каждого СтрокаТаблицы Из ТаблицаНоменклатуры Цикл //в таблице не более одной строки Если ЦенаВключаетНДС Тогда СуммаБезСкидки=Окр(СтрокаТаблицы.Сумма-СтрокаТаблицы.СуммаНДС,2); Иначе СуммаБезСкидки=СтрокаТаблицы.Сумма; КонецЕсли; ///Убрать копейки//////////////////////////////////////////////////// ИтогНДС = НДСНалоговая; ИтогСуммаБезНДС = БезНдсНалоговая; Всего = СуммаНалоговая; КонецЦикла; //ОбластьМакета.Параметры.СуммаНадбавки = ФорматСумм(ИтогСуммаНадбавки, ,"0,00"); //ОбластьМакета.Параметры.СуммаСкидки = ФорматСумм(ИтогСуммаСкидки, ,"0,00"); ОбластьМакета.Параметры.ИтогНДС = ФорматСумм(ИтогНДС, ,"0,00"); //ОбластьМакета.Параметры.ИтогСуммаБезНДС = ФорматСумм(ИтогСуммаБезНДС, ,"0,00"); ОбластьМакета.Параметры.Всего = ФорматСумм(Всего, ,"0,00"); ТабДокумент.Вывести(ОбластьМакета); // Выводим подвал накладной ОбластьМакета = Макет.ПолучитьОбласть("Подвал"); ОбластьМакета.Параметры.Заполнить(Шапка); ОбластьМакета.Параметры.Ламанова = "Ламанова Л.Г."; ТабДокумент.Вывести(ОбластьМакета); Если Страница <> 2 Тогда ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц(); КонецЕсли; КонецЦикла; //---------- Если ПродажаНижеОбычнойЦены Тогда ТаблицаНоменклатуры = ТаблицаНоменклатурыКопия.Скопировать(); //удалим лишние колонки ТаблицаНоменклатуры.Колонки.Удалить(ТаблицаНоменклатуры.Колонки.Цена); ТаблицаНоменклатуры.Колонки.Удалить(ТаблицаНоменклатуры.Колонки.Сумма); ТаблицаНоменклатуры.Колонки.Удалить(ТаблицаНоменклатуры.Колонки.СуммаНДС); ТаблицаНоменклатуры.Колонки.Удалить(ТаблицаНоменклатуры.Колонки.СуммаСкидки); // //// переименуем колонки ТаблицаНоменклатуры.Колонки.СуммаПревышения.Имя = "Сумма"; ТаблицаНоменклатуры.Колонки.СуммаНДСПревышения.Имя = "СуммаНДС"; // Для печати второго экземпляра накладной понадобится исходная таблица, которая в процессе печати первого экземпляра будет свернута ТаблицаНоменклатурыКопия = ТаблицаНоменклатуры.Скопировать(); ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц(); Для Страница = 1 По 2 Цикл // Выводим отступ ОбластьМакета = Макет.ПолучитьОбласть("Пробел"); ТабДокумент.Вывести(ОбластьМакета); // Выводим область оригинал/копия Если Страница = 1 Тогда ОбластьМакета = Макет.ПолучитьОбласть("Оригинал"); Если ЭтотОбъект.УПродавца = Истина Тогда ОбластьМакета.Параметры.крест2 = "X"; ОбластьМакета.Параметры.ккк1 = "0"; ОбластьМакета.Параметры.ккк2 = "2"; ТабДокумент.Вывести(ОбластьМакета); Иначе ОбластьМакета.Параметры.крест1 = "X"; ТабДокумент.Вывести(ОбластьМакета); КонецЕсли; ИначеЕсли Страница = 2 Тогда ОбластьМакета = Макет.ПолучитьОбласть("ПерваяКопия"); ТабДокумент.Вывести(ОбластьМакета); ТаблицаНоменклатуры = ТаблицаНоменклатурыКопия.Скопировать(); КонецЕсли; // Выводим заголовок накладной ОбластьМакета = Макет.ПолучитьОбласть("Заголовок"); ОбластьМакета.Параметры.Заполнить(Шапка); ОбластьМакета.Параметры.Номер = СокрЛП(ЭтотОбъект.Номер)+"/ЗЦ"; ОбластьМакета.Параметры.НазваниеОрганизации = спПолучитьНаименование(ЭтотОбъект.Организация); СтруктураОтбора = Новый Структура("Объект,ВидАдреса",ЭтотОбъект.Организация,Перечисления.ВидыАдресов.Юридический); ВыборкаАдрес = РегистрыСведений.Адреса.ПолучитьПоследнее(,СтруктураОтбора); ОбластьМакета.Параметры.АдресОрганизации = ""; ОбластьМакета.Параметры.ТелефоныОрганизации = ЭтотОбъект.Организация.Телефоны; НомерСвидетельстваОрганизации = ЭтотОбъект.Организация.НомерСвидетельства; ОбластьМакета.Параметры.НомерСвидетельстваОрганизации = НомерСвидетельстваОрганизации; ИННОрганизации = ЭтотОбъект.Организация.ИНН; Для Инд = 1 По 12 Цикл ОбластьМакета.Параметры["ИННОрганизации_"+Инд] = Сред(ИННОрганизации, Инд, 1); КонецЦикла; ОбластьМакета.Параметры.НазваниеКонтрагента = спПолучитьНаименование(ЭтотОбъект.Контрагент2); //СтруктураОтбора = Новый Структура("Объект,ВидАдреса",ЭтотОбъект.Контрагент2,Перечисления.ВидыАдресов.Юридический); //ВыборкаАдрес = РегистрыСведений.Адреса.ПолучитьПоследнее(,СтруктураОтбора); ОбластьМакета.Параметры.АдресКонтрагента = ЭтотОбъект.Контрагент2.Адреса22;//ВыборкаАдрес.ПредставлениеАдреса; //ОбластьМакета.Параметры.ТелефоныКонтрагента = ЭтотОбъект.Контрагент2.Телефоны; НомерСвидетельстваКонтрагента = ЭтотОбъект.Контрагент2.НомерСвидетельства; Если ЗначениеНеЗаполнено(НомерСвидетельстваКонтрагента) Тогда ОбластьМакета.Параметры.н1 = "0"; ИначеЕсли ЭтотОбъект.УПродавца = Истина Тогда ОбластьМакета.Параметры.н1 = "0"; КонецЕсли; ОбластьМакета.Параметры.НомерСвидетельстваКонтрагента = НомерСвидетельстваКонтрагента; ИННКонтрагента = ЭтотОбъект.Контрагент2.ИНН; Если ЗначениеНеЗаполнено(ИННКонтрагента) Тогда ИННКонтрагента = "ХХХХХХХХХХХХ"; КонецЕсли; Для Инд = 1 По 12 Цикл ОбластьМакета.Параметры["ИННКонтрагента_"+Инд] = Сред(ИННКонтрагента, Инд, 1); КонецЦикла; ////////////////Остается у продавца ////////////////// Если ЭтотОбъект.УПродавца = Истина Тогда Для Инд = 1 По 12 Цикл ОбластьМакета.Параметры["ИННКонтрагента_"+Инд] = ""; КонецЦикла; ОбластьМакета.Параметры.ИННКонтрагента_1 = "0"; КонецЕсли; //////////////////////////////////////////////////////////// НомерТЛ = ЭтотОбъект.Контрагент2.Телефоны; Результат=""; Для Счетчик=1 По СтрДлина(НомерТЛ) Цикл Результат=Результат+Сред(НомерТЛ,СтрДлина(НомерТЛ)-Счетчик+1,1); КонецЦикла; Для н = 1 По 10 Цикл ОбластьМакета.Параметры["тл"+н] = Сред(Результат, н, 1); КонецЦикла; |
|||
|
6
Dooro
07.06.11
✎
14:25
|
ТабДокумент.Вывести(ОбластьМакета);
// Выводим шапку накладной ОбластьМакета = Макет.ПолучитьОбласть("Шапка"); ТабДокумент.Вывести(ОбластьМакета); // Выводим табличную часть ОбластьМакета = Макет.ПолучитьОбласть("РазделI"); ЭтоПерваяСтрока = Истина; // Выведем на печать все строки таблицы в раздел I, кроме строк, в которых указаны товаротранспортные услуги Для каждого СтрокаТаблицы Из ТаблицаНоменклатуры Цикл Если СтрокаТаблицы.Сумма = 0 И СтрокаТаблицы.СуммаНДС = 0 Тогда Продолжить КонецЕсли; Если ЭтоПерваяСтрока Тогда // в первой строке раздела укажем номер раздела ОбластьМакета.Параметры.НомерРаздела = "I"; ЭтоПерваяСтрока = Ложь; Иначе ОбластьМакета.Параметры.НомерРаздела = ""; КонецЕсли; ОбластьМакета.Параметры.Заполнить(СтрокаТаблицы); Если СтрокаТаблицы.Номенклатура1.Артикул = "" Тогда ОбластьМакета.Параметры.Количество = "посл." Иначе Если НЕ ЗначениеНеЗаполнено(СтрокаТаблицы.ТекстДляПечатиВКолонкеКоличество) Тогда ОбластьМакета.Параметры.Количество = СтрокаТаблицы.ТекстДляПечатиВКолонкеКоличество; КонецЕсли; КонецЕсли; // дата отгрузки/оплаты Если ЗначениеНеЗаполнено(СтрокаТаблицы.ДатаОтгрузкиОплаты) Тогда // укажем дату выписки накладной ОбластьМакета.Параметры.ДатаОтгрузкиОплаты = ЭтотОбъект.ДатаСвоя; КонецЕсли; Если ЗначениеНеЗаполнено(СтрокаТаблицы.Номенклатура) Тогда Сообщить("В одной из строк не заполнено наименование номенклатуры - проверьте заполнение документа!", СтатусСообщения.Важное); Продолжить; КонецЕсли; Если обЗначениеНеЗаполнено(ЭтотОбъект.ТипЦен) Тогда ЦенаВключаетНДС=Истина; Иначе ЦенаВключаетНДС=ЭтотОбъект.ТипЦен.ЦенаВключаетНДС; КонецЕсли; Если ЦенаВключаетНДС Тогда ЦенаБезНДС = Окр(СтрокаТаблицы.Цена-((СтрокаТаблицы.Цена*СтрокаТаблицы.СтавкаНДС.Ставка)/100),2); Иначе ЦенаБезНДС = Окр(СтрокаТаблицы.Цена,2); КонецЕсли; ОбластьМакета.Параметры.ЦенаБезНДС = Окр(ЦенаБезНДС,2); Если ЦенаВключаетНДС Тогда СуммаБезСкидки=СтрокаТаблицы.Сумма-((СтрокаТаблицы.Сумма*СтрокаТаблицы.СтавкаНДС.Ставка)/100); Иначе СуммаБезСкидки=СтрокаТаблицы.Сумма; КонецЕсли; СуммаБезСкидки=СтрокаТаблицы.Сумма; // номенклатура с учетом харакетристики // номенклатура с учетом харакетристики ОбластьМакета.Параметры.Номенклатура = "" + СтрокаТаблицы.Номенклатура + ?(ЗначениеНеЗаполнено(СтрокаТаблицы.ХарактеристикаНоменклатуры), "", "(" + СтрокаТаблицы.ХарактеристикаНоменклатуры +")"); ОбластьМакета.Параметры.СуммаБезСкидки20 = "Х"; ОбластьМакета.Параметры.СуммаБезСкидки0Укр = "Х"; ОбластьМакета.Параметры.СуммаБезСкидки0Эксп = "Х"; ОбластьМакета.Параметры.СуммаБезСкидкиБезНДС= "Х"; // ниже обычной // Определим в какую колонку (в зависимости от ставки НДС) попадает сумма без НДС Колонка = "СуммаБезСкидки"+ ОпределитьКолонкуТаблицы(СтрокаТаблицы.СтавкаНДС); ОбластьМакета.Параметры[Колонка] = ФорматСумм(СуммаБезСкидки, ,"0,00"); ТабДокумент.Вывести(ОбластьМакета); КонецЦикла; // Выводми итог по I разделу и раздел II ОбластьМакета = Макет.ПолучитьОбласть("ИтогРазделIИТовТранс"); ОбластьМакета.Параметры.СуммаБезТранс20 = "Х"; ОбластьМакета.Параметры.СуммаБезТранс0Укр = "Х"; ОбластьМакета.Параметры.СуммаБезТранс0Эксп = "Х"; ОбластьМакета.Параметры.СуммаБезТрансБезНДС = "Х"; ОбластьМакета.Параметры.СуммаТранс20 = "Х"; ОбластьМакета.Параметры.СуммаТранс0Укр = "Х"; ОбластьМакета.Параметры.СуммаТранс0Эксп = "Х"; ОбластьМакета.Параметры.СуммаТрансБезНДС = "Х"; Сумма1разд = 0; //Сумма2разд = 0; // Получим итоговые суммы по товарам и товаротранспортным затратам ТаблицаНоменклатуры.Свернуть("СтавкаНДС, Товаротранспортная", " Сумма, СуммаНДС"); Для каждого СтрокаТаблицы Из ТаблицаНоменклатуры Цикл СуффиксКолонки = ОпределитьКолонкуТаблицы(СтрокаТаблицы.СтавкаНДС); Сумма = СтрокаТаблицы.Сумма; Если НЕ СтрокаТаблицы.Товаротранспортная Тогда Колонка = "СуммаБезТранс"; Сумма1разд = Сумма1разд + Сумма; КонецЕсли; ОбластьМакета.Параметры[Колонка + СуффиксКолонки] = ФорматСумм(Сумма, ,"0,00"); КонецЦикла; // колонка 11 по товарам (раздел II) ОбластьМакета.Параметры.Сумма1разд = ФорматСумм(Сумма1разд, ,"0,00"); // колонка 11 по Товаротранспортным затратам (раздел II) //ОбластьМакета.Параметры.Сумма2разд = ФорматСумм(Сумма2разд, ,"0,00"); ТабДокумент.Вывести(ОбластьМакета); // Выводим раздел III (тара) ОбластьМакета = Макет.ПолучитьОбласть("ВозврТара"); //СуммаВозвратнойТары = 0; //ОбластьМакета.Параметры.ВозвТара = ФорматСумм(СуммаВозвратнойТары, ,"0,00"); ТабДокумент.Вывести(ОбластьМакета); // Выводим разделы IV...VII (скидки и итоги) ОбластьМакета = Макет.ПолучитьОбласть("Итоги"); ТаблицаНоменклатуры.Свернуть("СтавкаНДС", "Сумма, СуммаНДС"); ИтогСуммаСкидки = 0; ИтогСуммаНадбавки = 0; ИтогНДС = 0; ИтогСуммаБезНДС = 0; //Всего = СуммаВозвратнойТары; Для каждого СтрокаТаблицы Из ТаблицаНоменклатуры Цикл СуффиксКолонки = ОпределитьКолонкуТаблицы(СтрокаТаблицы.СтавкаНДС); // Скидки СуммаСкидки = 0; СуммаНадбавки = 0; ОбластьМакета.Параметры["СуммаСкидки" + СуффиксКолонки] = ФорматСумм(СуммаСкидки, ,"0,00"); ОбластьМакета.Параметры["СуммаНадбавки" + СуффиксКолонки] = ФорматСумм(СуммаНадбавки, ,"0,00"); ////////////////////Убрать Копейки///////////////////////////////////////////// СуммаНалоговая = Окр(ТаблицаНоменклатуры.Итог("Сумма"),2); БезНдсНалоговая = Окр(СуммаНалоговая*100/120,2); НДСНалоговая = Окр(СуммаНалоговая - БезНдсНалоговая,2); ////////////////////////////////////////////////////////////////////////////// // Итоги ОбластьМакета.Параметры["ИтогНДС" + СуффиксКолонки] = ФорматСумм(НДСНалоговая); Если СуффиксКолонки = "БезНДС" Тогда // п.10 Порядка заполнения налоговой накладной устанавливает особые правила заполнения этой ячейки: ОбластьМакета.Параметры["ИтогНДС" + СуффиксКолонки] = "Без ПДВ " + Шапка.ЛьготаНДС; КонецЕсли; ОбластьМакета.Параметры["ИтогСуммаБезНДС" + СуффиксКолонки] = ФорматСумм(СтрокаТаблицы.Сумма, ,"0,00"); ОбластьМакета.Параметры["ИтогСуммаСНДС" + СуффиксКолонки] = ФорматСумм(СуммаНалоговая); КонецЦикла; // Итоги в 11 колонке ТаблицаНоменклатуры.Свернуть("","Сумма, СуммаНДС"); Для каждого СтрокаТаблицы Из ТаблицаНоменклатуры Цикл ///Убрать копейки//////////////////////////////////////////////////// ИтогНДС = НДСНалоговая; ИтогСуммаБезНДС = БезНдсНалоговая; Всего = СуммаНалоговая; КонецЦикла; ОбластьМакета.Параметры.СуммаНадбавки = ФорматСумм(ИтогСуммаНадбавки, ,"0,00"); ОбластьМакета.Параметры.СуммаСкидки = ФорматСумм(ИтогСуммаСкидки, ,"0,00"); ОбластьМакета.Параметры.ИтогНДС = ФорматСумм(ИтогНДС, ,"0,00"); ОбластьМакета.Параметры.ИтогСуммаБезНДС = ФорматСумм(ИтогСуммаБезНДС, ,"0,00"); ОбластьМакета.Параметры.Всего = ФорматСумм(Всего, ,"0,00"); ТабДокумент.Вывести(ОбластьМакета); // Выводим подвал накладной ОбластьМакета = Макет.ПолучитьОбласть("Подвал"); ОбластьМакета.Параметры.Заполнить(Шапка); ОбластьМакета.Параметры.Ламанова = "Ламанова Л.Г."; ТабДокумент.Вывести(ОбластьМакета); Если Страница <> 2 Тогда ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц(); КонецЕсли; КонецЦикла; КонецЕсли; Возврат ТабДокумент; КонецЕсли; Иначе Предупреждение("Проведите документ перед печатью Налоговой накладной!",10); КонецЕсли; КонецЕсли; |
|||
|
7
Tatitutu
07.06.11
✎
14:38
|
смотри в макете поля
удали пустые колонки (строки) между тем что нужно печатать и пунктирной линии (у тебя в секию попали - лишние пустые столбцы) |
|||
|
8
aka AMIGO
07.06.11
✎
14:42
|
а в 8-ке есть настройка "Параметры страницы"? может, 1с забыло в меню вставить?
|
|||
|
9
Dooro
07.06.11
✎
14:55
|
есть параметры страницы
|
|||
|
10
aka AMIGO
07.06.11
✎
14:57
|
ну, попробуй поставить "по ширине листа".. вдруг поможет..
|
|||
|
11
aka AMIGO
07.06.11
✎
14:57
|
кстати, предпросмотром можно сразу посмотреть
|
|||
|
12
Dooro
07.06.11
✎
14:59
|
предпросмотр показывает пустые листы
|
|||
|
13
Dooro
07.06.11
✎
14:59
|
тоесть как и печатает 1 норм вотрой пустой третий норм четвертый пустой
|
|||
|
14
Dooro
07.06.11
✎
15:01
|
а вот когда выводит перед печатью заполненный макет - то там все норм.
|
|||
|
15
lxs
07.06.11
✎
15:02
|
"Зри в корень"©Козьма Прутков
Если Страница <> 2 Тогда ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц(); КонецЕсли; |
|||
|
16
lxs
07.06.11
✎
15:03
|
+(15) убери эту хрень и попробуй.
|
|||
|
17
aka AMIGO
07.06.11
✎
15:03
|
(15) холмс наш шерлок :)
|
|||
|
18
Dooro
07.06.11
✎
15:05
|
Оригінал Видається покупцю X "ЗАТВЕРДЖЕНО
Наказ Державної податкової адміністрації України 21.12.2010 N 969" Включено до ЄРПН Залишається у продавця (тип причини) Копія (залишається у продавця) (Потрібне виділити поміткою "Х") ПОДАТКОВА НАКЛАДНА Дата виписки податкової накладної 0 1 0 6 2 0 1 1 Порядковий номер 2 / (номер філії) Продавець Покупець "Особа (платник податку) - продавець" Товариство з обмеженою відповідальністю "ТДМ АВТО" "Особа (платник податку) - покупець" Товариство з обмеженою відповідальністю харківська зовнішньоторгівельна фірма "МОТОРІМПЕКС" (найменування; прізвище, ім'я, по батькові - для фізичної особи-підприємця) (найменування; прізвище, ім'я, по батькові - для фізичної особи-підприємця) 3 7 4 5 8 2 9 2 0 3 1 2 3 0 0 3 7 6 0 2 0 3 4 2 (індивідуальний податковий номер продавця) (індивідуальний податковий номер покупця) "Місцезнаходження (податкова адреса) продавця" вул.Сумська, 14, м. Харків ,Харківська обл, Україна, 61057 Місцезнаходження (податкова адреса) покупця вул.Киргизька, 94/2, м.Харків, Харківська обл., 61105 Номер телефону 0 5 7 7 3 1 1 3 7 3 Номер телефону Номер свідоцтва про реєстрацію платника податку на додану вартість (продавця) 1 0 0 3 1 7 4 8 9 Номер свідоцтва про реєстрацію платника податку на додану вартість (покупця) 1 0 0 1 6 0 7 9 3 "Вид цивільно- правового договору" Договір роздрібної купівлі-продажу від № (вид договору) Форма проведених розрахунків готівка (чек № 0033 від 01.06.2011) (бартер, готівка, оплата з поточного рахунку, чек тощо) Розділ "Дата відван- таження (вико- нання, поста- чання (оплати(*)) товарів/ послуг" "Номенклатура постачання товарів/послуг продавця" Одини- ця виміру товару Кількість (об'єм, обсяг) "Ціна постачання одиниці товару/ послуги без урахуван- ня ПДВ" Обсяги постачання (база оподаткування) без урахування ПДВ, що підлягають оподаткуванню за ставками "Загальна сума коштів, що підлягає сплаті" 20% "0 % (постачання на митній території України)" 0 % (експорт) Звільнення від ПДВ(**) 1 2 3 4 5 6 7 8 9 10 11 I 01.06.11 Фільтр масляний (diz) шт 1,000 125.00 125.00 01.06.11 Фільтр повітря шт 1,000 208.33 208.33 Усього по розділу I Х Х Х 333.33 333.33 II Зворотна (заставна) тара Х Х Х Х Х Х Х III Податок на додану вартiсть Х Х Х 66.67 66.67 IV Загальна сума з ПДВ Х Х Х 400.00 400.00 Суми ПДВ, нараховані (сплачені) в зв'язку з постачанням товарів/послуг, зазначених у цій накладній, визначені правильно, відповідають сумі податкових зобов'язань продавця і включені до реєстру виданих та отриманих податкових накладних. М.П. Ламанова Л.Г. (підпис і прізвище особи, яка склала податкову накладну) * Дата оплати ставиться у разі попередньої оплати постачання, на яку виписується податкова накладна, для операцій з постачання товарів/послуг відповідно до пункту 187.10 статті 187 розділу V Податкового кодексу України. ** (відповідні пункти (підпункти), статті, підрозділи, розділи Податкового кодексу України, якими передбачено звільнення від оподаткування) Оригінал Видається покупцю "ЗАТВЕРДЖЕНО Наказ Державної податкової адміністрації України 21.12.2010 N 969" Включено до ЄРПН Залишається у продавця (тип причини) Копія (залишається у продавця) X (Потрібне виділити поміткою "Х") ПОДАТКОВА НАКЛАДНА Дата виписки податкової накладної 0 1 0 6 2 0 1 1 Порядковий номер &n |
|||
|
19
Dooro
07.06.11
✎
15:06
|
не то . извините
|
|||
|
20
Dooro
07.06.11
✎
15:06
|
убирал все разделители в коде - не помогает
|
|||
|
21
lxs
07.06.11
✎
15:12
|
(20) запарил сюда листинги выкладывать.
Код в текстовый документ и на файлообменник. (17) Что не нравится? У него либо разделитель программный, либо в макете намутил с ними же. |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |