Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
25 ноя 2024, 03:10

Не удалось сформировать внешнюю печатную форму! Недостаточно фактических параметров

Автор Лиана0988, 08 июн 2018, 13:37

0 Пользователей и 1 гость просматривают эту тему.

Лиана0988

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

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

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

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

   Если НазваниеМакета = "М2А" тогда
      ОбластьМакета = Макет.ПолучитьОбласть("Отрез");
      //ОбластьМакета.Параметры.Заполнить(Шапка);
      ОбластьМакета.Параметры.НомерДокумента = ОбщегоНазначения.ПолучитьНомерНаПечать(СсылкаНаОбъект.ПолучитьОбъект());
      ОбластьМакета.Параметры.ФИОДоверенного =ОбщегоНазначения.ФамилияИнициалыФизЛица(ФамилияИмяОтчествоДоверенного);       ///  СокрЛП (Должность) + " " +
      ТабДокумент.Вывести(ОбластьМакета);
      НазваниеФормы = "Типовая межотраслевая форма № М-2а";
   КонецЕсли;

   Руководители = РегламентированнаяОтчетность.ОтветственныеЛицаОрганизаций(Шапка.Руководители, Шапка.ДатаДокумента);
   Руководитель = Руководители.Руководитель;
   Бухгалтер    = Руководители.ГлавныйБухгалтер;

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

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

   ОбластьМакета = Макет.ПолучитьОбласть("ЗаголовокТаблицы");
   ТабДокумент.Вывести(ОбластьМакета);

   Пока ВыборкаСтрокТовары.Следующий() Цикл
      ОбластьМакета = Макет.ПолучитьОбласть("Строка");
      ОбластьМакета.Параметры.Заполнить(ВыборкаСтрокТовары);
      ОбластьМакета.Параметры.КоличествоПрописью = ?(ВыборкаСтрокТовары.Количество = 0, "",
                                                   Строка(ВыборкаСтрокТовары.Количество) + " (" +
                                                   ФормированиеПечатныхФорм.КоличествоПрописью(ВыборкаСтрокТовары.Количество) + ")");
      ТабДокумент.Вывести(ОбластьМакета);
   КонецЦикла;

   ОбластьМакета = Макет.ПолучитьОбласть("Подвал");
   ОбластьМакета.Параметры.Заполнить(Шапка);

   Если ЗначениеЗаполнено(Руководитель) Тогда
      ОбластьМакета.Параметры.ФИОРуководителя       = Руководитель;
      ОбластьМакета.Параметры.Руководитель          = Руководитель;
   КонецЕсли;

   Если ЗначениеЗаполнено(Бухгалтер) Тогда
      ОбластьМакета.Параметры.ФИОГлавногоБухгалтера = Бухгалтер;
      ОбластьМакета.Параметры.ГлавныйБухгалтер      = Бухгалтер;
   КонецЕсли;

   ТабДокумент.Вывести(ОбластьМакета);

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

   
КонецФункции

Лиана0988

Может кому понадобиться. Выкладываю правильный код:

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

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

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

   Макет = ПолучитьМакет("М2а");
     
   ФамилияИмяОтчествоФизЛица     = ФормированиеПечатныхФорм.ФамилияИмяОтчество(Шапка.ФизЛицо, Шапка.ДатаДокумента);
   ПодразделениеДолжностьФизЛица = ПолныеПрава.СведенияОСотруднике(Шапка.ФизЛицо, Шапка.ДатаДокумента, Шапка.Организация);
   ФамилияИмяОтчествоДоверенного = ФамилияИмяОтчествоФизЛица.Фамилия + " " + ФамилияИмяОтчествоФизЛица.Имя + " " + ФамилияИмяОтчествоФизЛица.Отчество;
   ДолжностьДоверенного          =?(НЕ ЗначениеЗаполнено(ПодразделениеДолжностьФизЛица.Должность),"",ПодразделениеДолжностьФизЛица.Должность);;

   Если НазваниеМакета = "М2А" тогда
      ОбластьМакета = Макет.ПолучитьОбласть("Отрез");
      //ОбластьМакета.Параметры.Заполнить(Шапка);
      ОбластьМакета.Параметры.НомерДокумента = ОбщегоНазначения.ПолучитьНомерНаПечать(СсылкаНаОбъект.ПолучитьОбъект());
      ОбластьМакета.Параметры.ФИОДоверенного =ОбщегоНазначения.ФамилияИнициалыФизЛица(ФамилияИмяОтчествоДоверенного);       ///  СокрЛП (Должность) + " " +
      ТабДокумент.Вывести(ОбластьМакета);
      НазваниеФормы = "Типовая межотраслевая форма № М-2а";
   КонецЕсли;

   Руководители = РегламентированнаяОтчетность.ОтветственныеЛицаОрганизаций(Шапка.Руководители, Шапка.ДатаДокумента);
   Руководитель = Руководители.Руководитель;
   Бухгалтер    = Руководители.ГлавныйБухгалтер;

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

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

   ОбластьМакета = Макет.ПолучитьОбласть("ЗаголовокТаблицы");
   ТабДокумент.Вывести(ОбластьМакета);

   Пока ВыборкаСтрокТовары.Следующий() Цикл
      ОбластьМакета = Макет.ПолучитьОбласть("Строка");
      ОбластьМакета.Параметры.Заполнить(ВыборкаСтрокТовары);
      ОбластьМакета.Параметры.КоличествоПрописью = ?(ВыборкаСтрокТовары.Количество = 0, "",
                                                   Строка(ВыборкаСтрокТовары.Количество) + " (" +
                                                   ФормированиеПечатныхФорм.КоличествоПрописью(ВыборкаСтрокТовары.Количество) + ")");
      ТабДокумент.Вывести(ОбластьМакета);
   КонецЦикла;

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

   Если ЗначениеЗаполнено(Руководитель) Тогда
      ОбластьМакета.Параметры.ФИОРуководителя       = Руководитель;
      ОбластьМакета.Параметры.Руководитель          = Руководитель;
   КонецЕсли;

   Если ЗначениеЗаполнено(Бухгалтер) Тогда
      ОбластьМакета.Параметры.ФИОГлавногоБухгалтера = Бухгалтер;
      ОбластьМакета.Параметры.ГлавныйБухгалтер      = Бухгалтер;
   КонецЕсли;

   ТабДокумент.Вывести(ОбластьМакета);

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

   
КонецФункции

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск