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

Стандартная процедура печати в 1С8.2

Автор LavrS, 11 июн 2015, 09:17

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

LavrS

Здравствуйте, есть справочник Инвентаризация (список оборудования с инв. номерами, ценами и тд.) с реквизитами, после формирования стандартной процедуры печати​ каждая запись выводится отдельно с заголовком. Подскажите пожалуйста способ вывода на печать в виде таблицы?


&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
//{{_КОНСТРУКТОР_ПЕЧАТИ(Печать)
ТабДок = Новый ТабличныйДокумент;
Печать(ТабДок, ПараметрКоманды);

ТабДок.ОтображатьСетку = Ложь;
ТабДок.Защита = Ложь;
ТабДок.ТолькоПросмотр = Ложь;
ТабДок.ОтображатьЗаголовки = Ложь;
ТабДок.Показать();
//}}
КонецПроцедуры

&НаСервере
Процедура Печать(ТабДок, ПараметрКоманды)
Справочники.Инвентаризация.Печать(ТабДок, ПараметрКоманды);
КонецПроцедуры




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

   ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
   Шапка = Макет.ПолучитьОбласть("Шапка");
   ТабДок.Очистить();

   ВставлятьРазделительСтраниц = Ложь;
   Пока Выборка.Следующий() Цикл
      Если ВставлятьРазделительСтраниц Тогда
         ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
      КонецЕсли;

      ТабДок.Вывести(ОбластьЗаголовок);

      Шапка.Параметры.Заполнить(Выборка);
      ТабДок.Вывести(Шапка, Выборка.Уровень());

      ВставлятьРазделительСтраниц = Истина;
   КонецЦикла;
   //}}
КонецПроцедуры

vitasw

...   
ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
   Шапка = Макет.ПолучитьОбласть("Шапка");
   ТабДок.Очистить();

     ТабДок.Вывести(ОбластьЗаголовок);

   Пока Выборка.Следующий() Цикл
       

      Шапка.Параметры.Заполнить(Выборка);
      ТабДок.Вывести(Шапка, Выборка.Уровень());     
   КонецЦикла;
   //}}
КонецПроцедуры


Ну и конечно макет подправить под таблицу

LavrS

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

   ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
   ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
   Шапка = Макет.ПолучитьОбласть("Таблица");
   ТабДок.Очистить();
    ТабДок.Вывести(ОбластьЗаголовок);
   ТабДок.Вывести(ОбластьШапка);
   ВставлятьРазделительСтраниц = Ложь;
   Пока Выборка.Следующий() Цикл
            

      Шапка.Параметры.Заполнить(Выборка);
      ТабДок.Вывести(Шапка, Выборка.Уровень());

      КонецЦикла;
   //}}
КонецПроцедуры

Теги:

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

Рейтинг@Mail.ru

Поиск