Недостаточно фактических параметров внешняяобработкаобъект печать

Недостаточно фактических параметров

Здравствуйте!
Мне нужно «прикрутить» печатную форму ОС-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) И
ЗначениеЗаполнено(Макет.Области

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *