|
Не удалось сформировать внешнюю печатную форму! | ☑ | ||
|---|---|---|---|---|
|
0
tip22
07.07.11
✎
21:29
|
8.1 УТ после обновления перестала печататься внешняя печатная форма ..
ошибка такая Не удалось сформировать внешнюю печатную форму! Поле объекта не обнаружено (Ссылка) , печатную форму переподключал после обновления , код посмотрел вроде все нормально , что могло поменяться ? Функция Печать()Экспорт Тип = "Счет"; ПараметрыПечати =ПолучитьПараметрыПечатиСчетаЗаказа(Тип); ТабДокумент = Новый ТабличныйДокумент; ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ЗаказПокупателя_СчетЗаказ"; Макет = ПолучитьОбщийМакет("СчетЗаказ1"); // Выводим шапку накладной Если Тип = "Счет" Тогда ОбластьМакета = Макет.ПолучитьОбласть("ЗаголовокСчета"); ОбластьМакета.Параметры.Заполнить(ПараметрыПечати); ТабДокумент.Вывести(ОбластьМакета); КонецЕсли; ОбластьМакета = Макет.ПолучитьОбласть("Заголовок"); ОбластьМакета.Параметры.Заполнить(ПараметрыПечати); ТабДокумент.Вывести(ОбластьМакета); ОбластьМакета = Макет.ПолучитьОбласть("Поставщик"); ОбластьМакета.Параметры.Заполнить(ПараметрыПечати); ТабДокумент.Вывести(ОбластьМакета); ОбластьМакета = Макет.ПолучитьОбласть("Покупатель"); ОбластьМакета.Параметры.Заполнить(ПараметрыПечати); ТабДокумент.Вывести(ОбластьМакета); ОбластьНомера = Макет.ПолучитьОбласть("ШапкаТаблицы|НомерСтроки"); ОбластьКодов = Макет.ПолучитьОбласть("ШапкаТаблицы|КолонкаКодов"); ОбластьДанных = Макет.ПолучитьОбласть("ШапкаТаблицы|Данные"); ОбластьСкидок = Макет.ПолучитьОбласть("ШапкаТаблицы|Скидка"); ОбластьСуммы = Макет.ПолучитьОбласть("ШапкаТаблицы|Сумма"); ОбластьТовар = Макет.ПолучитьОбласть("ШапкаТаблицы|Товар"); Если Не ПараметрыПечати.ВыводитьКоды И ПараметрыПечати.ЕстьСкидки Тогда ОбластьТовар = Макет.ПолучитьОбласть("ШапкаТаблицы|ТоварБезКодов"); ИначеЕсли НЕ ПараметрыПечати.ЕстьСкидки И ПараметрыПечати.ВыводитьКоды Тогда ОбластьТовар = Макет.ПолучитьОбласть("ШапкаТаблицы|ТоварБезСкидок"); ИначеЕсли НЕ ПараметрыПечати.ЕстьСкидки И НЕ ПараметрыПечати.ВыводитьКоды Тогда ОбластьТовар = Макет.ПолучитьОбласть("ШапкаТаблицы|ТоварБезКодовИСкидок"); КонецЕсли; ТабДокумент.Вывести(ОбластьНомера); Если ПараметрыПечати.ВыводитьКоды Тогда ОбластьКодов.Параметры.ИмяКолонкиКодов = ПараметрыПечати.ИмяКолонкиКодов; ТабДокумент.Присоединить(ОбластьКодов); КонецЕсли; ОбластьТовар.Параметры.Товар = "Товары (работы, услуги)"; ТабДокумент.Присоединить(ОбластьТовар); ТабДокумент.Присоединить(ОбластьДанных); Если ПараметрыПечати.ЕстьСкидки Тогда ТабДокумент.Присоединить(ОбластьСкидок); КонецЕсли; ТабДокумент.Присоединить(ОбластьСуммы); ОбластьНомера = Макет.ПолучитьОбласть("Строка|НомерСтроки"); ОбластьКодов = Макет.ПолучитьОбласть("Строка|КолонкаКодов"); ОбластьДанных = Макет.ПолучитьОбласть("Строка|Данные"); ОбластьСкидок = Макет.ПолучитьОбласть("Строка|Скидка"); ОбластьСуммы = Макет.ПолучитьОбласть("Строка|Сумма"); ОбластьТовар = Макет.ПолучитьОбласть("Строка|Товар"); Если Не ПараметрыПечати.ВыводитьКоды И ПараметрыПечати.ЕстьСкидки Тогда ОбластьТовар = Макет.ПолучитьОбласть("Строка|ТоварБезКодов"); ИначеЕсли НЕ ПараметрыПечати.ЕстьСкидки И ПараметрыПечати.ВыводитьКоды Тогда ОбластьТовар = Макет.ПолучитьОбласть("Строка|ТоварБезСкидок"); ИначеЕсли НЕ ПараметрыПечати.ЕстьСкидки И НЕ ПараметрыПечати.ВыводитьКоды Тогда ОбластьТовар = Макет.ПолучитьОбласть("Строка|ТоварБезКодовИСкидок"); КонецЕсли; Для каждого ПараметрыПозиции Из ПараметрыПечати.Позиции Цикл Если не ЗначениеЗаполнено(ПараметрыПозиции.Номенклатура) Тогда Сообщить("В одной из строк не заполнено значение номенклатуры - строка при печати пропущена.", СтатусСообщения.Важное); Продолжить; КонецЕсли; ОбластьНомера.Параметры.Заполнить(ПараметрыПозиции); ТабДокумент.Вывести(ОбластьНомера); Если ПараметрыПечати.ВыводитьКоды Тогда ОбластьКодов.Параметры.Заполнить(ПараметрыПозиции); ТабДокумент.Присоединить(ОбластьКодов); КонецЕсли; ОбластьТовар.Параметры.Заполнить(ПараметрыПозиции); ТабДокумент.Присоединить(ОбластьТовар); ОбластьДанных.Параметры.Заполнить(ПараметрыПозиции); ТабДокумент.Присоединить(ОбластьДанных); Если ПараметрыПечати.ЕстьСкидки Тогда ОбластьСкидок.Параметры.Заполнить(ПараметрыПозиции); ТабДокумент.Присоединить(ОбластьСкидок); КонецЕсли; ОбластьСуммы.Параметры.Заполнить(ПараметрыПозиции); ТабДокумент.Присоединить(ОбластьСуммы); КонецЦикла; // Вывести Итого ОбластьНомера = Макет.ПолучитьОбласть("Итого|НомерСтроки"); ОбластьКодов = Макет.ПолучитьОбласть("Итого|КолонкаКодов"); ОбластьДанных = Макет.ПолучитьОбласть("Итого|Данные"); ОбластьСкидок = Макет.ПолучитьОбласть("Итого|Скидка"); ОбластьСуммы = Макет.ПолучитьОбласть("Итого|Сумма"); ОбластьТовар = Макет.ПолучитьОбласть("Итого|Товар"); Если Не ПараметрыПечати.ВыводитьКоды И ПараметрыПечати.ЕстьСкидки Тогда ОбластьТовар = Макет.ПолучитьОбласть("Итого|ТоварБезКодов"); ИначеЕсли НЕ ПараметрыПечати.ЕстьСкидки И ПараметрыПечати.ВыводитьКоды Тогда ОбластьТовар = Макет.ПолучитьОбласть("Итого|ТоварБезСкидок"); ИначеЕсли НЕ ПараметрыПечати.ЕстьСкидки И НЕ ПараметрыПечати.ВыводитьКоды Тогда ОбластьТовар = Макет.ПолучитьОбласть("Итого|ТоварБезКодовИСкидок"); КонецЕсли; ТабДокумент.Вывести(ОбластьНомера); Если ПараметрыПечати.ВыводитьКоды Тогда ТабДокумент.Присоединить(ОбластьКодов); КонецЕсли; ТабДокумент.Присоединить(ОбластьТовар); ТабДокумент.Присоединить(ОбластьДанных); Если ПараметрыПечати.ЕстьСкидки Тогда ОбластьСкидок.Параметры.Заполнить(ПараметрыПечати); ТабДокумент.Присоединить(ОбластьСкидок); КонецЕсли; ОбластьСуммы.Параметры.Заполнить(ПараметрыПечати); ТабДокумент.Присоединить(ОбластьСуммы); // Вывести ИтогоНДС Если ПараметрыПечати.УчитыватьНДС Тогда ОбластьНомера = Макет.ПолучитьОбласть("ИтогоНДС|НомерСтроки"); ОбластьКодов = Макет.ПолучитьОбласть("ИтогоНДС|КолонкаКодов"); ОбластьДанных = Макет.ПолучитьОбласть("ИтогоНДС|Данные"); ОбластьСкидок = Макет.ПолучитьОбласть("ИтогоНДС|Скидка"); ОбластьСуммы = Макет.ПолучитьОбласть("ИтогоНДС|Сумма"); ОбластьТовар = Макет.ПолучитьОбласть("ИтогоНДС|Товар"); Если Не ПараметрыПечати.ВыводитьКоды И ПараметрыПечати.ЕстьСкидки Тогда ОбластьТовар = Макет.ПолучитьОбласть("ИтогоНДС|ТоварБезКодов"); ИначеЕсли НЕ ПараметрыПечати.ЕстьСкидки И ПараметрыПечати.ВыводитьКоды Тогда ОбластьТовар = Макет.ПолучитьОбласть("ИтогоНДС|ТоварБезСкидок"); ИначеЕсли НЕ ПараметрыПечати.ЕстьСкидки И НЕ ПараметрыПечати.ВыводитьКоды Тогда ОбластьТовар = Макет.ПолучитьОбласть("ИтогоНДС|ТоварБезКодовИСкидок"); КонецЕсли; ТабДокумент.Вывести(ОбластьНомера); Если ПараметрыПечати.ВыводитьКоды Тогда ТабДокумент.Присоединить(ОбластьКодов); КонецЕсли; ОбластьТовар.Параметры.Заполнить(ПараметрыПечати); ТабДокумент.Присоединить(ОбластьТовар); ОбластьДанных.Параметры.Заполнить(ПараметрыПечати); ТабДокумент.Присоединить(ОбластьДанных); Если ПараметрыПечати.ЕстьСкидки Тогда ТабДокумент.Присоединить(ОбластьСкидок); КонецЕсли; ОбластьСуммы.Параметры.Заполнить(ПараметрыПечати); ТабДокумент.Присоединить(ОбластьСуммы); ОбластьНомера = Макет.ПолучитьОбласть("ВсегоКОплате|НомерСтроки"); ОбластьКодов = Макет.ПолучитьОбласть("ВсегоКОплате|КолонкаКодов"); ОбластьДанных = Макет.ПолучитьОбласть("ВсегоКОплате|Данные"); ОбластьСкидок = Макет.ПолучитьОбласть("ВсегоКОплате|Скидка"); ОбластьСуммы = Макет.ПолучитьОбласть("ВсегоКОплате|Сумма"); ОбластьТовар = Макет.ПолучитьОбласть("ВсегоКОплате|Товар"); Если Не ПараметрыПечати.ВыводитьКоды И ПараметрыПечати.ЕстьСкидки Тогда ОбластьТовар = Макет.ПолучитьОбласть("ВсегоКОплате|ТоварБезКодов"); ИначеЕсли НЕ ПараметрыПечати.ЕстьСкидки И ПараметрыПечати.ВыводитьКоды Тогда ОбластьТовар = Макет.ПолучитьОбласть("ВсегоКОплате|ТоварБезСкидок"); ИначеЕсли НЕ ПараметрыПечати.ЕстьСкидки И НЕ ПараметрыПечати.ВыводитьКоды Тогда ОбластьТовар = Макет.ПолучитьОбласть("ВсегоКОплате|ТоварБезКодовИСкидок"); КонецЕсли; ТабДокумент.Вывести(ОбластьНомера); Если ПараметрыПечати.ВыводитьКоды Тогда ТабДокумент.Присоединить(ОбластьКодов); КонецЕсли; ОбластьТовар.Параметры.Заполнить(ПараметрыПечати); ТабДокумент.Присоединить(ОбластьТовар); ОбластьДанных.Параметры.Заполнить(ПараметрыПечати); ТабДокумент.Присоединить(ОбластьДанных); Если ПараметрыПечати.ЕстьСкидки Тогда ТабДокумент.Присоединить(ОбластьСкидок); КонецЕсли; ОбластьСуммы.Параметры.Заполнить(ПараметрыПечати); ТабДокумент.Присоединить(ОбластьСуммы); КонецЕсли; // Вывести Сумму прописью ОбластьМакета = Макет.ПолучитьОбласть("СуммаПрописью"); ОбластьМакета.Параметры.Заполнить(ПараметрыПечати); ТабДокумент.Вывести(ОбластьМакета); // Вывести подписи Если Тип = "Счет" Тогда ОбластьМакета = Макет.ПолучитьОбласть("ПодвалСчета"); Иначе ОбластьМакета = Макет.ПолучитьОбласть("ПодвалЗаказа"); КонецЕсли; ОбластьМакета.Параметры.Заполнить(ПараметрыПечати); ТабДокумент.Вывести(ОбластьМакета); Возврат ТабДокумент; КонецФункции // ПечатьАктаОбОказанииУслуг() // Функция помещает в структуру все данные, отображаемые при печати документа. // Вызывается из функции ПечатьСчетаЗаказа и из веб-приложения // // Параметры: // Тип - строка, содержит тип печатаемого документа (счет или заказ) // // Возвращаемое значение: // Структура // Функция ПолучитьПараметрыПечатиСчетаЗаказа(Тип) ПараметрыПечати = Новый Структура; Позиции = Новый Массив; Запрос = Новый Запрос; Запрос.УстановитьПараметр("ТекущийДокумент", ЭтотОбъект.Ссылка); Запрос.УстановитьПараметр("ПустойКонтрагент", Справочники.Контрагенты.ПустаяСсылка()); Запрос.Текст =" |ВЫБРАТЬ | Номер, | Дата, | ДоговорКонтрагента, | Организация, | Контрагент КАК Получатель, | ДоговорКонтрагента КАК ДоговорКонтрагента, | ВЫБОР КОГДА Грузоотправитель = &ПустойКонтрагент | ТОГДА Организация | ИНАЧЕ Грузоотправитель КОНЕЦ КАК Грузоотправитель, | ВЫБОР КОГДА Грузополучатель = &ПустойКонтрагент | ТОГДА Контрагент | ИНАЧЕ Грузополучатель КОНЕЦ КАК Грузополучатель, | Организация КАК Руководители, | Организация КАК Поставщик, | СуммаДокумента, | ВалютаДокумента, | УчитыватьНДС, | СуммаВключаетНДС |ИЗ | Документ.СчетНаОплатуПокупателю КАК СчетНаОплатуПокупателю | |ГДЕ | СчетНаОплатуПокупателю.Ссылка = &ТекущийДокумент"; Шапка = Запрос.Выполнить().Выбрать(); Шапка.Следующий(); СтрокаВыборкиПоляСодержания = ОбработкаТабличныхЧастей.ПолучитьЧастьЗапросаДляВыбораСодержания("СчетНаОплату"); Запрос = Новый Запрос; Запрос.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект); Запрос.Текст = "ВЫБРАТЬ | ВложенныйЗапрос.Номенклатура, | ВЫРАЗИТЬ (ВложенныйЗапрос.Номенклатура.НаименованиеПолное КАК Строка(1000)) КАК НаименованиеПолное, | ВложенныйЗапрос.Номенклатура.Код КАК Код, | ВложенныйЗапрос.Номенклатура.Артикул КАК Артикул, | ВложенныйЗапрос.Количество, | ВложенныйЗапрос.ЕдиницаИзмерения.Представление КАК ЕдиницаИзмерения, | ВложенныйЗапрос.ПроцентСкидкиНаценки | + ВложенныйЗапрос.ПроцентАвтоматическихСкидок КАК Скидка, | ВложенныйЗапрос.Цена, | ВложенныйЗапрос.Сумма, | ВложенныйЗапрос.СуммаНДС, | ВложенныйЗапрос.Характеристика, | NULL КАК Серия, | ВложенныйЗапрос.НомерСтроки КАК НомерСтроки, | ВложенныйЗапрос.Метка КАК Метка |ИЗ | (ВЫБРАТЬ | СчетНаОплату.Номенклатура КАК Номенклатура, | СчетНаОплату.ЕдиницаИзмерения КАК ЕдиницаИзмерения, | СчетНаОплату.ПроцентСкидкиНаценки КАК ПроцентСкидкиНаценки, | СчетНаОплату.ПроцентАвтоматическихСкидок КАК ПроцентАвтоматическихСкидок, | СчетНаОплату.Цена КАК Цена, | СУММА(СчетНаОплату.Количество) КАК Количество, | СУММА(СчетНаОплату.Сумма) КАК Сумма, | СУММА(СчетНаОплату.СуммаНДС) КАК СуммаНДС, | СчетНаОплату.ХарактеристикаНоменклатуры КАК Характеристика, | МИНИМУМ(СчетНаОплату.НомерСтроки) КАК НомерСтроки, | 0 КАК Метка | ИЗ | Документ.СчетНаОплатуПокупателю.Товары КАК СчетНаОплату | | ГДЕ | СчетНаОплату.Ссылка = &ТекущийДокумент | | СГРУППИРОВАТЬ ПО | СчетНаОплату.Номенклатура, | СчетНаОплату.ЕдиницаИзмерения, | СчетНаОплату.ПроцентСкидкиНаценки, | СчетНаОплату.ПроцентАвтоматическихСкидок, | СчетНаОплату.Цена, | СчетНаОплату.ХарактеристикаНоменклатуры | ) КАК ВложенныйЗапрос | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | СчетНаОплату.Номенклатура, | Минимум(" + СтрокаВыборкиПоляСодержания + ") КАК Товар, | СчетНаОплату.Номенклатура.Код КАК Код, | СчетНаОплату.Номенклатура.Артикул КАК Артикул, | Сумма(СчетНаОплату.Количество), | СчетНаОплату.Номенклатура.ЕдиницаХраненияОстатков, | СчетНаОплату.ПроцентСкидкиНаценки + СчетНаОплату.ПроцентАвтоматическихСкидок, | СчетНаОплату.Цена, | Сумма(СчетНаОплату.Сумма), | Сумма(СчетНаОплату.СуммаНДС), | NULL, | NULL, | Минимум(СчетНаОплату.НомерСтроки), | 1 |ИЗ | Документ.СчетНаОплатуПокупателю.Услуги КАК СчетНаОплату | |ГДЕ | СчетНаОплату.Ссылка = &ТекущийДокумент | СГРУППИРОВАТЬ ПО | СчетНаОплату.Номенклатура, | СчетНаОплату.ПроцентСкидкиНаценки, | СчетНаОплату.ПроцентАвтоматическихСкидок, | СчетНаОплату.Цена | |УПОРЯДОЧИТЬ ПО | Метка, | НомерСтроки"; ЗапросТовары = Запрос.Выполнить().Выгрузить(); // Выводим шапку накладной ПараметрыПечати.Вставить("УчитыватьНДС", Шапка.УчитыватьНДС); ПараметрыПечати.Вставить("ДоговорКонтрагента", Шапка.ДоговорКонтрагента); СведенияОПоставщике = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Поставщик, Шапка.Дата); Если Тип = "Счет" Тогда ПараметрыПечати.Вставить("ИНН", СведенияОПоставщике.ИНН); ПараметрыПечати.Вставить("КПП", СведенияОПоставщике.КПП); ПредставлениеПоставщикаДляПлатПоручения = ""; Если ТипЗнч(СсылкаНаОбъект.СтруктурнаяЕдиница) = Тип("СправочникСсылка.БанковскиеСчета") Тогда Банк = ?(не ЗначениеЗаполнено(СсылкаНаОбъект.СтруктурнаяЕдиница.БанкДляРасчетов), СсылкаНаОбъект.СтруктурнаяЕдиница.Банк, СсылкаНаОбъект.СтруктурнаяЕдиница.БанкДляРасчетов); БИК = Банк.Код; КоррСчет = Банк.КоррСчет; ГородБанка = Банк.Город; НомерСчета = СсылкаНаОбъект.СтруктурнаяЕдиница.НомерСчета; ПараметрыПечати.Вставить("БИКБанкаПолучателя", БИК); ПараметрыПечати.Вставить("БанкПолучателя", Банк); ПараметрыПечати.Вставить("БанкПолучателяПредставление", СокрЛП(Банк) + " " + ГородБанка); ПараметрыПечати.Вставить("СчетБанкаПолучателя", КоррСчет); ПараметрыПечати.Вставить("СчетБанкаПолучателяПредставление", КоррСчет); ПараметрыПечати.Вставить("СчетПолучателяПредставление", НомерСчета); ПараметрыПечати.Вставить("СчетПолучателя", НомерСчета); ПредставлениеПоставщикаДляПлатПоручения = СсылкаНаОбъект.СтруктурнаяЕдиница.ТекстКорреспондента; КонецЕсли; Если ПустаяСтрока(ПредставлениеПоставщикаДляПлатПоручения) Тогда ПредставлениеПоставщикаДляПлатПоручения = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПоставщике, "ПолноеНаименование,"); КонецЕсли; ПараметрыПечати.Вставить("ПредставлениеПоставщикаДляПлатПоручения", ПредставлениеПоставщикаДляПлатПоручения); КонецЕсли; ПараметрыПечати.Вставить("ТекстЗаголовка", ОбщегоНазначения.СформироватьЗаголовокДокумента(Шапка, "Счет на оплату")); ПараметрыПечати.Вставить("ТекстПоставщик", ?(Тип = "Счет", "Поставщик:", "Исполнитель:")); ПараметрыПечати.Вставить("ПредставлениеПоставщика", ФормированиеПечатныхФорм.ОписаниеОрганизации(УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Организация, Шапка.Дата), "ПолноеНаименование,ИНН,КПП,ЮридическийАдрес,Телефоны,")); Если Шапка.Организация = Шапка.Грузоотправитель Тогда ПараметрыПечати.Вставить("ПредставлениеГрузоотправителя", ФормированиеПечатныхФорм.ОписаниеОрганизации(УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Организация, Шапка.Дата), "ПолноеНаименование,ИНН,КПП,ЮридическийАдрес,Телефоны,")); Иначе ПараметрыПечати.Вставить("ПредставлениеГрузоотправителя", ФормированиеПечатныхФорм.ОписаниеОрганизации(УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Грузоотправитель, Шапка.Дата), "ПолноеНаименование,ИНН,КПП,ФактическийАдрес,Телефоны,")); КонецЕсли; СведенияОПолучателе = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Получатель, Шапка.Дата); ПараметрыПечати.Вставить("ТекстПокупатель", ?(Тип = "Счет", "Покупатель:", "Заказчик:")); ПараметрыПечати.Вставить("ПредставлениеПолучателя", ФормированиеПечатныхФорм.ОписаниеОрганизации(УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Получатель, Шапка.Дата), "ПолноеНаименование,ИНН,КПП,ЮридическийАдрес,Телефоны,")); ПараметрыПечати.Вставить("ПредставлениеГрузополучателя", ФормированиеПечатныхФорм.ОписаниеОрганизации(УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Грузополучатель, Шапка.Дата), "ПолноеНаименование,ИНН,КПП,ФактическийАдрес,Телефоны,")); ПараметрыПечати.Вставить("ЕстьСкидки", Ложь); Для каждого ВыборкаСтрокТовары Из ЗапросТовары Цикл Если ЗначениеЗаполнено(ВыборкаСтрокТовары.Скидка) Тогда ПараметрыПечати.ЕстьСкидки = Истина; Прервать; КонецЕсли; КонецЦикла; ДопКолонка = Константы.ДополнительнаяКолонкаПечатныхФормДокументов.Получить(); ПараметрыПечати.Вставить("ВыводитьКоды", Ложь); Если ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Артикул Тогда ПараметрыПечати.ВыводитьКоды = Истина; Колонка = "Артикул"; ИначеЕсли ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Код Тогда ПараметрыПечати.ВыводитьКоды = Истина; Колонка = "Код"; КонецЕсли; Если ПараметрыПечати.ВыводитьКоды Тогда ПараметрыПечати.Вставить("ИмяКолонкиКодов", Колонка); КонецЕсли; Сумма = 0; СуммаНДС = 0; ВсегоСкидок = 0; ВсегоБезСкидок = 0; Для каждого ВыборкаСтрокТовары Из ЗапросТовары Цикл ПараметрыПозиции = Новый Структура; ПараметрыПозиции.Вставить("Номенклатура", ВыборкаСтрокТовары.Номенклатура); ПараметрыПозиции.Вставить("НомерСтроки", ЗапросТовары.Индекс(ВыборкаСтрокТовары) + 1); Если ПараметрыПечати.ВыводитьКоды Тогда Если Колонка = "Артикул" Тогда ПараметрыПозиции.Вставить("Артикул", ВыборкаСтрокТовары.Артикул); Иначе ПараметрыПозиции.Вставить("Артикул", ВыборкаСтрокТовары.Код); КонецЕсли; КонецЕсли; ПараметрыПозиции.Вставить("Количество", ВыборкаСтрокТовары.Количество); ПараметрыПозиции.Вставить("ЕдиницаИзмерения", ВыборкаСтрокТовары.ЕдиницаИзмерения); ПараметрыПозиции.Вставить("Цена", ВыборкаСтрокТовары.Цена); ПараметрыПозиции.Вставить("Товар", СокрП(ВыборкаСтрокТовары.НаименованиеПолное) + ФормированиеПечатныхФорм.ПредставлениеСерий(ВыборкаСтрокТовары)); Скидка = Ценообразование.ПолучитьСуммуСкидки(ВыборкаСтрокТовары.Сумма, ВыборкаСтрокТовары.Скидка); Если ПараметрыПечати.ЕстьСкидки Тогда ПараметрыПозиции.Вставить("Скидка", Скидка); ПараметрыПозиции.Вставить("СуммаБезСкидки", ВыборкаСтрокТовары.Сумма + Скидка); КонецЕсли; ПараметрыПозиции.Вставить("Сумма", ВыборкаСтрокТовары.Сумма); Сумма = Сумма + ВыборкаСтрокТовары.Сумма; СуммаНДС = СуммаНДС + ВыборкаСтрокТовары.СуммаНДС; ВсегоСкидок = ВсегоСкидок + Скидка; ВсегоБезСкидок = Сумма + ВсегоСкидок; #Если ВнешнееСоединение Тогда WEBПриложения.ПодготовитьСтруктуруДляВнешнегоСоединения(ПараметрыПозиции); #КонецЕсли Позиции.Добавить(ПараметрыПозиции); КонецЦикла; ПараметрыПечати.Вставить("Позиции", Позиции); // Вывести Итого Если ПараметрыПечати.ЕстьСкидки Тогда ПараметрыПечати.Вставить("ВсегоСкидок", ВсегоСкидок); ПараметрыПечати.Вставить("ВсегоБезСкидок", ВсегоБезСкидок); КонецЕсли; ПараметрыПечати.Вставить("Всего", ОбщегоНазначения.ФорматСумм(Сумма)); // Вывести ИтогоНДС Если ПараметрыПечати.УчитыватьНДС Тогда ПараметрыПечати.Вставить("НДС", ?(Шапка.СуммаВключаетНДС, "В том числе НДС:", "Сумма НДС:")); ПараметрыПечати.Вставить("ВсегоНДС", ОбщегоНазначения.ФорматСумм(ЗапросТовары.Итог("СуммаНДС"))); ПараметрыПечати.Вставить("ВсегоКОплате", ОбщегоНазначения.ФорматСумм(Сумма + ?(Шапка.СуммаВключаетНДС, 0, СуммаНДС))); КонецЕсли; // Вывести Сумму прописью СуммаКПрописи = Сумма + ?(Шапка.СуммаВключаетНДС, 0, СуммаНДС); ПараметрыПечати.Вставить("ИтоговаяСтрока", "Всего наименований " + ЗапросТовары.Количество() + ", на сумму " + ОбщегоНазначения.ФорматСумм(СуммаКПрописи, Шапка.ВалютаДокумента)); ПараметрыПечати.Вставить("СуммаПрописью", ОбщегоНазначения.СформироватьСуммуПрописью(СуммаКПрописи, Шапка.ВалютаДокумента)); // Вывести подписи Если Тип = "Счет" Тогда Руководители = РегламентированнаяОтчетность.ОтветственныеЛицаОрганизации(Шапка.Руководители, Шапка.Дата,); Руководитель = Руководители.Руководитель; ДолжностьРуководителя = Руководители.РуководительДолжность; Бухгалтер = Руководители.ГлавныйБухгалтер; ПараметрыПечати.Вставить("ФИОРуководителя", Руководитель); ПараметрыПечати.Вставить("ДолжностьРуководителя", ДолжностьРуководителя); ПараметрыПечати.Вставить("ФИОБухгалтера", Бухгалтер); ПараметрыПечати.Вставить("ФИОИсполнителя", СсылкаНаОбъект.Ответственный); Если НЕ ЗначениеЗаполнено(СсылкаНаОбъект.Ответственный.ФизЛицо) Тогда ФИООтветственный = СокрЛП(СсылкаНаОбъект.Ответственный); Иначе ФамилияИмяОтчествоФизЛица = ФормированиеПечатныхФорм.ФамилияИмяОтчество(СсылкаНаОбъект.Ответственный.ФизЛицо, Шапка.Дата); ФамилияИмяОтчествоОтветственного = ФамилияИмяОтчествоФизЛица.Фамилия + " " + ФамилияИмяОтчествоФизЛица.Имя + " " + ФамилияИмяОтчествоФизЛица.Отчество; ФИООтветственный = ОбщегоНазначения.ФамилияИнициалыФизЛица(ФамилияИмяОтчествоОтветственного); КонецЕсли; ПараметрыПечати.Вставить("ФИООтветственный", ФИООтветственный); КонецЕсли; #Если ВнешнееСоединение Тогда WEBПриложения.ПодготовитьСтруктуруДляВнешнегоСоединения(ПараметрыПечати); #КонецЕсли Возврат ПараметрыПечати; КонецФункции //ПолучитьПараметрыПечатиСчетаЗаказа() |
|||
|
1
Лефмихалыч
07.07.11
✎
21:31
|
номер строки в этой омерзительной простыне который смотреть?
|
|||
|
2
PR
07.07.11
✎
21:31
|
Спасибо Асмодею за то, что избавил нас от портянок :))
(0) Может все-таки СсылкаНаОбъект, а не ЭтотОбъект.Ссылка? |
|||
|
3
mehfk
07.07.11
✎
21:34
|
(2) опередил. Курить реквизиты.
|
|||
|
4
tip22
07.07.11
✎
21:45
|
поправил , дальше это вылетело
Не удалось сформировать внешнюю печатную форму! Ошибка при вызове метода контекста (ПолучитьОбщийМакет): Недопустимое значение параметра (параметр номер '1') |
|||
|
5
PR
07.07.11
✎
21:47
|
(4) Так может почитать правила создания подключаемых внешних печатных форм?
|
|||
|
6
Лефмихалыч
07.07.11
✎
21:47
|
(4) ты снес обновлением этот общий макет
|
|||
|
7
Лефмихалыч
07.07.11
✎
21:48
|
вообще, гениальный креатив - для того, чтобы работала внешняя печатная форма чуток творчески переработать механизм внешних печ.форм, чтобы СсылкаНаОбъект стала просто ссылкой и еще добавить общий макет.
Это как голову под фуражку подгонять... |
|||
|
8
tip22
07.07.11
✎
21:51
|
спасибо , скачал обработку проверку внешних печатных форм всё поправил , туплю , всем спасибо !!!
|
|||
|
9
Поручик
08.07.11
✎
00:38
|
(0) 22 в нике что означают?
|
|||
|
10
Лефмихалыч
08.07.11
✎
00:43
|
(9) либо 21 ник уже занят, либо пока подобрал почтовый сервис, на который таки пришло письмо с паролем... :)
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |