|
Не выводит итог по цена в счет покупателя ( ВПФ ) | ☑ | ||
---|---|---|---|---|
0
demous
04.10.12
✎
10:37
|
УПП 8.2
надо добавить итог в колонку цена в печатной форме Счет покупателю Выдает ошибку Не удалось сформировать внешнюю печатную форму! Ошибка при вызове метода контекста (ПолучитьОбласть): Область не найдена: Цена Функция Печать() Экспорт ТабДокумент = Новый ТабличныйДокумент; ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ЗаказПокупателя_СчетЗаказ"; СоздатьТабличныйДокументПечатиСчетаЗаказа("Счет", ПолучитьПараметрыПечатиСчетаЗаказа("Счет", СсылкаНаОбъект.Ссылка), ТабДокумент); Возврат ТабДокумент; КонецФункции Процедура СоздатьТабличныйДокументПечатиСчетаЗаказа(Тип, ПараметрыПечати, ТабДокумент) Макет = ПолучитьМакет("СчетЗаказ"); // Выводим шапку накладной Если Тип = "Счет" Тогда ОбластьМакета = Макет.ПолучитьОбласть("ЗаголовокСчета"); ОбластьМакета.Параметры.Заполнить(ПараметрыПечати); ТабДокумент.Вывести(ОбластьМакета); КонецЕсли; ОбластьМакета = Макет.ПолучитьОбласть("Заголовок"); ОбластьМакета.Параметры.Заполнить(ПараметрыПечати); ТабДокумент.Вывести(ОбластьМакета); ОбластьМакета = Макет.ПолучитьОбласть("Поставщик"); ОбластьМакета.Параметры.Заполнить(ПараметрыПечати); ТабДокумент.Вывести(ОбластьМакета); ОбластьМакета = Макет.ПолучитьОбласть("Покупатель"); ОбластьМакета.Параметры.Заполнить(ПараметрыПечати); ТабДокумент.Вывести(ОбластьМакета); ОбластьНомера = Макет.ПолучитьОбласть("ШапкаТаблицы|НомерСтроки"); ОбластьКодов = Макет.ПолучитьОбласть("ШапкаТаблицы|КолонкаКодов"); ОбластьДанных = Макет.ПолучитьОбласть("ШапкаТаблицы|Данные"); ОбластьСкидок = Макет.ПолучитьОбласть("ШапкаТаблицы|Скидка"); ОбластьСуммы = Макет.ПолучитьОбласть("ШапкаТаблицы|Сумма"); ОбластьТовар = Макет.ПолучитьОбласть("ШапкаТаблицы|Товар"); Если Не ПараметрыПечати.ВыводитьКоды И ПараметрыПечати.ЕстьСкидки Тогда ОбластьТовар = Макет.ПолучитьОбласть("ШапкаТаблицы|ТоварБезКодов"); ИначеЕсли НЕ ПараметрыПечати.ЕстьСкидки И ПараметрыПечати.ВыводитьКоды Тогда ОбластьТовар = Макет.ПолучитьОбласть("ШапкаТаблицы|ТоварБезСкидок"); ИначеЕсли НЕ ПараметрыПечати.ЕстьСкидки И НЕ ПараметрыПечати.ВыводитьКоды Тогда ОбластьТовар = Макет.ПолучитьОбласть("ШапкаТаблицы|ТоварБезКодовИСкидок"); КонецЕсли; ТабДокумент.Вывести(ОбластьНомера); Если ПараметрыПечати.ВыводитьКоды Тогда ОбластьКодов.Параметры.ИмяКолонкиКодов = ПараметрыПечати.ИмяКолонкиКодов; ТабДокумент.Присоединить(ОбластьКодов); КонецЕсли; ОбластьТовар.Параметры.Товар = "Товары (работы, услуги)"; ТабДокумент.Присоединить(ОбластьТовар); ТабДокумент.Присоединить(ОбластьДанных); Если ПараметрыПечати.ЕстьСкидки Тогда ТабДокумент.Присоединить(ОбластьСкидок); КонецЕсли; ТабДокумент.Присоединить(ОбластьСуммы); ОбластьНомера = Макет.ПолучитьОбласть("Строка|НомерСтроки"); ОбластьКодов = Макет.ПолучитьОбласть("Строка|КолонкаКодов"); ОбластьДанных = Макет.ПолучитьОбласть("Строка|Данные"); ОбластьСкидок = Макет.ПолучитьОбласть("Строка|Скидка"); ОбластьСуммы = Макет.ПолучитьОбласть("Строка|Сумма"); ОбластьТовар = Макет.ПолучитьОбласть("Строка|Товар"); Если Не ПараметрыПечати.ВыводитьКоды И ПараметрыПечати.ЕстьСкидки Тогда ОбластьТовар = Макет.ПолучитьОбласть("Строка|ТоварБезКодов"); ИначеЕсли НЕ ПараметрыПечати.ЕстьСкидки И ПараметрыПечати.ВыводитьКоды Тогда ОбластьТовар = Макет.ПолучитьОбласть("Строка|ТоварБезСкидок"); ИначеЕсли НЕ ПараметрыПечати.ЕстьСкидки И НЕ ПараметрыПечати.ВыводитьКоды Тогда ОбластьТовар = Макет.ПолучитьОбласть("Строка|ТоварБезКодовИСкидок"); КонецЕсли; Для каждого ПараметрыПозиции Из ПараметрыПечати.Позиции Цикл Если НЕ ЗначениеЗаполнено(ПараметрыПозиции.Номенклатура) Тогда Продолжить; КонецЕсли; ОбластьНомера.Параметры.Заполнить(ПараметрыПозиции); ТабДокумент.Вывести(ОбластьНомера); Если ПараметрыПечати.ВыводитьКоды Тогда ОбластьКодов.Параметры.Заполнить(ПараметрыПозиции); ТабДокумент.Присоединить(ОбластьКодов); КонецЕсли; ОбластьТовар.Параметры.Заполнить(ПараметрыПозиции); ТабДокумент.Присоединить(ОбластьТовар); ОбластьДанных.Параметры.Заполнить(ПараметрыПозиции); ТабДокумент.Присоединить(ОбластьДанных); Если ПараметрыПечати.ЕстьСкидки Тогда ОбластьСкидок.Параметры.Заполнить(ПараметрыПозиции); ТабДокумент.Присоединить(ОбластьСкидок); КонецЕсли; ОбластьСуммы.Параметры.Заполнить(ПараметрыПозиции); ТабДокумент.Присоединить(ОбластьСуммы); КонецЦикла; // Вывести Итого ОбластьНомера = Макет.ПолучитьОбласть("Итого|НомерСтроки"); ОбластьКодов = Макет.ПолучитьОбласть("Итого|КолонкаКодов"); ОбластьДанных = Макет.ПолучитьОбласть("Итого|Данные"); ОбластьСкидок = Макет.ПолучитьОбласть("Итого|Скидка"); ОбластьСуммы = Макет.ПолучитьОбласть("Итого|Сумма"); ОбластьЦенн = Макет.ПолучитьОбласть("Итого|Цена"); ОбластьТовар = Макет.ПолучитьОбласть("Итого|Товар"); Если Не ПараметрыПечати.ВыводитьКоды И ПараметрыПечати.ЕстьСкидки Тогда ОбластьТовар = Макет.ПолучитьОбласть("Итого|ТоварБезКодов"); ИначеЕсли НЕ ПараметрыПечати.ЕстьСкидки И ПараметрыПечати.ВыводитьКоды Тогда ОбластьТовар = Макет.ПолучитьОбласть("Итого|ТоварБезСкидок"); ИначеЕсли НЕ ПараметрыПечати.ЕстьСкидки И НЕ ПараметрыПечати.ВыводитьКоды Тогда ОбластьТовар = Макет.ПолучитьОбласть("Итого|ТоварБезКодовИСкидок"); КонецЕсли; ТабДокумент.Вывести(ОбластьНомера); Если ПараметрыПечати.ВыводитьКоды Тогда ТабДокумент.Присоединить(ОбластьКодов); КонецЕсли; ТабДокумент.Присоединить(ОбластьТовар); ТабДокумент.Присоединить(ОбластьДанных); Если ПараметрыПечати.ЕстьСкидки Тогда ОбластьСкидок.Параметры.Заполнить(ПараметрыПечати); ТабДокумент.Присоединить(ОбластьСкидок); КонецЕсли; ОбластьСуммы.Параметры.Заполнить(ПараметрыПечати); ТабДокумент.Присоединить(ОбластьСуммы); // Вывести ИтогоНДС Если ПараметрыПечати.УчитыватьНДС Тогда ОбластьНомера = Макет.ПолучитьОбласть("ИтогоНДС|НомерСтроки"); ОбластьКодов = Макет.ПолучитьОбласть("ИтогоНДС|КолонкаКодов"); ОбластьДанных = Макет.ПолучитьОбласть("ИтогоНДС|Данные"); ОбластьСкидок = Макет.ПолучитьОбласть("ИтогоНДС|Скидка"); ОбластьСуммы = Макет.ПолучитьОбласть("ИтогоНДС|Сумма"); ОбластьТовар = Макет.ПолучитьОбласть("ИтогоНДС|Товар"); Если Не ПараметрыПечати.ВыводитьКоды И ПараметрыПечати.ЕстьСкидки Тогда ОбластьТовар = Макет.ПолучитьОбласть("ИтогоНДС|ТоварБезКодов"); ИначеЕсли НЕ ПараметрыПечати.ЕстьСкидки И ПараметрыПечати.ВыводитьКоды Тогда ОбластьТовар = Макет.ПолучитьОбласть("ИтогоНДС|ТоварБезСкидок"); ИначеЕсли НЕ ПараметрыПечати.ЕстьСкидки И НЕ ПараметрыПечати.ВыводитьКоды Тогда ОбластьТовар = Макет.ПолучитьОбласть("ИтогоНДС|ТоварБезКодовИСкидок"); КонецЕсли; ТабДокумент.Вывести(ОбластьНомера); Если ПараметрыПечати.ВыводитьКоды Тогда ТабДокумент.Присоединить(ОбластьКодов); КонецЕсли; ОбластьТовар.Параметры.Заполнить(ПараметрыПечати); ТабДокумент.Присоединить(ОбластьТовар); ОбластьДанных.Параметры.Заполнить(ПараметрыПечати); ТабДокумент.Присоединить(ОбластьДанных); Если ПараметрыПечати.ЕстьСкидки Тогда ТабДокумент.Присоединить(ОбластьСкидок); КонецЕсли; ОбластьСуммы.Параметры.Заполнить(ПараметрыПечати); ТабДокумент.Присоединить(ОбластьСуммы); ОбластьНомера = Макет.ПолучитьОбласть("ВсегоКОплате|НомерСтроки"); ОбластьКодов = Макет.ПолучитьОбласть("ВсегоКОплате|КолонкаКодов"); ОбластьДанных = Макет.ПолучитьОбласть("ВсегоКОплате|Данные"); ОбластьСкидок = Макет.ПолучитьОбласть("ВсегоКОплате|Скидка"); ОбластьСуммы = Макет.ПолучитьОбласть("ВсегоКОплате|Сумма"); ОбластьТовар = Макет.ПолучитьОбласть("ВсегоКОплате|Товар"); Если Не ПараметрыПечати.ВыводитьКоды И ПараметрыПечати.ЕстьСкидки Тогда ОбластьТовар = Макет.ПолучитьОбласть("ВсегоКОплате|ТоварБезКодов"); ИначеЕсли НЕ ПараметрыПечати.ЕстьСкидки И ПараметрыПечати.ВыводитьКоды Тогда ОбластьТовар = Макет.ПолучитьОбласть("ВсегоКОплате|ТоварБезСкидок"); ИначеЕсли НЕ ПараметрыПечати.ЕстьСкидки И НЕ ПараметрыПечати.ВыводитьКоды Тогда ОбластьТовар = Макет.ПолучитьОбласть("ВсегоКОплате|ТоварБезКодовИСкидок"); КонецЕсли; ТабДокумент.Вывести(ОбластьНомера); Если ПараметрыПечати.ВыводитьКоды Тогда ТабДокумент.Присоединить(ОбластьКодов); КонецЕсли; ОбластьТовар.Параметры.Заполнить(ПараметрыПечати); ТабДокумент.Присоединить(ОбластьТовар); ОбластьДанных.Параметры.Заполнить(ПараметрыПечати); ТабДокумент.Присоединить(ОбластьДанных); Если ПараметрыПечати.ЕстьСкидки Тогда ТабДокумент.Присоединить(ОбластьСкидок); КонецЕсли; ОбластьСуммы.Параметры.Заполнить(ПараметрыПечати); ТабДокумент.Присоединить(ОбластьСуммы); КонецЕсли; // Вывести Сумму прописью ОбластьМакета = Макет.ПолучитьОбласть("СуммаПрописью"); ОбластьМакета.Параметры.Заполнить(ПараметрыПечати); ТабДокумент.Вывести(ОбластьМакета); // Вывести подписи Если Тип = "Счет" Тогда ОбластьМакета = Макет.ПолучитьОбласть("ПодвалСчета"); Иначе ОбластьМакета = Макет.ПолучитьОбласть("ПодвалЗаказа"); КонецЕсли; ОбластьМакета.Параметры.Заполнить(ПараметрыПечати); ТабДокумент.Вывести(ОбластьМакета); КонецПроцедуры // СоздатьТабличныйДокументПечатиСчетаЗаказа() Функция ПолучитьПараметрыПечатиСчетаЗаказа(Тип, ДокументСсылка) Экспорт ПараметрыПечати = Новый Структура; Позиции = Новый Массив; Запрос = Новый Запрос; Запрос.УстановитьПараметр("ТекущийДокумент", ДокументСсылка); Запрос.УстановитьПараметр("ПустойКонтрагент", Справочники.Контрагенты.ПустаяСсылка()); Запрос.Текст =" |ВЫБРАТЬ | Номер, | Дата, | ДоговорКонтрагента, | Организация, | Контрагент КАК Получатель, | ВЫБОР КОГДА Грузоотправитель = &ПустойКонтрагент | ТОГДА Организация | ИНАЧЕ Грузоотправитель КОНЕЦ КАК Грузоотправитель, | ВЫБОР КОГДА Грузополучатель = &ПустойКонтрагент | ТОГДА Контрагент | ИНАЧЕ Грузополучатель КОНЕЦ КАК Грузополучатель, | Организация КАК Руководители, | Организация КАК Поставщик, | СуммаДокумента, | ВалютаДокумента, | УчитыватьНДС, | СуммаВключаетНДС |ИЗ | Документ.СчетНаОплатуПокупателю КАК СчетНаОплатуПокупателю | |ГДЕ | СчетНаОплатуПокупателю.Ссылка = &ТекущийДокумент"; Шапка = Запрос.Выполнить().Выбрать(); Шапка.Следующий(); СтрокаВыборкиПоляСодержания = ОбработкаТабличныхЧастей.ПолучитьЧастьЗапросаДляВыбораСодержания("СчетНаОплату"); Запрос = Новый Запрос; Запрос.УстановитьПараметр("ТекущийДокумент", ДокументСсылка); Запрос.Текст = "ВЫБРАТЬ | ВложенныйЗапрос.Номенклатура, | ВЫРАЗИТЬ (ВложенныйЗапрос.Номенклатура.НаименованиеПолное КАК Строка(1000)) КАК НаименованиеПолное, | ВложенныйЗапрос.Номенклатура.Код КАК Код, | ВложенныйЗапрос.Номенклатура.Артикул КАК Артикул, | ВложенныйЗапрос.Количество, | ВложенныйЗапрос.ЕдиницаИзмерения.Представление КАК ЕдиницаИзмерения, | ВложенныйЗапрос.ПроцентСкидкиНаценки | + ВложенныйЗапрос.ПроцентАвтоматическихСкидок КАК Скидка, | ВложенныйЗапрос.Цена, | ВложенныйЗапрос.Сумма, | ВложенныйЗапрос.СуммаНДС, | ВложенныйЗапрос.Характеристика, | NULL КАК Серия, | ВложенныйЗапрос.НомерСтроки КАК НомерСтроки, | ВложенныйЗапрос.Метка КАК Метка |ИЗ | (ВЫБРАТЬ | СчетНаОплату.Номенклатура КАК Номенклатура, | СчетНаОплату.ЕдиницаИзмерения КАК ЕдиницаИзмерения, | СчетНаОплату.ПроцентСкидкиНаценки КАК ПроцентСкидкиНаценки, | СчетНаОплату.ПроцентАвтоматическихСкидок КАК ПроцентАвтоматическихСкидок, | СУММА(СчетНаОплату.Цена) КАК Цена, | СУММА(СчетНаОплату.Количество) КАК Количество, | СУММА(СчетНаОплату.Сумма) КАК Сумма, | СУММА(СчетНаОплату.СуммаНДС) КАК СуммаНДС, | СчетНаОплату.ХарактеристикаНоменклатуры КАК Характеристика, | МИНИМУМ(СчетНаОплату.НомерСтроки) КАК НомерСтроки, | 0 КАК Метка | ИЗ | Документ.СчетНаОплатуПокупателю.Товары КАК СчетНаОплату | | ГДЕ | СчетНаОплату.Ссылка = &ТекущийДокумент | | СГРУППИРОВАТЬ ПО | СчетНаОплату.Номенклатура, | СчетНаОплату.ЕдиницаИзмерения, | СчетНаОплату.ПроцентСкидкиНаценки, | СчетНаОплату.ПроцентАвтоматическихСкидок, | СчетНаОплату.Цена, | СчетНаОплату.ХарактеристикаНоменклатуры | ) КАК ВложенныйЗапрос | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | СчетНаОплату.Номенклатура, | " + СтрокаВыборкиПоляСодержания + " КАК Товар, | СчетНаОплату.Номенклатура.Код КАК Код, | СчетНаОплату.Номенклатура.Артикул КАК Артикул, | Сумма(СчетНаОплату.Количество), | СчетНаОплату.Номенклатура.ЕдиницаХраненияОстатков, | СчетНаОплату.ПроцентСкидкиНаценки + СчетНаОплату.ПроцентАвтоматическихСкидок, | Сумма(СчетНаОплату.Цена), | Сумма(СчетНаОплату.Сумма), | Сумма(СчетНаОплату.СуммаНДС), | NULL, | NULL, | Минимум(СчетНаОплату.НомерСтроки), | 1 |ИЗ | Документ.СчетНаОплатуПокупателю.Услуги КАК СчетНаОплату | |ГДЕ | СчетНаОплату.Ссылка = &ТекущийДокумент | СГРУППИРОВАТЬ ПО | СчетНаОплату.Номенклатура, | " + СтрокаВыборкиПоляСодержания + ", | СчетНаОплату.ПроцентСкидкиНаценки, | СчетНаОплату.ПроцентАвтоматическихСкидок, | СчетНаОплату.Цена | |УПОРЯДОЧИТЬ ПО | Метка, | НомерСтроки"; ЗапросТовары = Запрос.Выполнить().Выгрузить(); // Выводим шапку накладной ПараметрыПечати.Вставить("УчитыватьНДС", Шапка.УчитыватьНДС); СведенияОПоставщике = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Поставщик, Шапка.Дата); Если Тип = "Счет" Тогда ПараметрыПечати.Вставить("ИНН", СведенияОПоставщике.ИНН); ПараметрыПечати.Вставить("КПП", СведенияОПоставщике.КПП); ПредставлениеПоставщикаДляПлатПоручения = ""; Если ТипЗнч(ДокументСсылка.СтруктурнаяЕдиница) = Тип("СправочникСсылка.БанковскиеСчета") Тогда Банк = ?(НЕ ЗначениеЗаполнено(ДокументСсылка.СтруктурнаяЕдиница.БанкДляРасчетов), ДокументСсылка.СтруктурнаяЕдиница.Банк, ДокументСсылка.СтруктурнаяЕдиница.БанкДляРасчетов); БИК = Банк.Код; КоррСчет = Банк.КоррСчет; ГородБанка = Банк.Город; НомерСчета = ДокументСсылка.СтруктурнаяЕдиница.НомерСчета; ПараметрыПечати.Вставить("БИКБанкаПолучателя", БИК); ПараметрыПечати.Вставить("БанкПолучателя", Банк); ПараметрыПечати.Вставить("БанкПолучателяПредставление", СокрЛП(Банк) + " " + ГородБанка); ПараметрыПечати.Вставить("СчетБанкаПолучателя", КоррСчет); ПараметрыПечати.Вставить("СчетБанкаПолучателяПредставление", КоррСчет); ПараметрыПечати.Вставить("СчетПолучателяПредставление", НомерСчета); ПараметрыПечати.Вставить("СчетПолучателя", НомерСчета); ПредставлениеПоставщикаДляПлатПоручения = ДокументСсылка.СтруктурнаяЕдиница.ТекстКорреспондента; КонецЕсли; Если ПустаяСтрока(ПредставлениеПоставщикаДляПлатПоручения) Тогда ПредставлениеПоставщикаДляПлатПоручения = ФормированиеПечатныхФормСервер.ОписаниеОрганизации(СведенияОПоставщике, "ПолноеНаименование,"); КонецЕсли; ПараметрыПечати.Вставить("ПредставлениеПоставщикаДляПлатПоручения", ПредставлениеПоставщикаДляПлатПоручения); КонецЕсли; ПараметрыПечати.Вставить("ТекстЗаголовка", ОбщегоНазначения.СформироватьЗаголовокДокумента(Шапка, "Счет на оплату")); ПараметрыПечати.Вставить("ТекстПоставщик", ?(Тип = "Счет", "Поставщик:", "Исполнитель:")); ПараметрыПечати.Вставить("ПредставлениеПоставщика", ФормированиеПечатныхФормСервер.ОписаниеОрганизации(УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Организация, Шапка.Дата), "ПолноеНаименование,ИНН,КПП,ЮридическийАдрес,Телефоны,")); Если Шапка.Организация = Шапка.Грузоотправитель Тогда ПараметрыПечати.Вставить("ПредставлениеГрузоотправителя", ФормированиеПечатныхФормСервер.ОписаниеОрганизации(УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Организация, Шапка.Дата), "ПолноеНаименование,ИНН,КПП,ЮридическийАдрес,Телефоны,")); Иначе ПараметрыПечати.Вставить("ПредставлениеГрузоотправителя", ФормированиеПечатныхФормСервер.ОписаниеОрганизации(УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Грузоотправитель, Шапка.Дата), "ПолноеНаименование,ИНН,КПП,ФактическийАдрес,Телефоны,")); КонецЕсли; СведенияОПолучателе = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Получатель, Шапка.Дата); ПараметрыПечати.Вставить("ТекстПокупатель", ?(Тип = "Счет", "Покупатель:", "Заказчик:")); ПараметрыПечати.Вставить("ПредставлениеПолучателя", ФормированиеПечатныхФормСервер.ОписаниеОрганизации(УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Получатель, Шапка.Дата), "ПолноеНаименование,ИНН,КПП,ЮридическийАдрес,Телефоны,")); ПараметрыПечати.Вставить("ПредставлениеГрузополучателя", ФормированиеПечатныхФормСервер.ОписаниеОрганизации(УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Грузополучатель, Шапка.Дата), "ПолноеНаименование,ИНН,КПП,ФактическийАдрес,Телефоны,")); ПараметрыПечати.Вставить("ЕстьСкидки", Ложь); Для каждого ВыборкаСтрокТовары Из ЗапросТовары Цикл Если ЗначениеЗаполнено(ВыборкаСтрокТовары.Скидка) Тогда ПараметрыПечати.ЕстьСкидки = Истина; Прервать; КонецЕсли; КонецЦикла; ДопКолонка = Константы.ДополнительнаяКолонкаПечатныхФормДокументов.Получить(); ПараметрыПечати.Вставить("ВыводитьКоды", Ложь); Если ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Артикул Тогда ПараметрыПечати.ВыводитьКоды = Истина; Колонка = "Артикул"; ИначеЕсли ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Код Тогда ПараметрыПечати.ВыводитьКоды = Истина; Колонка = "Код"; КонецЕсли; Если ПараметрыПечати.ВыводитьКоды Тогда ПараметрыПечати.Вставить("ИмяКолонкиКодов", Колонка); КонецЕсли; Сумма = 0; СуммаНДС = 0; ВсегоСкидок = 0; ВсегоБезСкидок = 0; Цена = 0; Для каждого ВыборкаСтрокТовары Из ЗапросТовары Цикл ПараметрыПозиции = Новый Структура; ПараметрыПозиции.Вставить("Номенклатура", ВыборкаСтрокТовары.Номенклатура); ПараметрыПозиции.Вставить("НомерСтроки", ЗапросТовары.Индекс(ВыборкаСтрокТовары) + 1); Если ПараметрыПечати.ВыводитьКоды Тогда Если Колонка = "Артикул" Тогда ПараметрыПозиции.Вставить("Артикул", ВыборкаСтрокТовары.Артикул); Иначе ПараметрыПозиции.Вставить("Артикул", ВыборкаСтрокТовары.Код); КонецЕсли; КонецЕсли; ПараметрыПозиции.Вставить("Количество", ВыборкаСтрокТовары.Количество); ПараметрыПозиции.Вставить("ЕдиницаИзмерения", ВыборкаСтрокТовары.ЕдиницаИзмерения); ПараметрыПозиции.Вставить("Цена", ВыборкаСтрокТовары.Цена); ПараметрыПозиции.Вставить("Товар", СокрП(ВыборкаСтрокТовары.НаименованиеПолное)); //+ ФормированиеПечатныхФормСервер.ПредставлениеСерий(ВыборкаСтрокТовары)); Скидка = Ценообразование.ПолучитьСуммуСкидки(ВыборкаСтрокТовары.Сумма, ВыборкаСтрокТовары.Скидка); Если ПараметрыПечати.ЕстьСкидки Тогда ПараметрыПозиции.Вставить("Скидка", Скидка); ПараметрыПозиции.Вставить("СуммаБезСкидки", ВыборкаСтрокТовары.Сумма + Скидка); КонецЕсли; ПараметрыПозиции.Вставить("Сумма", ВыборкаСтрокТовары.Сумма); ПараметрыПозиции.Вставить("Цена", ВыборкаСтрокТовары.Цена); Сумма = Сумма + ВыборкаСтрокТовары.Сумма; СуммаНДС = СуммаНДС + ВыборкаСтрокТовары.СуммаНДС; ВсегоСкидок = ВсегоСкидок + Скидка; ВсегоБезСкидок = Сумма + ВсегоСкидок; Цена = Цена + ВыборкаСтрокТовары.Цена; Позиции.Добавить(ПараметрыПозиции); КонецЦикла; ПараметрыПечати.Вставить("Позиции", Позиции); // Вывести Итого Если ПараметрыПечати.ЕстьСкидки Тогда ПараметрыПечати.Вставить("ВсегоСкидок", ВсегоСкидок); ПараметрыПечати.Вставить("ВсегоБезСкидок", ВсегоБезСкидок); КонецЕсли; ПараметрыПечати.Вставить("Всего", ОбщегоНазначения.ФорматСумм(Сумма)); ПараметрыПечати.Вставить("Цена", ОбщегоНазначения.ФорматСумм(Цена)); // Вывести ИтогоНДС Если ПараметрыПечати.УчитыватьНДС Тогда ПараметрыПечати.Вставить("НДС", ?(Шапка.СуммаВключаетНДС, "В том числе НДС:", "Сумма НДС:")); ПараметрыПечати.Вставить("ВсегоНДС", ОбщегоНазначения.ФорматСумм(ЗапросТовары.Итог("СуммаНДС"))); ПараметрыПечати.Вставить("ВсегоКОплате", ОбщегоНазначения.ФорматСумм(Сумма + ?(Шапка.СуммаВключаетНДС, 0, СуммаНДС))); КонецЕсли; // Вывести Сумму прописью СуммаКПрописи = Сумма + ?(Шапка.СуммаВключаетНДС, 0, СуммаНДС); ПараметрыПечати.Вставить("ИтоговаяСтрока", "Всего наименований " + ЗапросТовары.Количество() + ", на сумму " + ОбщегоНазначения.ФорматСумм(СуммаКПрописи, Шапка.ВалютаДокумента)); ПараметрыПечати.Вставить("СуммаПрописью", ОбщегоНазначения.СформироватьСуммуПрописью(СуммаКПрописи, Шапка.ВалютаДокумента)); // Вывести подписи Если Тип = "Счет" Тогда Руководители = РегламентированнаяОтчетность.ОтветственныеЛицаОрганизаций(Шапка.Руководители, Шапка.Дата,); Руководитель = Руководители.Руководитель; ДолжностьРуководителя = Руководители.РуководительДолжность; Бухгалтер = Руководители.ГлавныйБухгалтер; ПараметрыПечати.Вставить("ФИОРуководителя", Руководитель); ПараметрыПечати.Вставить("ДолжностьРуководителя", ДолжностьРуководителя); ПараметрыПечати.Вставить("ФИОБухгалтера", Бухгалтер); Если НЕ ЗначениеЗаполнено(ДокументСсылка.Ответственный.ФизЛицо) Тогда ФИООтветственный = ДокументСсылка.Ответственный.Наименование; Иначе ФамилияИмяОтчествоФизЛица = ФормированиеПечатныхФормСервер.ФамилияИмяОтчество(ДокументСсылка.Ответственный.ФизЛицо, Шапка.Дата); ФамилияИмяОтчествоОтветственного = ФамилияИмяОтчествоФизЛица.Фамилия + " " + ФамилияИмяОтчествоФизЛица.Имя + " " + ФамилияИмяОтчествоФизЛица.Отчество; ФИООтветственный = ОбщегоНазначения.ФамилияИнициалыФизЛица(ФамилияИмяОтчествоОтветственного); КонецЕсли; ПараметрыПечати.Вставить("ФИООтветственный", ФИООтветственный); КонецЕсли; Возврат ПараметрыПечати; КонецФункции //ПолучитьПараметрыПечатиСчетаЗаказа() |
|||
1
GLazNik
04.10.12
✎
10:40
|
Думается мне, что область цена не найдена.
|
|||
2
GLazNik
04.10.12
✎
10:41
|
+(1) Итог по цена... очень интересно.... типа средняя температура по больнице?
|
|||
3
demous
04.10.12
✎
10:44
|
(2) да средняя) по офису температура
|
|||
4
Zmich
04.10.12
✎
10:50
|
(0). Нет вертикальной секции Цена, скорей всего.
|
|||
5
demous
04.10.12
✎
10:52
|
(4) точно, благодарю!
|
|||
6
demous
04.10.12
✎
10:53
|
(4) только сумма не считается)))
|
|||
7
demous
04.10.12
✎
11:13
|
Подскажите почему не выводит итог по цена
Перем ЦенаВсего Экспорт; Функция Печать() Экспорт ТабДокумент = Новый ТабличныйДокумент; ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ЗаказПокупателя_СчетЗаказ"; СоздатьТабличныйДокументПечатиСчетаЗаказа("Счет", ПолучитьПараметрыПечатиСчетаЗаказа("Счет", СсылкаНаОбъект.Ссылка), ТабДокумент); Возврат ТабДокумент; КонецФункции Процедура СоздатьТабличныйДокументПечатиСчетаЗаказа(Тип, ПараметрыПечати, ТабДокумент) Макет = ПолучитьМакет("СчетЗаказ"); // Выводим шапку накладной Если Тип = "Счет" Тогда ОбластьМакета = Макет.ПолучитьОбласть("ЗаголовокСчета"); ОбластьМакета.Параметры.Заполнить(ПараметрыПечати); ТабДокумент.Вывести(ОбластьМакета); КонецЕсли; ОбластьМакета = Макет.ПолучитьОбласть("Заголовок"); ОбластьМакета.Параметры.Заполнить(ПараметрыПечати); ТабДокумент.Вывести(ОбластьМакета); ОбластьМакета = Макет.ПолучитьОбласть("Поставщик"); ОбластьМакета.Параметры.Заполнить(ПараметрыПечати); ТабДокумент.Вывести(ОбластьМакета); ОбластьМакета = Макет.ПолучитьОбласть("Покупатель"); ОбластьМакета.Параметры.Заполнить(ПараметрыПечати); ТабДокумент.Вывести(ОбластьМакета); ОбластьНомера = Макет.ПолучитьОбласть("ШапкаТаблицы|НомерСтроки"); ОбластьКодов = Макет.ПолучитьОбласть("ШапкаТаблицы|КолонкаКодов"); ОбластьДанных = Макет.ПолучитьОбласть("ШапкаТаблицы|Данные"); ОбластьСкидок = Макет.ПолучитьОбласть("ШапкаТаблицы|Скидка"); ОбластьСуммы = Макет.ПолучитьОбласть("ШапкаТаблицы|Сумма"); ОбластьТовар = Макет.ПолучитьОбласть("ШапкаТаблицы|Товар"); Если Не ПараметрыПечати.ВыводитьКоды И ПараметрыПечати.ЕстьСкидки Тогда ОбластьТовар = Макет.ПолучитьОбласть("ШапкаТаблицы|ТоварБезКодов"); ИначеЕсли НЕ ПараметрыПечати.ЕстьСкидки И ПараметрыПечати.ВыводитьКоды Тогда ОбластьТовар = Макет.ПолучитьОбласть("ШапкаТаблицы|ТоварБезСкидок"); ИначеЕсли НЕ ПараметрыПечати.ЕстьСкидки И НЕ ПараметрыПечати.ВыводитьКоды Тогда ОбластьТовар = Макет.ПолучитьОбласть("ШапкаТаблицы|ТоварБезКодовИСкидок"); КонецЕсли; ТабДокумент.Вывести(ОбластьНомера); Если ПараметрыПечати.ВыводитьКоды Тогда ОбластьКодов.Параметры.ИмяКолонкиКодов = ПараметрыПечати.ИмяКолонкиКодов; ТабДокумент.Присоединить(ОбластьКодов); КонецЕсли; ОбластьТовар.Параметры.Товар = "Товары (работы, услуги)"; ТабДокумент.Присоединить(ОбластьТовар); ТабДокумент.Присоединить(ОбластьДанных); Если ПараметрыПечати.ЕстьСкидки Тогда ТабДокумент.Присоединить(ОбластьСкидок); КонецЕсли; ТабДокумент.Присоединить(ОбластьСуммы); ОбластьНомера = Макет.ПолучитьОбласть("Строка|НомерСтроки"); ОбластьКодов = Макет.ПолучитьОбласть("Строка|КолонкаКодов"); ОбластьДанных = Макет.ПолучитьОбласть("Строка|Данные"); ОбластьСкидок = Макет.ПолучитьОбласть("Строка|Скидка"); ОбластьСуммы = Макет.ПолучитьОбласть("Строка|Сумма"); ОбластьТовар = Макет.ПолучитьОбласть("Строка|Товар"); Если Не ПараметрыПечати.ВыводитьКоды И ПараметрыПечати.ЕстьСкидки Тогда ОбластьТовар = Макет.ПолучитьОбласть("Строка|ТоварБезКодов"); ИначеЕсли НЕ ПараметрыПечати.ЕстьСкидки И ПараметрыПечати.ВыводитьКоды Тогда ОбластьТовар = Макет.ПолучитьОбласть("Строка|ТоварБезСкидок"); ИначеЕсли НЕ ПараметрыПечати.ЕстьСкидки И НЕ ПараметрыПечати.ВыводитьКоды Тогда ОбластьТовар = Макет.ПолучитьОбласть("Строка|ТоварБезКодовИСкидок"); КонецЕсли; Для каждого ПараметрыПозиции Из ПараметрыПечати.Позиции Цикл Если НЕ ЗначениеЗаполнено(ПараметрыПозиции.Номенклатура) Тогда Продолжить; КонецЕсли; ОбластьНомера.Параметры.Заполнить(ПараметрыПозиции); ТабДокумент.Вывести(ОбластьНомера); Если ПараметрыПечати.ВыводитьКоды Тогда ОбластьКодов.Параметры.Заполнить(ПараметрыПозиции); ТабДокумент.Присоединить(ОбластьКодов); КонецЕсли; ОбластьТовар.Параметры.Заполнить(ПараметрыПозиции); ТабДокумент.Присоединить(ОбластьТовар); ОбластьДанных.Параметры.Заполнить(ПараметрыПозиции); ТабДокумент.Присоединить(ОбластьДанных); Если ПараметрыПечати.ЕстьСкидки Тогда ОбластьСкидок.Параметры.Заполнить(ПараметрыПозиции); ТабДокумент.Присоединить(ОбластьСкидок); КонецЕсли; ОбластьСуммы.Параметры.Заполнить(ПараметрыПозиции); ТабДокумент.Присоединить(ОбластьСуммы); КонецЦикла; // Вывести Итого ОбластьНомера = Макет.ПолучитьОбласть("Итого|НомерСтроки"); ОбластьКодов = Макет.ПолучитьОбласть("Итого|КолонкаКодов"); ОбластьДанных = Макет.ПолучитьОбласть("Итого|Данные"); ОбластьСкидок = Макет.ПолучитьОбласть("Итого|Скидка"); ОбластьСуммы = Макет.ПолучитьОбласть("Итого|Сумма"); ОбластьТовар = Макет.ПолучитьОбласть("Итого|Товар"); Если Не ПараметрыПечати.ВыводитьКоды И ПараметрыПечати.ЕстьСкидки Тогда ОбластьТовар = Макет.ПолучитьОбласть("Итого|ТоварБезКодов"); ИначеЕсли НЕ ПараметрыПечати.ЕстьСкидки И ПараметрыПечати.ВыводитьКоды Тогда ОбластьТовар = Макет.ПолучитьОбласть("Итого|ТоварБезСкидок"); ИначеЕсли НЕ ПараметрыПечати.ЕстьСкидки И НЕ ПараметрыПечати.ВыводитьКоды Тогда ОбластьТовар = Макет.ПолучитьОбласть("Итого|ТоварБезКодовИСкидок"); КонецЕсли; ТабДокумент.Вывести(ОбластьНомера); Если ПараметрыПечати.ВыводитьКоды Тогда ТабДокумент.Присоединить(ОбластьКодов); КонецЕсли; ТабДокумент.Присоединить(ОбластьТовар); ТабДокумент.Присоединить(ОбластьДанных); Если ПараметрыПечати.ЕстьСкидки Тогда ОбластьСкидок.Параметры.Заполнить(ПараметрыПечати); ТабДокумент.Присоединить(ОбластьСкидок); КонецЕсли; ОбластьСуммы.Параметры.Заполнить(ПараметрыПечати); ТабДокумент.Присоединить(ОбластьСуммы); // Вывести ИтогоНДС Если ПараметрыПечати.УчитыватьНДС Тогда ОбластьНомера = Макет.ПолучитьОбласть("ИтогоНДС|НомерСтроки"); ОбластьКодов = Макет.ПолучитьОбласть("ИтогоНДС|КолонкаКодов"); ОбластьДанных = Макет.ПолучитьОбласть("ИтогоНДС|Данные"); ОбластьСкидок = Макет.ПолучитьОбласть("ИтогоНДС|Скидка"); ОбластьСуммы = Макет.ПолучитьОбласть("ИтогоНДС|Сумма"); ОбластьТовар = Макет.ПолучитьОбласть("ИтогоНДС|Товар"); Если Не ПараметрыПечати.ВыводитьКоды И ПараметрыПечати.ЕстьСкидки Тогда ОбластьТовар = Макет.ПолучитьОбласть("ИтогоНДС|ТоварБезКодов"); ИначеЕсли НЕ ПараметрыПечати.ЕстьСкидки И ПараметрыПечати.ВыводитьКоды Тогда ОбластьТовар = Макет.ПолучитьОбласть("ИтогоНДС|ТоварБезСкидок"); ИначеЕсли НЕ ПараметрыПечати.ЕстьСкидки И НЕ ПараметрыПечати.ВыводитьКоды Тогда ОбластьТовар = Макет.ПолучитьОбласть("ИтогоНДС|ТоварБезКодовИСкидок"); КонецЕсли; ТабДокумент.Вывести(ОбластьНомера); Если ПараметрыПечати.ВыводитьКоды Тогда ТабДокумент.Присоединить(ОбластьКодов); КонецЕсли; ОбластьТовар.Параметры.Заполнить(ПараметрыПечати); ТабДокумент.Присоединить(ОбластьТовар); ОбластьДанных.Параметры.Заполнить(ПараметрыПечати); ТабДокумент.Присоединить(ОбластьДанных); Если ПараметрыПечати.ЕстьСкидки Тогда ТабДокумент.Присоединить(ОбластьСкидок); КонецЕсли; ОбластьСуммы.Параметры.Заполнить(ПараметрыПечати); ТабДокумент.Присоединить(ОбластьСуммы); ОбластьНомера = Макет.ПолучитьОбласть("ВсегоКОплате|НомерСтроки"); ОбластьКодов = Макет.ПолучитьОбласть("ВсегоКОплате|КолонкаКодов"); ОбластьДанных = Макет.ПолучитьОбласть("ВсегоКОплате|Данные"); ОбластьСкидок = Макет.ПолучитьОбласть("ВсегоКОплате|Скидка"); ОбластьСуммы = Макет.ПолучитьОбласть("ВсегоКОплате|Сумма"); ОбластьТовар = Макет.ПолучитьОбласть("ВсегоКОплате|Товар"); Если Не ПараметрыПечати.ВыводитьКоды И ПараметрыПечати.ЕстьСкидки Тогда ОбластьТовар = Макет.ПолучитьОбласть("ВсегоКОплате|ТоварБезКодов"); ИначеЕсли НЕ ПараметрыПечати.ЕстьСкидки И ПараметрыПечати.ВыводитьКоды Тогда ОбластьТовар = Макет.ПолучитьОбласть("ВсегоКОплате|ТоварБезСкидок"); ИначеЕсли НЕ ПараметрыПечати.ЕстьСкидки И НЕ ПараметрыПечати.ВыводитьКоды Тогда ОбластьТовар = Макет.ПолучитьОбласть("ВсегоКОплате|ТоварБезКодовИСкидок"); КонецЕсли; ТабДокумент.Вывести(ОбластьНомера); Если ПараметрыПечати.ВыводитьКоды Тогда ТабДокумент.Присоединить(ОбластьКодов); КонецЕсли; ОбластьТовар.Параметры.Заполнить(ПараметрыПечати); ТабДокумент.Присоединить(ОбластьТовар); ОбластьДанных.Параметры.Заполнить(ПараметрыПечати); ТабДокумент.Присоединить(ОбластьДанных); Если ПараметрыПечати.ЕстьСкидки Тогда ТабДокумент.Присоединить(ОбластьСкидок); КонецЕсли; ОбластьСуммы.Параметры.Заполнить(ПараметрыПечати); ТабДокумент.Присоединить(ОбластьСуммы); КонецЕсли; // Вывести Сумму прописью ОбластьМакета = Макет.ПолучитьОбласть("СуммаПрописью"); ОбластьМакета.Параметры.Заполнить(ПараметрыПечати); ТабДокумент.Вывести(ОбластьМакета); // Вывести подписи Если Тип = "Счет" Тогда ОбластьМакета = Макет.ПолучитьОбласть("ПодвалСчета"); Иначе ОбластьМакета = Макет.ПолучитьОбласть("ПодвалЗаказа"); КонецЕсли; ОбластьМакета.Параметры.Заполнить(ПараметрыПечати); ТабДокумент.Вывести(ОбластьМакета); КонецПроцедуры // СоздатьТабличныйДокументПечатиСчетаЗаказа() Функция ПолучитьПараметрыПечатиСчетаЗаказа(Тип, ДокументСсылка) Экспорт ПараметрыПечати = Новый Структура; Позиции = Новый Массив; Запрос = Новый Запрос; Запрос.УстановитьПараметр("ТекущийДокумент", ДокументСсылка); Запрос.УстановитьПараметр("ПустойКонтрагент", Справочники.Контрагенты.ПустаяСсылка()); Запрос.Текст =" |ВЫБРАТЬ | Номер, | Дата, | ДоговорКонтрагента, | Организация, | Контрагент КАК Получатель, | ВЫБОР КОГДА Грузоотправитель = &ПустойКонтрагент | ТОГДА Организация | ИНАЧЕ Грузоотправитель КОНЕЦ КАК Грузоотправитель, | ВЫБОР КОГДА Грузополучатель = &ПустойКонтрагент | ТОГДА Контрагент | ИНАЧЕ Грузополучатель КОНЕЦ КАК Грузополучатель, | Организация КАК Руководители, | Организация КАК Поставщик, | СуммаДокумента, | ВалютаДокумента, | УчитыватьНДС, | СуммаВключаетНДС |ИЗ | Документ.СчетНаОплатуПокупателю КАК СчетНаОплатуПокупателю | |ГДЕ | СчетНаОплатуПокупателю.Ссылка = &ТекущийДокумент"; Шапка = Запрос.Выполнить().Выбрать(); Шапка.Следующий(); СтрокаВыборкиПоляСодержания = ОбработкаТабличныхЧастей.ПолучитьЧастьЗапросаДляВыбораСодержания("СчетНаОплату"); Запрос = Новый Запрос; Запрос.УстановитьПараметр("ТекущийДокумент", ДокументСсылка); Запрос.Текст = "ВЫБРАТЬ | ВложенныйЗапрос.Номенклатура, | ВЫРАЗИТЬ (ВложенныйЗапрос.Номенклатура.НаименованиеПолное КАК Строка(1000)) КАК НаименованиеПолное, | ВложенныйЗапрос.Номенклатура.Код КАК Код, | ВложенныйЗапрос.Номенклатура.Артикул КАК Артикул, | ВложенныйЗапрос.Количество, | ВложенныйЗапрос.ЕдиницаИзмерения.Представление КАК ЕдиницаИзмерения, | ВложенныйЗапрос.ПроцентСкидкиНаценки | + ВложенныйЗапрос.ПроцентАвтоматическихСкидок КАК Скидка, | ВложенныйЗапрос.Цена, | ВложенныйЗапрос.Сумма, | ВложенныйЗапрос.СуммаНДС, | ВложенныйЗапрос.Характеристика, | NULL КАК Серия, | ВложенныйЗапрос.НомерСтроки КАК НомерСтроки, | ВложенныйЗапрос.Метка КАК Метка |ИЗ | (ВЫБРАТЬ | СчетНаОплату.Номенклатура КАК Номенклатура, | СчетНаОплату.ЕдиницаИзмерения КАК ЕдиницаИзмерения, | СчетНаОплату.ПроцентСкидкиНаценки КАК ПроцентСкидкиНаценки, | СчетНаОплату.ПроцентАвтоматическихСкидок КАК ПроцентАвтоматическихСкидок, | СУММА(СчетНаОплату.Цена) КАК Цена, | СУММА(СчетНаОплату.Количество) КАК Количество, | СУММА(СчетНаОплату.Сумма) КАК Сумма, | СУММА(СчетНаОплату.СуммаНДС) КАК СуммаНДС, | СчетНаОплату.ХарактеристикаНоменклатуры КАК Характеристика, | МИНИМУМ(СчетНаОплату.НомерСтроки) КАК НомерСтроки, | 0 КАК Метка | ИЗ | Документ.СчетНаОплатуПокупателю.Товары КАК СчетНаОплату | | ГДЕ | СчетНаОплату.Ссылка = &ТекущийДокумент | | СГРУППИРОВАТЬ ПО | СчетНаОплату.Номенклатура, | СчетНаОплату.ЕдиницаИзмерения, | СчетНаОплату.ПроцентСкидкиНаценки, | СчетНаОплату.ПроцентАвтоматическихСкидок, | СчетНаОплату.Цена, | СчетНаОплату.ХарактеристикаНоменклатуры | ) КАК ВложенныйЗапрос | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | СчетНаОплату.Номенклатура, | " + СтрокаВыборкиПоляСодержания + " КАК Товар, | СчетНаОплату.Номенклатура.Код КАК Код, | СчетНаОплату.Номенклатура.Артикул КАК Артикул, | Сумма(СчетНаОплату.Количество), | СчетНаОплату.Номенклатура.ЕдиницаХраненияОстатков, | СчетНаОплату.ПроцентСкидкиНаценки + СчетНаОплату.ПроцентАвтоматическихСкидок, | Сумма(СчетНаОплату.Цена), | Сумма(СчетНаОплату.Сумма), | Сумма(СчетНаОплату.СуммаНДС), | NULL, | NULL, | Минимум(СчетНаОплату.НомерСтроки), | 1 |ИЗ | Документ.СчетНаОплатуПокупателю.Услуги КАК СчетНаОплату | |ГДЕ | СчетНаОплату.Ссылка = &ТекущийДокумент | СГРУППИРОВАТЬ ПО | СчетНаОплату.Номенклатура, | " + СтрокаВыборкиПоляСодержания + ", | СчетНаОплату.ПроцентСкидкиНаценки, | СчетНаОплату.ПроцентАвтоматическихСкидок, | СчетНаОплату.Цена | |УПОРЯДОЧИТЬ ПО | Метка, | НомерСтроки"; ЗапросТовары = Запрос.Выполнить().Выгрузить(); // Выводим шапку накладной ПараметрыПечати.Вставить("УчитыватьНДС", Шапка.УчитыватьНДС); СведенияОПоставщике = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Поставщик, Шапка.Дата); Если Тип = "Счет" Тогда ПараметрыПечати.Вставить("ИНН", СведенияОПоставщике.ИНН); ПараметрыПечати.Вставить("КПП", СведенияОПоставщике.КПП); ПредставлениеПоставщикаДляПлатПоручения = ""; Если ТипЗнч(ДокументСсылка.СтруктурнаяЕдиница) = Тип("СправочникСсылка.БанковскиеСчета") Тогда Банк = ?(НЕ ЗначениеЗаполнено(ДокументСсылка.СтруктурнаяЕдиница.БанкДляРасчетов), ДокументСсылка.СтруктурнаяЕдиница.Банк, ДокументСсылка.СтруктурнаяЕдиница.БанкДляРасчетов); БИК = Банк.Код; КоррСчет = Банк.КоррСчет; ГородБанка = Банк.Город; НомерСчета = ДокументСсылка.СтруктурнаяЕдиница.НомерСчета; ПараметрыПечати.Вставить("БИКБанкаПолучателя", БИК); ПараметрыПечати.Вставить("БанкПолучателя", Банк); ПараметрыПечати.Вставить("БанкПолучателяПредставление", СокрЛП(Банк) + " " + ГородБанка); ПараметрыПечати.Вставить("СчетБанкаПолучателя", КоррСчет); ПараметрыПечати.Вставить("СчетБанкаПолучателяПредставление", КоррСчет); ПараметрыПечати.Вставить("СчетПолучателяПредставление", НомерСчета); ПараметрыПечати.Вставить("СчетПолучателя", НомерСчета); ПредставлениеПоставщикаДляПлатПоручения = ДокументСсылка.СтруктурнаяЕдиница.ТекстКорреспондента; КонецЕсли; Если ПустаяСтрока(ПредставлениеПоставщикаДляПлатПоручения) Тогда ПредставлениеПоставщикаДляПлатПоручения = ФормированиеПечатныхФормСервер.ОписаниеОрганизации(СведенияОПоставщике, "ПолноеНаименование,"); КонецЕсли; ПараметрыПечати.Вставить("ПредставлениеПоставщикаДляПлатПоручения", ПредставлениеПоставщикаДляПлатПоручения); КонецЕсли; ПараметрыПечати.Вставить("ТекстЗаголовка", ОбщегоНазначения.СформироватьЗаголовокДокумента(Шапка, "Счет на оплату")); ПараметрыПечати.Вставить("ТекстПоставщик", ?(Тип = "Счет", "Поставщик:", "Исполнитель:")); ПараметрыПечати.Вставить("ПредставлениеПоставщика", ФормированиеПечатныхФормСервер.ОписаниеОрганизации(УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Организация, Шапка.Дата), "ПолноеНаименование,ИНН,КПП,ЮридическийАдрес,Телефоны,")); Если Шапка.Организация = Шапка.Грузоотправитель Тогда ПараметрыПечати.Вставить("ПредставлениеГрузоотправителя", ФормированиеПечатныхФормСервер.ОписаниеОрганизации(УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Организация, Шапка.Дата), "ПолноеНаименование,ИНН,КПП,ЮридическийАдрес,Телефоны,")); Иначе ПараметрыПечати.Вставить("ПредставлениеГрузоотправителя", ФормированиеПечатныхФормСервер.ОписаниеОрганизации(УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Грузоотправитель, Шапка.Дата), "ПолноеНаименование,ИНН,КПП,ФактическийАдрес,Телефоны,")); КонецЕсли; СведенияОПолучателе = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Получатель, Шапка.Дата); ПараметрыПечати.Вставить("ТекстПокупатель", ?(Тип = "Счет", "Покупатель:", "Заказчик:")); ПараметрыПечати.Вставить("ПредставлениеПолучателя", ФормированиеПечатныхФормСервер.ОписаниеОрганизации(УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Получатель, Шапка.Дата), "ПолноеНаименование,ИНН,КПП,ЮридическийАдрес,Телефоны,")); ПараметрыПечати.Вставить("ПредставлениеГрузополучателя", ФормированиеПечатныхФормСервер.ОписаниеОрганизации(УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Грузополучатель, Шапка.Дата), "ПолноеНаименование,ИНН,КПП,ФактическийАдрес,Телефоны,")); ПараметрыПечати.Вставить("ЕстьСкидки", Ложь); Для каждого ВыборкаСтрокТовары Из ЗапросТовары Цикл Если ЗначениеЗаполнено(ВыборкаСтрокТовары.Скидка) Тогда ПараметрыПечати.ЕстьСкидки = Истина; Прервать; КонецЕсли; КонецЦикла; ДопКолонка = Константы.ДополнительнаяКолонкаПечатныхФормДокументов.Получить(); ПараметрыПечати.Вставить("ВыводитьКоды", Ложь); Если ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Артикул Тогда ПараметрыПечати.ВыводитьКоды = Истина; Колонка = "Артикул"; ИначеЕсли ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Код Тогда ПараметрыПечати.ВыводитьКоды = Истина; Колонка = "Код"; КонецЕсли; Если ПараметрыПечати.ВыводитьКоды Тогда ПараметрыПечати.Вставить("ИмяКолонкиКодов", Колонка); КонецЕсли; Сумма = 0; СуммаНДС = 0; ВсегоСкидок = 0; ВсегоБезСкидок = 0; Цена = 0; Для каждого ВыборкаСтрокТовары Из ЗапросТовары Цикл ПараметрыПозиции = Новый Структура; ПараметрыПозиции.Вставить("Номенклатура", ВыборкаСтрокТовары.Номенклатура); ПараметрыПозиции.Вставить("НомерСтроки", ЗапросТовары.Индекс(ВыборкаСтрокТовары) + 1); Если ПараметрыПечати.ВыводитьКоды Тогда Если Колонка = "Артикул" Тогда ПараметрыПозиции.Вставить("Артикул", ВыборкаСтрокТовары.Артикул); Иначе ПараметрыПозиции.Вставить("Артикул", ВыборкаСтрокТовары.Код); КонецЕсли; КонецЕсли; ПараметрыПозиции.Вставить("Количество", ВыборкаСтрокТовары.Количество); ПараметрыПозиции.Вставить("ЕдиницаИзмерения", ВыборкаСтрокТовары.ЕдиницаИзмерения); ПараметрыПозиции.Вставить("Цена", ВыборкаСтрокТовары.Цена); ПараметрыПозиции.Вставить("Товар", СокрП(ВыборкаСтрокТовары.НаименованиеПолное)); //+ ФормированиеПечатныхФормСервер.ПредставлениеСерий(ВыборкаСтрокТовары)); Скидка = Ценообразование.ПолучитьСуммуСкидки(ВыборкаСтрокТовары.Сумма, ВыборкаСтрокТовары.Скидка); Если ПараметрыПечати.ЕстьСкидки Тогда ПараметрыПозиции.Вставить("Скидка", Скидка); ПараметрыПозиции.Вставить("СуммаБезСкидки", ВыборкаСтрокТовары.Сумма + Скидка); КонецЕсли; ПараметрыПозиции.Вставить("Сумма", ВыборкаСтрокТовары.Сумма); ПараметрыПозиции.Вставить("Цена", ВыборкаСтрокТовары.Цена); Сумма = Сумма + ВыборкаСтрокТовары.Сумма; СуммаНДС = СуммаНДС + ВыборкаСтрокТовары.СуммаНДС; ВсегоСкидок = ВсегоСкидок + Скидка; ВсегоБезСкидок = Сумма + ВсегоСкидок; Цена = Цена + ВыборкаСтрокТовары.Цена; Позиции.Добавить(ПараметрыПозиции); КонецЦикла; ПараметрыПечати.Вставить("Позиции", Позиции); // Вывести Итого Если ПараметрыПечати.ЕстьСкидки Тогда ПараметрыПечати.Вставить("ВсегоСкидок", ВсегоСкидок); ПараметрыПечати.Вставить("ВсегоБезСкидок", ВсегоБезСкидок); КонецЕсли; ПараметрыПечати.Вставить("Всего", ОбщегоНазначения.ФорматСумм(Сумма)); ПараметрыПечати.Вставить("ЦенаВсего", ЦенаВсего); // Вывести ИтогоНДС Если ПараметрыПечати.УчитыватьНДС Тогда ПараметрыПечати.Вставить("НДС", ?(Шапка.СуммаВключаетНДС, "В том числе НДС:", "Сумма НДС:")); ПараметрыПечати.Вставить("ВсегоНДС", ОбщегоНазначения.ФорматСумм(ЗапросТовары.Итог("СуммаНДС"))); ПараметрыПечати.Вставить("ВсегоКОплате", ОбщегоНазначения.ФорматСумм(Сумма + ?(Шапка.СуммаВключаетНДС, 0, СуммаНДС))); КонецЕсли; // Вывести Сумму прописью СуммаКПрописи = Сумма + ?(Шапка.СуммаВключаетНДС, 0, СуммаНДС); ПараметрыПечати.Вставить("ИтоговаяСтрока", "Всего наименований " + ЗапросТовары.Количество() + ", на сумму " + ОбщегоНазначения.ФорматСумм(СуммаКПрописи, Шапка.ВалютаДокумента)); ПараметрыПечати.Вставить("СуммаПрописью", ОбщегоНазначения.СформироватьСуммуПрописью(СуммаКПрописи, Шапка.ВалютаДокумента)); // Вывести подписи Если Тип = "Счет" Тогда Руководители = РегламентированнаяОтчетность.ОтветственныеЛицаОрганизаций(Шапка.Руководители, Шапка.Дата,); Руководитель = Руководители.Руководитель; ДолжностьРуководителя = Руководители.РуководительДолжность; Бухгалтер = Руководители.ГлавныйБухгалтер; ПараметрыПечати.Вставить("ФИОРуководителя", Руководитель); ПараметрыПечати.Вставить("ДолжностьРуководителя", ДолжностьРуководителя); ПараметрыПечати.Вставить("ФИОБухгалтера", Бухгалтер); Если НЕ ЗначениеЗаполнено(ДокументСсылка.Ответственный.ФизЛицо) Тогда ФИООтветственный = ДокументСсылка.Ответственный.Наименование; Иначе ФамилияИмяОтчествоФизЛица = ФормированиеПечатныхФормСервер.ФамилияИмяОтчество(ДокументСсылка.Ответственный.ФизЛицо, Шапка.Дата); ФамилияИмяОтчествоОтветственного = ФамилияИмяОтчествоФизЛица.Фамилия + " " + ФамилияИмяОтчествоФизЛица.Имя + " " + ФамилияИмяОтчествоФизЛица.Отчество; ФИООтветственный = ОбщегоНазначения.ФамилияИнициалыФизЛица(ФамилияИмяОтчествоОтветственного); КонецЕсли; ПараметрыПечати.Вставить("ФИООтветственный", ФИООтветственный); КонецЕсли; Возврат ПараметрыПечати; КонецФункции //ПолучитьПараметрыПечатиСчетаЗаказа() |
|||
8
demous
04.10.12
✎
11:22
|
uppp чет не пойму че не так
|
|||
9
demous
04.10.12
✎
11:30
|
еще и по кол-ву надо
|
|||
10
shuhard
04.10.12
✎
11:37
|
(9) блеать
ну сделай ты морду к ВПФ и отладься |
|||
11
demous
04.10.12
✎
11:58
|
ну не получается)
|
|||
12
demous
04.10.12
✎
13:45
|
((((((((((((((
|
|||
13
demous
04.10.12
✎
17:28
|
////////////////
|
|||
14
demous
05.10.12
✎
09:10
|
доброе утро) подскажите?)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |