|
счет на оплату внешняя форма КА 1.1 | ☑ | ||
---|---|---|---|---|
0
VasjaIvanov
10.01.12
✎
17:28
|
Кто нибудь подскажите, суть проблемы это сделать внешнею печатную форму "счет на оплату покупателя" для КА 1.1
Проблема в том что код не получается написаьт. |
|||
1
VasjaIvanov
10.01.12
✎
17:29
|
Ошибка при вызове метода контекста (Выполнить): {(26, 32)}: Неверные параметры в операции сравнения. Нельзя сравнивать поля
неограниченной длины и поля несовместимых типов. СчетНаОплатуПокупателю.Ссылка <<?>>= &ТекущийДокумент код Функция Печать () экспорт КоличествоЭкземпляров=1; НаПринтер=Ложь; ИмяМакета="СчетЗаказ"; ТабДокумент = ПолучитьПараметрыПечатиСчетаЗаказа(); Если ТабДокумент <> Неопределено Тогда УниверсальныеМеханизмы.НапечататьДокумент(ТабДокумент, КоличествоЭкземпляров, НаПринтер, ОбщегоНазначения.СформироватьЗаголовокДокумента(СсылкаНаОбъект, ""), СсылкаНаОбъект); КонецЕсли; Возврат ТабДокумент; КонецФункции Функция ПолучитьПараметрыПечатиСчетаЗаказа(Тип = "Счет") Экспорт ПараметрыПечати = Новый Структура; Позиции = Новый Массив; Запрос = Новый Запрос; Запрос.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект); Запрос.УстановитьПараметр("ПустойКонтрагент", Справочники.Контрагенты.ПустаяСсылка()); Запрос.Текст =" |ВЫБРАТЬ | Номер, | Дата, | ДоговорКонтрагента, | Организация, | Контрагент КАК Получатель, | ВЫБОР КОГДА Грузоотправитель = &ПустойКонтрагент | ТОГДА Организация | ИНАЧЕ Грузоотправитель КОНЕЦ КАК Грузоотправитель, | ВЫБОР КОГДА Грузополучатель = &ПустойКонтрагент | ТОГДА Контрагент | ИНАЧЕ Грузополучатель КОНЕЦ КАК Грузополучатель, | Организация КАК Руководители, | Организация КАК Поставщик, | СуммаДокумента, | ВалютаДокумента, | УчитыватьНДС, | СуммаВключаетНДС |ИЗ | Документ.СчетНаОплатуПокупателю КАК СчетНаОплатуПокупателю | |ГДЕ | Документы.СчетНаОплатуПокупателю.Ссылка = &ТекущийДокумент"; Шапка = Запрос.Выполнить().Выбрать(); Шапка.Следующий(); СтрокаВыборкиПоляСодержания = ОбработкаТабличныхЧастей.ПолучитьЧастьЗапросаДляВыбораСодержания("СчетНаОплату"); Запрос = Новый Запрос; Запрос.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект); Запрос.Текст = "ВЫБРАТЬ | ВложенныйЗапрос.Номенклатура, | ВЫРАЗИТЬ (ВложенныйЗапрос.Номенклатура.НаименованиеПолное КАК Строка(1000)) КАК НаименованиеПолное, | ВложенныйЗапрос.Номенклатура.Код КАК Код, | ВложенныйЗапрос.Номенклатура.Артикул КАК Артикул, | ВложенныйЗапрос.Количество, | ВложенныйЗапрос.ЕдиницаИзмерения.Представление КАК ЕдиницаИзмерения, | ВложенныйЗапрос.ПроцентСкидкиНаценки | + ВложенныйЗапрос.ПроцентАвтоматическихСкидок КАК Скидка, | ВложенныйЗапрос.Цена, | ВложенныйЗапрос.Сумма, | ВложенныйЗапрос.СуммаНДС, | ВложенныйЗапрос.Характеристика, | NULL КАК Серия, | ВложенныйЗапрос.НомерСтроки КАК НомерСтроки, | ВложенныйЗапрос.Метка КАК Метка |ИЗ | (ВЫБРАТЬ | СчетНаОплату.Номенклатура КАК Номенклатура, | СчетНаОплату.ЕдиницаИзмерения КАК ЕдиницаИзмерения, | СчетНаОплату.ПроцентСкидкиНаценки КАК ПроцентСкидкиНаценки, | СчетНаОплату.ПроцентАвтоматическихСкидок КАК ПроцентАвтоматическихСкидок, | СчетНаОплату.Цена КАК Цена, | СУММА(СчетНаОплату.Количество) КАК Количество, | СУММА(СчетНаОплату.Сумма) КАК Сумма, | СУММА(СчетНаОплату.СуммаНДС) КАК СуммаНДС, | СчетНаОплату.ХарактеристикаНоменклатуры КАК Характеристика, | МИНИМУМ(СчетНаОплату.НомерСтроки) КАК НомерСтроки, | 0 КАК Метка | ИЗ | Документ.СчетНаОплатуПокупателю.Товары КАК СчетНаОплату | | ГДЕ | СчетНаОплату.Ссылка = &ТекущийДокумент | | СГРУППИРОВАТЬ ПО | СчетНаОплату.Номенклатура, | СчетНаОплату.ЕдиницаИзмерения, | СчетНаОплату.ПроцентСкидкиНаценки, | СчетНаОплату.ПроцентАвтоматическихСкидок, | СчетНаОплату.Цена, | СчетНаОплату.ХарактеристикаНоменклатуры | ) КАК ВложенныйЗапрос | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | СчетНаОплату.Номенклатура, | " + СтрокаВыборкиПоляСодержания + " КАК Товар, | СчетНаОплату.Номенклатура.Код КАК Код, | СчетНаОплату.Номенклатура.Артикул КАК Артикул, | Сумма(СчетНаОплату.Количество), | СчетНаОплату.Номенклатура.ЕдиницаХраненияОстатков, | СчетНаОплату.ПроцентСкидкиНаценки + СчетНаОплату.ПроцентАвтоматическихСкидок, | СчетНаОплату.Цена, | Сумма(СчетНаОплату.Сумма), | Сумма(СчетНаОплату.СуммаНДС), | NULL, | NULL, | Минимум(СчетНаОплату.НомерСтроки), | 1 |ИЗ | Документ.СчетНаОплатуПокупателю.Услуги КАК СчетНаОплату | |ГДЕ | СчетНаОплату.Ссылка = &ТекущийДокумент | СГРУППИРОВАТЬ ПО | СчетНаОплату.Номенклатура, | " + СтрокаВыборкиПоляСодержания + ", | СчетНаОплату.ПроцентСкидкиНаценки, | СчетНаОплату.ПроцентАвтоматическихСкидок, | СчетНаОплату.Цена | |УПОРЯДОЧИТЬ ПО | Метка, | НомерСтроки"; ЗапросТовары = Запрос.Выполнить().Выгрузить(); // Выводим шапку накладной ПараметрыПечати.Вставить("УчитыватьНДС", Шапка.УчитыватьНДС); СведенияОПоставщике = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Поставщик, Шапка.Дата); Если Тип = "Счет" Тогда ПараметрыПечати.Вставить("ИНН", СведенияОПоставщике.ИНН); ПараметрыПечати.Вставить("КПП", СведенияОПоставщике.КПП); ПредставлениеПоставщикаДляПлатПоручения = ""; Если ТипЗнч(СсылкаНаОбъект.СтруктурнаяЕдиница) = Тип("СправочникСсылка.БанковскиеСчета") Тогда Банк = ?(НЕ ЗначениеЗаполнено(СсылкаНаОбъект.СтруктурнаяЕдиница.БанкДляРасчетов), СсылкаНаОбъект.СтруктурнаяЕдиница.Банк, СсылкаНаОбъект.СтруктурнаяЕдиница.БанкДляРасчетов); БИК = Банк.Код; КоррСчет = Банк.КоррСчет; ГородБанка = Банк.Город; НомерСчета = СсылкаНаОбъект.СтруктурнаяЕдиница.НомерСчета; ПараметрыПечати.Вставить("БИКБанкаПолучателя", БИК); ПараметрыПечати.Вставить("БанкПолучателя", Банк); ПараметрыПечати.Вставить("БанкПолучателяПредставление", СокрЛП(Банк) + " " + ГородБанка); ПараметрыПечати.Вставить("СчетБанкаПолучателя", КоррСчет); ПараметрыПечати.Вставить("СчетБанкаПолучателяПредставление", КоррСчет); ПараметрыПечати.Вставить("СчетПолучателяПредставление", НомерСчета); ПараметрыПечати.Вставить("СчетПолучателя", НомерСчета); ПредставлениеПоставщикаДляПлатПоручения = СсылкаНаОбъект.СтруктурнаяЕдиница.ТекстКорреспондента; КонецЕсли; Если ПустаяСтрока(ПредставлениеПоставщикаДляПлатПоручения) Тогда ПредставлениеПоставщикаДляПлатПоручения = ФормированиеПечатныхФормСервер.ОписаниеОрганизации(СведенияОПоставщике, "ПолноеНаименование,"); КонецЕсли; ПараметрыПечати.Вставить("ПредставлениеПоставщикаДляПлатПоручения", ПредставлениеПоставщикаДляПлатПоручения); КонецЕсли; ПараметрыПечати.Вставить("ТекстЗаголовка", ОбщегоНазначения.СформироватьЗаголовокДокумента(Шапка, "Счет на оплату")); ПараметрыПечати.Вставить("ТекстПоставщик", ?(Тип = "Счет", "Поставщик:", "Исполнитель:")); ПараметрыПечати.Вставить("ПредставлениеПоставщика", ФормированиеПечатныхФормСервер.ОписаниеОрганизации(УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Организация, Шапка.Дата), "ПолноеНаименование,ИНН,КПП,ЮридическийАдрес,Телефоны,")); Если Шапка.Организация = Шапка.Грузоотправитель Тогда ПараметрыПечати.Вставить("ПредставлениеГрузоотправителя", ФормированиеПечатныхФормСервер.ОписаниеОрганизации(УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Организация, Шапка.Дата), "ПолноеНаименование,ИНН,КПП,ЮридическийАдрес,Телефоны,")); Иначе ПараметрыПечати.Вставить("ПредставлениеГрузоотправителя", ФормированиеПечатныхФормСервер.ОписаниеОрганизации(УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Грузоотправитель, Шапка.Дата), "ПолноеНаименование,ИНН,КПП,ФактическийАдрес,Телефоны,")); КонецЕсли; СведенияОПолучателе = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Получатель, Шапка.Дата); ПараметрыПечати.Вставить("ТекстПокупатель", ?(Тип = "Счет", "Покупатель:", "Заказчик:")); ПараметрыПечати.Вставить("ПредставлениеПолучателя", ФормированиеПечатныхФормСервер.ОписаниеОрганизации(УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Получатель, Шапка.Дата), "ПолноеНаименование,ИНН,КПП,ЮридическийАдрес,Телефоны,")); ПараметрыПечати.Вставить("ПредставлениеГрузополучателя", ФормированиеПечатныхФормСервер.ОписаниеОрганизации(УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Грузополучатель, Шапка.Дата), "ПолноеНаименование,ИНН,КПП,ФактическийАдрес,Телефоны,")); ПараметрыПечати.Вставить("ЕстьСкидки", Ложь); Для каждого ВыборкаСтрокТовары Из ЗапросТовары Цикл Если ЗначениеЗаполнено(ВыборкаСтрокТовары.Скидка) Тогда ПараметрыПечати.ЕстьСкидки = Истина; Прервать; КонецЕсли; КонецЦикла; ДопКолонка = Константы.ДополнительнаяКолонкаПечатныхФормДокументов.Получить(); ПараметрыПечати.Вставить("ВыводитьКоды", Ложь); Если ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Артикул Тогда ПараметрыПечати.ВыводитьКоды = Истина; Колонка = "Артикул"; ИначеЕсли ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Код Тогда ПараметрыПечати.ВыводитьКоды = Истина; Колонка = "Код"; КонецЕсли; Если ПараметрыПечати.ВыводитьКоды Тогда ПараметрыПечати.Вставить("ИмяКолонкиКодов", Колонка); КонецЕсли; Сумма = 0; СуммаНДС = 0; ВсегоСкидок = 0; ВсегоБезСкидок = 0; Для каждого ВыборкаСтрокТовары Из ЗапросТовары Цикл ПараметрыПозиции = Новый Структура; ПараметрыПозиции.Вставить("Номенклатура", ВыборкаСтрокТовары.Номенклатура); ПараметрыПозиции.Вставить("НомерСтроки", ЗапросТовары.Индекс(ВыборкаСтрокТовары) + 1); Если ПараметрыПечати.ВыводитьКоды Тогда Если Колонка = "Артикул" Тогда ПараметрыПозиции.Вставить("Артикул", ВыборкаСтрокТовары.Артикул); Иначе ПараметрыПозиции.Вставить("Артикул", ВыборкаСтрокТовары.Код); КонецЕсли; КонецЕсли; ПараметрыПозиции.Вставить("Количество", ВыборкаСтрокТовары.Количество); ПараметрыПозиции.Вставить("ЕдиницаИзмерения", ВыборкаСтрокТовары.ЕдиницаИзмерения); ПараметрыПозиции.Вставить("Цена", ВыборкаСтрокТовары.Цена); ПараметрыПозиции.Вставить("Товар", СокрП(ВыборкаСтрокТовары.НаименованиеПолное) + ФормированиеПечатныхФормСервер.ПредставлениеСерий(ВыборкаСтрокТовары)); Скидка = Ценообразование.ПолучитьСуммуСкидки(ВыборкаСтрокТовары.Сумма, ВыборкаСтрокТовары.Скидка); Если ПараметрыПечати.ЕстьСкидки Тогда ПараметрыПозиции.Вставить("Скидка", Скидка); ПараметрыПозиции.Вставить("СуммаБезСкидки", ВыборкаСтрокТовары.Сумма + Скидка); КонецЕсли; ПараметрыПозиции.Вставить("Сумма", ВыборкаСтрокТовары.Сумма); Сумма = Сумма + ВыборкаСтрокТовары.Сумма; СуммаНДС = СуммаНДС + ВыборкаСтрокТовары.СуммаНДС; ВсегоСкидок = ВсегоСкидок + Скидка; ВсегоБезСкидок = Сумма + ВсегоСкидок; Позиции.Добавить(ПараметрыПозиции); КонецЦикла; ПараметрыПечати.Вставить("Позиции", Позиции); // Вывести Итого Если ПараметрыПечати.ЕстьСкидки Тогда ПараметрыПечати.Вставить("ВсегоСкидок", ВсегоСкидок); ПараметрыПечати.Вставить("ВсегоБезСкидок", ВсегоБезСкидок); КонецЕсли; ПараметрыПечати.Вставить("Всего", ОбщегоНазначения.ФорматСумм(Сумма)); // Вывести ИтогоНДС Если ПараметрыПечати.УчитыватьНДС Тогда ПараметрыПечати.Вставить("НДС", ?(Шапка.СуммаВключаетНДС, "В том числе НДС:", "Сумма НДС:")); ПараметрыПечати.Вставить("ВсегоНДС", ОбщегоНазначения.ФорматСумм(ЗапросТовары.Итог("СуммаНДС"))); ПараметрыПечати.Вставить("ВсегоКОплате", ОбщегоНазначения.ФорматСумм(Сумма + ?(Шапка.СуммаВключаетНДС, 0, СуммаНДС))); КонецЕсли; // Вывести Сумму прописью СуммаКПрописи = Сумма + ?(Шапка.СуммаВключаетНДС, 0, СуммаНДС); ПараметрыПечати.Вставить("ИтоговаяСтрока", "Всего наименований " + ЗапросТовары.Количество() + ", на сумму " + ОбщегоНазначения.ФорматСумм(СуммаКПрописи, Шапка.ВалютаДокумента)); ПараметрыПечати.Вставить("СуммаПрописью", ОбщегоНазначения.СформироватьСуммуПрописью(СуммаКПрописи, Шапка.ВалютаДокумента)); // Вывести подписи Если Тип = "Счет" Тогда Руководители = РегламентированнаяОтчетность.ОтветственныеЛицаОрганизаций(Шапка.Руководители, Шапка.Дата,); Руководитель = Руководители.Руководитель; ДолжностьРуководителя = Руководители.РуководительДолжность; Бухгалтер = Руководители.ГлавныйБухгалтер; ПараметрыПечати.Вставить("ФИОРуководителя", Руководитель); ПараметрыПечати.Вставить("ДолжностьРуководителя", ДолжностьРуководителя); ПараметрыПечати.Вставить("ФИОБухгалтера", Бухгалтер); Если НЕ ЗначениеЗаполнено(СсылкаНаОбъект.Ответственный.ФизЛицо) Тогда ФИООтветственный = СсылкаНаОбъект.Ответственный.Наименование; Иначе ФамилияИмяОтчествоФизЛица = ФормированиеПечатныхФормСервер.ФамилияИмяОтчество(СсылкаНаОбъект.Ответственный.ФизЛицо, Шапка.Дата); ФамилияИмяОтчествоОтветственного = ФамилияИмяОтчествоФизЛица.Фамилия + " " + ФамилияИмяОтчествоФизЛица.Имя + " " + ФамилияИмяОтчествоФизЛица.Отчество; ФИООтветственный = ОбщегоНазначения.ФамилияИнициалыФизЛица(ФамилияИмяОтчествоОтветственного); КонецЕсли; ПараметрыПечати.Вставить("ФИООтветственный", ФИООтветственный); КонецЕсли; Возврат ПараметрыПечати; КонецФункции //ПолучитьПараметрыПечатиСчетаЗаказа() |
|||
2
ДенисЧ
10.01.12
✎
17:29
|
Ну, если ты код пишешь так же, как по русски...
|
|||
3
ДенисЧ
10.01.12
✎
17:29
|
Используй Выразить()
|
|||
4
VasjaIvanov
10.01.12
✎
17:31
|
создаю функцию печать () экспорт, дальше все х.з.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |