|
Вывести в печатную форму процентную ставку НДС % | ☑ | ||
---|---|---|---|---|
0
Darkmant
11.02.16
✎
10:20
|
Добрый день, подскажите что в запросе не так, не могу вывести в отчет процентную ставку НДС из документа "Счета покупателю", Сумма НДС выводится без проблем.
|
|||
1
Darkmant
11.02.16
✎
10:21
|
Функция ПолучитьПараметрыПечатиКомПред(Тип)
Перем Ответственный; ПараметрыПечати = Новый Структура; Позиции = Новый Массив; Запрос = Новый Запрос; Запрос.УстановитьПараметр("ТекущийДокумент", ЭтотОбъект.СсылкаНаОбъект); Запрос.УстановитьПараметр("ПустойКонтрагент", Справочники.Контрагенты.ПустаяСсылка()); Запрос.Текст =" |ВЫБРАТЬ | Номер, | Дата, | ДоговорКонтрагента, | Организация, | Ответственный, | Контрагент КАК Получатель, | ВЫБОР КОГДА Грузоотправитель = &ПустойКонтрагент | ТОГДА Организация | ИНАЧЕ Грузоотправитель КОНЕЦ КАК Грузоотправитель, | ВЫБОР КОГДА Грузополучатель = &ПустойКонтрагент | ТОГДА Контрагент | ИНАЧЕ Грузополучатель КОНЕЦ КАК Грузополучатель, | Организация КАК Руководители, | Организация КАК Поставщик, | СуммаДокумента, | ВалютаДокумента, | УчитыватьНДС, | СуммаВключаетНДС |ИЗ | Документ.СчетНаОплатуПокупателю КАК СчетНаОплатуПокупателю | |ГДЕ | СчетНаОплатуПокупателю.Ссылка = &ТекущийДокумент"; Шапка = Запрос.Выполнить().Выбрать(); Шапка.Следующий(); СтрокаВыборкиПоляСодержания = ОбработкаТабличныхЧастей.ПолучитьЧастьЗапросаДляВыбораСодержания("СчетНаОплату"); Запрос = Новый Запрос; Запрос.УстановитьПараметр("ТекущийДокумент", ЭтотОбъект.СсылкаНаОбъект); Запрос.Текст = "ВЫБРАТЬ | ВложенныйЗапрос.Номенклатура, | ВЫРАЗИТЬ (ВложенныйЗапрос.Номенклатура.НаименованиеПолное КАК Строка(1000)) КАК НаименованиеПолное, | ВложенныйЗапрос.Номенклатура.ОсновноеИзображение КАК Изображение, | ВложенныйЗапрос.Количество, | ВложенныйЗапрос.ЕдиницаИзмерения.Представление КАК ЕдиницаИзмерения, | ВложенныйЗапрос.ПроцентСкидкиНаценки | + ВложенныйЗапрос.ПроцентАвтоматическихСкидок КАК Скидка, | ВложенныйЗапрос.Цена, | ВложенныйЗапрос.Сумма, | ВложенныйЗапрос.СтавкаНДС, | ВложенныйЗапрос.СуммаНДС, | ВложенныйЗапрос.Характеристика, | NULL КАК Серия, | ВложенныйЗапрос.НомерСтроки КАК НомерСтроки, | ВложенныйЗапрос.Метка КАК Метка |ИЗ | (ВЫБРАТЬ | СчетНаОплату.Номенклатура КАК Номенклатура, | СчетНаОплату.ЕдиницаИзмерения КАК ЕдиницаИзмерения, | СчетНаОплату.ПроцентСкидкиНаценки КАК ПроцентСкидкиНаценки, | СчетНаОплату.ПроцентАвтоматическихСкидок КАК ПроцентАвтоматическихСкидок, | СчетНаОплату.Цена КАК Цена, | СчетНаОплату.СтавкаНДС, | СУММА(СчетНаОплату.Количество) КАК Количество, | СУММА(СчетНаОплату.Сумма) КАК Сумма, | СУММА(СчетНаОплату.СуммаНДС) КАК СуммаНДС, | СчетНаОплату.ХарактеристикаНоменклатуры КАК Характеристика, | МИНИМУМ(СчетНаОплату.НомерСтроки) КАК НомерСтроки, | 0 КАК Метка | ИЗ | Документ.СчетНаОплатуПокупателю.Товары КАК СчетНаОплату | | ГДЕ | СчетНаОплату.Ссылка = &ТекущийДокумент | | СГРУППИРОВАТЬ ПО | СчетНаОплату.Номенклатура, | СчетНаОплату.ЕдиницаИзмерения, | СчетНаОплату.ПроцентСкидкиНаценки, | СчетНаОплату.ПроцентАвтоматическихСкидок, | СчетНаОплату.Цена, | СчетНаОплату.СтавкаНДС, | СчетНаОплату.ХарактеристикаНоменклатуры | ) КАК ВложенныйЗапрос | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | СчетНаОплату.Номенклатура, | Минимум(" + СтрокаВыборкиПоляСодержания + ") КАК Товар, | СчетНаОплату.Номенклатура.ОсновноеИзображение КАК Изображение, | Сумма(СчетНаОплату.Количество), | СчетНаОплату.Номенклатура.ЕдиницаХраненияОстатков, | СчетНаОплату.ПроцентСкидкиНаценки + СчетНаОплату.ПроцентАвтоматическихСкидок, | СчетНаОплату.Цена, | СчетНаОплату.СтавкаНДС, | Сумма(СчетНаОплату.Сумма), | Сумма(СчетНаОплату.СуммаНДС), //| Сумма(СчетНаОплату.СтавкаНДС), | NULL, | NULL, | Минимум(СчетНаОплату.НомерСтроки), | 1 |ИЗ | Документ.СчетНаОплатуПокупателю.Услуги КАК СчетНаОплату | |ГДЕ | СчетНаОплату.Ссылка = &ТекущийДокумент | СГРУППИРОВАТЬ ПО | СчетНаОплату.Номенклатура, | СчетНаОплату.ПроцентСкидкиНаценки, | СчетНаОплату.ПроцентАвтоматическихСкидок, | СчетНаОплату.Цена | СчетНаОплату.СтавкаНДС | |УПОРЯДОЧИТЬ ПО | Метка, | НомерСтроки"; ЗапросТовары = Запрос.Выполнить().Выгрузить(); Запрос = Новый Запрос; Запрос.УстановитьПараметр("Объект",ЭтотОбъект.СсылкаНаОбъект.Организация.Ссылка); Запрос.УстановитьПараметр("Тип", Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты); Запрос.Текст = "ВЫБРАТЬ | КонтактнаяИнформация.Объект, | КонтактнаяИнформация.Тип, | КонтактнаяИнформация.Представление, | КонтактнаяИнформация.Вид |ИЗ | РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация |ГДЕ | КонтактнаяИнформация.Объект = &Объект | И КонтактнаяИнформация.Тип = &Тип "; ЗапросАдреса = Запрос.Выполнить().Выгрузить(); Если ЗапросАдреса.Количество() = 0 Тогда НоваяСтрока = ЗапросАдреса.Добавить(); НоваяСтрока.Представление = " "; КонецЕсли; ПараметрыПечати.Вставить("УчитыватьНДС", Шапка.УчитыватьНДС); ПараметрыПечати.Вставить("ЕстьСкидки", Ложь); Для каждого ВыборкаСтрокТовары Из ЗапросТовары Цикл Если ЗначениеЗаполнено(ВыборкаСтрокТовары.Скидка) Тогда ПараметрыПечати.ЕстьСкидки = Истина; Прервать; КонецЕсли; КонецЦикла; ПараметрыПечати.Вставить("ТекстЗаголовка", ОбщегоНазначения.СформироватьЗаголовокДокумента(Шапка, "Коммерческое предложение")); СведенияОПолучателе = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Получатель, Шапка.Дата); ПараметрыПечати.Вставить("ТекстПокупатель", ?(Тип = "Счет", "Покупатель:", "Заказчик:")); ПараметрыПечати.Вставить("ПредставлениеПолучателя", ФормированиеПечатныхФорм.ОписаниеОрганизации(УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Получатель, Шапка.Дата), "ПолноеНаименование,ИНН,КПП,ЮридическийАдрес,Телефоны,")); ОгранизацияКратко = Шапка.Организация.Ссылка; ПараметрыПечати.Вставить("Организация", ОгранизацияКратко); ОрганизацияПолноеНаименование = ОбщегоНазначения.РазложитьСтрокуВМассивПодстрок(Шапка.Организация.НаименованиеПолное," "); Если СокрЛП(Лев(Шапка.Организация.Наименование, 3)) = "ООО" Тогда ФормаСобственности = ОрганизацияПолноеНаименование[0] + " " + ОрганизацияПолноеНаименование[1]+ " " + ОрганизацияПолноеНаименование[2]+ " " + ОрганизацияПолноеНаименование[3]; Но = СтрЗаменить(Шапка.Организация,"ООО",""); НазваниеОрганизации = Врег(СокрЛП(Но)); ИначеЕсли СокрЛП(Лев(Шапка.Организация.Наименование, 3)) = "ОАО" ИЛИ СокрЛП(Лев(Шапка.Организация.Наименование, 3)) = "ЗАО" Тогда ФормаСобственности = ОрганизацияПолноеНаименование[0] + " " + ОрганизацияПолноеНаименование[1]+ " " + ОрганизацияПолноеНаименование[2]; Если СокрЛП(Лев(Шапка.Организация.Наименование, 3)) = "ОАО" тогда Но = СтрЗаменить(Шапка.Организация,"ОАО",""); Иначе Но = СтрЗаменить(Шапка.Организация,"ЗАО",""); КонецЕсли; НазваниеОрганизации = Врег(СокрЛП(Но)); ИначеЕсли СокрЛП(Лев(Шапка.Организация.Наименование, 3)) = "ЧП" Тогда ФормаСобственности = ОрганизацияПолноеНаименование[0] + " " + ОрганизацияПолноеНаименование[1]; НазваниеОрганизации = ОрганизацияПолноеНаименование[2]+ " "+ ОрганизацияПолноеНаименование[3]+ " "+ ОрганизацияПолноеНаименование[4]; КонецЕсли; ПараметрыПечати.Вставить("ФормаСобственности", ФормаСобственности); ПараметрыПечати.Вставить("НазваниеОрганизации", НазваниеОрганизации); ПараметрыПечати.Вставить("АдресОрганизации", ФормированиеПечатныхФорм.ОписаниеОрганизации(УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Организация, Шапка.Дата), "ИНН,КПП,ЮридическийАдрес")); ЕмайлОрганизации = ЗапросАдреса.ВыгрузитьКолонку("Представление"); ПараметрыПечати.Вставить("ТелефоныОрганизации", ФормированиеПечатныхФорм.ОписаниеОрганизации(УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Организация, Шапка.Дата), "Телефоны")+ " " + "Е-mail: " + ЕмайлОрганизации[0]); Сумма = 0; СуммаНДС = 0; //СтавкаНДС = 0; ВсегоСкидок = 0; ВсегоБезСкидок = 0; Для каждого ВыборкаСтрокТовары Из ЗапросТовары Цикл ПараметрыПозиции = Новый Структура; ПараметрыПозиции.Вставить("Номенклатура", ВыборкаСтрокТовары.Номенклатура); ПараметрыПозиции.Вставить("НомерСтроки", ЗапросТовары.Индекс(ВыборкаСтрокТовары) + 1); ПараметрыПозиции.Вставить("Изображения", ВыборкаСтрокТовары.Изображение.Хранилище.Получить()); ПараметрыПозиции.Вставить("Количество", ВыборкаСтрокТовары.Количество); ПараметрыПозиции.Вставить("ЕдиницаИзмерения", ВыборкаСтрокТовары.ЕдиницаИзмерения); ПараметрыПозиции.Вставить("СтавкаНДС",ВыборкаСтрокТовары.Цена); ПараметрыПозиции.Вставить("СуммаНДС", ВыборкаСтрокТовары.СуммаНДС); ПараметрыПозиции.Вставить("Цена", ВыборкаСтрокТовары.Цена); ПараметрыПозиции.Вставить("Товар", СокрП(ВыборкаСтрокТовары.НаименованиеПолное) + ФормированиеПечатныхФорм.ПредставлениеСерий(ВыборкаСтрокТовары)); Скидка = Ценообразование.ПолучитьСуммуСкидки(ВыборкаСтрокТовары.Сумма, ВыборкаСтрокТовары.Скидка); Если ПараметрыПечати.ЕстьСкидки Тогда ПараметрыПозиции.Вставить("Скидка", Скидка); ПараметрыПозиции.Вставить("СуммаБезСкидки", ВыборкаСтрокТовары.Сумма + Скидка); КонецЕсли; ДопКолонка = Константы.ДополнительнаяКолонкаПечатныхФормДокументов.Получить(); ПараметрыПечати.Вставить("ВыводитьКоды", Ложь); Если ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Артикул Тогда ПараметрыПечати.ВыводитьКоды = Истина; Колонка = "Артикул"; ИначеЕсли ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Код Тогда ПараметрыПечати.ВыводитьКоды = Истина; Колонка = "Код"; КонецЕсли; ПараметрыПозиции.Вставить("Сумма", ВыборкаСтрокТовары.Сумма); Сумма = Сумма + ВыборкаСтрокТовары.Сумма; СуммаНДС = СуммаНДС + ВыборкаСтрокТовары.СуммаНДС; //СтавкаНДС = СтавкаНДС + ВыборкаСтрокТовары.СтавкаНДС; ВсегоСкидок = ВсегоСкидок + Скидка; ВсегоБезСкидок = Сумма + ВсегоСкидок; #Если ВнешнееСоединение Тогда WEBПриложения.ПодготовитьСтруктуруДляВнешнегоСоединения(ПараметрыПозиции); #КонецЕсли Позиции.Добавить(ПараметрыПозиции); Изображения = ВыборкаСтрокТовары.Изображение.Хранилище.Получить(); КонецЦикла; ПараметрыПечати.Вставить("Позиции", Позиции); // Вывести Итого Если ПараметрыПечати.ЕстьСкидки Тогда ПараметрыПечати.Вставить("ВсегоСкидок", ВсегоСкидок); ПараметрыПечати.Вставить("ВсегоБезСкидок", ВсегоБезСкидок); КонецЕсли; ПараметрыПечати.Вставить("Всего", ОбщегоНазначения.ФорматСумм(Сумма)); // Вывести ИтогоНДС Если ПараметрыПечати.УчитыватьНДС Тогда ПараметрыПечати.Вставить("НДС", ?(Шапка.СуммаВключаетНДС, "В том числе НДС:", "Сумма НДС:")); ПараметрыПечати.Вставить("ВсегоНДС", ОбщегоНазначения.ФорматСумм(ЗапросТовары.Итог("СуммаНДС"))); ПараметрыПечати.Вставить("ВсегоКОплате", ОбщегоНазначения.ФорматСумм(Сумма + ?(Шапка.СуммаВключаетНДС, 0, СуммаНДС))); КонецЕсли; // Вывести Сумму прописью СуммаКПрописи = Сумма + ?(Шапка.СуммаВключаетНДС, 0, СуммаНДС); ПараметрыПечати.Вставить("ИтоговаяСтрока", "Всего наименований " + ЗапросТовары.Количество() + ", на сумму " + ОбщегоНазначения.ФорматСумм(СуммаКПрописи, Шапка.ВалютаДокумента)); ПараметрыПечати.Вставить("СуммаПрописью", ОбщегоНазначения.СформироватьСуммуПрописью(СуммаКПрописи, Шапка.ВалютаДокумента)); СсылкаНаДоговор = СсылкаНаОбъект.ДоговорКонтрагента; Если СсылкаНаДоговор.ПроцентПредоплаты = 0 и СсылкаНаДоговор.ДопустимоеЧислоДнейЗадолженности > 0 Тогда ТипОплаты = "оплата"; Остальное = " в течение " + СсылкаНаДоговор.ДопустимоеЧислоДнейЗадолженности + " ("+ СклонениеЦифр(СсылкаНаДоговор.ДопустимоеЧислоДнейЗадолженности)+") банковских дней с момента получения продукции."; ИначеЕсли СсылкаНаДоговор.ПроцентПредоплаты = 100 и СсылкаНаДоговор.ДопустимоеЧислоДнейЗадолженности = 0 Тогда ТипОплаты = Строка(СсылкаНаДоговор.ПроцентПредоплаты) + "%-я предоплата"; Остальное = "."; ИначеЕсли СсылкаНаДоговор.ПроцентПредоплаты < 100 и СсылкаНаДоговор.ДопустимоеЧислоДнейЗадолженности > 0 Тогда ТипОплаты = Строка(СсылкаНаДоговор.ПроцентПредоплаты) + "%-я предоплата"; Остальное = ". Остальные " + Число(100 - СсылкаНаДоговор.ПроцентПредоплаты) + "% оплаты - в течение " + СсылкаНаДоговор.ДопустимоеЧислоДнейЗадолженности + " (" + СклонениеЦифр(СсылкаНаДоговор.ДопустимоеЧислоДнейЗадолженности) +") банковских дней с момента получения продукции."; ИначеЕсли СсылкаНаДоговор.ПроцентПредоплаты = 0 и СсылкаНаДоговор.ДопустимоеЧислоДнейЗадолженности = 0 Тогда ТипОплаты = "оплата"; Остальное = " согласно спецификациям к договору."; ИначеЕсли СсылкаНаДоговор.ПроцентПредоплаты < 100 и СсылкаНаДоговор.ДопустимоеЧислоДнейЗадолженности = 0 Тогда ТипОплаты = Строка(СсылкаНаДоговор.ПроцентПредоплаты) + "%-я предоплата"; Остальное = ". Остальные " + Число(100 - СсылкаНаДоговор.ПроцентПредоплаты) + "% оплаты - сразу после отгрузки продукции."; КонецЕсли; // Вывести подписи ПараметрыПечати.Вставить("ТипОплаты", ТипОплаты); ПараметрыПечати.Вставить("Остальное", Остальное); ФИООтветственный = СокрЛП(Шапка.Ответственный); ПараметрыПечати.Вставить("ФИООтветственный", ФИООтветственный); Возврат ПараметрыПечати; КонецФункции |
|||
2
cw014
11.02.16
✎
10:21
|
А есть ставка НДС в счете?
|
|||
3
cw014
11.02.16
✎
10:21
|
ПараметрыПозиции.Вставить("СтавкаНДС", ВыборкаСтрокТовары.СтавкаНДС)
|
|||
4
cw014
11.02.16
✎
10:22
|
У тебя [ ПараметрыПозиции.Вставить("СтавкаНДС",ВыборкаСтрокТовары.Цена);]
|
|||
5
Darkmant
11.02.16
✎
10:24
|
я уже от безисходности проверял, работает ли заполнение, при исправлении ПараметрыПозиции.Вставить("СтавкаНДС", ВыборкаСтрокТовары.СтавкаНДС) пишется ошибка
Не удалось сформировать внешнюю печатную форму! Ошибка при вызове метода контекста (Выполнить): {(81, 3)}: Синтаксическая ошибка "СчетНаОплату.СтавкаНДС" <<?>>СчетНаОплату.СтавкаНДС |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |