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

   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) И

            ЗначениеЗаполнено(Макет.Области

Подобных тем на форуме достаточно, понимаю, что неверное количество параметров,

но как их подогнать не понимаю, уже сутки бъюсь и не получается исправить ошибку, я новичок.

Написала внешнюю печатную форму счета:

,,,

Процедура    Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт    

    ПараметрыВывода.ДоступнаПечатьПоКомплектно = Истина;

    

    
    Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, «СчетНаОплатуВнешний») Тогда

        ТаблицаСведенийСчетНаОплату = ПолучитьТаблицуСведенийСчетаНаОплату(МассивОбъектов);

        УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, «СчетНаОплатуВнешний», «Счет на оплату»,

        ПечатьСчетаНаОплату(ПараметрыПечати.Организация, ОбъектыПечати, «ПФ_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С

Фактические параметры методов и функций

Недостаточно фактических параметров – такая ошибка программы 1С не часто возникает при работе с типовыми конфигурациями, отчего еще больше обескураживает пользователя, так как не является заурядной проблемой. Чаще всего она появляется в результате доработки конфигурации 1С вне зависимости от того, насколько качественно конфигурация дорабатывалась. Скорее всего, эта ошибка связана с тем, что конфигурация обновилась и метод, который раньше использовался в доработке конфигурации 1С, изменился.

Чтобы исправить ошибку «Недостаточно фактических параметров» 1С, нужно прежде всего понять для себя, что является фактическим параметром методов. Это те реквизиты, которые передаются функции или методу в 1С 8.3. Выглядит это примерно так:

ЗаполнитьДокумент(Ссылка, ДанныеЗаполнения, Источник) {

}

Исправление ошибки в 1С

Ссылка, ДанныеЗаполнения, Источник – это и есть фактические параметры. Соответственно, когда вызываем эту функцию в 1С 8.3, мы должны передавать эти параметры, иначе получим ошибку.

Теперь необходимо решить, почему мы передаем недостаточно фактических параметров и где взять нужные. Если мы используем типовые методы в наших доработках, то идем по следующему пути.

Выбираем вызов функции 1С, которая возвращает ошибку, и нажимаем на F12. Так мы найдем ее объявление. Прямо перед функцией сможете увидеть комментарий разработчиков, где будут перечислены необходимые параметры и их тип. Если все равно не очень понятно, каким именно параметром нужно заполнить, то есть вариант использовать отладку. Просто ставим точку остановки, и можно будет попасть сюда типовым образом. Например, если стоит вопрос о заполнении документа, то достаточно будет использовать «Заполнить на основании» в Обработчике событий формы.

Заполнить на основании

Как только 1С покажет, что вы находитесь в отладке, то выделите реквизит, параметр которого вам необходим и нажмите Shift+F9. Вы увидите, как именно выглядит реквизит, которого вам не хватает. Остается только заполнить его в вызове функций в вашем коде.

Если же речь идет о какой-то самописной функции или методе, который возвращает такую ошибку, то можно удалить лишний параметр в том случае, если вы уверены, что в коде он не используется и его удаление не нарушит логику дальнейших действий 1С.

К сожалению, невозможно предложить универсальное решение этой ошибки программы 1С, но если понять принцип, ее исправление не должно занимать много времени и сил. В любом случае, если у вас появляются подобного рода ошибки, лучше обратитесь к фирме, которая вас обслуживает, чтобы решить проблему.

Если причину самостоятельно, используя указанные рекомендации, отыскать не удалось, базу придется передать профессионалам 1С для исправления. Звоните +7 (495) 133-92-44

Ошибка Недостаточно фактических параметров в 1С 8.3 показывает, что в исполняемую функцию передано меньше параметров, чем необходимо для выполнения операции. Для анализа ошибки Бухэксперт8 подготовил специальный пример.

Прочитав статью, вы узнаете на что обращать внимание при появлении этой ошибки и получите подробные рекомендации по ее исправлению.

Причины ошибки

Наибольший процент причин, вызывающих ошибку Недостаточно фактических параметров, приходится на ошибки обновления и доработки конфигурации 1С.

Бухэксперт8 рекомендует начать работу над ошибкой по схеме, предложенной нашими экспертами в статье Слишком много фактических параметров.

Важно выполнить все рекомендации статьи, чтобы исключить ошибку, вызванную обновлением 1С. Только после этого желательно переходить к действиям, описанным ниже.

Ошибка программного кода

При нажатии на кнопку Подбор номенклатуры в документе поступления услуг появляется ошибка о недостаточности фактических параметров. Ошибка стала появляться после доработки программистом функции подбора услуг.

При нажатии на кнопку Подбор появляется ошибка:

Информация, отображаемая в карточке ошибки, указывает, что ошибка регистрируется в строке 143 общего модуля ПоступлениеТоваровУслугФормыКлиент.

Для исправления ошибки:

  1. Откройте 1С в режиме Конфигуратор и перейдите в указанный общий модуль.
  2. На строке 143 найдите функцию ПолучитьПараметрыПодбора.
  3. Определите число фактических параметров функции, указанных в скобках.
  4. Встаньте на функцию ПолучитьПараметрыПодбора мышкой и перейдите в описание функции, нажав кнопку F12.
    Программа автоматически переместит вас в место описания вызываемой функции.
  5. Проанализируйте число параметров функции исполнения, указанных в скобках.

    При ошибке 1С Недостаточно фактических параметров число фактических параметров, определяемое в п. 3, меньше числа описываемых параметров, определяемых в п. 5:
    — фактические параметры — 1;
    — описанные параметры — 2.

  6. Приведите в соответствие фактические и описанные параметры функции. Для этого измените фактические параметры в процедуре ПодборНоменклатуры.

Cохраните выполненные изменения. После обновления конфигурации операция подбора номенклатуры в документах поступления услуг будет выполняться без ошибки.

См. также:

  • Слишком много фактических параметров
  • У пользователя недостаточно прав на исполнение операции
  • Конфигурация узла распределенной ИБ не соответствует ожидаемой
  • 1C Отчетность: не удалось расшифровать файл
  • Этот хост неизвестен 1С: как исправить
  • Ошибка при выполнении операции с информационной базой 1С 8.3

Если Вы еще не являетесь подписчиком системы БухЭксперт8:

Активировать демо-доступ бесплатно →

или

Оформить подписку на Рубрикатор →

После оформления подписки вам станут доступны все материалы по 1С Бухгалтерия, записи поддерживающих эфиров и вы сможете задавать любые вопросы по 1С.

Подписывайтесь на наши YouTube и Telegram чтобы не пропустить
важные изменения 1С и законодательства

Помогла статья?

Получите еще секретный бонус и полный доступ к справочной системе БухЭксперт8 на 14 дней бесплатно

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

Ошибка Недостаточно фактических параметров в 1С 8.3 показывает, что в исполняемую функцию передано меньше параметров, чем необходимо для выполнения операции. Для анализа ошибки Бухэксперт8 подготовил специальный пример.

Причины ошибки

Наибольший процент причин, вызывающих ошибку Недостаточно фактических параметров, приходится на ошибки обновления и доработки конфигурации 1С.

Ошибка программного кода

Информация, отображаемая в карточке ошибки, указывает, что ошибка регистрируется в строке 143 общего модуля ПоступлениеТоваровУслугФормыКлиент.

Для исправления ошибки:

  1. Откройте 1С в режиме Конфигуратор и перейдите в указанный общий модуль.
  2. На строке 143 найдите функцию ПолучитьПараметрыПодбора.
  3. Определите число фактических параметров функции, указанных в скобках.
  4. Встаньте на функцию ПолучитьПараметрыПодбора мышкой и перейдите в описание функции, нажав кнопку F12.
    Программа автоматически переместит вас в место описания вызываемой функции.
  5. Проанализируйте число параметров функции исполнения, указанных в скобках.
  6. Приведите в соответствие фактические и описанные параметры функции. Для этого измените фактические параметры в процедуре ПодборНоменклатуры.

Cохраните выполненные изменения. После обновления конфигурации операция подбора номенклатуры в документах поступления услуг будет выполняться без ошибки.

Обслуживание

Заказать консультацию

По этой или иной ошибке Вы можете обратиться к нашим специалистам, мы Вам поможем решить Вашу проблему.

  • Ошибка печати не хватает памяти excel 2007
  • Ошибка печати на принтере возможные причины не хватает памяти
  • Ошибка печати на принтере hp laserjet m1132 mfp
  • Ошибка печати на принтере hp deskjet 2130
  • Ошибка печати на возможные причины не хватает памяти excel