Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 8 общая

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

Недостаточно фактических параметров
Я
   buhochka
 
25.12.12 - 17:11
Помогите, пожалуйста, вторые сутки бьюсь с ВПФ счета на оплату. Вроде, все делаю, как у вас написано, но ошибка остается.
Функция Печать(Тип)Экспорт
    Перем ПодразделениеОтветственныхЛиц;

    Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект.Ссылка);
    Запрос.Текст ="
    |ВЫБРАТЬ
    |    Номер,
    |    Дата,
    |    ДоговорКонтрагента,
    |    Организация,
    |    Контрагент КАК Покупатель,
    |    Организация КАК Руководители,
    |    Организация КАК Поставщик,
    |    ОрганизацияПолучатель КАК Получатель,
    |    СуммаДокумента,
    |    ВалютаДокумента,
    |    УчитыватьНДС,
    |    СуммаВключаетНДС
    |ИЗ
    |    Документ.СчетНаОплатуПокупателю КАК ЗаказПокупателя
    |
    |ГДЕ
    |    ЗаказПокупателя.Ссылка = &ТекущийДокумент";

    Шапка = Запрос.Выполнить().Выбрать();
    Шапка.Следующий();

    ТабДокумент = Новый ТабличныйДокумент;
    ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ЗаказПокупателя_СчетЗаказ";

    Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект.Ссылка);
    
    ЧастьЗапросаДляВыбораСодержанияУслуг = ФормированиеПечатныхФорм.ПолучитьЧастьЗапросаДляВыбораСодержанияУслуг("ЗаказПокупателя");
    
    Запрос.Текст = 
    "ВЫБРАТЬ
    |    ВложенныйЗапрос.Номенклатура КАК Номенклатура,
    |    ВЫРАЗИТЬ(ВложенныйЗапрос.Номенклатура.НаименованиеПолное КАК Строка(1000)) КАК Товар,
    |    ВложенныйЗапрос.Номенклатура.Код КАК Код,
    |    ВложенныйЗапрос.Номенклатура.Артикул КАК Артикул,
    |    ВложенныйЗапрос.Количество,
    |    ВложенныйЗапрос.ЕдиницаИзмерения,
    |    ВложенныйЗапрос.Цена,
    |    ВложенныйЗапрос.Сумма,
    |    ВложенныйЗапрос.СуммаНДС,
    |    ВложенныйЗапрос.НомерСтроки КАК НомерСтроки,
    |    1 КАК ID
    |ИЗ
    |    (ВЫБРАТЬ
    |        ЗаказПокупателя.Номенклатура КАК Номенклатура,
    |        ЗаказПокупателя.Номенклатура.БазоваяЕдиницаИзмерения.Наименование КАК ЕдиницаИзмерения,
    |        ЗаказПокупателя.Цена КАК Цена,
    |        СУММА(ЗаказПокупателя.Количество) КАК Количество,
    |        СУММА(ЗаказПокупателя.Сумма) КАК Сумма,
    |        СУММА(ЗаказПокупателя.СуммаНДС) КАК СуммаНДС,
    |        МИНИМУМ(ЗаказПокупателя.НомерСтроки) КАК НомерСтроки
    |    ИЗ
    |        Документ.СчетНаОплатуПокупателю.Товары КАК ЗаказПокупателя
    |    
    |    ГДЕ
    |        ЗаказПокупателя.Ссылка = &ТекущийДокумент
    |    
    |    СГРУППИРОВАТЬ ПО
    |        ЗаказПокупателя.Номенклатура,
    |        ЗаказПокупателя.Номенклатура.БазоваяЕдиницаИзмерения.Наименование,
    |        ЗаказПокупателя.Цена) КАК ВложенныйЗапрос
    |
    |ОБЪЕДИНИТЬ ВСЕ
    |
    |ВЫБРАТЬ
    |    " + ЧастьЗапросаДляВыбораСодержанияУслуг + ",
    |    " + ЧастьЗапросаДляВыбораСодержанияУслуг + ",
    |    ЗаказПокупателя.Номенклатура.Код КАК Код,
    |    ЗаказПокупателя.Номенклатура.Артикул КАК Артикул,
    |    ЗаказПокупателя.Количество,
    |    ЗаказПокупателя.Номенклатура.БазоваяЕдиницаИзмерения.Наименование,
    |    ЗаказПокупателя.Цена,
    |    ЗаказПокупателя.Сумма,
    |    ЗаказПокупателя.СуммаНДС,
    |    ЗаказПокупателя.НомерСтроки,
    |    2
    |ИЗ
    |    Документ.СчетНаОплатуПокупателю.Услуги КАК ЗаказПокупателя
    |
    |ГДЕ
    |    ЗаказПокупателя.Ссылка = &ТекущийДокумент
    |
    |УПОРЯДОЧИТЬ ПО
    |    ID,
    |    НомерСтроки";

    ЗапросТовары = Запрос.Выполнить().Выгрузить();

    Макет = ПолучитьМакет("СчетЗаказ");

   // Выводим шапку накладной
 

    СведенияОПолучателе = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Получатель, Шапка.Дата);
    Если Тип = "Счет" Тогда
        ОбластьМакета       = Макет.ПолучитьОбласть("ЗаголовокСчета");
        ОбластьМакета.Параметры.Заполнить(Шапка);
        ОбластьМакета.Параметры.ИННПолучателя = СведенияОПолучателе.ИНН;
        ОбластьМакета.Параметры.КПППолучателя = СведенияОПолучателе.КПП;
        Если ТипЗнч(СсылкаНаОбъект.СтруктурнаяЕдиница) = Тип("СправочникСсылка.БанковскиеСчета") Тогда
            Банк = ?(НЕ ЗначениеЗаполнено(СсылкаНаОбъект.СтруктурнаяЕдиница.БанкДляРасчетов), СсылкаНаОбъект.СтруктурнаяЕдиница.Банк, СсылкаНаОбъект.СтруктурнаяЕдиница.БанкДляРасчетов);
            БИК        = Банк.Код;
            КоррСчет   = Банк.КоррСчет;
            ГородБанка = Банк.Город;
            НомерСчета = СсылкаНаОбъект.ВернутьРасчетныйСчет(СсылкаНаОбъект.СтруктурнаяЕдиница);

            ОбластьМакета.Параметры.БИКБанкаПолучателя               = БИК;
            ОбластьМакета.Параметры.БанкПолучателя                   = Банк;
            ОбластьМакета.Параметры.БанкПолучателяПредставление      = СокрЛП(Банк) + " " + ГородБанка;
            ОбластьМакета.Параметры.СчетБанкаПолучателя              = КоррСчет;
            ОбластьМакета.Параметры.СчетБанкаПолучателяПредставление = КоррСчет;
            ОбластьМакета.Параметры.СчетПолучателяПредставление      = НомерСчета;
            ОбластьМакета.Параметры.СчетПолучателя                   = НомерСчета;
        КонецЕсли;
        
        Если ПустаяСтрока(СсылкаНаОбъект.СтруктурнаяЕдиница.ТекстКорреспондента) Тогда
            ТекстКорреспондента = СведенияОПолучателе.НаименованиеДляПечатныхФорм;
            Если ЗначениеЗаполнено(СсылкаНаОбъект.СтруктурнаяЕдиница.БанкДляРасчетов) Тогда
                ТекстКорреспондента = ТекстКорреспондента + " р/с " + СсылкаНаОбъект.СтруктурнаяЕдиница.НомерСчета
                + " в " + СсылкаНаОбъект.СтруктурнаяЕдиница.Банк + " " + СсылкаНаОбъект.СтруктурнаяЕдиница.Банк.Город;
            КонецЕсли;    
        Иначе
            ТекстКорреспондента = СсылкаНаОбъект.СтруктурнаяЕдиница.ТекстКорреспондента;
        КонецЕсли;        
        ОбластьМакета.Параметры.ПредставлениеПолучателя = ТекстКорреспондента;
        
        ТабДокумент.Вывести(ОбластьМакета);
    КонецЕсли; 

    ОбластьМакета = Макет.ПолучитьОбласть("Заголовок");
    ОбластьМакета.Параметры.ТекстЗаголовка = ОбщегоНазначения.СформироватьЗаголовокДокумента(Шапка, "Счет на оплату");
    
    ТабДокумент.Вывести(ОбластьМакета);

    ОбластьМакета = Макет.ПолучитьОбласть("Поставщик");
    ОбластьМакета.Параметры.Заполнить(Шапка);
    СведенияОбОрганизации    = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Организация, Шапка.Дата);
    ОбластьМакета.Параметры.ПредставлениеПоставщика = ФормированиеПечатныхФорм.ОписаниеОрганизации(
        СведенияОбОрганизации, "НаименованиеДляПечатныхФорм,ИНН,КПП,ЮридическийАдрес,Телефоны,");
    ТабДокумент.Вывести(ОбластьМакета);

    ОбластьМакета = Макет.ПолучитьОбласть("Покупатель");
    ОбластьМакета.Параметры.Заполнить(Шапка);
    СведенияОПокупателе     = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Покупатель, Шапка.Дата);
    ОбластьМакета.Параметры.ПредставлениеПокупателя = ФормированиеПечатныхФорм.ОписаниеОрганизации(
        СведенияОПокупателе, "НаименованиеДляПечатныхФорм,ИНН,КПП,ЮридическийАдрес,Телефоны,");
    ТабДокумент.Вывести(ОбластьМакета);
    
    ДопКолонка = Константы.ДополнительнаяКолонкаПечатныхФормДокументов.Получить();
    Если ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Артикул Тогда
        ВыводитьКоды = Истина;
        Колонка = "Артикул";
    ИначеЕсли ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Код Тогда
        ВыводитьКоды = Истина;
        Колонка = "Код";
    Иначе
        ВыводитьКоды = Ложь;
    КонецЕсли;

    ОбластьНомера = Макет.ПолучитьОбласть("ШапкаТаблицы|НомерСтроки");
    ОбластьКодов  = Макет.ПолучитьОбласть("ШапкаТаблицы|КолонкаКодов");
    ОбластьДанных = Макет.ПолучитьОбласть("ШапкаТаблицы|Данные");
    ОбластьСуммы  = Макет.ПолучитьОбласть("ШапкаТаблицы|Сумма");

    ТабДокумент.Вывести(ОбластьНомера);
    Если ВыводитьКоды Тогда
        ОбластьКодов.Параметры.ИмяКолонкиКодов = Колонка;
        ТабДокумент.Присоединить(ОбластьКодов);
    КонецЕсли;
    ТабДокумент.Присоединить(ОбластьДанных);
    ТабДокумент.Присоединить(ОбластьСуммы);

    ОбластьКолонкаТовар = Макет.Область("Товар");
    
    Если Не ВыводитьКоды Тогда
        ОбластьКолонкаТовар.ШиринаКолонки = ОбластьКолонкаТовар.ШиринаКолонки + 
                                            Макет.Область("КолонкаКодов").ШиринаКолонки;
    КонецЕсли;

    ОбластьНомера = Макет.ПолучитьОбласть("Строка|НомерСтроки");
    ОбластьКодов  = Макет.ПолучитьОбласть("Строка|КолонкаКодов");
    ОбластьДанных = Макет.ПолучитьОбласть("Строка|Данные");
    ОбластьСуммы  = Макет.ПолучитьОбласть("Строка|Сумма");

    Сумма    = 0;
    СуммаНДС = 0;
    ВсегоСкидок    = 0;
    ВсегоБезСкидок = 0;

    Для каждого ВыборкаСтрокТовары Из ЗапросТовары Цикл 

        ОбластьНомера.Параметры.НомерСтроки = ЗапросТовары.Индекс(ВыборкаСтрокТовары) + 1;
        ТабДокумент.Вывести(ОбластьНомера);
        
        Если ВыводитьКоды Тогда
            Если Колонка = "Артикул" Тогда
                ОбластьКодов.Параметры.Артикул = ВыборкаСтрокТовары.Артикул;
            Иначе
                ОбластьКодов.Параметры.Артикул = ВыборкаСтрокТовары.Код;
            КонецЕсли;
            ТабДокумент.Присоединить(ОбластьКодов);
        КонецЕсли;

        ОбластьДанных.Параметры.Заполнить(ВыборкаСтрокТовары);
        ОбластьДанных.Параметры.Товар       = СокрЛП(ВыборкаСтрокТовары.Товар);
        ТабДокумент.Присоединить(ОбластьДанных);

        ОбластьСуммы.Параметры.Заполнить(ВыборкаСтрокТовары);
        ТабДокумент.Присоединить(ОбластьСуммы);
        Сумма          = Сумма       + ВыборкаСтрокТовары.Сумма;
        СуммаНДС       = СуммаНДС    + ВыборкаСтрокТовары.СуммаНДС;

    КонецЦикла;

   // Вывести Итого
 
    ОбластьНомера = Макет.ПолучитьОбласть("Итого|НомерСтроки");
    ОбластьКодов  = Макет.ПолучитьОбласть("Итого|КолонкаКодов");
    ОбластьДанных = Макет.ПолучитьОбласть("Итого|Данные");
    ОбластьСуммы  = Макет.ПолучитьОбласть("Итого|Сумма");

    ТабДокумент.Вывести(ОбластьНомера);
    Если ВыводитьКоды Тогда
        ТабДокумент.Присоединить(ОбластьКодов);
    КонецЕсли;
    ТабДокумент.Присоединить(ОбластьДанных);
    ОбластьСуммы.Параметры.Всего = ОбщегоНазначения.ФорматСумм(Сумма);
    ТабДокумент.Присоединить(ОбластьСуммы);

   // Вывести ИтогоНДС
 
    ОбластьНомера = Макет.ПолучитьОбласть("ИтогоНДС|НомерСтроки");
    ОбластьКодов  = Макет.ПолучитьОбласть("ИтогоНДС|КолонкаКодов");
    ОбластьДанных = Макет.ПолучитьОбласть("ИтогоНДС|Данные");
    ОбластьСуммы  = Макет.ПолучитьОбласть("ИтогоНДС|Сумма");
    
    ТабДокумент.Вывести(ОбластьНомера);
    Если ВыводитьКоды Тогда
        ТабДокумент.Присоединить(ОбластьКодов);
    КонецЕсли;
    Если СуммаНДС <> 0 Тогда
        ОбластьДанных.Параметры.НДС = ?(Шапка.СуммаВключаетНДС, "В том числе НДС:", "Сумма НДС:");
        ОбластьСуммы.Параметры.ВсегоНДС = ОбщегоНазначения.ФорматСумм(СуммаНДС);
    Иначе
        ОбластьДанных.Параметры.НДС = "Без налога (НДС)";
        ОбластьСуммы.Параметры.ВсегоНДС = "-";
    КонецЕсли;
    ТабДокумент.Присоединить(ОбластьДанных);
    
    ТабДокумент.Присоединить(ОбластьСуммы);
    
   // Вывести ИтогоКОплате
 
    ОбластьНомера = Макет.ПолучитьОбласть("ИтогоКОплате|НомерСтроки");
    ОбластьКодов = Макет.ПолучитьОбласть("ИтогоКОплате|КолонкаКодов");
    ОбластьДанных = Макет.ПолучитьОбласть("ИтогоКОплате|Данные");
    ОбластьСуммы  = Макет.ПолучитьОбласть("ИтогоКОплате|Сумма");
    ТабДокумент.Вывести(ОбластьНомера);
    Если ВыводитьКоды Тогда
        ТабДокумент.Присоединить(ОбластьКодов);
    КонецЕсли;
    ТабДокумент.Присоединить(ОбластьДанных);
    СуммаКОплате = Сумма + ?(Шапка.СуммаВключаетНДС, 0, СуммаНДС);
    ОбластьСуммы.Параметры.ИтогоКОплате = ОбщегоНазначения.ФорматСумм(СуммаКОплате);
    ТабДокумент.Присоединить(ОбластьСуммы);
    
   // Вывести Сумму прописью
 
    ОбластьМакета = Макет.ПолучитьОбласть("СуммаПрописью");
    СуммаКПрописи = Сумма + ?(Шапка.СуммаВключаетНДС, 0, СуммаНДС);
    ОбластьМакета.Параметры.ИтоговаяСтрока ="Всего наименований " + ЗапросТовары.Количество()
    + ", на сумму " + ОбщегоНазначения.ФорматСумм(СуммаКПрописи, Шапка.ВалютаДокумента);
    ОбластьМакета.Параметры.СуммаПрописью = ОбщегоНазначения.СформироватьСуммуПрописью(СуммаКПрописи, Шапка.ВалютаДокумента);
    ТабДокумент.Вывести(ОбластьМакета);

   // Вывести подписи
 
    Если Тип = "Счет" Тогда
        
        Если Шапка.Получатель.ЮрФизЛицо = Перечисления.ЮрФизЛицо.ЮрЛицо Тогда
            ОбластьМакета = Макет.ПолучитьОбласть("ПодвалСчета");
            
            Руководители = ОбщегоНазначения.ОтветственныеЛица(Шапка.Руководители, Шапка.Дата, ПодразделениеОтветственныхЛиц);
            Руководитель = Руководители.РуководительПредставление;
            Бухгалтер    = Руководители.ГлавныйБухгалтерПредставление;
            
            ОбластьМакета.Параметры.ФИОРуководителя = Руководитель;
            ОбластьМакета.Параметры.ФИОБухгалтера   = Бухгалтер;
            
        Иначе
            ОбластьМакета = Макет.ПолучитьОбласть("ПодвалСчетаПредприниматель");
            
            ФЛ = Шапка.Получатель.ИндивидуальныйПредприниматель;
            ДанныеФЛ = РегистрыСведений.ФИОФизЛиц.СрезПоследних(СсылкаНаОбъект.Дата, Новый Структура("ФизЛицо",ФЛ));
            Если ДанныеФЛ.Количество() > 0 Тогда
                Предприниматель = СокрЛП(ДанныеФЛ[0].Фамилия) + " " + Лев(СокрЛП(ДанныеФЛ[0].Имя),1) + ". " + Лев(СокрЛП(ДанныеФЛ[0].Отчество),1) + ".";
            Иначе
                Предприниматель = "";
            КонецЕсли;
            
            ОбластьМакета.Параметры.ФИОПредпринимателя = Предприниматель;
            
        КонецЕсли;
        
    Иначе
        ОбластьМакета = Макет.ПолучитьОбласть("ПодвалЗаказа");
    КонецЕсли; 
    ОбластьМакета.Параметры.Заполнить(Шапка);
    ТабДокумент.Вывести(ОбластьМакета);

    Возврат ТабДокумент;

