![]() |
|
Недостаточно фактических параметров | ☑ | ||
---|---|---|---|---|
0
Ekaterina88
22.01.19
✎
12:48
|
Подобных тем на форуме достаточно, понимаю, что неверное количество параметров,
но как их подогнать не понимаю, уже сутки бъюсь и не получается исправить ошибку, я новичок. Написала внешнюю печатную форму счета: ,,, Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт ПараметрыВывода.ДоступнаПечатьПоКомплектно = Истина; Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "СчетНаОплатуВнешний") Тогда ТаблицаСведенийСчетНаОплату = ПолучитьТаблицуСведенийСчетаНаОплату(МассивОбъектов); УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "СчетНаОплатуВнешний", "Счет на оплату", ПечатьСчетаНаОплату(ПараметрыПечати.Организация, ОбъектыПечати, "ПФ_MXL_СчетЗаказ1")); //удалено ПечатьТорговыхДокументов. ЗаполнитьПараметрыЭлектроннойПочты = Ложь; КонецЕсли; ОбщегоНазначенияБП.ЗаполнитьДополнительныеПараметрыПечати(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода); КонецПроцедуры ,,, Ошибка такая: {ОбщийМодуль.УправлениеПечатью.Модуль(1510)}: Недостаточно фактических параметров ВнешняяОбработкаОбъект.Печать( В общем модуле УправлениеПечатью выглядит так: ,,,, ВнешняяОбработкаОбъект.Печать( ПараметрыИсточника.ОбъектыНазначения, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода); ,,,, Как ее исправить? Что ещё добавить, что бы заработало? ниже полный код внеш. печатной формы: Функция СведенияОВнешнейОбработке () экспорт ПараметрыРегистрации = Новый Структура; ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма"); ПараметрыРегистрации.Вставить("Назначение",ПолучитьНазначениеОбработки()); ПараметрыРегистрации.Вставить("Наименование", "Счет на оплату ВНЕШНИЙ"); ПараметрыРегистрации.Вставить("Версия", "1.0"); ПараметрыРегистрации.Вставить("Информация", "Счет на оплату (внешняя печатная форма)"); ПараметрыРегистрации.Вставить("БезопасныйРежим",Истина); Команды = ПолучитьТаблицуКоманд(); ДобавитьКоманду(Команды,"Счет на оплату (внешняя печатная форма)", "СчетНаОплатуВнешний", "ВызовСерверногоМетода", Ложь, "ПечатьMXL"); ПараметрыРегистрации.Вставить("Команды",Команды); Возврат ПараметрыРегистрации; КонецФункции Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт ПараметрыВывода.ДоступнаПечатьПоКомплектно = Истина; Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "СчетНаОплатуВнешний") Тогда ТаблицаСведенийСчетНаОплату = ПолучитьТаблицуСведенийСчетаНаОплату(МассивОбъектов); УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "СчетНаОплатуВнешний", "Счет на оплату", ПечатьСчетаНаОплату(ПараметрыПечати.Организация, ОбъектыПечати, "ПФ_MXL_СчетЗаказ1")); //удалено ПечатьТорговыхДокументов. ЗаполнитьПараметрыЭлектроннойПочты = Ложь; КонецЕсли; ОбщегоНазначенияБП.ЗаполнитьДополнительныеПараметрыПечати(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода); КонецПроцедуры Функция ПолучитьТаблицуСведенийСчетаНаОплату(Знач МассивДокументов) //ЭкспортДокументыБезСчетовНаОплату = Неопределено УстановитьПривилегированныйРежим(Истина); ТаблицаСведений = ПечатьТорговыхДокументов.ПолучитьОписаниеСчетаНаОплату(); Запрос = Новый Запрос; Запрос.УстановитьПараметр("МассивДокументов", МассивДокументов); Запрос.УстановитьПараметр("ДополнительнаяКолонкаПечатныхФормДокументов", Константы.ДополнительнаяКолонкаПечатныхФормДокументов.Получить()); Запрос.Текст = ПолучитьТекстЗапросаДляФормированияТаблицыСведенийСчетаНаОплату(); РезультатЗапроса = Запрос.ВыполнитьПакет(); Выборка = РезультатЗапроса[1].Выбрать(); СтрокиДокументов = РезультатЗапроса[2].Выгрузить(); СтрокиДокументов.Индексы.Добавить("Документ"); Пока Выборка.Следующий() Цикл СведенияОДокументе = ТаблицаСведений.Добавить(); ЗаполнитьЗначенияСвойств(СведенияОДокументе, Выборка); ТаблицаДокумента = ПечатьТорговыхДокументов.ПолучитьОписаниеТаблицыСчетаНаОплату(); Отбор = Новый Структура("Документ", Выборка.Документ); СтрокиДокумента = СтрокиДокументов.НайтиСтроки(Отбор); Для Каждого Строка Из СтрокиДокумента Цикл СтрокаТаблицыДокумента = ТаблицаДокумента.Добавить(); ЗаполнитьЗначенияСвойств(СтрокаТаблицыДокумента, Строка); КонецЦикла; СведенияОДокументе.ТаблицаДокумента = ТаблицаДокумента; ПорядокЗаполнения = Новый Структура("ЗаполнятьРуководителя, ЗаполнятьГлавногоБухгалтера"); ПечатьТорговыхДокументов.ЗаполнитьДанныеОтветственныхЛиц(СведенияОДокументе, ПорядокЗаполнения); Если НЕ ЗначениеЗаполнено(СведенияОДокументе.РуководительДолжностьНаименование) Тогда Если ОбщегоНазначения.ЗначениеРеквизитаОбъекта(СведенияОДокументе.Получатель, "ЮридическоеФизическоеЛицо") = Перечисления.ЮридическоеФизическоеЛицо.ФизическоеЛицо Тогда СведенияОДокументе.РуководительДолжностьНаименование = "Индивидуальный предприниматель"; КонецЕсли; КонецЕсли; КонецЦикла; Возврат ТаблицаСведений; КонецФункции Функция ПолучитьТекстЗапросаДляФормированияТаблицыСведенийСчетаНаОплату() ЧастьЗапросаДляВыбораСодержанияУслуг = ОбщегоНазначенияБПВызовСервера.ПолучитьЧастьЗапросаДляВыбораСодержанияУслуг("СчетНаОплату"); ТекстЗапроса = "ВЫБРАТЬ | СчетНаОплату.Ссылка КАК Ссылка, | СчетНаОплату.Дата КАК ДатаДокумента, | СчетНаОплату.СуммаВключаетНДС КАК СуммаВключаетНДС |ПОМЕСТИТЬ ДокументыДляПечати |ИЗ | Документ.СчетНаОплатуПокупателю КАК СчетНаОплату |ГДЕ | СчетНаОплату.Ссылка В(&МассивДокументов) | |ИНДЕКСИРОВАТЬ ПО | Ссылка |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | СчетНаОплату.Ссылка КАК Документ, | СчетНаОплату.Дата КАК ДатаДляПолученияСведений, | ДанныеПервичныхДокументов.Номер КАК НомерДокумента, | ДанныеПервичныхДокументов.Дата КАК ДатаДокумента, | СчетНаОплату.ВалютаДокумента КАК Валюта, | СчетНаОплату.ВалютаДокумента.Код КАК ВалютаКод, | СчетНаОплату.ВалютаДокумента.Наименование КАК ВалютаНаименование, | СчетНаОплату.СуммаДокумента КАК СуммаДокумента, | СчетНаОплату.КратностьВзаиморасчетов КАК КратностьВзаиморасчетов, | СчетНаОплату.КурсВзаиморасчетов КАК КурсВзаиморасчетов, | СчетНаОплату.СуммаВключаетНДС КАК СуммаВключаетНДС, | СчетНаОплату.Организация КАК Организация, | СчетНаОплату.ПодразделениеОрганизации КАК Подразделение, | СчетНаОплату.Организация КАК Поставщик, | СчетНаОплату.Организация КАК Руководители, | СчетНаОплату.ОрганизацияПолучатель КАК Получатель, | СчетНаОплату.Контрагент КАК Покупатель, | СчетНаОплату.ДоговорКонтрагента КАК ДоговорКонтрагента, | СчетНаОплату.ДоговорКонтрагента.Номер КАК НомерДоговора, | СчетНаОплату.ДоговорКонтрагента.ГосударственныйКонтракт.Код КАК ГосударственныйКонтракт, | СчетНаОплату.ДоговорКонтрагента.Дата КАК ДатаДоговора, | СчетНаОплату.ДоговорКонтрагента.Руководитель КАК ФИОИсполнителя, | СчетНаОплату.ДоговорКонтрагента.ДолжностьРуководителя КАК ДолжностьИсполнителя, | СчетНаОплату.ДоговорКонтрагента.РуководительКонтрагента КАК ФИОЗаказчика, | СчетНаОплату.ДоговорКонтрагента.ДолжностьРуководителяКонтрагента КАК ДолжностьЗаказчика, | СчетНаОплату.ДоговорКонтрагента.УчетАгентскогоНДСПокупателем КАК НДСИсчисляетсяНалоговымАгентом, | СчетНаОплату.СтруктурнаяЕдиница КАК БанковскийСчетПродавца, | СчетНаОплату.СтруктурнаяЕдиница.ТекстКорреспондента КАК ТекстКорреспондента, | СчетНаОплату.СтруктурнаяЕдиница.БанкДляРасчетов КАК БанкДляРасчетов, | СчетНаОплату.Руководитель КАК Руководитель, | СчетНаОплату.ГлавныйБухгалтер КАК ГлавныйБухгалтер, | СчетНаОплату.ЗаРуководителяНаОсновании КАК ЗаРуководителяНаОсновании, | СчетНаОплату.ЗаГлавногоБухгалтераНаОсновании КАК ЗаГлавногоБухгалтераНаОсновании, | ВЫБОР | КОГДА СчетНаОплату.СтруктурнаяЕдиница.БанкДляРасчетов <> ЗНАЧЕНИЕ(Справочник.Банки.ПустаяСсылка) | ТОГДА СчетНаОплату.СтруктурнаяЕдиница.БанкДляРасчетов.Наименование + "" "" + СчетНаОплату.СтруктурнаяЕдиница.БанкДляРасчетов.Город | ИНАЧЕ СчетНаОплату.СтруктурнаяЕдиница.Банк.Наименование + "" "" + СчетНаОплату.СтруктурнаяЕдиница.Банк.Город | КОНЕЦ КАК НаименованиеБанкаПолучателя, | ВЫБОР | КОГДА СчетНаОплату.СтруктурнаяЕдиница.БанкДляРасчетов <> ЗНАЧЕНИЕ(Справочник.Банки.ПустаяСсылка) | ТОГДА СчетНаОплату.СтруктурнаяЕдиница.БанкДляРасчетов | ИНАЧЕ СчетНаОплату.СтруктурнаяЕдиница.Банк | КОНЕЦ КАК БанкПолучателя, | ВЫБОР | КОГДА СчетНаОплату.СтруктурнаяЕдиница.БанкДляРасчетов <> ЗНАЧЕНИЕ(Справочник.Банки.ПустаяСсылка) | ТОГДА СчетНаОплату.СтруктурнаяЕдиница.БанкДляРасчетов.Код | ИНАЧЕ СчетНаОплату.СтруктурнаяЕдиница.Банк.Код | КОНЕЦ КАК БикБанкаПолучателя, | ВЫБОР | КОГДА СчетНаОплату.СтруктурнаяЕдиница.БанкДляРасчетов <> ЗНАЧЕНИЕ(Справочник.Банки.ПустаяСсылка) | ТОГДА СчетНаОплату.СтруктурнаяЕдиница.БанкДляРасчетов.КоррСчет | ИНАЧЕ СчетНаОплату.СтруктурнаяЕдиница.Банк.КоррСчет | КОНЕЦ КАК СчетБанкаПолучателя, | ВЫБОР | КОГДА СчетНаОплату.СтруктурнаяЕдиница.БанкДляРасчетов <> ЗНАЧЕНИЕ(Справочник.Банки.ПустаяСсылка) | ТОГДА СчетНаОплату.СтруктурнаяЕдиница.БанкДляРасчетов.Город | ИНАЧЕ СчетНаОплату.СтруктурнаяЕдиница.Банк.Город | КОНЕЦ КАК ГородБанкаПолучателя, | ВЫБОР | КОГДА СчетНаОплату.СтруктурнаяЕдиница.БанкДляРасчетов <> ЗНАЧЕНИЕ(Справочник.Банки.ПустаяСсылка) | ТОГДА СчетНаОплату.СтруктурнаяЕдиница.Банк.КоррСчет | ИНАЧЕ СчетНаОплату.СтруктурнаяЕдиница.НомерСчета | КОНЕЦ КАК НомерСчетаПолучателя, | ВЫБОР | КОГДА СчетНаОплату.СтруктурнаяЕдиница.БанкДляРасчетов <> ЗНАЧЕНИЕ(Справочник.Банки.ПустаяСсылка) | ТОГДА "" р/с "" + СчетНаОплату.СтруктурнаяЕдиница.НомерСчета + "" в "" + СчетНаОплату.СтруктурнаяЕдиница.Банк.Наименование + "" "" + СчетНаОплату.СтруктурнаяЕдиница.Банк.Город | КОНЕЦ КАК БанкТекстКорресподента, | СчетНаОплату.СуммаСкидки КАК СуммаСкидки, | СчетНаОплату.СтруктурнаяЕдиница.НомерСчета КАК НомерСчета, | СчетНаОплату.СтруктурнаяЕдиница.Банк.Наименование КАК БанкНаименование, | СчетНаОплату.СтруктурнаяЕдиница.Банк.Код КАК БИК, | СчетНаОплату.СтруктурнаяЕдиница.Банк.КоррСчет КАК КоррСчет, | ЕСТЬNULL(СчетНаОплату.ДополнительныеУсловия.ТекстУсловий, """") КАК ТекстДополнительныхУсловий, | ЕСТЬNULL(СрокиОплатыДокументов.СрокОплаты, ДАТАВРЕМЯ(1, 1, 1)) КАК СрокОплаты |ИЗ | Документ.СчетНаОплатуПокупателю КАК СчетНаОплату | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДанныеПервичныхДокументов КАК ДанныеПервичныхДокументов | ПО СчетНаОплату.Ссылка = ДанныеПервичныхДокументов.Документ | И СчетНаОплату.Организация = ДанныеПервичныхДокументов.Организация | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СрокиОплатыДокументов КАК СрокиОплатыДокументов | ПО СчетНаОплату.Ссылка = СрокиОплатыДокументов.Документ | И СчетНаОплату.Организация = СрокиОплатыДокументов.Организация | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ДополнительныеУсловия КАК СправочникДополнительныеУсловия | ПО СчетНаОплату.ДополнительныеУсловия = СправочникДополнительныеУсловия.Ссылка |ГДЕ | СчетНаОплату.Ссылка В | (ВЫБРАТЬ | ДокументыДляПечати.Ссылка | ИЗ | ДокументыДляПечати КАК ДокументыДляПечати) |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | СчетНаОплату.Ссылка КАК Документ, | ДокументыДляПечати.ДатаДокумента КАК ДатаДокумента, | ЗНАЧЕНИЕ(Перечисление.ТабличныеЧастиДокументов.Товары) КАК ТабличнаяЧасть, | 1 КАК ПорядокТабличнойЧасти, | СчетНаОплату.НомерСтроки КАК НомерСтроки, | СчетНаОплату.Номенклатура КАК Номенклатура, | СчетНаОплату.Номенклатура.Услуга КАК ЭтоУслуга, | ВЫБОР | КОГДА &ДополнительнаяКолонкаПечатныхФормДокументов = ЗНАЧЕНИЕ(Перечисление.ДополнительнаяКолонкаПечатныхФормДокументов.Код) | ТОГДА СчетНаОплату.Номенклатура.Код | КОГДА &ДополнительнаяКолонкаПечатныхФормДокументов = ЗНАЧЕНИЕ(Перечисление.ДополнительнаяКолонкаПечатныхФормДокументов.Артикул) | ТОГДА СчетНаОплату.Номенклатура.Артикул | ИНАЧЕ """" | КОНЕЦ КАК НоменклатураАртикул, | &ЧастьЗапросаДляВыбораСодержанияУслуг КАК НоменклатураНаименование, | &ЧастьЗапросаДляВыбораСодержанияУслуг КАК Содержание, | ЕСТЬNULL(СчетНаОплату.Номенклатура.ЕдиницаИзмерения, ЗНАЧЕНИЕ(Справочник.КлассификаторЕдиницИзмерения.ПустаяСсылка)) КАК ЕдиницаИзмерения, | ЕСТЬNULL(СчетНаОплату.Номенклатура.ЕдиницаИзмерения.Код, """") КАК ЕдиницаИзмеренияКод, | ЕСТЬNULL(СчетНаОплату.Номенклатура.ЕдиницаИзмерения.Наименование, """") КАК ЕдиницаИзмеренияНаименование, | ЕСТЬNULL(СчетНаОплату.Номенклатура.ЕдиницаИзмерения.НаименованиеПолное, """") КАК ЕдиницаИзмеренияНаименованиеПолное, | СчетНаОплату.Количество КАК Количество, | СчетНаОплату.Цена КАК Цена, | СчетНаОплату.Сумма КАК Сумма, | СчетНаОплату.СуммаСкидки КАК СуммаСкидки, | СчетНаОплату.СтавкаНДС КАК СтавкаНДС, | СчетНаОплату.СуммаНДС КАК СуммаНДС |ИЗ | Документ.СчетНаОплатуПокупателю.Товары КАК СчетНаОплату | ВНУТРЕННЕЕ СОЕДИНЕНИЕ ДокументыДляПечати КАК ДокументыДляПечати | ПО СчетНаОплату.Ссылка = ДокументыДляПечати.Ссылка | |УПОРЯДОЧИТЬ ПО | ДатаДокумента, | Документ, | ПорядокТабличнойЧасти, | НомерСтроки"; Возврат СтрЗаменить(ТекстЗапроса, "&ЧастьЗапросаДляВыбораСодержанияУслуг", ЧастьЗапросаДляВыбораСодержанияУслуг); КонецФункции Процедура ВывестиЗаголовокПредупреждение(Организация, ТабличныйДокумент, Макет) Если Не ЗначениеЗаполнено(Макет.Области.Найти("ЗаголовокПредупреждениеСЛоготипом")) И Не ЗначениеЗаполнено(Макет.Области.Найти("ЗаголовокПредупреждение")) Тогда Возврат; КонецЕсли; Если ТипЗнч(Организация) <> Тип("СправочникСсылка.Организации") Тогда Возврат; КонецЕсли; ДвоичныеДанныеКартинки = Справочники.Организации.ДвоичныеДанныеКартинкиОрганизации(Организация, "ФайлЛоготип"); Если ЗначениеЗаполнено(ДвоичныеДанныеКартинки) Тогда ОбластьМакета = Макет.ПолучитьОбласть("ЗаголовокПредупреждениеСЛоготипом"); Попытка ОбластьМакета.Рисунки.Логотип.Картинка = Новый Картинка(ДвоичныеДанныеКартинки); Исключение КонецПопытки; ТабличныйДокумент.Вывести(ОбластьМакета); Иначе ОбластьМакета = Макет.ПолучитьОбласть("ЗаголовокПредупреждение"); ТабличныйДокумент.Вывести(ОбластьМакета); КонецЕсли; КонецПроцедуры Функция ПечатьСчетаНаОплату(СведенияСчетаНаОплату, ОбъектыПечати, ПараметрыПечати) Экспорт Перем ПодразделениеОтветственныхЛиц; УстановитьПривилегированныйРежим(Истина); ТабличныйДокумент = Новый ТабличныйДокумент; ТабличныйДокумент.АвтоМасштаб = Истина; ТабличныйДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Портрет; ТабличныйДокумент.КлючПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ЗаказПокупателя_СчетЗаказ"; ДополнительнаяКолонкаПечатныхФормДокументов = Константы.ДополнительнаяКолонкаПечатныхФормДокументов.Получить(); Если НЕ ЗначениеЗаполнено(ДополнительнаяКолонкаПечатныхФормДокументов) Тогда ДополнительнаяКолонкаПечатныхФормДокументов = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.НеВыводить; КонецЕсли; ВыводитьКоды = ДополнительнаяКолонкаПечатныхФормДокументов <> Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.НеВыводить; ПервыйДокумент = Истина; Для Каждого СведенияОДокументе Из СведенияСчетаНаОплату Цикл Макет = ПолучитьМакет("ПФ_MXL_СчетЗаказ1"); Если НЕ ПервыйДокумент Тогда ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц(); КонецЕсли; ПервыйДокумент = Ложь; ЕстьСкидка = (СведенияОДокументе.ТаблицаДокумента.Итог("СуммаСкидки") <> 0) И ЗначениеЗаполнено(Макет.Области.Найти("Скидка")); // Запомним номер строки, с которой начали выводить текущий документ. НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1; // Выводим шапку счета ВывестиЗаголовокПредупреждение(СведенияОДокументе.Получатель, ТабличныйДокумент, Макет); СведенияОПолучателе = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛице(СведенияОДокументе.Получатель, СведенияОДокументе.ДатаДляПолученияСведений); // Получим логотип организации ДвоичныеДанныеКартинки = Неопределено; Если ТипЗнч(СведенияОДокументе.Получатель) = Тип("СправочникСсылка.Организации") Тогда ДвоичныеДанныеКартинки = Справочники.Организации.ДвоичныеДанныеКартинкиОрганизации(СведенияОДокументе.Получатель, "ФайлЛоготип"); КонецЕсли; Если ЗначениеЗаполнено(ДвоичныеДанныеКартинки) И ЗначениеЗаполнено(Макет.Области.Найти("ЗаголовокСчетаСЛоготипом")) Тогда ОбластьМакета = Макет.ПолучитьОбласть("ЗаголовокСчетаСЛоготипом"); Попытка ОбластьМакета.Рисунки.ЛоготипСчета.Картинка = Новый Картинка(ДвоичныеДанныеКартинки); Исключение КонецПопытки; Иначе ОбластьМакета = Макет.ПолучитьОбласть("ЗаголовокСчета"); КонецЕсли; ОбластьМакета.Параметры.Заполнить(СведенияОДокументе); ДанныеПечатиЗаголовокСчета = Новый Структура; ДанныеПечатиЗаголовокСчета.Вставить("ИННПолучателя", СведенияОПолучателе.ИНН); ДанныеПечатиЗаголовокСчета.Вставить("КПППолучателя", СведенияОПолучателе.КПП); Если ТипЗнч(СведенияОДокументе.БанковскийСчетПродавца) = Тип("СправочникСсылка.БанковскиеСчета") Тогда ДанныеПечатиЗаголовокСчета.Вставить("БИКБанкаПолучателя",СведенияОДокументе.БикБанкаПолучателя); ДанныеПечатиЗаголовокСчета.Вставить("БанкПолучателя",СведенияОДокументе.БанкПолучателя); ДанныеПечатиЗаголовокСчета.Вставить("БанкПолучателяПредставление",СокрЛП(СведенияОДокументе.НаименованиеБанкаПолучателя)); ДанныеПечатиЗаголовокСчета.Вставить("СчетБанкаПолучателя",СведенияОДокументе.СчетБанкаПолучателя); ДанныеПечатиЗаголовокСчета.Вставить("СчетБанкаПолучателяПредставление",СведенияОДокументе.СчетБанкаПолучателя); ДанныеПечатиЗаголовокСчета.Вставить("СчетПолучателяПредставление", СведенияОДокументе.НомерСчетаПолучателя); ДанныеПечатиЗаголовокСчета.Вставить("СчетПолучателя", СведенияОДокументе.НомерСчетаПолучателя); КонецЕсли; ПредставлениеПолучателя = УчетДенежныхСредствБП.СформироватьТекстНаименованияПлательщикаПолучателя(, СведенияОДокументе.Получатель, СведенияОДокументе.БанковскийСчетПродавца, , СведенияОДокументе.ДатаДляПолученияСведений); ДанныеПечатиЗаголовокСчета.Вставить("ПредставлениеПолучателя", ПредставлениеПолучателя); ОбластьМакета.Параметры.Заполнить(ДанныеПечатиЗаголовокСчета); ТабличныйДокумент.Вывести(ОбластьМакета); ОбластьМакета = Макет.ПолучитьОбласть("Заголовок"); НомерДокумента = НомерСчетаНаОплату(СведенияОДокументе.ГосударственныйКонтракт, СведенияОДокументе.НомерДокумента); ТекстЗаголовка = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='Счет на оплату № %1 от %2 г.'"), НомерДокумента, Формат(СведенияОДокументе.ДатаДокумента, "ДФ='дд ММММ гггг'")); ОбластьМакета.Параметры.Заполнить(Новый Структура("ТекстЗаголовка", ТекстЗаголовка)); ТабличныйДокумент.Вывести(ОбластьМакета); ОбластьМакета = Макет.ПолучитьОбласть("Поставщик"); ОбластьМакета.Параметры.Заполнить(СведенияОДокументе); СведенияОбОрганизации = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛице(СведенияОДокументе.Поставщик, СведенияОДокументе.ДатаДляПолученияСведений); ПредставлениеПоставщика = ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации( СведенияОбОрганизации, "НаименованиеДляПечатныхФорм,ИНН,КПП,ЮридическийАдрес,Телефоны,"); ОбластьМакета.Параметры.Заполнить(Новый Структура("ПредставлениеПоставщика", ПредставлениеПоставщика)); ТабличныйДокумент.Вывести(ОбластьМакета); ОбластьМакета = Макет.ПолучитьОбласть("Покупатель"); ОбластьМакета.Параметры.Заполнить(СведенияОДокументе); СведенияОПокупателе = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛице(СведенияОДокументе.Покупатель, СведенияОДокументе.ДатаДляПолученияСведений); ПредставлениеПокупателя = ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации( СведенияОПокупателе, "НаименованиеДляПечатныхФорм,ИНН,КПП,ЮридическийАдрес,Телефоны,"); Основание = СокрЛП(Строка(СведенияОДокументе.ДоговорКонтрагента)); ДанныеПечатиПокупатель = Новый Структура; ДанныеПечатиПокупатель.Вставить("ПредставлениеПокупателя", ПредставлениеПокупателя); ДанныеПечатиПокупатель.Вставить("Основание", Основание); ОбластьМакета.Параметры.Заполнить(ДанныеПечатиПокупатель); ТабличныйДокумент.Вывести(ОбластьМакета); ОбластьНомера = Макет.ПолучитьОбласть("ШапкаТаблицы|НомерСтроки"); ОбластьКодов = Макет.ПолучитьОбласть("ШапкаТаблицы|КолонкаКодов"); ОбластьДанных = Макет.ПолучитьОбласть("ШапкаТаблицы|Данные"); ОбластьСуммы = Макет.ПолучитьОбласть("ШапкаТаблицы|Сумма"); ТабличныйДокумент.Вывести(ОбластьНомера); Если ВыводитьКоды Тогда ДанныеПечатиКолонкиКодов = Новый Структура; Если ДополнительнаяКолонкаПечатныхФормДокументов = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Артикул Тогда ДанныеПечатиКолонкиКодов.Вставить("ИмяКолонкиКодов", "Артикул"); ИначеЕсли ДополнительнаяКолонкаПечатныхФормДокументов = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Код Тогда ДанныеПечатиКолонкиКодов.Вставить("ИмяКолонкиКодов", "Код"); КонецЕсли; ОбластьКодов.Параметры.Заполнить(ДанныеПечатиКолонкиКодов); ТабличныйДокумент.Присоединить(ОбластьКодов); КонецЕсли; ТабличныйДокумент.Присоединить(ОбластьДанных); Если ЕстьСкидка Тогда ОбластьСкидки = Макет.ПолучитьОбласть("ШапкаТаблицы|Скидка"); ТабличныйДокумент.Присоединить(ОбластьСкидки); КонецЕсли; ТабличныйДокумент.Присоединить(ОбластьСуммы); ОбластьКолонкаТовар = Макет.Область("Товар"); Если Не ВыводитьКоды Тогда ОбластьКолонкаТовар.ШиринаКолонки = ОбластьКолонкаТовар.ШиринаКолонки + Макет.Область("КолонкаКодов").ШиринаКолонки; КонецЕсли; Если Не ЕстьСкидка И ЗначениеЗаполнено(Макет.Области.Найти("Скидка")) Тогда ОбластьКолонкаТовар.ШиринаКолонки = ОбластьКолонкаТовар.ШиринаКолонки + Макет.Область("Скидка").ШиринаКолонки; КонецЕсли; ОбластьНомера = Макет.ПолучитьОбласть("Строка|НомерСтроки"); ОбластьКодов = Макет.ПолучитьОбласть("Строка|КолонкаКодов"); ОбластьДанных = Макет.ПолучитьОбласть("Строка|Данные"); ОбластьСуммы = Макет.ПолучитьОбласть("Строка|Сумма"); Сумма = 0; СуммаНДС = 0; ВсегоСкидок = 0; ВсегоБезСкидок = 0; НомерСтроки = 0; НДСИсчисляетсяНалоговымАгентом = СведенияОДокументе.НДСИсчисляетсяНалоговымАгентом = Истина И УчетНДС.ВедетсяУчетНДСПоФЗ335(СведенияОДокументе.ДатаДляПолученияСведений); Для Каждого Строка Из СведенияОДокументе.ТаблицаДокумента Цикл НомерСтроки = НомерСтроки + 1; ОбластьНомера.Параметры.Заполнить(Новый Структура("НомерСтроки", НомерСтроки)); ТабличныйДокумент.Вывести(ОбластьНомера); Если ВыводитьКоды Тогда ОбластьКодов.Параметры.Заполнить(Новый Структура("Артикул", Строка.НоменклатураАртикул)); ТабличныйДокумент.Присоединить(ОбластьКодов); КонецЕсли; ДанныеПечатиСтрокаОбластьДанных = Новый Структура; ДанныеПечатиСтрокаОбластьДанных.Вставить("Товар", СокрЛП(Строка.НоменклатураНаименование)); ДанныеПечатиСтрокаОбластьДанных.Вставить("Количество", Строка.Количество); ДанныеПечатиСтрокаОбластьДанных.Вставить("ЕдиницаИзмерения", Строка.ЕдиницаИзмеренияНаименование); ДанныеПечатиСтрокаОбластьДанных.Вставить("Цена", ОбщегоНазначенияБПВызовСервера.ФорматСумм(Строка.Цена)); ОбластьДанных.Параметры.Заполнить(ДанныеПечатиСтрокаОбластьДанных); ТабличныйДокумент.Присоединить(ОбластьДанных); Если ЕстьСкидка Тогда ОбластьСкидки = Макет.ПолучитьОбласть("Строка|Скидка"); ОбластьСкидки.Параметры.Заполнить(Новый Структура("СуммаСкидки", ОбщегоНазначенияБПВызовСервера.ФорматСумм(Строка.СуммаСкидки))); ТабличныйДокумент.Присоединить(ОбластьСкидки); КонецЕсли; ОбластьСуммы.Параметры.Заполнить(Новый Структура("Сумма", ОбщегоНазначенияБПВызовСервера.ФорматСумм(Строка.Сумма - Строка.СуммаСкидки))); ТабличныйДокумент.Присоединить(ОбластьСуммы); Сумма = Сумма + Строка.Сумма; СуммаНДС = СуммаНДС + Строка.СуммаНДС; ВсегоСкидок = ВсегоСкидок + Строка.СуммаСкидки; КонецЦикла; Если ЗначениеЗаполнено(Макет.Области.Найти("Подвал")) Тогда ОбластьПодвал = Макет.ПолучитьОбласть("Подвал"); ТабличныйДокумент.Вывести(ОбластьПодвал); КонецЕсли; Если СведенияОДокументе.СуммаСкидки <> 0 Тогда ДанныеОбъекта = Новый Структура("СуммаСкидки, СуммаВключаетНДС"); ЗаполнитьЗначенияСвойств(ДанныеОбъекта, СведенияОДокументе); ТаблицаТовары = СведенияОДокументе.ТаблицаДокумента.Скопировать(); ОбработкаТабличныхЧастей.РаспределитьСкидкуПоСтрокамТабЧасти(ТаблицаТовары, ДанныеОбъекта); Всего = Сумма + ?(СведенияОДокументе.СуммаВключаетНДС, 0, СуммаНДС); СуммаНДС = ТаблицаТовары.Итог("СуммаНДС"); Сумма = Всего - СведенияОДокументе.СуммаСкидки - ?(СведенияОДокументе.СуммаВключаетНДС, 0, СуммаНДС); Если ЗначениеЗаполнено(Макет.Области.Найти("СкидкаПоДокументу")) Тогда ОбластьСуммы = Макет.ПолучитьОбласть("СкидкаПоДокументу"); ОбластьСуммы.Параметры.Заполнить(Новый Структура("СуммаСкидки", ОбщегоНазначенияБПВызовСервера.ФорматСумм(СведенияОДокументе.СуммаСкидки))); ТабличныйДокумент.Вывести(ОбластьСуммы); КонецЕсли; ИначеЕсли ВсегоСкидок <> 0 Тогда Сумма = Сумма - ВсегоСкидок; КонецЕсли; ДанныеЗаполненияИтого = Новый Структура("Всего", ОбщегоНазначенияБПВызовСервера.ФорматСумм(Сумма)); Если НДСИсчисляетсяНалоговымАгентом Тогда НДС = УчетНДС.НадписьСтавкаНДСИсчисляетсяНалоговымАгентом(); ВсегоНДС = НСтр("ru='-'"); ИначеЕсли СуммаНДС <> 0 Тогда НДС = ?(СведенияОДокументе.СуммаВключаетНДС, НСтр("ru='В том числе НДС:'"), НСтр("ru='Сумма НДС:'")); ВсегоНДС = ОбщегоНазначенияБПВызовСервера.ФорматСумм(СуммаНДС); Иначе НДС = НСтр("ru='Без налога (НДС)'"); ВсегоНДС = НСтр("ru='-'"); КонецЕсли; ДанныеЗаполненияНДС = Новый Структура("НДС, ВсегоНДС", НДС, ВсегоНДС); СуммаКОплате = Сумма + ?(СведенияОДокументе.СуммаВключаетНДС, 0, СуммаНДС); ИтогоКОплате = ОбщегоНазначенияБПВызовСервера.ФорматСумм(СуммаКОплате); ДанныеЗаполненияИтогоКОплате = Новый Структура("ИтогоКОплате", ИтогоКОплате); Если ЗначениеЗаполнено(Макет.Области.Найти("Скидка")) Тогда ОбластьИтого = Макет.ПолучитьОбласть("Итого"); ОбластьИтого.Параметры.Заполнить(ДанныеЗаполненияИтого); ТабличныйДокумент.Вывести(ОбластьИтого); // Вывести ИтогоНДС ОбластьИтогоНДС = Макет.ПолучитьОбласть("ИтогоНДС"); ОбластьИтогоНДС.Параметры.Заполнить(ДанныеЗаполненияНДС); ТабличныйДокумент.Вывести(ОбластьИтогоНДС); // Вывести ИтогоКОплате ОбластьИтогоКОплате = Макет.ПолучитьОбласть("ИтогоКОплате"); ОбластьИтогоКОплате.Параметры.Заполнить(ДанныеЗаполненияИтогоКОплате); ТабличныйДокумент.Вывести(ОбластьИтогоКОплате); Иначе // В случае если используется пользовательский макет - используем вертикальные названия областей. ОбластьНомера = Макет.ПолучитьОбласть("Итого|НомерСтроки"); ОбластьКодов = Макет.ПолучитьОбласть("Итого|КолонкаКодов"); ОбластьДанных = Макет.ПолучитьОбласть("Итого|Данные"); ОбластьСумма = Макет.ПолучитьОбласть("Итого|Сумма"); ТабличныйДокумент.Вывести(ОбластьНомера); Если ВыводитьКоды Тогда ТабличныйДокумент.Присоединить(ОбластьКодов); КонецЕсли; ТабличныйДокумент.Присоединить(ОбластьДанных); ОбластьСумма.Параметры.Заполнить(ДанныеЗаполненияИтого); ТабличныйДокумент.Присоединить(ОбластьСумма); // Вывести ИтогоНДС ОбластьНомера = Макет.ПолучитьОбласть("ИтогоНДС|НомерСтроки"); ОбластьКодов = Макет.ПолучитьОбласть("ИтогоНДС|КолонкаКодов"); ОбластьДанных = Макет.ПолучитьОбласть("ИтогоНДС|Данные"); ОбластьСуммы = Макет.ПолучитьОбласть("ИтогоНДС|Сумма"); ТабличныйДокумент.Вывести(ОбластьНомера); Если ВыводитьКоды Тогда ТабличныйДокумент.Присоединить(ОбластьКодов); КонецЕсли; ОбластьДанных.Параметры.Заполнить(ДанныеЗаполненияНДС); ОбластьСуммы.Параметры.Заполнить(ДанныеЗаполненияНДС); ТабличныйДокумент.Присоединить(ОбластьДанных); ТабличныйДокумент.Присоединить(ОбластьСуммы); // Вывести ИтогоКОплате ОбластьНомера = Макет.ПолучитьОбласть("ИтогоКОплате|НомерСтроки"); ОбластьКодов = Макет.ПолучитьОбласть("ИтогоКОплате|КолонкаКодов"); ОбластьДанных = Макет.ПолучитьОбласть("ИтогоКОплате|Данные"); ОбластьСуммы = Макет.ПолучитьОбласть("ИтогоКОплате|Сумма"); ТабличныйДокумент.Вывести(ОбластьНомера); Если ВыводитьКоды Тогда ТабличныйДокумент.Присоединить(ОбластьКодов); КонецЕсли; ТабличныйДокумент.Присоединить(ОбластьДанных); ОбластьСуммы.Параметры.Заполнить(ДанныеЗаполненияИтогоКОплате); ТабличныйДокумент.Присоединить(ОбластьСуммы); КонецЕсли; // Вывести Сумму прописью ОбластьМакета = Макет.ПолучитьОбласть("СуммаПрописью"); ДанныеПечатиСуммаПрописью = Новый Структура("ИтоговаяСтрока, СуммаПрописью"); СуммаКПрописи = Сумма + ?(СведенияОДокументе.СуммаВключаетНДС, 0, СуммаНДС); ДанныеПечатиСуммаПрописью.ИтоговаяСтрока = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='Всего наименований %1, на сумму %2'"), НомерСтроки, ОбщегоНазначенияБПВызовСервера.ФорматСумм(СуммаКПрописи, СведенияОДокументе.Валюта)); ДанныеПечатиСуммаПрописью.СуммаПрописью = ОбщегоНазначенияБПВызовСервера.СформироватьСуммуПрописью(СуммаКПрописи, СведенияОДокументе.Валюта); ОбластьМакета.Параметры.Заполнить(ДанныеПечатиСуммаПрописью); ТабличныйДокумент.Вывести(ОбластьМакета); ДвоичныеДанныеКартинки = Неопределено; ДобавленОтступПередДопУсловиями = Ложь; // Срок оплаты Если СведенияОДокументе.СрокОплаты <> Дата(1,1,1) И ЗначениеЗаполнено(Макет.Области |
|||
1
JeHer
22.01.19
✎
12:57
|
Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
Тут лишний параметр. |
|||
2
JeHer
22.01.19
✎
12:57
|
ВнешняяОбработкаОбъект.Печать(ПараметрыИсточника.ОбъектыНазначения, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);
Для сравнения. |
|||
3
Ekaterina88
22.01.19
✎
13:01
|
Да, но если какой то параметр убрать, ругается, что не найден. Пробовала убирать все.
|
|||
4
JeHer
22.01.19
✎
13:05
|
1. Процедура Печать(ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
2. ТаблицаСведенийСчетНаОплату = ПолучитьТаблицуСведенийСчетаНаОплату(ОбъектыПечати); Плохо видно, но так попробуй. Эти строки-то найдешь, наверное. |
|||
5
Ekaterina88
22.01.19
✎
13:15
|
Спасибо!
Заменила, с параметрами прокатило. теперь другая ошибка(( {ВнешняяОбработка.СчетНаОплатуВнешний.МодульОбъекта(29)}: Поле объекта не обнаружено (Организация) УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "СчетНаОплатуВнешний", "Счет на оплату", Вот вся процедура Процедура Печать(ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт // МассивОбъектов, ПараметрыВывода.ДоступнаПечатьПоКомплектно = Истина; Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "СчетНаОплатуВнешний") Тогда ТаблицаСведенийСчетНаОплату = ПолучитьТаблицуСведенийСчетаНаОплату(ОбъектыПечати); //МассивОбъектов УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "СчетНаОплатуВнешний", "Счет на оплату", ПечатьТорговыхДокументов.ПечатьСчетаНаОплату(ПараметрыПечати.Организация, ОбъектыПечати, "ПФ_MXL_СчетЗаказ1")); //удалено ЗаполнитьПараметрыЭлектроннойПочты = Ложь; КонецЕсли; ОбщегоНазначенияБП.ЗаполнитьДополнительныеПараметрыПечати(ОбъектыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода); // МассивОбъектов КонецПроцедуры |
|||
6
Ekaterina88
22.01.19
✎
13:32
|
теперь другая ошибка
{ВнешняяОбработка.СчетНаОплатуВнешний.МодульОбъекта(29)}: Поле объекта не обнаружено (Организация) УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "СчетНаОплатуВнешний", "Счет на оплату", Вот кусок: Процедура Печать(ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт// МассивОбъектов, ПараметрыВывода.ДоступнаПечатьПоКомплектно = Истина; Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "СчетНаОплатуВнешний") Тогда ТаблицаСведенийСчетНаОплату = ПолучитьТаблицуСведенийСчетаНаОплату(ОбъектыПечати); //МассивОбъектов УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "СчетНаОплатуВнешний", "Счет на оплату", ПечатьТорговыхДокументов.ПечатьСчетаНаОплату(ПараметрыПечати.Организация, ОбъектыПечати, "ПФ_MXL_СчетЗаказ1")); //удалено ЗаполнитьПараметрыЭлектроннойПочты = Ложь; КонецЕсли; ОбщегоНазначенияБП.ЗаполнитьДополнительныеПараметрыПечати(ОбъектыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);// МассивОбъектов КонецПроцедуры |
|||
7
Ekaterina88
22.01.19
✎
14:20
|
И ещё пошли ошибки, это не из-за того, что МассивОбъектов удален?
{ВнешняяОбработка.СчетНаОплатуВнешний.МодульОбъекта(305)}: Поле объекта не обнаружено (ТаблицаДокумента) ЕстьСкидка = (СведенияОДокументе.ТаблицаДокумента.Итог("СуммаСкидки") <> 0) И ЗначениеЗаполнено(Макет.Области.Найти("Скидка")); |
|||
8
evgeniy_n
22.01.19
✎
14:54
|
Попробуйте что-то наподобие:
Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода, ПараметрыПечати = Неопределено) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |