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