КонецФункции// Печать()
 
 
   rbcvg
 
1 - 25.12.12 - 17:12
весь текст ошибки выкладывай
   John83
 
2 - 25.12.12 - 17:12
Функция Печать(Тип)Экспорт
отсюда тип убери
   GLazNik
 
3 - 25.12.12 - 17:12
Итить.... ты б уж тогда сразу конфу выкладывал
   John83
 
4 - 25.12.12 - 17:13
+2 и сразу напиши Тип = "счет" или чего тебе там надо
   Reset
 
5 - 25.12.12 - 17:14
Это нужно быром метнуться по 1000 строчек и найти ошибку?
   Reset
 
6 - 25.12.12 - 17:14
или (2) телепат
   Reset
 
7 - 25.12.12 - 17:15
и пол с ником диссонирует
   samozvanec
 
8 - 25.12.12 - 17:26
(0) 1. Фотку
2. Текст ошибки
   singlych
 
9 - 25.12.12 - 17:59
(0) Делай, как говорит (2) и (4).
   buhochka
 
10 - 26.12.12 - 12:16
Сделала, как написали (2) и (4). Но опять выдает ошибку:
Не удалось сформировать внешнюю печатную форму!
Ошибка при вызове метода контекста (ПолучитьМакет): Недопустимое значение параметра (параметр номер '1')
 
 Рекламное место пустует
   ICWiner
 
