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

Бухэксперт8 рекомендует начать работу над ошибкой по схеме, предложенной нашими экспертами в статье Слишком много фактических параметров.
Важно выполнить все рекомендации статьи, чтобы исключить ошибку, вызванную обновлением 1С. Только после этого желательно переходить к действиям, описанным ниже.
Ошибка программного кода
При нажатии на кнопку Подбор номенклатуры в документе поступления услуг появляется ошибка о недостаточности фактических параметров. Ошибка стала появляться после доработки программистом функции подбора услуг.
При нажатии на кнопку Подбор появляется ошибка:
Информация, отображаемая в карточке ошибки, указывает, что ошибка регистрируется в строке 143 общего модуля ПоступлениеТоваровУслугФормыКлиент.
Для исправления ошибки:
- Откройте 1С в режиме Конфигуратор и перейдите в указанный общий модуль.

- На строке 143 найдите функцию ПолучитьПараметрыПодбора.
- Определите число фактических параметров функции, указанных в скобках.

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

Cохраните выполненные изменения. После обновления конфигурации операция подбора номенклатуры в документах поступления услуг будет выполняться без ошибки.
См. также:
- Слишком много фактических параметров
- У пользователя недостаточно прав на исполнение операции
- Конфигурация узла распределенной ИБ не соответствует ожидаемой
- 1C Отчетность: не удалось расшифровать файл
- Этот хост неизвестен 1С: как исправить
- Ошибка при выполнении операции с информационной базой 1С 8.3
Если Вы еще не являетесь подписчиком системы БухЭксперт8:
Активировать демо-доступ бесплатно →
или
Оформить подписку на Рубрикатор →
После оформления подписки вам станут доступны все материалы по 1С Бухгалтерия, записи поддерживающих эфиров и вы сможете задавать любые вопросы по 1С.
Подписывайтесь на наши YouTube и Telegram чтобы не пропустить
важные изменения 1С и законодательства
Помогла статья?
Получите еще секретный бонус и полный доступ к справочной системе БухЭксперт8 на 14 дней бесплатно
Содержание:
1. Фактические параметры методов и функций
2. Исправление ошибки в 1С
1. Фактические параметры методов и функций
Недостаточно фактических параметров – такая ошибка программы 1С не часто возникает при работе с типовыми конфигурациями, отчего еще больше обескураживает пользователя, так как не является заурядной проблемой. Чаще всего она появляется в результате доработки конфигурации 1С вне зависимости от того, насколько качественно конфигурация дорабатывалась. Скорее всего, эта ошибка связана с тем, что конфигурация обновилась и метод, который раньше использовался в доработке конфигурации 1С, изменился.
Чтобы исправить ошибку «Недостаточно фактических параметров» 1С, нужно прежде всего понять для себя, что является фактическим параметром методов. Это те реквизиты, которые передаются функции или методу в 1С 8.3. Выглядит это примерно так:
ЗаполнитьДокумент(Ссылка, ДанныеЗаполнения, Источник) {
…
}
2. Исправление ошибки в 1С
Ссылка, ДанныеЗаполнения, Источник – это и есть фактические параметры. Соответственно, когда вызываем эту функцию в 1С 8.3, мы должны передавать эти параметры, иначе получим ошибку.
Теперь необходимо решить, почему мы передаем недостаточно фактических параметров и где взять нужные. Если мы используем типовые методы в наших доработках, то идем по следующему пути.
Выбираем вызов функции 1С, которая возвращает ошибку, и нажимаем на F12. Так мы найдем ее объявление. Прямо перед функцией сможете увидеть комментарий разработчиков, где будут перечислены необходимые параметры и их тип. Если все равно не очень понятно, каким именно параметром нужно заполнить, то есть вариант использовать отладку. Просто ставим точку остановки, и можно будет попасть сюда типовым образом. Например, если стоит вопрос о заполнении документа, то достаточно будет использовать «Заполнить на основании» в Обработчике событий формы.
Обработчик событий формы
Как только 1С покажет, что вы находитесь в отладке, то выделите реквизит, параметр которого вам необходим и нажмите Shift+F9. Вы увидите, как именно выглядит реквизит, которого вам не хватает. Остается только заполнить его в вызове функций в вашем коде.
Если же речь идет о какой-то самописной функции или методе, который возвращает такую ошибку, то можно удалить лишний параметр в том случае, если вы уверены, что в коде он не используется и его удаление не нарушит логику дальнейших действий 1С.
К сожалению, невозможно предложить универсальное решение этой ошибки программы 1С, но если понять принцип, ее исправление не должно занимать много времени и сил. В любом случае, если у вас появляются подобного рода ошибки, лучше обратитесь к фирме, которая вас обслуживает, чтобы решить проблему.
Специалист компании «Кодерлайн»
Роман Барабанов
Недостаточно фактических параметров в 1С 8.3
Ошибка Недостаточно фактических параметров в 1С 8.3 показывает, что в исполняемую функцию передано меньше параметров, чем необходимо для выполнения операции. Для анализа ошибки Бухэксперт8 подготовил специальный пример.
Причины ошибки
Наибольший процент причин, вызывающих ошибку Недостаточно фактических параметров, приходится на ошибки обновления и доработки конфигурации 1С.
Ошибка программного кода
Информация, отображаемая в карточке ошибки, указывает, что ошибка регистрируется в строке 143 общего модуля ПоступлениеТоваровУслугФормыКлиент.
Для исправления ошибки:
- Откройте 1С в режиме Конфигуратор и перейдите в указанный общий модуль.
- На строке 143 найдите функцию ПолучитьПараметрыПодбора.
- Определите число фактических параметров функции, указанных в скобках.
- Встаньте на функцию ПолучитьПараметрыПодбора мышкой и перейдите в описание функции, нажав кнопку F12.
Программа автоматически переместит вас в место описания вызываемой функции. - Проанализируйте число параметров функции исполнения, указанных в скобках.
- Приведите в соответствие фактические и описанные параметры функции. Для этого измените фактические параметры в процедуре ПодборНоменклатуры.
Cохраните выполненные изменения. После обновления конфигурации операция подбора номенклатуры в документах поступления услуг будет выполняться без ошибки.

