Недостаточно фактических параметров внешняяобработкаобъект печать
Недостаточно фактических параметров
Здравствуйте!
Мне нужно «прикрутить» печатную форму ОС-1 к документу «Поступление ОС (забаланс)». Выдается ошибка:
<Документ.ОС_Аренда_Поступление.МодульОбъекта(325)>: Недостаточно фактических параметров
ТабДокумент = ФормированиеПечатныхФорм.ПечатьОС_1_Передача(Ссылка);
Функция печати прописана так:
Процедура Печать(ИмяМакета, КоличествоЭкземпляров = 1, НаПринтер = Ложь, НепосредственнаяПечать = Ложь) Экспорт
// Получить экземпляр документа на печать
Если ИмяМакета = «ПриходныйОрдерМ4» Тогда
// Унифицированная форма М-4 (приходный ордер)
ТабДокумент = ПечатьМ4();
ИначеЕсли ИмяМакета = «Справка0504833» Тогда
// Унифицированная форма бухгалтерской справки (ф.0504833)
ТабДокумент = ФормированиеПечатныхФорм.ПечатьСправки0540833(Ссылка);
ИначеЕсли ИмяМакета = «ОС_1» Тогда
// Унифицированная форма ОС-1 (акт приемки-передачи основных средств)
//ТабДокумент = ФормированиеПечатныхФорм.ПечатьОС_1_Передача(Ссылка);
ТабДокумент = ФормированиеПечатныхФорм.ПечатьОС_1_Передача(Ссылка);
КонецЕсли;
Если ТипЗнч(ТабДокумент) = Тип(«ТабличныйДокумент») Тогда
УниверсальныеМеханизмы.НапечататьДокумент(ТабДокумент, КоличествоЭкземпляров, НаПринтер, ОбщегоНазначения.СформироватьЗаголовокДокумента(ЭтотОбъект,»Поступление материальных запасов на забалансовый учет»), НепосредственнаяПечать);
КонецЕсли;
Имя макета в Общих макетах: ОС_1
И функция ПолучитьСтруктуруПечатныхФорм прописана следующе:
Функция ПолучитьСтруктуруПечатныхФорм() Экспорт
СтруктураПечатныхФорм = Новый Структура;
СтруктураПечатныхФорм.Вставить(«Справка0504833″,»Бухгалтерская справка»);
СтруктураПечатныхФорм.Вставить(«ПриходныйОрдерМ4″,»Приходный ордер М4»);
СтруктураПечатныхФорм.Вставить(«ОС_1″,»Форма ОС-1»);
Возврат СтруктураПечатныхФорм;
Помогите, пожалуйста, разобраться. Может нужна обработка печати формы ОС-1? Или что-то еще дописать в Печать()?
Недостаточно фактических параметров в 1С 8.3
Ошибка Недостаточно фактических параметров в 1С 8.3 показывает, что в исполняемую функцию передано меньше параметров, чем необходимо для выполнения операции. Для анализа ошибки Бухэксперт8 подготовил специальный пример.
Прочитав статью, вы узнаете на что обращать внимание при появлении этой ошибки и получите подробные рекомендации по ее исправлению.
Причины ошибки
Бухэксперт8 рекомендует начать работу над ошибкой по схеме, предложенной нашими экспертами в статье Слишком много фактических параметров.
Важно выполнить все рекомендации статьи, чтобы исключить ошибку, вызванную обновлением 1С. Только после этого желательно переходить к действиям, описанным ниже.
Ошибка программного кода
При нажатии на кнопку Подбор номенклатуры в документе поступления услуг появляется ошибка о недостаточности фактических параметров. Ошибка стала появляться после доработки программистом функции подбора услуг.
При нажатии на кнопку Подбор появляется ошибка:
Получите понятные самоучители 2021 по 1С бесплатно:
Для исправления ошибки:
При ошибке 1С Недостаточно фактических параметров число фактических параметров, определяемое в п. 3, меньше числа описываемых параметров, определяемых в п. 5:
— фактические параметры — 1;
— описанные параметры — 2.
Cохраните выполненные изменения. После обновления конфигурации операция подбора номенклатуры в документах поступления услуг будет выполняться без ошибки.
См. также:
Если Вы еще не являетесь подписчиком системы БухЭксперт8:
После оформления подписки вам станут доступны все материалы по 1С Бухгалтерия, записи поддерживающих эфиров и вы сможете задавать любые вопросы по 1С.
Получите еще секретный бонус и полный доступ к справочной системе БухЭксперт8 на 14 дней бесплатно
Похожие публикации
Карточка публикации
Добавить комментарий Отменить ответ
Для отправки комментария вам необходимо авторизоваться.
Вы можете задать еще вопросов
Доступ к форме «Задать вопрос» возможен только при оформлении полной подписки на БухЭксперт8
Нажимая кнопку «Задать вопрос», я соглашаюсь с
регламентом БухЭксперт8.ру >>
Спасибо огромное.Очень ценный нужный материал. Всегда в восторге от семинаров Климовой.
Недостаточно фактических параметров
Подобных тем на форуме достаточно, понимаю, что неверное количество параметров,
но как их подогнать не понимаю, уже сутки бъюсь и не получается исправить ошибку, я новичок.
Написала внешнюю печатную форму счета:
.
Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
ПараметрыВывода.ДоступнаПечатьПоКомплектно = Истина;
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, «СчетНаОплатуВнешний») Тогда
ТаблицаСведенийСчетНаОплату = ПолучитьТаблицуСведенийСчетаНаОплату(МассивОбъектов);
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, «СчетНаОплатуВнешний», «Счет на оплату»,
ПечатьСчетаНаОплату(ПараметрыПечати.Организация, ОбъектыПечати, «ПФ_MXL_СчетЗаказ1»)); //удалено ПечатьТорговыхДокументов.
ЗаполнитьПараметрыЭлектроннойПочты = Ложь;
КонецЕсли;
ОбщегоНазначенияБП.ЗаполнитьДополнительныеПараметрыПечати(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);
Ошибка такая:
<ОбщийМодуль.УправлениеПечатью.Модуль(1510)>: Недостаточно фактических параметров
ВнешняяОбработкаОбъект.Печать(
В общем модуле УправлениеПечатью выглядит так:
.
ВнешняяОбработкаОбъект.Печать(
ПараметрыИсточника.ОбъектыНазначения,
КоллекцияПечатныхФорм,
ОбъектыПечати,
ПараметрыВывода);
.
Как ее исправить? Что ещё добавить, что бы заработало?
ниже полный код внеш. печатной формы:
Функция СведенияОВнешнейОбработке () экспорт
ПараметрыРегистрации = Новый Структура;
ПараметрыРегистрации.Вставить(«Вид», «ПечатнаяФорма»);
ПараметрыРегистрации.Вставить(«Назначение»,ПолучитьНазначениеОбработки());
ПараметрыРегистрации.Вставить(«Наименование», «Счет на оплату ВНЕШНИЙ»);
ПараметрыРегистрации.Вставить(«Версия», «1.0»);
ПараметрыРегистрации.Вставить(«Информация», «Счет на оплату (внешняя печатная форма)»);
ПараметрыРегистрации.Вставить(«БезопасныйРежим»,Истина);
ДобавитьКоманду(Команды,»Счет на оплату (внешняя печатная форма)»,
«СчетНаОплатуВнешний»,
«ВызовСерверногоМетода»,
Ложь,
«ПечатьMXL»);
ПараметрыРегистрации.Вставить(«Команды»,Команды);
Возврат ПараметрыРегистрации;
Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
ПараметрыВывода.ДоступнаПечатьПоКомплектно = Истина;
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, «СчетНаОплатуВнешний») Тогда
ТаблицаСведенийСчетНаОплату = ПолучитьТаблицуСведенийСчетаНаОплату(МассивОбъектов);
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, «СчетНаОплатуВнешний», «Счет на оплату»,
ПечатьСчетаНаОплату(ПараметрыПечати.Организация, ОбъектыПечати, «ПФ_MXL_СчетЗаказ1»)); //удалено ПечатьТорговыхДокументов.
ЗаполнитьПараметрыЭлектроннойПочты = Ложь;
КонецЕсли;
ОбщегоНазначенияБП.ЗаполнитьДополнительныеПараметрыПечати(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);
Функция ПолучитьТаблицуСведенийСчетаНаОплату(Знач МассивДокументов) //ЭкспортДокументыБезСчетовНаОплату = Неопределено
Запрос = Новый Запрос;
Запрос.УстановитьПараметр(«МассивДокументов», МассивДокументов);
Запрос.УстановитьПараметр(«ДополнительнаяКолонкаПечатныхФормДокументов», Константы.ДополнительнаяКолонкаПечатныхФормДокументов.Получить());
Запрос.Текст = ПолучитьТекстЗапросаДляФормированияТаблицыСведенийСчетаНаОплату();
Выборка = РезультатЗапроса[1].Выбрать();
СтрокиДокументов = РезультатЗапроса[2].Выгрузить();
СтрокиДокументов.Индексы.Добавить(«Документ»);
Пока Выборка.Следующий() Цикл
СведенияОДокументе = ТаблицаСведений.Добавить();
ЗаполнитьЗначенияСвойств(СведенияОДокументе, Выборка);
Отбор = Новый Структура(«Документ», Выборка.Документ);
СтрокиДокумента = СтрокиДокументов.НайтиСтроки(Отбор);
Для Каждого Строка Из СтрокиДокумента Цикл
СтрокаТаблицыДокумента = ТаблицаДокумента.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаТаблицыДокумента, Строка);
ПорядокЗаполнения = Новый Структура(«ЗаполнятьРуководителя, ЗаполнятьГлавногоБухгалтера»);
ПечатьТорговыхДокументов.ЗаполнитьДанныеОтветственныхЛиц(СведенияОДокументе, ПорядокЗаполнения);
Если НЕ ЗначениеЗаполнено(СведенияОДокументе.РуководительДолжностьНаименование) Тогда
Если ОбщегоНазначения.ЗначениеРеквизитаОбъекта(СведенияОДокументе.Получатель, «ЮридическоеФизическоеЛицо»)
= Перечисления.ЮридическоеФизическоеЛицо.ФизическоеЛицо Тогда
СведенияОДокументе.РуководительДолжностьНаименование = «Индивидуальный предприниматель»;
КонецЕсли;
КонецЕсли;
ТекстЗапроса =
«ВЫБРАТЬ
| СчетНаОплату.Ссылка КАК Ссылка,
| СчетНаОплату.Дата КАК ДатаДокумента,
| СчетНаОплату.СуммаВключаетНДС КАК СуммаВключаетНДС
|ПОМЕСТИТЬ ДокументыДляПечати
|ИЗ
| Документ.СчетНаОплатуПокупателю КАК СчетНаОплату
|ГДЕ
| СчетНаОплату.Ссылка В(&МассивДокументов)
|
|ИНДЕКСИРОВАТЬ ПО
| Ссылка
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| СчетНаОплату.Ссылка КАК Документ,
| СчетНаОплату.Дата КАК ДатаДляПолученияСведений,
| ДанныеПервичныхДокументов.Номер КАК НомерДокумента,
| ДанныеПервичныхДокументов.Дата КАК ДатаДокумента,
| СчетНаОплату.ВалютаДокумента КАК Валюта,
| СчетНаОплату.ВалютаДокумента.Код КАК ВалютаКод,
| СчетНаОплату.ВалютаДокумента.Наименование КАК ВалютаНаименование,
| СчетНаОплату.СуммаДокумента КАК СуммаДокумента,
| СчетНаОплату.КратностьВзаиморасчетов КАК КратностьВзаиморасчетов,
| СчетНаОплату.КурсВзаиморасчетов КАК КурсВзаиморасчетов,
| СчетНаОплату.СуммаВключаетНДС КАК СуммаВключаетНДС,
| СчетНаОплату.Организация КАК Организация,
| СчетНаОплату.ПодразделениеОрганизации КАК Подразделение,
| СчетНаОплату.Организация КАК Поставщик,
| СчетНаОплату.Организация КАК Руководители,
| СчетНаОплату.ОрганизацияПолучатель КАК Получатель,
| СчетНаОплату.Контрагент КАК Покупатель,
| СчетНаОплату.ДоговорКонтрагента КАК ДоговорКонтрагента,
| СчетНаОплату.ДоговорКонтрагента.Номер КАК НомерДоговора,
| СчетНаОплату.ДоговорКонтрагента.ГосударственныйКонтракт.Код КАК ГосударственныйКонтракт,
| СчетНаОплату.ДоговорКонтрагента.Дата КАК ДатаДоговора,
| СчетНаОплату.ДоговорКонтрагента.Руководитель КАК ФИОИсполнителя,
| СчетНаОплату.ДоговорКонтрагента.ДолжностьРуководителя КАК ДолжностьИсполнителя,
| СчетНаОплату.ДоговорКонтрагента.РуководительКонтрагента КАК ФИОЗаказчика,
| СчетНаОплату.ДоговорКонтрагента.ДолжностьРуководителяКонтрагента КАК ДолжностьЗаказчика,
| СчетНаОплату.ДоговорКонтрагента.УчетАгентскогоНДСПокупателем КАК НДСИсчисляетсяНалоговымАгентом,
| СчетНаОплату.СтруктурнаяЕдиница КАК БанковскийСчетПродавца,
| СчетНаОплату.СтруктурнаяЕдиница.ТекстКорреспондента КАК ТекстКорреспондента,
| СчетНаОплату.СтруктурнаяЕдиница.БанкДляРасчетов КАК БанкДляРасчетов,
| СчетНаОплату.Руководитель КАК Руководитель,
| СчетНаОплату.ГлавныйБухгалтер КАК ГлавныйБухгалтер,
| СчетНаОплату.ЗаРуководителяНаОсновании КАК ЗаРуководителяНаОсновании,
| СчетНаОплату.ЗаГлавногоБухгалтераНаОсновании КАК ЗаГлавногоБухгалтераНаОсновании,
| ВЫБОР
| КОГДА СчетНаОплату.СтруктурнаяЕдиница.БанкДляРасчетов <> ЗНАЧЕНИЕ(Справочник.Банки.ПустаяСсылка)
| ТОГДА СчетНаОплату.СтруктурнаяЕдиница.БанкДляРасчетов.Наименование + «» «» + СчетНаОплату.СтруктурнаяЕдиница.БанкДляРасчетов.Город
| ИНАЧЕ СчетНаОплату.СтруктурнаяЕдиница.Банк.Наименование + «» «» + СчетНаОплату.СтруктурнаяЕдиница.Банк.Город
| КОНЕЦ КАК НаименованиеБанкаПолучателя,
| ВЫБОР
| КОГДА СчетНаОплату.СтруктурнаяЕдиница.БанкДляРасчетов <> ЗНАЧЕНИЕ(Справочник.Банки.ПустаяСсылка)
| ТОГДА СчетНаОплату.СтруктурнаяЕдиница.БанкДляРасчетов
| ИНАЧЕ СчетНаОплату.СтруктурнаяЕдиница.Банк
| КОНЕЦ КАК БанкПолучателя,
| ВЫБОР
| КОГДА СчетНаОплату.СтруктурнаяЕдиница.БанкДляРасчетов <> ЗНАЧЕНИЕ(Справочник.Банки.ПустаяСсылка)
| ТОГДА СчетНаОплату.СтруктурнаяЕдиница.БанкДляРасчетов.Код
| ИНАЧЕ СчетНаОплату.СтруктурнаяЕдиница.Банк.Код
| КОНЕЦ КАК БикБанкаПолучателя,
| ВЫБОР
| КОГДА СчетНаОплату.СтруктурнаяЕдиница.БанкДляРасчетов <> ЗНАЧЕНИЕ(Справочник.Банки.ПустаяСсылка)
| ТОГДА СчетНаОплату.СтруктурнаяЕдиница.БанкДляРасчетов.КоррСчет
| ИНАЧЕ СчетНаОплату.СтруктурнаяЕдиница.Банк.КоррСчет
| КОНЕЦ КАК СчетБанкаПолучателя,
| ВЫБОР
| КОГДА СчетНаОплату.СтруктурнаяЕдиница.БанкДляРасчетов <> ЗНАЧЕНИЕ(Справочник.Банки.ПустаяСсылка)
| ТОГДА СчетНаОплату.СтруктурнаяЕдиница.БанкДляРасчетов.Город
| ИНАЧЕ СчетНаОплату.СтруктурнаяЕдиница.Банк.Город
| КОНЕЦ КАК ГородБанкаПолучателя,
| ВЫБОР
| КОГДА СчетНаОплату.СтруктурнаяЕдиница.БанкДляРасчетов <> ЗНАЧЕНИЕ(Справочник.Банки.ПустаяСсылка)
| ТОГДА СчетНаОплату.СтруктурнаяЕдиница.Банк.КоррСчет
| ИНАЧЕ СчетНаОплату.СтруктурнаяЕдиница.НомерСчета
| КОНЕЦ КАК НомерСчетаПолучателя,
| ВЫБОР
| КОГДА СчетНаОплату.СтруктурнаяЕдиница.БанкДляРасчетов <> ЗНАЧЕНИЕ(Справочник.Банки.ПустаяСсылка)
| ТОГДА «» р/с «» + СчетНаОплату.СтруктурнаяЕдиница.НомерСчета + «» в «» + СчетНаОплату.СтруктурнаяЕдиница.Банк.Наименование + «» «» + СчетНаОплату.СтруктурнаяЕдиница.Банк.Город
| КОНЕЦ КАК БанкТекстКорресподента,
| СчетНаОплату.СуммаСкидки КАК СуммаСкидки,
| СчетНаОплату.СтруктурнаяЕдиница.НомерСчета КАК НомерСчета,
| СчетНаОплату.СтруктурнаяЕдиница.Банк.Наименование КАК БанкНаименование,
| СчетНаОплату.СтруктурнаяЕдиница.Банк.Код КАК БИК,
| СчетНаОплату.СтруктурнаяЕдиница.Банк.КоррСчет КАК КоррСчет,
| ЕСТЬNULL(СчетНаОплату.ДополнительныеУсловия.ТекстУсловий, «»»») КАК ТекстДополнительныхУсловий,
| ЕСТЬNULL(СрокиОплатыДокументов.СрокОплаты, ДАТАВРЕМЯ(1, 1, 1)) КАК СрокОплаты
|ИЗ
| Документ.СчетНаОплатуПокупателю КАК СчетНаОплату
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДанныеПервичныхДокументов КАК ДанныеПервичныхДокументов
| ПО СчетНаОплату.Ссылка = ДанныеПервичныхДокументов.Документ
| И СчетНаОплату.Организация = ДанныеПервичныхДокументов.Организация
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СрокиОплатыДокументов КАК СрокиОплатыДокументов
| ПО СчетНаОплату.Ссылка = СрокиОплатыДокументов.Документ
| И СчетНаОплату.Организация = СрокиОплатыДокументов.Организация
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ДополнительныеУсловия КАК СправочникДополнительныеУсловия
| ПО СчетНаОплату.ДополнительныеУсловия = СправочникДополнительныеУсловия.Ссылка
|ГДЕ
| СчетНаОплату.Ссылка В
| (ВЫБРАТЬ
| ДокументыДляПечати.Ссылка
| ИЗ
| ДокументыДляПечати КАК ДокументыДляПечати)
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| СчетНаОплату.Ссылка КАК Документ,
| ДокументыДляПечати.ДатаДокумента КАК ДатаДокумента,
| ЗНАЧЕНИЕ(Перечисление.ТабличныеЧастиДокументов.Товары) КАК ТабличнаяЧасть,
| 1 КАК ПорядокТабличнойЧасти,
| СчетНаОплату.НомерСтроки КАК НомерСтроки,
| СчетНаОплату.Номенклатура КАК Номенклатура,
| СчетНаОплату.Номенклатура.Услуга КАК ЭтоУслуга,
| ВЫБОР
| КОГДА &ДополнительнаяКолонкаПечатныхФормДокументов = ЗНАЧЕНИЕ(Перечисление.ДополнительнаяКолонкаПечатныхФормДокументов.Код)
| ТОГДА СчетНаОплату.Номенклатура.Код
| КОГДА &ДополнительнаяКолонкаПечатныхФормДокументов = ЗНАЧЕНИЕ(Перечисление.ДополнительнаяКолонкаПечатныхФормДокументов.Артикул)
| ТОГДА СчетНаОплату.Номенклатура.Артикул
| ИНАЧЕ «»»»
| КОНЕЦ КАК НоменклатураАртикул,
| &ЧастьЗапросаДляВыбораСодержанияУслуг КАК НоменклатураНаименование,
| &ЧастьЗапросаДляВыбораСодержанияУслуг КАК Содержание,
| ЕСТЬNULL(СчетНаОплату.Номенклатура.ЕдиницаИзмерения, ЗНАЧЕНИЕ(Справочник.КлассификаторЕдиницИзмерения.ПустаяСсылка)) КАК ЕдиницаИзмерения,
| ЕСТЬNULL(СчетНаОплату.Номенклатура.ЕдиницаИзмерения.Код, «»»») КАК ЕдиницаИзмеренияКод,
| ЕСТЬNULL(СчетНаОплату.Номенклатура.ЕдиницаИзмерения.Наименование, «»»») КАК ЕдиницаИзмеренияНаименование,
| ЕСТЬNULL(СчетНаОплату.Номенклатура.ЕдиницаИзмерения.НаименованиеПолное, «»»») КАК ЕдиницаИзмеренияНаименованиеПолное,
| СчетНаОплату.Количество КАК Количество,
| СчетНаОплату.Цена КАК Цена,
| СчетНаОплату.Сумма КАК Сумма,
| СчетНаОплату.СуммаСкидки КАК СуммаСкидки,
| СчетНаОплату.СтавкаНДС КАК СтавкаНДС,
| СчетНаОплату.СуммаНДС КАК СуммаНДС
|ИЗ
| Документ.СчетНаОплатуПокупателю.Товары КАК СчетНаОплату
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ДокументыДляПечати КАК ДокументыДляПечати
| ПО СчетНаОплату.Ссылка = ДокументыДляПечати.Ссылка
|
|УПОРЯДОЧИТЬ ПО
| ДатаДокумента,
| Документ,
| ПорядокТабличнойЧасти,
| НомерСтроки»;
Процедура ВывестиЗаголовокПредупреждение(Организация, ТабличныйДокумент, Макет)
Если Не ЗначениеЗаполнено(Макет.Области.Найти(«ЗаголовокПредупреждениеСЛоготипом»))
И Не ЗначениеЗаполнено(Макет.Области.Найти(«ЗаголовокПредупреждение»)) Тогда
Возврат;
КонецЕсли;
Если ТипЗнч(Организация) <> Тип(«СправочникСсылка.Организации») Тогда
Возврат;
КонецЕсли;
ДвоичныеДанныеКартинки = Справочники.Организации.ДвоичныеДанныеКартинкиОрганизации(Организация, «ФайлЛоготип»);
Если ЗначениеЗаполнено(ДвоичныеДанныеКартинки) Тогда
ОбластьМакета = Макет.ПолучитьОбласть(«ЗаголовокПредупреждениеСЛоготипом»);
Попытка
ОбластьМакета.Рисунки.Логотип.Картинка = Новый Картинка(ДвоичныеДанныеКартинки);
Исключение
КонецПопытки;
ТабличныйДокумент.Вывести(ОбластьМакета);
Иначе
ОбластьМакета = Макет.ПолучитьОбласть(«ЗаголовокПредупреждение»);
ТабличныйДокумент.Вывести(ОбластьМакета);
КонецЕсли;
Функция ПечатьСчетаНаОплату(СведенияСчетаНаОплату, ОбъектыПечати, ПараметрыПечати) Экспорт
ТабличныйДокумент = Новый ТабличныйДокумент;
ТабличныйДокумент.АвтоМасштаб = Истина;
ТабличныйДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Портрет;
ТабличныйДокумент.КлючПараметровПечати = «ПАРАМЕТРЫ_ПЕЧАТИ_ЗаказПокупателя_СчетЗаказ»;
ДополнительнаяКолонкаПечатныхФормДокументов = Константы.ДополнительнаяКолонкаПечатныхФормДокументов.Получить();
Если НЕ ЗначениеЗаполнено(ДополнительнаяКолонкаПечатныхФормДокументов) Тогда
ДополнительнаяКолонкаПечатныхФормДокументов = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.НеВыводить;
КонецЕсли;
ВыводитьКоды = ДополнительнаяКолонкаПечатныхФормДокументов <> Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.НеВыводить;
Для Каждого СведенияОДокументе Из СведенияСчетаНаОплату Цикл
Если НЕ ПервыйДокумент Тогда
ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;
ПервыйДокумент = Ложь;
ЕстьСкидка = (СведенияОДокументе.ТаблицаДокумента.Итог(«СуммаСкидки») <> 0) И ЗначениеЗаполнено(Макет.Области.Найти(«Скидка»));
// Запомним номер строки, с которой начали выводить текущий документ.
НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1;
// Выводим шапку счета
ВывестиЗаголовокПредупреждение(СведенияОДокументе.Получатель, ТабличныйДокумент, Макет);
СведенияОПолучателе = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛице(СведенияОДокументе.Получатель, СведенияОДокументе.ДатаДляПолученияСведений);
// Получим логотип организации
ДвоичныеДанныеКартинки = Неопределено;
Если ТипЗнч(СведенияОДокументе.Получатель) = Тип(«СправочникСсылка.Организации») Тогда
ДвоичныеДанныеКартинки = Справочники.Организации.ДвоичныеДанныеКартинкиОрганизации(СведенияОДокументе.Получатель, «ФайлЛоготип»);
КонецЕсли;
Если ЗначениеЗаполнено(ДвоичныеДанныеКартинки)
И ЗначениеЗаполнено(Макет.Области.Найти(«ЗаголовокСчетаСЛоготипом»)) Тогда
ОбластьМакета = Макет.ПолучитьОбласть(«ЗаголовокСчетаСЛоготипом»);
Попытка
ОбластьМакета.Рисунки.ЛоготипСчета.Картинка = Новый Картинка(ДвоичныеДанныеКартинки);
Исключение
КонецПопытки;
Иначе
ОбластьМакета = Макет.ПолучитьОбласть(«ЗаголовокСчета»);
КонецЕсли;
ОбластьМакета.Параметры.Заполнить(СведенияОДокументе);
ДанныеПечатиЗаголовокСчета = Новый Структура;
ДанныеПечатиЗаголовокСчета.Вставить(«ИННПолучателя», СведенияОПолучателе.ИНН);
ДанныеПечатиЗаголовокСчета.Вставить(«КПППолучателя», СведенияОПолучателе.КПП);
Если ТипЗнч(СведенияОДокументе.БанковскийСчетПродавца) = Тип(«СправочникСсылка.БанковскиеСчета») Тогда
ДанныеПечатиЗаголовокСчета.Вставить(«БИКБанкаПолучателя»,СведенияОДокументе.БикБанкаПолучателя);
ДанныеПечатиЗаголовокСчета.Вставить(«БанкПолучателя»,СведенияОДокументе.БанкПолучателя);
ДанныеПечатиЗаголовокСчета.Вставить(«БанкПолучателяПредставление»,СокрЛП(СведенияОДокументе.НаименованиеБанкаПолучателя));
ДанныеПечатиЗаголовокСчета.Вставить(«СчетБанкаПолучателя»,СведенияОДокументе.СчетБанкаПолучателя);
ДанныеПечатиЗаголовокСчета.Вставить(«СчетБанкаПолучателяПредставление»,СведенияОДокументе.СчетБанкаПолучателя);
ДанныеПечатиЗаголовокСчета.Вставить(«СчетПолучателяПредставление», СведенияОДокументе.НомерСчетаПолучателя);
ДанныеПечатиЗаголовокСчета.Вставить(«СчетПолучателя», СведенияОДокументе.НомерСчетаПолучателя);
КонецЕсли;
НомерДокумента = НомерСчетаНаОплату(СведенияОДокументе.ГосударственныйКонтракт, СведенияОДокументе.НомерДокумента);
ТекстЗаголовка = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр(«ru=’Счет на оплату № %1 от %2 г.'»),
НомерДокумента, Формат(СведенияОДокументе.ДатаДокумента, «ДФ=’дд ММММ гггг'»));
ОбластьМакета.Параметры.Заполнить(Новый Структура(«ТекстЗаголовка», ТекстЗаголовка));
ОбластьМакета = Макет.ПолучитьОбласть(«Поставщик»);
ОбластьМакета.Параметры.Заполнить(СведенияОДокументе);
СведенияОбОрганизации = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛице(СведенияОДокументе.Поставщик, СведенияОДокументе.ДатаДляПолученияСведений);
ПредставлениеПоставщика = ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(
СведенияОбОрганизации, «НаименованиеДляПечатныхФорм,ИНН,КПП,ЮридическийАдрес,Телефоны,»);
ОбластьМакета.Параметры.Заполнить(Новый Структура(«ПредставлениеПоставщика», ПредставлениеПоставщика));
ТабличныйДокумент.Вывести(ОбластьМакета);
ОбластьМакета = Макет.ПолучитьОбласть(«Покупатель»);
ОбластьМакета.Параметры.Заполнить(СведенияОДокументе);
СведенияОПокупателе = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛице(СведенияОДокументе.Покупатель, СведенияОДокументе.ДатаДляПолученияСведений);
ПредставлениеПокупателя = ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(
СведенияОПокупателе, «НаименованиеДляПечатныхФорм,ИНН,КПП,ЮридическийАдрес,Телефоны,»);
Основание = СокрЛП(Строка(СведенияОДокументе.ДоговорКонтрагента));
ДанныеПечатиПокупатель = Новый Структура;
ДанныеПечатиПокупатель.Вставить(«ПредставлениеПокупателя», ПредставлениеПокупателя);
ДанныеПечатиПокупатель.Вставить(«Основание», Основание);
ОбластьНомера = Макет.ПолучитьОбласть(«ШапкаТаблицы|НомерСтроки»);
ОбластьКодов = Макет.ПолучитьОбласть(«ШапкаТаблицы|КолонкаКодов»);
ОбластьДанных = Макет.ПолучитьОбласть(«ШапкаТаблицы|Данные»);
ОбластьСуммы = Макет.ПолучитьОбласть(«ШапкаТаблицы|Сумма»);
ТабличныйДокумент.Вывести(ОбластьНомера);
Если ВыводитьКоды Тогда
ДанныеПечатиКолонкиКодов = Новый Структура;
Если ДополнительнаяКолонкаПечатныхФормДокументов = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Артикул Тогда
ДанныеПечатиКолонкиКодов.Вставить(«ИмяКолонкиКодов», «Артикул»);
ИначеЕсли ДополнительнаяКолонкаПечатныхФормДокументов = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Код Тогда
ДанныеПечатиКолонкиКодов.Вставить(«ИмяКолонкиКодов», «Код»);
КонецЕсли;
ОбластьКодов.Параметры.Заполнить(ДанныеПечатиКолонкиКодов);
ТабличныйДокумент.Присоединить(ОбластьКодов);
КонецЕсли;
ТабличныйДокумент.Присоединить(ОбластьДанных);
Если ЕстьСкидка Тогда
ОбластьСкидки = Макет.ПолучитьОбласть(«ШапкаТаблицы|Скидка»);
ТабличныйДокумент.Присоединить(ОбластьСкидки);
КонецЕсли;
ТабличныйДокумент.Присоединить(ОбластьСуммы);
ОбластьКолонкаТовар = Макет.Область(«Товар»);
Если Не ВыводитьКоды Тогда
ОбластьКолонкаТовар.ШиринаКолонки = ОбластьКолонкаТовар.ШиринаКолонки + Макет.Область(«КолонкаКодов»).ШиринаКолонки;
КонецЕсли;
Если Не ЕстьСкидка И ЗначениеЗаполнено(Макет.Области.Найти(«Скидка»)) Тогда
ОбластьКолонкаТовар.ШиринаКолонки = ОбластьКолонкаТовар.ШиринаКолонки + Макет.Область(«Скидка»).ШиринаКолонки;
КонецЕсли;
ОбластьНомера = Макет.ПолучитьОбласть(«Строка|НомерСтроки»);
ОбластьКодов = Макет.ПолучитьОбласть(«Строка|КолонкаКодов»);
ОбластьДанных = Макет.ПолучитьОбласть(«Строка|Данные»);
ОбластьСуммы = Макет.ПолучитьОбласть(«Строка|Сумма»);
Сумма = 0;
СуммаНДС = 0;
ВсегоСкидок = 0;
ВсегоБезСкидок = 0;
НомерСтроки = 0;
НДСИсчисляетсяНалоговымАгентом = СведенияОДокументе.НДСИсчисляетсяНалоговымАгентом = Истина
И УчетНДС.ВедетсяУчетНДСПоФЗ335(СведенияОДокументе.ДатаДляПолученияСведений);
Для Каждого Строка Из СведенияОДокументе.ТаблицаДокумента Цикл
НомерСтроки = НомерСтроки + 1;
ОбластьНомера.Параметры.Заполнить(Новый Структура(«НомерСтроки», НомерСтроки));
Если ВыводитьКоды Тогда
ОбластьКодов.Параметры.Заполнить(Новый Структура(«Артикул», Строка.НоменклатураАртикул));
ТабличныйДокумент.Присоединить(ОбластьКодов);
КонецЕсли;
ДанныеПечатиСтрокаОбластьДанных = Новый Структура;
ДанныеПечатиСтрокаОбластьДанных.Вставить(«Товар», СокрЛП(Строка.НоменклатураНаименование));
ДанныеПечатиСтрокаОбластьДанных.Вставить(«Количество», Строка.Количество);
ДанныеПечатиСтрокаОбластьДанных.Вставить(«ЕдиницаИзмерения», Строка.ЕдиницаИзмеренияНаименование);
ДанныеПечатиСтрокаОбластьДанных.Вставить(«Цена», ОбщегоНазначенияБПВызовСервера.ФорматСумм(Строка.Цена));
ОбластьДанных.Параметры.Заполнить(ДанныеПечатиСтрокаОбластьДанных);
ТабличныйДокумент.Присоединить(ОбластьДанных);
Если ЕстьСкидка Тогда
ОбластьСкидки = Макет.ПолучитьОбласть(«Строка|Скидка»);
ОбластьСкидки.Параметры.Заполнить(Новый Структура(«СуммаСкидки», ОбщегоНазначенияБПВызовСервера.ФорматСумм(Строка.СуммаСкидки)));
ТабличныйДокумент.Присоединить(ОбластьСкидки);
КонецЕсли;
ТабличныйДокумент.Присоединить(ОбластьСуммы);
Сумма = Сумма + Строка.Сумма;
СуммаНДС = СуммаНДС + Строка.СуммаНДС;
ВсегоСкидок = ВсегоСкидок + Строка.СуммаСкидки;
Если ЗначениеЗаполнено(Макет.Области.Найти(«Подвал»)) Тогда
ОбластьПодвал = Макет.ПолучитьОбласть(«Подвал»);
ТабличныйДокумент.Вывести(ОбластьПодвал);
Если СведенияОДокументе.СуммаСкидки <> 0 Тогда
ДанныеОбъекта = Новый Структура(«СуммаСкидки, СуммаВключаетНДС»);
ЗаполнитьЗначенияСвойств(ДанныеОбъекта, СведенияОДокументе);
ТаблицаТовары = СведенияОДокументе.ТаблицаДокумента.Скопировать();
Если ЗначениеЗаполнено(Макет.Области.Найти(«СкидкаПоДокументу»)) Тогда
ОбластьСуммы.Параметры.Заполнить(Новый Структура(«СуммаСкидки», ОбщегоНазначенияБПВызовСервера.ФорматСумм(СведенияОДокументе.СуммаСкидки)));
ТабличныйДокумент.Вывести(ОбластьСуммы);
ИначеЕсли ВсегоСкидок <> 0 Тогда
ДанныеЗаполненияИтого = Новый Структура(«Всего», ОбщегоНазначенияБПВызовСервера.ФорматСумм(Сумма));
ДанныеЗаполненияНДС = Новый Структура(«НДС, ВсегоНДС», НДС, ВсегоНДС);
Если ЗначениеЗаполнено(Макет.Области.Найти(«Скидка»)) Тогда
ОбластьИтого = Макет.ПолучитьОбласть(«Итого»);
ОбластьИтого.Параметры.Заполнить(ДанныеЗаполненияИтого);
// Вывести ИтогоНДС
ОбластьИтогоНДС = Макет.ПолучитьОбласть(«ИтогоНДС»);
ОбластьИтогоНДС.Параметры.Заполнить(ДанныеЗаполненияНДС);
// Вывести ИтогоКОплате
ОбластьИтогоКОплате = Макет.ПолучитьОбласть(«ИтогоКОплате»);
ОбластьИтогоКОплате.Параметры.Заполнить(ДанныеЗаполненияИтогоКОплате);
ТабличныйДокумент.Вывести(ОбластьНомера);
Если ВыводитьКоды Тогда
ТабличныйДокумент.Присоединить(ОбластьКодов);
КонецЕсли;
ТабличныйДокумент.Присоединить(ОбластьДанных);
ОбластьСумма.Параметры.Заполнить(ДанныеЗаполненияИтого);
ТабличныйДокумент.Присоединить(ОбластьСумма);
// Вывести ИтогоНДС
ОбластьНомера = Макет.ПолучитьОбласть(«ИтогоНДС|НомерСтроки»);
ОбластьКодов = Макет.ПолучитьОбласть(«ИтогоНДС|КолонкаКодов»);
ОбластьДанных = Макет.ПолучитьОбласть(«ИтогоНДС|Данные»);
ОбластьСуммы = Макет.ПолучитьОбласть(«ИтогоНДС|Сумма»);
ТабличныйДокумент.Вывести(ОбластьНомера);
Если ВыводитьКоды Тогда
ТабличныйДокумент.Присоединить(ОбластьКодов);
КонецЕсли;
ОбластьДанных.Параметры.Заполнить(ДанныеЗаполненияНДС);
ОбластьСуммы.Параметры.Заполнить(ДанныеЗаполненияНДС);
// Вывести ИтогоКОплате
ОбластьНомера = Макет.ПолучитьОбласть(«ИтогоКОплате|НомерСтроки»);
ОбластьКодов = Макет.ПолучитьОбласть(«ИтогоКОплате|КолонкаКодов»);
ОбластьДанных = Макет.ПолучитьОбласть(«ИтогоКОплате|Данные»);
ОбластьСуммы = Макет.ПолучитьОбласть(«ИтогоКОплате|Сумма»);
ТабличныйДокумент.Вывести(ОбластьНомера);
Если ВыводитьКоды Тогда
ТабличныйДокумент.Присоединить(ОбластьКодов);
КонецЕсли;
ТабличныйДокумент.Присоединить(ОбластьДанных);
ОбластьСуммы.Параметры.Заполнить(ДанныеЗаполненияИтогоКОплате);
// Срок оплаты
Если СведенияОДокументе.СрокОплаты <> Дата(1,1,1) И
ЗначениеЗаполнено(Макет.Области