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

Внешняя печатная форма с формой в 8.3

Автор lolozhiga, 18 фев 2014, 10:45

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

wise

Представьте себе, какая была бы тишина, если бы люди говорили только то, что знают

Besart

Цитата: lolozhiga от 21 фев 2014, 07:31
Цитата: Besart от 18 фев 2014, 19:35
процедура Печать() должна быть экспортной, и если вы привели весь код из ВПФ, то этого недостаточно, для конфигураций построенных на БСП, нужен специальный алгоритм технология создания ВПФдля регистрации ВПФ и обработок, почитайте
Должна быть, если она в модуле, а если она в форме? Ссылка не открывается. У кого-нибудь есть простой пример?
для этого есть вызов клиентского метода, внимательнее читайте ссылку

lolozhiga

Цитата: Besart от 21 фев 2014, 14:59
Цитата: lolozhiga от 21 фев 2014, 07:31
Цитата: Besart от 18 фев 2014, 19:35
процедура Печать() должна быть экспортной, и если вы привели весь код из ВПФ, то этого недостаточно, для конфигураций построенных на БСП, нужен специальный алгоритм технология создания ВПФдля регистрации ВПФ и обработок, почитайте
Должна быть, если она в модуле, а если она в форме? Ссылка не открывается. У кого-нибудь есть простой пример?
для этого есть вызов клиентского метода, внимательнее читайте ссылку
Тогда другой вопрос. Код переписала
&НаСервере
Функция ПечатьМакета(МассивОбъектов, ТабДокумент)
   
   Перем ПодразделениеОтветственныхЛиц;
   
   УстановитьПривилегированныйРежим(Истина);      
   Запрос = Новый Запрос;
   Запрос.УстановитьПараметр("МассивОбъектов", МассивОбъектов);    
   Запрос.Текст =    
   "ВЫБРАТЬ
   |   ПоступлениеТоваровУслуг.НомерВходящегоДокумента КАК Номер,
   |   ПоступлениеТоваровУслуг.ДатаВходящегоДокумента КАК ДатаДокумента,
   |   ПоступлениеТоваровУслуг.Организация КАК Грузополучатель,
   |   ПоступлениеТоваровУслуг.Контрагент КАК Грузоотправитель,
   |   ПоступлениеТоваровУслуг.Номер КАК НомерДок,
   |   ПоступлениеТоваровУслуг.Дата,
   |   ПоступлениеТоваровУслуг.ПодразделениеОрганизации,
   |   ДЕНЬ(ПоступлениеТоваровУслуг.Дата) КАК День,
   |   МЕСЯЦ(ПоступлениеТоваровУслуг.Дата) КАК Месяц,
   |   ГОД(ПоступлениеТоваровУслуг.Дата) КАК Год,
   |   ПоступлениеТоваровУслуг.Ссылка
   |ИЗ
   |   Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг
   |ГДЕ
   |   ПоступлениеТоваровУслуг.Ссылка В(&МассивОбъектов)";
   
   МассивРезультатов = Запрос.ВыполнитьПакет();
   //Шапка = МассивРезультатов[0].Выбрать();
   
   //ВыборкаПоДокументам     = МассивРезультатов[0].Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
   
   Макет = РеквизитФормыВЗначение("Объект").ПолучитьМакет("ТОРГ2");     
   
   //СведенияОПокупателе = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛице(Шапка.Покупатель, Шапка.ДатаДокумента);
   //СведенияОПоставщике = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛице(Шапка.ЮрФизЛицо,  Шапка.ДатаДокумента);
   
   //Руководители = ОтветственныеЛицаБП.ОтветственныеЛица(Шапка.Руководители, Шапка.ДатаДокумента, ПодразделениеОтветственныхЛиц);
   //Руководитель = Руководители.РуководительПредставление;
   //Бухгалтер    = Руководители.ГлавныйБухгалтерПредставление;
   
   ОбластьМакета = Макет.ПолучитьОбласть("ШапкаПервойСтраницы");
   Если НЕ МассивРезультатов[0].Пустой() Тогда 
      Шапка = МассивРезультатов[0].Выбрать();
      Пока Шапка.Следующий() Цикл
         ПТУДокумент =  Шапка.Ссылка.ПолучитьОбъект();   
         //ОбластьМакета.Параметры.Заполнить(Шапка);
         //ОбластьМакета.Параметры.ПредставлениеОрганизации = ОписаниеОрганизации(СведенияОПокупателе, "ПолноеНаименование,ЮридическийАдрес,ИНН,КПП,Телефоны");
         //ОбластьМакета.Параметры.ОрганизацияПоОКПО = ОписаниеОрганизации(СведенияОПокупателе, "КодПоОКПО");
         ОбластьМакета.Параметры.ДатаДокумента  = Формат(ПТУДокумент.ДатаДокумента, "ДФ=dd.MM.yyyy");
         //ОбластьМакета.Параметры.ДолжностьРуководителя     = Руководители.РуководительДолжность;
         //ОбластьМакета.Параметры.РуководительФИО           = Руководители.РуководительПредставление;
         //ОбластьМакета.Параметры.Грузоотправитель = ОписаниеОрганизации(СведенияОПоставщике, "ПолноеНаименование,ЮридическийАдрес,ИНН,КПП,Телефоны");
         ОбластьМакета.Параметры.НомерДокумента = ПТУДокумент.НомерДок;
         ОбластьМакета.Параметры.НомерОснования = Объект.НомерОснования;
         ОбластьМакета.Параметры.ОснованиеДляСоставленияАкта  = Объект.Основание;   
         ОбластьМакета.Параметры.ПредставлениеПодразделения = ПТУДокумент.ПодразделениеОрганизации;
         ОбластьМакета.Параметры.ДатаОснования  = Формат(Объект.ДатаОснования, "ДФ=dd.MM.yyyy");   
         //ОбластьМакета.Параметры.МестоПриемкиТовара = ОписаниеОрганизации(СведенияОПокупателе, "ЮридическийАдрес");
         ОбластьМакета.Параметры.ПереченьСопроводительныхДокументов = "Накладная № " + ПТУДокумент.Номер + " от " + Формат(ПТУДокумент.Дата, "ДФ=dd.MM.yyyy");
         ОбластьМакета.Параметры.ДатаДоставкиТоваровДень = ПТУДокумент.День;
         ОбластьМакета.Параметры.ДатаДоставкиТоваровМесяц = ПТУДокумент.Месяц;
         ОбластьМакета.Параметры.ДатаДоставкиТоваровГод = ПТУДокумент.Год;
         
      КонецЦикла;
   КонецЕсли;
   ТабДокумент.Вывести(ОбластьМакета);
   Если ПривилегированныйРежим() Тогда
      УстановитьПривилегированныйРежим(Ложь);            
   КонецЕсли;
   Возврат ТабДокумент;    
   