Заказать консультацию
По этой или иной ошибке Вы можете обратиться к нашим специалистам, мы Вам поможем решить Вашу проблему.
0 / 0 / 0
Регистрация: 29.10.2013
Сообщений: 7
1
Ошибка(Недостаточно фактических параметров)
02.10.2021, 23:51. Показов 3452. Ответов 3
Добрый вечер, выходит ошибка {ОбщийМодуль.УправлениеПечатью.Модуль(1510)}: Недостаточно фактических параметров
ВнешняяОбработкаОбъект.Печать(
Подскажите в чем причина? Код прикладываюю Красным цветом выделено место ошибки
Кликните здесь для просмотра всего текста
| 1C | ||
|
Это та часть печатной формы, написанная мной:
Кликните здесь для просмотра всего текста
| 1C | ||
|
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Сообщение с текстом Недостаточно фактических параметров 1С 8.3 показывает, когда в процедуру или функцию, содержащие алгоритмы обработки данных, передается не вся начальная информация. Если ошибка возникла после обновления конфигурации, рекомендуется дождаться исправленной версии. Для устранения ошибки в доработанной конфигурации потребуются навыки работы в конфигураторе.
Рассмотрим примеры на доработанной конфигурации 1С Бухгалтерия 8.3.
Содержание
- 1 Параметры процедур и функций
- 2 Исправление ошибки
- 2.1 Недостаточно параметров в типовой процедуре/функции/методе
- 2.2 Вам будет интересно
Параметры процедур и функций
Прежде чем приступить к исправлению ошибки, связанной с недостаточным количеством параметров, необходимо понять ее суть. Причина — в несоответствии количества передаваемых в процедуру/функцию параметров.
После имени процедуры/функции в скобках указываются переменные, в которые передаются данные для выполнения. Число передаваемых параметров должно совпадать с перечисленными при вызове процедуры/функции. Наименования не сравниваются, важен только порядок.

Если ничего не указано, значит, дополнительных параметров для выполнения не требуется.
![]()
В программном коде 1С программисты используют как стандартные процедуры/функции/методы (далее — «процедура»), так и создают свои.
При создании собственных обработок логично предположить, что все передаваемые данные будут использоваться при выполнении процедуры. Перечисляемые в скобках параметры представляют собой переменные, в которые временно записываются значения, используемые в дальнейшем в теле процедуры.

Если значение какого-то параметра не передано, пользователю выдается ошибка Недостаточно фактических параметров. Поэтому количество указанных при вызове процедуры параметров должно совпадать с числом переменных, перечисленных в описании тела процедуры.
Исключением являются встроенные процедуры и функции, где достаточно указать только обязательные параметры. Все стандартные процедуры описаны в Синтакс-Помощнике. Список их параметров строго закреплен в программе и не может дополняться или изменяться.
![]()
На рисунке у встроенной функции ПоказатьВопрос три обязательных параметра.
Но типовые процедуры-обработчики событий — такие, как НачалоВыбора, ПриКопировании не имеют обязательных параметров, их наборы программисты могут расширить при необходимости.
Для функций значения параметров могут быть заданы в описании по умолчанию. Передача данных для таких параметров при вызове функции не нужна.

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

В окне с текстом ошибки находится информация о месте ее возникновения: модуль, строка кода, имя процедуры. Для устранения перейдите в конфигуратор:
- Отыщите строку, где возникает сбой:
- модуль формы ФормаДокументаТовары документа РеализацияТоваровУслуг;
- строка 616;
- имя процедуры ПодготовитьПараметры, расположение — общей модуль РеализацияТоваровУслугФормыКлиент.
- Обратите внимание на количество параметров, передаваемых процедуре.

- Перейдите к описанию процедуры, для этого выделите имя, вызовите контекстное меню и выполните команду Перейти к определению.

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

- Определите данные, которые должны содержать параметры. Имена могут не совпадать, но по ним можно понять, что передается в процедуру:
- Форма — объект типа ТипФорма;
- СтрокаТабличнойЧасти — текущая строка таблицы формы.
Если названия параметров не имеют смыслового значения, попробуйте установить их состав через анализ выполняемых с ними действий, например:

- Параметр1 разыменовывают: Объект.Список, такое обращение подходит для элементов формы, следовательно Параметр1 — форма;
- Параметр2 передают в качестве параметра встроенного метода НайтиПоИдентификатору, тип Число, которое идентифицирует элемент коллекции формы.
Кроме этого определить содержание помогут имена модулей, процедур, анализ действий в пользовательском режиме, приводящих к ошибке.
- Укажите в вызове процедуры недостающие параметры, которые содержат необходимые данные.
В рассмотренном примере в процедуру должны передаваться два параметра: форма и текущая строка табличной части. При вызове процедуры второй параметр не был указан.

В качестве второго параметра была указана переменная ТекущиеДанные, полученная до вызова процедуры и содержащая строку табличной части.
Если перечисленные в описании параметры не участвуют в алгоритме процедуры, попробуйте удалить их для исправления ошибки. Прибегайте к такому приему, когда точно уверены, что недостающий параметр лишний.
Недостаточно параметров в типовой процедуре/функции/методе
Если выполнение команды Перейти к определению не дало результата, значит, используется встроенная процедура/функция/метод (далее — «процедура»). Алгоритмы их выполнения заложены в платформу, и вся обработка данных ведется в фоновом режиме. Поэтому применить способ с поиском тела процедуры и сравнением параметров не получится.

Наименование встроенной процедуры указывается в скобках после фразы «Недостаточно фактических параметров». Для устранения ошибки:
- Найдите описание процедуры в Синтакс-Помощнике, выделив наименование и нажав кнопку Поиск строки в Синтакс-Помощнике. Аналогичная команда есть в контекстном меню.

- В описании процедуры просмотрите раздел Параметры в открывшемся окне Синтакс-Помощника. Найдите обязательные параметры и сравните их с перечисленными в коде.

- Добавьте в процедуру недостающие параметры.

В примере не хватает третьего обязательного параметра с типом РежимДиалогаВопрос — это системное перечисление, которое можно сразу указать в качестве параметра. Если предварительно требуется получить данные и привести их к нужному типу, используют переменные.

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

Помните, что необдуманное изменение конфигурации может привести к сбою всей программы и повреждению базы данных. Поэтому при любых затруднениях поручайте исправление ошибки программисту 1С.
См. также:
- Слишком много фактических параметров в 1С 8.3
- Поле объекта недоступно для записи в 1С 8.3
- Переменная не определена в 1С 8.3
- Метод объекта не обнаружен в 1С 8.3
- Поле объекта не обнаружено в 1С 8.3
- Нарушение прав доступа 1С 8.3: внешняя обработка
- Неверный формат хранилища данных 1С
- Недостаточно памяти в 1С 8.3
Поставьте вашу оценку этой статье:
Загрузка…
Дата публикации: Фев 11, 2021
Поставьте вашу оценку этой статье:
Загрузка…
Функция Печать() Экспорт
ТабДокумент = ПечатьУниверсальныхПередаточныхДокументов();
возврат ТабДокумент;
КонецФункции // Печать
Функция ОпределитьСчетФактураТребуются(МассивОбъектов)
ДокументыСчетФактураНеТребуется = Новый Массив;
Если НЕ ЗначениеЗаполнено(МассивОбъектов) Тогда
Возврат ДокументыСчетФактураНеТребуется;
КонецЕсли;
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("МассивОбъектов", МассивОбъектов);
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| РеализацияТоваровУслуг.Ссылка КАК Ссылка,
| ИСТИНА КАК ЕстьНДС
|ПОМЕСТИТЬ ВТ_ДокументыСНДС
|ИЗ
| Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслуг
|ГДЕ
| РеализацияТоваровУслуг.Ссылка В(&МассивОбъектов)
| И РеализацияТоваровУслуг.СуммаНДС > 0
|
|ОБЪЕДИНИТЬ
|
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| РеализацияТоваровУслуг.Ссылка,
| ИСТИНА
|ИЗ
| Документ.РеализацияТоваровУслуг.Услуги КАК РеализацияТоваровУслуг
|ГДЕ
| РеализацияТоваровУслуг.Ссылка В(&МассивОбъектов)
| И РеализацияТоваровУслуг.СуммаНДС > 0
|
|ИНДЕКСИРОВАТЬ ПО
| Ссылка
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| РеализацияТоваровУслуг.Ссылка,
| РеализацияТоваровУслуг.Дата,
| РеализацияТоваровУслуг.Организация,
| ЕСТЬNULL(ВТ_ДокументыСНДС.ЕстьНДС, ЛОЖЬ) КАК ЕстьНДС
|ИЗ
| Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
| ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ДокументыСНДС КАК ВТ_ДокументыСНДС
| ПО (ВТ_ДокументыСНДС.Ссылка = РеализацияТоваровУслуг.Ссылка)
|ГДЕ
| РеализацияТоваровУслуг.Ссылка В(&МассивОбъектов)
| И РеализацияТоваровУслуг.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийРеализацияТоваров.ОтгрузкаБезПереходаПраваСобственности)
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| РеализацияТоваровУслуг.Ссылка
|ИЗ
| Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
|ГДЕ
| РеализацияТоваровУслуг.Ссылка В(&МассивОбъектов)
| И РеализацияТоваровУслуг.ДоговорКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СКомиссионером)
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| РеализацияТоваровУслуг.Ссылка,
| РеализацияТоваровУслуг.Дата,
| РеализацияТоваровУслуг.Организация,
| ЕСТЬNULL(ВТ_ДокументыСНДС.ЕстьНДС, ЛОЖЬ) КАК ЕстьНДС
|ИЗ
| Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
| ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ДокументыСНДС КАК ВТ_ДокументыСНДС
| ПО РеализацияТоваровУслуг.Ссылка = ВТ_ДокументыСНДС.Ссылка
|ГДЕ
| РеализацияТоваровУслуг.Ссылка В(&МассивОбъектов)
| И РеализацияТоваровУслуг.ВидОперации <> ЗНАЧЕНИЕ(Перечисление.ВидыОперацийРеализацияТоваров.ОтгрузкаБезПереходаПраваСобственности)
| И РеализацияТоваровУслуг.ДоговорКонтрагента.ВидДоговора <> ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СКомиссионером)";
Результат = Запрос.ВыполнитьПакет();
// Отгрузки без перехода права собственности
Выборка = Результат[1].Выбрать();
Пока Выборка.Следующий() Цикл
УчетнаяПолитика = ОбщегоНазначения.ПолучитьПараметрыУчетнойПолитикиРегл(Выборка.Дата, Выборка.Организация);
Если НЕ ЗначениеЗаполнено(УчетнаяПолитика) Тогда
ДокументыСчетФактураНеТребуется.Добавить(Выборка.Ссылка);
ИначеЕсли НЕ УчетнаяПолитика.НачислятьНДСПоОтгрузке Тогда
ДокументыСчетФактураНеТребуется.Добавить(Выборка.Ссылка);
ИначеЕсли НЕ Выборка.ЕстьНДС И УчетнаяПолитика.УСН Тогда
ДокументыСчетФактураНеТребуется.Добавить(Выборка.Ссылка);
КонецЕсли;
КонецЦикла;
// Отгрузки по договорам комиссии
Выборка = Результат[2].Выбрать();
Пока Выборка.Следующий() Цикл
ДокументыСчетФактураНеТребуется.Добавить(Выборка.Ссылка);
КонецЦикла;
// Прочие реализации
Выборка = Результат[3].Выбрать();
Пока Выборка.Следующий() Цикл
УчетнаяПолитика = ОбщегоНазначения.ПолучитьПараметрыУчетнойПолитикиРегл(Выборка.Дата, Выборка.Организация);
Если НЕ ЗначениеЗаполнено(УчетнаяПолитика) Тогда
ДокументыСчетФактураНеТребуется.Добавить(Выборка.Ссылка);
ИначеЕсли НЕ Выборка.ЕстьНДС И УчетнаяПолитика.УСН Тогда
ДокументыСчетФактураНеТребуется.Добавить(Выборка.Ссылка);
КонецЕсли;
КонецЦикла;
Возврат ДокументыСчетФактураНеТребуется;
КонецФункции
Функция ПечатьУниверсальныхПередаточныхДокументов(МассивОбъектов, ОбъектыПечати)
ТабДокумент = Новый ТабличныйДокумент;
// Устанавливаем параметры печати и колонтитулы
ТабДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
ТабДокумент.ПолеСверху = 12;
ТабДокумент.ПолеСлева = 0;
ТабДокумент.ПолеСнизу = 0;
ТабДокумент.ПолеСправа = 0;
ТабДокумент.АвтоМасштаб = Истина;
ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_УниверсальныйПередаточныйДокумент";
ПервыйДокумент = Истина;
ВыводитьКолонтитул = МассивОбъектов.Количество() = 1;
ТабДокументНеВыводитьНаПечать = Истина;
ДокументыСчетФактураНеТребуется = ОпределитьСчетФактураТребуются(МассивОбъектов);
Для каждого Ссылка Из МассивОбъектов Цикл
Если Не ПервыйДокумент Тогда
ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;
ПервыйДокумент = Ложь;
НомерСтрокиНачало = ТабДокумент.ВысотаТаблицы + 1;
РеквизитыДокумента = ОбщегоНазначения.ПолучитьЗначенияРеквизитов(Ссылка, "Ссылка, Дата, Номер, Организация,
|ВидОперации, Контрагент, ДоговорКонтрагента, ОтпускРазрешил, ГлавныйБухгалтер, Подразделение,
|ДоверенностьНомер, ДоверенностьДата, ДоверенностьВыдана, ДоверенностьЧерезКого");
ДанныеДокумента = Новый Структура();
ДанныеДокумента.Вставить("ДокументСсылка", РеквизитыДокумента.Ссылка);
ДанныеДокумента.Вставить("Номер", РеквизитыДокумента.Номер);
ДанныеДокумента.Вставить("Дата", РеквизитыДокумента.Дата);
ДанныеДокумента.Вставить("Ссылка", Документы.СчетФактураВыданный.ПустаяСсылка());
ДанныеДокумента.Вставить("ДокументОснование", РеквизитыДокумента.Ссылка);
ДанныеДокумента.Вставить("Организация", РеквизитыДокумента.Организация);
ДанныеДокумента.Вставить("Контрагент", РеквизитыДокумента.Контрагент);
ДанныеДокумента.Вставить("ДоговорКонтрагента", РеквизитыДокумента.ДоговорКонтрагента);
ДанныеДокумента.Вставить("Руководитель", РеквизитыДокумента.ОтпускРазрешил);
ДанныеДокумента.Вставить("ГлавныйБухгалтер", РеквизитыДокумента.ГлавныйБухгалтер);
ДанныеДокумента.Вставить("ВалютаРегламентированногоУчета", глЗначениеПеременной("ВалютаРегламентированногоУчета"));
ДанныеДокумента.Вставить("Подразделение", РеквизитыДокумента.Подразделение);
Если ЗначениеЗаполнено(РеквизитыДокумента.ДоверенностьНомер) ИЛИ ЗначениеЗаполнено(РеквизитыДокумента.ДоверенностьДата)
ИЛИ ЗначениеЗаполнено(РеквизитыДокумента.ДоверенностьВыдана) ИЛИ ЗначениеЗаполнено(РеквизитыДокумента.ДоверенностьЧерезКого) Тогда
Доверенность = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'по доверенности №%1 от %2 выданной %3 %4'"),
РеквизитыДокумента.ДоверенностьНомер, Формат(РеквизитыДокумента.ДоверенностьДата, "ДЛФ=ДД"),
РеквизитыДокумента.ДоверенностьВыдана, РеквизитыДокумента.ДоверенностьЧерезКого);
ДанныеДокумента.Вставить("Доверенность", Доверенность);
КонецЕсли;
ВидДоговора = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(РеквизитыДокумента.ДоговорКонтрагента, "ВидДоговора");
ПередачаНаРеализациюПоКомиссии = (ВидДоговора = Перечисления.ВидыДоговоровКонтрагентов.СКомиссионером);
ДанныеДокумента.Вставить("ПередачаНаРеализациюПоКомиссии", ПередачаНаРеализациюПоКомиссии);
СчетФактураТребуется = (ДокументыСчетФактураНеТребуется.Найти(Ссылка) = Неопределено);
СтруктураОтбораСчетаФактуры = Новый Структура;
СтруктураОтбораСчетаФактуры.Вставить("ПометкаУдаления", Ложь);
Если УчетНДС.ПечатьУниверсальногоПередаточногоДокумента(ДанныеДокумента, СчетФактураТребуется, ТабДокумент, СтруктураОтбораСчетаФактуры) = Неопределено Тогда
Продолжить;
КонецЕсли;
ТабДокумент.ВерхнийКолонтитул.Выводить = ВыводитьКолонтитул;
ТабДокументНеВыводитьНаПечать = Ложь;
УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабДокумент, НомерСтрокиНачало, ОбъектыПечати, Ссылка);
КонецЦикла;
Если ТабДокументНеВыводитьНаПечать Тогда
Макет = ПолучитьОбщийМакет("УниверсальныйПередаточныйДокумент");
ОбластьМакета = Макет.ПолучитьОбласть("Ошибка");
ТабДокумент.Вывести(ОбластьМакета);
КонецЕсли;
Возврат ТабДокумент;
КонецФункции
Выдает ошибку Недостаточно фактических параметров (ПечатьУниверсальныхПередаточныхДокументов)
ТабДокумент = <<?>>ПечатьУниверсальныхПередаточныхДокументов(); (Проверка: Толстый клиент (обычное приложение))
Не подскажите в чем может быть проблема ?
