Имя: Пароль:
1C
1С v8
Помогите добавить печатную форму
0 pin4er
 
16.04.13
14:00
Доброго времени суток!
конфигурация под 8.2 УФ(управляемые формы)
Дела обстоят так:
Требуется добавить печатную форму в документ http://gifok.net/images/2013/04/16/9PKD.jpg

Сделал следующие действия:
скопировал предыдущую кнопулю и изменил текст:

&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
   
УправлениеПечатьюКлиент.ВыполнитьКомандуПечати("Документ.ТА_ЗаявкаНаТур", "навОтчет", ПараметрКоманды, ПараметрыВыполненияКоманды, Неопределено);
   
КонецПроцедур

Далее скопировал макет и изменил его под себя и внес обрабатываемый запрос к форме:

ункция навОтчет(МассивОбъектов, ОбъектыПечати)
   
   ТабДок = Новый ТабличныйДокумент;
   ТабДок.ОтображатьСетку=Ложь;
   ТабДок.АвтоМасштаб=Истина;
   Макет = ПолучитьМакет("навОтчет");
   
   Сумма = 0;
   Сумма2 = 0;
       
   Область = Макет.ПолучитьОбласть("Шапка");
   
   Область.Параметры.Сумма  = "100";
   ТабДок.Вывести(Область);
   
   
   Область = Макет.ПолучитьОбласть("Строка");
   
   Область.Параметры.Сумма2 = 1900;
   ТабДок.Вывести(Область);
   
   
   Область = Макет.ПолучитьОбласть("Подвал");
   
   Область.Параметры.Итого = Сумма + Сумма2;
   ТабДок.Вывести(Область);
КонецФункции


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

   ПараметрыВывода.ДоступнаПечатьПоКомплектно = Истина;

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


при открытии из документа выдает:
{ОбщийМодуль.УправлениеПечатью.Модуль(29)}: В обработчике печати не был сформирован табличный документ для: навОтчет
           ВызватьИсключение(ТекстСообщенияОбОшибке);



Не понимаю что он от меня еще хочет?!

делал внешнюю, но она у меня запускается только под "Обычным приложением"
1 pin4er
 
17.04.13
10:20
Up
2 Miss1C
 
17.04.13
10:23
(0) У тебя функция НавОтчет не возвращает ничего
3 Wobland
 
17.04.13
10:23
внешнюю под УФ уговаривать ещё нужно
4 Miss1C
 
17.04.13
10:24
+(2) Возврат ТабДок();
5 Wobland
 
17.04.13
10:25
(4) он же так и сделает - со скобками
6 Miss1C
 
17.04.13
10:25
(5) Ой, там без скобок)
7 pin4er
 
17.04.13
10:56
(5) (6) ай да красавчики! Если увижу расцелую=)))
Добавил, заработало=)))
Спасибо большое, буду теперь код вставлять
8 pin4er
 
17.04.13
12:44
Ребят а такой вопрос:
добавляю код:

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


вывод в такой макет: http://gifok.net/images/2013/04/17/lC6hH.jpg

далее захожу в документ, и открываю на печать, он мне выводит, нормально если ничего нет в "УслугиДляМенеджеров"
вот так: http://gifok.net/images/2013/04/17/d85M2.jpg

а если в "УслугиДляМенеджеров" занесены данные, то так: http://gifok.net/images/2013/04/17/kqIyn.jpg или http://gifok.net/images/2013/04/17/VRtUy.jpg
по сути все ок, выводит то что надо, но начинает дублировать строки с права...

не подскажите как лучше оптимизировать чтобы корректно выводилась информация?
9 pin4er
 
17.04.13
12:46
(8) + вывод в такой макет: http://gifok.net/images/2013/04/17/1Tx9p.jpg
10 Wobland
 
17.04.13
13:01
особо не вдавался, но ты, похоже, хочешь разную высоту этих двух "подтаблиц". это достигается с помощью вертикальных секций и присеодинить()
11 pin4er
 
17.04.13
14:20
(10) что не совсем понял как это...

сейчас покажу как:
выводит так: http://gifok.net/images/2013/04/17/QDySU.jpg
а мне надо вот так:  http://gifok.net/images/2013/04/17/bNZ1U.jpg

попробывал назначить в макете вертикальные секции, то он каждую сумму заносит в макет отдельно и сосздает столько макетов,  сколько и есть сумм
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн