Имя: Пароль:
1C
1С v8
стандартная процедура печати в 1С8.2
,
0 Lavr
 
11.06.15
08:47
Здравствуйте, есть справочник Инвентаризация (список оборудования с инв. номерами, ценами и тд.) с реквизитами, после формирования стандартной процедуры печати​ каждая запись выводится отдельно с заголовком. Подскажите пожалуйста способ вывода на печать в виде таблицы?


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

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

&НаСервере
Процедура Печать(ТабДок, ПараметрКоманды)
Справочники.Инвентаризация.Печать(ТабДок, ПараметрКоманды);
КонецПроцедуры
1 kosts
 
11.06.15
08:57
Сделать внешнюю печатную форму. Добавить туда нужные процедуры и макеты, в том числе взять процедуру Печать. В этой процедуре переделать, так, что бы выводилось в нужном виде.
2 Вася Чез
 
11.06.15
09:04
(0) задача понятна, но не тот кусок кода ты выложил
3 Lavr
 
11.06.15
09:10
Какой кусок кода нужен?
4 Остап Сулейманович
 
11.06.15
09:12
(3) То что внутри вот этого :
Печать(ТабДок, ПараметрКоманды)
5 Вася Чез
 
11.06.15
09:17
(0) или ты выложил это, потому что увидел свойство ОтображатьЗаголовки?
6 Lavr
 
11.06.15
09:23
Ой, мой косяк! Вот:

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

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

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

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

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

        ВставлятьРазделительСтраниц = Истина;
    КонецЦикла;
    //}}
КонецПроцедуры
7 Вася Чез
 
11.06.15
09:25
все правильно у тебя заголовок в цикле ТабДок.Вывести(ОбластьЗаголовок); , выпили его оттуда перед циклом
8 EverGreenMouse
 
11.06.15
09:26
(6) из цикла убери ТабДок.Вывести(ОбластьЗаголовок); и будет тебе счастье) но не забудь вернуть эту бабарыку вне цикла))
9 Остап Сулейманович
 
11.06.15
09:27
(6) Что там у тебя в областях - не знаю. Но примерно так :

    // изменения с этого места
    ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
    Шапка = Макет.ПолучитьОбласть("Шапка");
    ТабДок.Очистить();
    ТабДок.Вывести(ОбластьЗаголовок);
    Пока Выборка.Следующий() Цикл
        Шапка.Параметры.Заполнить(Выборка);
        ТабДок.Вывести(Шапка, Выборка.Уровень());
    КонецЦикла;
    // конец изменений
10 Lavr
 
11.06.15
11:04
Благодарю за помощь, сделал так:

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

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

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

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