КонецФункции

&НаКлиенте
Процедура ПечатьДокумента(Команда,МассивОбъектов)
   ТабДокумент = Новый ТабличныйДокумент;    
   ТабДокумент = ПечатьМакета(МассивОбъектов,ТабДокумент);
   ТабДокумент.ПолеСверху              = 10;
   ТабДокумент.ПолеСлева               = 5;
   ТабДокумент.ПолеСнизу               = 10;
   ТабДокумент.ПолеСправа              = 5;
   ТабДокумент.АвтоМасштаб             = Ложь;
   ТабДокумент.ОриентацияСтраницы      = ОриентацияСтраницы.Портрет;     
   Табдокумент.ОтображатьСетку = Ложь;
   ТабДокумент.ОтображатьЗаголовки = Ложь;
   ТабДокумент.Показать();    
КонецПроцедуры   

Все устраивает. Макет выводит, заполняет значения из формы, но не МассивРезультатов[0] Пуст. Неправильно передаю параметр?

Besart

а зачем вы вообще делаете это в модуле формы, у вас никаких особых параметров я не вижу, поэтому все это можно делать в модуле объекта,
и вопрос: вы хотите создать внешнюю печатну форму или обработку?

Dobryak)

Цитата: Besart от 18 фев 2014, 19:35
процедура Печать() должна быть экспортной, и если вы привели весь код из ВПФ, то этого недостаточно, для конфигураций построенных на БСП, нужен специальный алгоритм технология создания ВПФдля регистрации ВПФ и обработок, почитайте
ссылка технология создания ВПФ  уже нерабочая:(

Теги:

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

Рейтинг@Mail.ru

Поиск