Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Пустая Внешняя печатная форма при печати

Пустая Внешняя печатная форма при печати
Я
   sitdv
 
12.09.16 - 16:27
Делаю внешнею печатную форму управление торговлей 11.2.2.185, при печати пустой лист не могу понять в чем дело.
Функция ПечатьВнешнейПечатнойФормы(МассивОбъектов,ОбъектыПечати)Экспорт

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


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

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

    КонецПроцедуры
 
 
   Cyberhawk
 
1 - 12.09.16 - 16:48
Выборка пустая
   sitdv
 
2 - 12.09.16 - 17:12
то есть в параметры запроса я не передаю объект документ?
   Cyberhawk
 
3 - 12.09.16 - 17:22
(2) Это было мое предположение. На сам запрос не смотрел. Отладчик в помощь.
   sitdv
 
4 - 12.09.16 - 17:40
Да запрос кривой исправил
"ВЫБРАТЬ
                   |    ЗаказКлиента.Номер,
                   |    ЗаказКлиента.Дата КАК ДатаДоговора,
                   |    ЗаказКлиента.Товары.(
                   |        НомерСтроки,
                   |        Номенклатура.Артикул КАК Артикул,
                   |        Номенклатура КАК Товар,
                   |        Количество,
                   |        Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
                   |        Цена,
                   |        Сумма
                   |    ),
                   |    ЗаказКлиента.СуммаДокумента КАК ИтогоКОплате
                   |ИЗ
                   |    Документ.ЗаказКлиента КАК ЗаказКлиента 
                   |Где 
                   |    ЗаказКлиента.Ссылка В(&МассивОбъектов)";
   sitdv
 
5 - 12.09.16 - 17:41
Вопрос как ему передать Ссылку на объект?
   sitdv
 
6 - 12.09.16 - 17:42
Мне непонятна процедура печать откуда берет МассивОбъектов
   hhhh
 
7 - 12.09.16 - 21:54
(6) как откуда? Параметр в нее такой передается.
   sitdv
 
8 - 13.09.16 - 07:43
Поставил точку остановки в общем модуле УправлениеПечатью в функции ВывестиТабличныйДокументВКоллекцию, и понял что моя процедура Печать()в принципе не работает, подскажите в чем может быть дело?
   Mankubus
 
9 - 13.09.16 - 07:51
(8) в твоей обработке есть процедура "СведенияОВнешнейОбработке"?
   sitdv
 
10 - 13.09.16 - 08:37
Функция СведенияОВнешнейОбработке() Экспорт
    
ПараметрыРегистрации = Новый Структура();
ПараметрыРегистрации.Вставить("Вид","ПечатнаяФорма");
//ПараметрыРегистрации.Вставить("Назначение","Документы.ЗаказКлиента");

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

Функция Получить_Таблицу_Команд()
    
    Команды = Новый ТаблицаЗначений;
    
    Команды.Колонки.Добавить("Представление");
    Команды.Колонки.Добавить("Идентификатор");
    Команды.Колонки.Добавить("Использование");
    Команды.Колонки.Добавить("ПоказыватьОповещение");
    Команды.Колонки.Добавить("Модификатор");
    Возврат Команды;    

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

Процедура ДобавитьКоманду (ТаблицаКоманд,Представление,Идентификатор,Использование,ПоказыватьОповещение = Ложь,Модификатор = "")
    
    НоваяКоманда = ТаблицаКоманд.Добавить();
    НоваяКоманда.Представление = Представление;
    НоваяКоманда.Идентификатор = Идентификатор;
    НоваяКоманда.Использование = Использование;
    НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
    НоваяКоманда.Модификатор = Модификатор;
    
КонецПроцедуры
   _stay true_
 
11 - 13.09.16 - 08:58
Открытие формы, по-моему, здесь лишнее
   sitdv
 
12 - 14.09.16 - 02:16
Вы были правы Открытие формы здесь лишнее

Список тем форума
Рекламное место пустует  Рекламное место пустует
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство.
Фредерик Брукс-младший
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.