11 - 26.12.12 - 12:37
А у твоей ВПФ есть макет СчетЗаказ?
   sapphire
 
12 - 26.12.12 - 12:40
(11) Нету стопудово или функцию не там лежит
   buhochka
 
13 - 26.12.12 - 12:49
Я скопировала макет СчетНаОплатуПокупателю, назвала его НашСчет. Тогда надо писать не Макет = ПолучитьМакет("СчетЗаказ");а Макет = ПолучитьМакет("НашСчет");?
   ICWiner
 
14 - 26.12.12 - 12:49
+
   buhochka
 
15 - 26.12.12 - 12:52
теперь выдает:
Метод объекта не обнаружен (ВернутьРасчетныйСчет)
   John83
 
16 - 26.12.12 - 13:10
НомерСчета = СсылкаНаОбъект.ПолучитьОбъект().ВернутьРасчетныйСчет(СсылкаНаОбъект.СтруктурнаяЕдиница);

но это только в том случае, если функция находится в модуле и экспортная, иначе копируешь ту функцию в свою печ. форму
PS почему до сих пор нет фото?
   buhochka
 
17 - 26.12.12 - 13:17
То же самое...
   Starhan
 
18 - 26.12.12 - 13:19
бух очка нид фото
   buhochka
 
19 - 26.12.12 - 14:53
Помогите!!!
Что за ошибка такая....
Метод объекта не обнаружен (ВернутьРасчетныйСчет)
   John83
 
