Имя: Пароль:
1C
1С v8
Недостаточно фактических параметров
,
0 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) + ".";
           Иначе
               Предприниматель = "";
           КонецЕсли;
           
           ОбластьМакета.Параметры.ФИОПредпринимателя = Предприниматель;
           
       КонецЕсли;
       
   Иначе
       ОбластьМакета = Макет.ПолучитьОбласть("ПодвалЗаказа");
   КонецЕсли;
   ОбластьМакета.Параметры.Заполнить(Шапка);
   ТабДокумент.Вывести(ОбластьМакета);

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

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

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

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

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

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