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

ВПФ Розница 2.0 с БСП

Автор LordSolar, 01 мар 2013, 04:49

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

LordSolar

Помогите советом пожалуйста.
Разрабатываю ВПФ для Розница 2.0, называется Внешний договор. Печатается из документа Реализация товаров.
Но вот проблема при печати выводится пустой макет, а данные из документа не берутся. В чём ошибка?

// СЛУЖЕБНЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ РЕГИСТРАЦИИ ОБРАБОТКИ
Функция СведенияОВнешнейОбработке() Экспорт
ПараметрыРегистрации = Новый Структура;
МассивНазначений = Новый Массив;
 
ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма");
МассивНазначений.Добавить("Документ.РеализацияТоваров");
ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
 
ПараметрыРегистрации.Вставить("Наименование", "Внешний договор");
ПараметрыРегистрации.Вставить("БезопасныйРежим", Истина);
ПараметрыРегистрации.Вставить("Версия", "1.1"); 
ПараметрыРегистрации.Вставить("Информация", "Печатная форма Внешний договор к документу Реализация товаров");
 
ТаблицаКоманд = ПолучитьТаблицуКоманд();
 
ДобавитьКоманду(ТаблицаКоманд, "Внешний договор", "ВнешнийДоговор", "ВызовСерверногоМетода", Истина, "ПечатьMXL");
 
ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
 
Возврат ПараметрыРегистрации;
КонецФункции
Функция ПолучитьТаблицуКоманд()
   Команды = Новый ТаблицаЗначений;
   Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));
   Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));
   Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));
   Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
   Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
   Возврат Команды;
КонецФункции
Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
  НоваяКоманда = ТаблицаКоманд.Добавить();
  НоваяКоманда.Представление = Представление;
  НоваяКоманда.Идентификатор = Идентификатор;
  НоваяКоманда.Использование = Использование;
  НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
  НоваяКоманда.Модификатор = Модификатор;
КонецПроцедуры

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

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

Функция СформироватьПечатнуюФорму(МассивОбъектов, ОбъектыПечати)
ТабДокумент = Новый ТабличныйДокумент;
ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_Внешний_договор";
ТабДокумент.АвтоМасштаб = Истина;
ТабДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Портрет;

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

Макет = ПолучитьМакет("ПФ_Договор");
ОбластьМакета = Макет.ПолучитьОбласть("ШапкаДоговора");
ОбластьМакета.Параметры.ДоговорНомер = "Договор № " + Выборка.Номер;
ОбластьМакета.Параметры.ДатаДоговора = Выборка.Дата;
ТабДокумент.Вывести(ОбластьМакета);
Возврат ТабДокумент;
КонецФункции // СформироватьПечатнуюФорму(МассивОбъектов, ОбъектыПечати)


Никаких ошибок не выдаёт. На экран выводится строки "Договор №" без самого номера, дата соответственно тоже не выводится.Через табло проверяю МассивОбъектов значение массив, тип массив.

P.S. Сначала я переносил эту ВПФ с Розницы 1.0 но когда столкнулся с этой проблемой начал делать заново. Пересмотрел кучу видео и перечитал статей, вроде всё по инстукции, но данные из документа не цепляет

Yura063

Цитата: LordSolar от 01 мар 2013, 04:49Запрос.УстановитьПараметр("Ссылка" ,МассивОбъектов);
Выборка = Запрос.Выполнить().Выбрать();
Макет = ПолучитьМакет("ПФ_Договор");
ОбластьМакета = Макет.ПолучитьОбласть("ШапкаДоговора");
ОбластьМакета.Параметры.ДоговорНомер = "Договор № " + Выборка.Номер;
ОбластьМакета.Параметры.ДатаДоговора = Выборка.Дата;
ТабДокумент.Вывести(ОбластьМакета);

Наверное это из за того что вы не получили результат!

Запрос.УстановитьПараметр("Ссылка" ,МассивОбъектов);
Выборка = Запрос.Выполнить().Выбрать();
Результат = Выборка.Получить(0);

А дальше все то что вы делали только уже присваиваете результат.номер ну и так далее!
Помогли, отблагодари!

LordSolar

К сожалению Результат пустой тип Неопределоно, вот Выборка тип ВыборкаИзРезультатаЗапроса Значение - Ошибка чтения значения :(
Может есть ещё варианты.
Заранее спасибо

Yura063

Выложите ВПФ! посмотрю
Помогли, отблагодари!

LordSolar


Yura063

С получить не получается почему то, сделал так

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

Помогли, отблагодари!

LordSolar

Спасибо огромное,очень помогли, буду дальше работать

Теги:

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

Рейтинг@Mail.ru

Поиск