20 - 26.12.12 - 15:30
(19) это значит, что в твоей печ. форме нет функции ВернутьРасчетныйСчет, внимательно читаем (16)
   buhochka
 
21 - 26.12.12 - 15:34
Я уже вставила в модуль
Функция ВернутьРасчетныйСчет(СчетКонтрагента)

    БанкДляРасчетов = СчетКонтрагента.БанкДляРасчетов;
    Результат       = ?(БанкДляРасчетов.Пустая(), СчетКонтрагента.НомерСчета, СчетКонтрагента.Банк.КоррСчет);

    Возврат Результат;

КонецФункции// ВернутьРасчетныйСчет()
   buhochka
 
22 - 26.12.12 - 15:34
а ошибка остается
   del123
 
23 - 26.12.12 - 15:38
так измени строку 
НомерСчета = СсылкаНаОбъект.ПолучитьОбъект().ВернутьРасчетныйСчет(СсылкаНаОбъект.СтруктурнаяЕдиница); 
на 
НомерСчета = ВернутьРасчетныйСчет(СсылкаНаОбъект.СтруктурнаяЕдиница);
   buhochka
 
24 - 26.12.12 - 15:53
УРА!!!!
Спасибо вам огромное!!!!!
   buhochka
 
25 - 26.12.12 - 16:39
Может еще подскажете, можно в номер счета поставить букву? Например, Счет на оплату № Н-1 от 26.12.12


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует