Как изменить заголовок табличного документа 1с

Имя табличного документа
  Skillbox: Профессия 1С-разработчик  

Имя табличного документа

Я
   Ululg

17.06.10 — 18:00

Печатаю файл через PDF конвертор, но проблема в том, что он у pdf файла задает имя Табличный документ и как задать ему свое имя не могу понять, подскажите

   Ululg

1 — 17.06.10 — 18:17

помогите, плиз

   zak555

2 — 17.06.10 — 18:18

какой конвертатор ?

   Kashemir

3 — 17.06.10 — 19:04

ТабличныйДокумент.Показать (SpreadsheetDocument.Show)
ТабличныйДокумент (SpreadsheetDocument)
Показать (Show)
Синтаксис:
Показать(<Заголовок>, <Имя файла>, <Активизация>)
Параметры:
<Заголовок> (необязательный)
Тип: Строка. Заголовок окна табличного документа
<Имя файла> (необязательный)
Тип: Строка. Имя файла для сохранения табличного документа. Если значение не пустое, то при закрытии окна, если документ был изменен, будет предложено сохранить табличный документ в указанный файл.
<Активизация> (необязательный)
Тип: Булево. Определяет активизацию открываемого окна табличного документа.
Истина — активизировать окно;, Ложь — открывать окно без активизации.
Значение по умолчанию: Истина
Описание:
Открывает окно для показа и редактирования табличного документа.
Недоступен на сервере 1С:Предприятие. Не используется в модуле внешнего соединения.
Пример:
ТабДок.Показать(«Заявки от покупателей», «Заявки.mxl»);
См. также:
ТабличныйДокумент, метод Скрыть

   Ululg

4 — 17.06.10 — 20:25

(2) ABBYY PDF Transformer 3.0
(3) Вся проблема в том, что задать имя нужно не при выводе его в печатную форму, а при посылке на печать

   Ululg

5 — 18.06.10 — 11:32

Никто не знает?
тогда апну….

   Ululg

6 — 21.06.10 — 20:14

проблема все еще остается открытой

   YF

7 — 21.06.10 — 20:15

(0) А я использую pdf creator там все ОК с этим …

  

Zolotko

8 — 21.06.10 — 20:37

(7) А у меня Creator плохо работал, когда большой поток документов — вис

ТабДок.Показать(ИмяФайла, , );
ТабДок.Напечатать(истина);

Тогда имя файла пдф-ного не Табличный документ, а тот, который в ИмяФайла задан

TurboConf — расширение возможностей Конфигуратора 1С

ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку «Обновить» в браузере.

Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.

Вступайте в мою группу помощник программиста.
В ней мы обсуждаем программирование в 1С.

2017-12-19T18:34:15+00:00<<< XML ZIP WORD DBF HTTP FTP ТекстовыйДокумент ТабличныйДокумент

Скачать эти примеры в виде тестовой базы (как загрузить, как исследовать)
Как создать табличный макет в 1С.

Оглавление (нажмите, чтобы раскрыть)

&НаКлиенте
Процедура ФормируемПечатнуюФормуИзТабличногоМакета(Команда)
 
    // В макетах обработки у нас определен макет с именем
    // ТабличныйМакет и типом ТабличныйДокумент.
    // Вот как создаются такие макеты:
    // helpme1s.ru/kak-sozdat-tablichnyj-maket-v-1s
 
    // Сформируем печатную форму на основе этого макета.
 
    // Важно понимать, что сама печатная форма - это тоже
    // табличный документ, просто составленный из кусочков других
    // документов (макетов).
 
    // Печатная форма формируется на сервере, а затем
    // возвращается обратно на клиент...
 
    ПечатнаяФорма = СформироватьПечатнуюФормуИзТабличногоДокумента();
 
    НастроитьКолонтитулы(ПечатнаяФорма);
    НастроитьПараметрыПечати(ПечатнаяФорма);
 
    // ... чтобы вывести её пользователю в виде отдельного окна
 
    ПечатнаяФорма.Показать(
        "Наш отчёт"  // заголовок окна с отчётом
    );
 
    // после показа пользователь может сам и распечатать
    // и сохранить эту форму, но ...
 
    // .. мы можем программно сами сохранить форму в файл в нужном формате
 
    //ПечатнаяФорма.Записать(
    //    СлужебныйНаКлиенте.СоздатьПапкуДляЭкспериментов() + "Наш отчёт.xls",
    //    ТипФайлаТабличногоДокумента.XLS
    //);
 
    // .. или сразу отправить её на принтер
 
    //ПечатнаяФорма.Напечатать(
    //    РежимИспользованияДиалогаПечати.НеИспользовать);
 
КонецПроцедуры
 
/// Как сформировать печатную форму из табличного документа в 1с 8.3, 8.2
 
&НаСервере
Функция СформироватьПечатнуюФормуИзТабличногоДокумента()
 
    // Получаем макет, сохраненный в нашей обработке.
    Макет = Обработки.ОбработкаДляИспытаний.ПолучитьМакет("ТабличныйМакет");    
 
    // Вот так можно изменить табличный макет программно,
    // уже после его создания.
    МеняемТабличныйДокументПрограммно(Макет);
 
    ПечатнаяФорма = Новый ТабличныйДокумент;
 
    // # Шапка документа #
 
    // Получаем область "Шапка" из макета.
    Шапка = Макет.ПолучитьОбласть("Шапка");
    // Заполняем её параметры.
    Шапка.Параметры.Номер = 1;
    Шапка.Параметры.Дата = Формат(ТекущаяДата(), "ДФ=dd.MM.yyyy");    
    // Выводим её в нашу печатную форму.
    ПечатнаяФорма.Вывести(Шапка);
 
    // # Заголовок табличной части #
    ТабличнаяЧастьЗаголовок = Макет.ПолучитьОбласть("ТабличнаяЧастьЗаголовок");
    ПечатнаяФорма.Вывести(ТабличнаяЧастьЗаголовок);
 
    // # Строки табличной части #
 
    // Если при выводе строк наша таблица не поместится на страницу -
    // будем повторять заголовок таблицы в начале страницы.
    // Выводим с 3 по 4 строки - это как раз заголовок таблицы.
    // Использовать область "ТабличнаяЧастьЗаголовок" не получится,
    // так как нужны именно строки целиком.
    ПечатнаяФорма.ПовторятьПриПечатиСтроки = Макет.Область(3,,4);
 
    ТабличнаяЧастьСтрока = Макет.ПолучитьОбласть("ТабличнаяЧастьСтрока");
    СсылкаНаКлубнику = Справочники.Номенклатура.НайтиПоНаименованию("Клубника");
 
    // Сгруппируем строки таблицы в сворачивающийся блок.
    ПечатнаяФорма.НачатьГруппуСтрок("Товар", Истина);
 
    Для Шаг = 1 По 100 Цикл
        ТабличнаяЧастьСтрока.Параметры.Номенклатура = СсылкаНаКлубнику;
        ТабличнаяЧастьСтрока.Параметры.Количество = Шаг;
 
        // В макете мы выделили ячейку с номенклатурой и прописали
        // её параметр расшифровки "РасшифровкаНоменклатуры".
        // Заполним этот параметр, чтобы когда пользователь кликнет
        // два раза по товару - открылась его форма.
        // Дополнительный пример обработки расшифровки - см. ниже,
        // когда мы выводим табличный документ в поле формы.
        ТабличнаяЧастьСтрока.Параметры.РасшифровкаНоменклатуры = СсылкаНаКлубнику;
 
        ПечатнаяФорма.Вывести(ТабличнаяЧастьСтрока);
    КонецЦикла;
 
    // Закончим начатую группировку.
    ПечатнаяФорма.ЗакончитьГруппуСтрок();    
 
    Возврат ПечатнаяФорма;
 
КонецФункции
 
/// Как настроить колонтитулы печатной формы в 1с 8.3, 8.2
 
&НаКлиенте
Процедура НастроитьКолонтитулы(ПечатнаяФорма)
 
    // Верхний колонтитул.
    ПечатнаяФорма.ВерхнийКолонтитул.Выводить = Истина;
    ПечатнаяФорма.ВерхнийКолонтитул.НачальнаяСтраница = 1;
    ПечатнаяФорма.ВерхнийКолонтитул.ТекстВЦентре = "Этот отчёт сделан нами для тестов";
    ПечатнаяФорма.ВерхнийКолонтитул.ВертикальноеПоложение = ВертикальноеПоложение.Центр;
 
    // Нижний колонтитул.
    ПечатнаяФорма.НижнийКолонтитул.Выводить = Истина;
    ПечатнаяФорма.НижнийКолонтитул.ТекстСправа = "[&НомерСтраницы] из [&СтраницВсего]";        
    ПечатнаяФорма.НижнийКолонтитул.ТекстВЦентре = "[&Дата][&Время]";
 
    // Использованные выше конструкции [&НомерСтраницы] и т.п. предопределены
    // платформой.
 
КонецПроцедуры
 
/// Как настроить параметры печати табличного документа в 1с 8.3, 8.2
 
&НаКлиенте
Процедура НастроитьПараметрыПечати(ПечатнаяФорма)
 
    // Можно установить конкретный масштаб:
    ПечатнаяФорма.МасштабПечати = 60; // 60%
    // Или указать вариант "по ширине страницы"
    ПечатнаяФорма.АвтоМасштаб = Истина;
 
    // Поля страницы
    ПечатнаяФорма.ПолеСлева = 10;
    ПечатнаяФорма.ПолеСверху = 10;
    ПечатнаяФорма.ПолеСправа = 10;
    ПечатнаяФорма.ПолеСнизу = 10;
 
    // Партрет или альбом (ландшафт).
    ПечатнаяФорма.ОриентацияСтраницы = ОриентацияСтраницы.Портрет;
 
    // Двусторонняя печать позволяет очень экономить бумагу.
    ПечатнаяФорма.ДвусторонняяПечать = ТипДвустороннейПечати.Нет;
 
    // Количество страниц на листе при выводе документа на печать.
    // 1 - одна страницы, 2 - две, 0 - автоматическое определение.
    ПечатнаяФорма.ЭкземпляровНаСтранице = 1;
 
    // Количество копий документа, которое нужно напечатать.
    ПечатнаяФорма.КоличествоЭкземпляров = 1;    
 
    // Если печатаем несколько экземпляров - очень удобная галка.
    ПечатнаяФорма.РазборПоКопиям = Истина;
 
    // Не будем отображать сетку пользователю.
    ПечатнаяФорма.ОтображатьСетку = Ложь;
 
    // А также запретим редактирование ячеек отчёта.
    ПечатнаяФорма.ТолькоПросмотр = Истина;
 
    // Зафиксируем верхние 4 строки таблицы, чтобы
    // пользователю было удобно прокручивать
    // вниз печатную форму.
    ПечатнаяФорма.ФиксацияСверху = 4;
    ПечатнаяФорма.ФиксацияСлева = 0;    
 
КонецПроцедуры
 
/// Как изменить табличный документ программно в 1с 8.3, 8.2
 
&НаСервере
Процедура МеняемТабличныйДокументПрограммно(Макет)
 
    ОбластьЯчеек = Макет.Область("Шапка");
    ОбластьЯчеек.ЦветТекста = Новый Цвет(255, 0, 0);
    ОбластьЯчеек.ГраницаСверху =
        Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.БольшойПунктир, 2);
    ОбластьЯчеек.ГраницаСлева =
        Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.БольшойПунктир, 2);
    ОбластьЯчеек.ГраницаСправа =
        Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.БольшойПунктир, 2);
    ОбластьЯчеек.ГраницаСнизу =
        Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.БольшойПунктир, 2);    
    ОбластьЯчеек.Примечание.Текст = "Привет";    
 
    // и т.д. и т.п.
 
КонецПроцедуры
 
/// Как в обработать расшифровку в отчёте в 1с 8.3, 8.2
 
&НаКлиенте
Процедура ПолеСПечатнойФормойОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
 
    // Дополнительная обработка расшифровки возможна только
    // для табличного документа, который выведен на форму.
 
    // Это событие мы прописали для элемента формы, который связан
    // с реквизитом, имеющим тип "ТабличныйДокумент".
 
    Сообщить("Обработка расшифровки");
    Сообщить(Элемент.ТекущаяОбласть.Имя);
    Сообщить(Расшифровка);
 
    // Мы не хотим, чтобы открывалось значение расшифровки,
    // которое мы программно прописали в печатной форме.
    // Остановим дальнейшую обработку расшифровки.
    СтандартнаяОбработка = Ложь;
 
КонецПроцедуры
 
/// Как вывести табличный документ на форму в 1с 8.3, 8.2
 
&НаКлиенте
Процедура ВыводимТабличныйДокументНаФорму(Команда)
 
    // Предварительно создаём на форме реквизит с именем
    // "ПолеСПечатнойФормой" и типом ТабличныйДокумент,
    // а затем перетаскиваем его в элементы формы.
 
    ВыводимТабличныйДокументНаФормуНаСервере();
 
КонецПроцедуры
 
&НаСервере
Процедура ВыводимТабличныйДокументНаФормуНаСервере()
 
    // Формируем табличный документ.
    ПечатнаяФорма = СформироватьПечатнуюФормуИзТабличногоДокумента();
 
    // Выводим его в соотв. реквизит формы.
    ПолеСПечатнойФормой.Очистить();    
    ПолеСПечатнойФормой.Вывести(ПечатнаяФорма);
    // После этого он автоматически отобразится
    // в поле формы, с которым он связан.
 
КонецПроцедуры
 
/// Как использовать табличный документ для ввода данных в 1с 8.3, 8.2
 
&НаКлиенте
Процедура НастраиваемТаблицуДляВводаДанных(Команда)
 
    // В начале выводим в поле формы табличный документ
    // из макета с именем "ТабличныйМакетДляВвода"
 
    НастраиваемТаблицуДляВводаДанныхНаСервере();
 
    // После этого пользователь должен ввести значение,
    // а мы его получим в коде ниже.
 
КонецПроцедуры
 
&НаСервере
Процедура НастраиваемТаблицуДляВводаДанныхНаСервере()
 
    ПолеСПечатнойФормой.Очистить();
    Макет = Обработки.ОбработкаДляИспытаний.ПолучитьМакет("ТабличныйМакетДляВвода");
    Форма = Макет.ПолучитьОбласть("ФормаВвода");    
    ПолеСПечатнойФормой.Вывести(Форма);
 
КонецПроцедуры
 
&НаКлиенте
Процедура УзнатьКакойЖеТоварВыбралПользователь(Команда)
 
    // Имя ячейки ввода мы задали в макете.
    ПолеВвода = ПолеСПечатнойФормой.Область("ПолеТовар");    
 
    Если ПолеВвода.Значение.Пустая() Тогда
        Сообщить("Укажите товар в табличной форме ввода!");
    Иначе
        Сообщить("Вы выбрали " + ПолеВвода.Значение);
    КонецЕсли;
 
КонецПроцедуры
 
/// Скачать и выполнить эти примеры на компьютере

Скачать эти примеры в виде тестовой базы (как загрузить, как исследовать)
Как создать табличный макет в 1С.

Работа с табличным документом в языке 1С 8.3, 8.2 (в примерах)

<<< XML ZIP WORD DBF HTTP FTP ТекстовыйДокумент ТабличныйДокумент

С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).

Владимир Милькин

Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.

Нажмите одну из кнопок, чтобы поделиться:

Откроем в конфигураторе окно редактирования объекта конфигурации Документ «ПриходнаяНакладная». Перейдем на закладку «Макеты», нажмем кнопку «Конструкторы» и запустим конструктор печати.

В открывшемся окне конструктора на первом шаге укажем, что будет создана новая команда «Печать» для формирования печатной формы документа:

На втором шаге определим реквизиты документа, которые будет содержать шапка печатной формы:

На третьем шаге определим, что все реквизиты табличной части будут отображены в печатной форме:

На четвертом шаге конструктор предложит сформировать подвал печатной формы. Ничего не указываем (подвал использовать не будем) и переходим к следующему шагу.

Здесь ничего не меняем, тем самым согласимся с тем, что команда для вызова процедуры формирования печатной формы будет помещена в командную панель формы, в раздел «Важное».

Нажмем OK. В конфигураторе откроется модуль команды «Печать», модуль менеджера документа «ПриходнаяНакладная» и макет этого документа.

Модуль команды Печать

&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
    ТабДок = Новый ТабличныйДокумент;
    Печать(ТабДок, ПараметрКоманды);

    ТабДок.ОтображатьСетку = Ложь;
    ТабДок.Защита = Ложь;
    ТабДок.ТолькоПросмотр = Ложь;
    ТабДок.ОтображатьЗаголовки = Ложь;

    ТабДок.Показать();
КонецПроцедуры

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

Модуль менеджера документа

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

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

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

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

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

        ТабДок.Вывести(ОбластьМатериалыШапка);
        ВыборкаМатериалы = Выборка.Материалы.Выбрать();
        Пока ВыборкаМатериалы.Следующий() Цикл
            ОбластьМатериалы.Параметры.Заполнить(ВыборкаМатериалы);
            ТабДок.Вывести(ОбластьМатериалы, ВыборкаМатериалы.Уровень());
        КонецЦикла;
        
        ВставлятьРазделительСтраниц = Истина;
    КонецЦикла;
КонецПроцедуры

Макет документа

Редактирование макета

Добавим новую область для вывода итоговой суммы документа. Выделим мышью две пустые строки под табличной частью документа и выполним пункт главного меню Таблица > Имена > Назначить имя. Назовем область Всего, нажмем ОК.

В созданной области, в колонке Цена, напишем ВСЕГО, а в колонке Сумма напишем ВсегоПоДокументу:

Вызвав палитру свойств для последней заполненной нами ячейки, в свойстве Заполнение укажем, что в этой ячейке будет находиться не текст, а параметр.

Откроем модуль менеджера документа «ПриходнаяНакладная», найдем в нем процедуру Печать и отредактируем ее следующим образом

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

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

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

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

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

        ТабДок.Вывести(ОбластьМатериалыШапка);
        ВыборкаМатериалы = Выборка.Материалы.Выбрать();
        // сумма табличной части документа
        СуммаИтог = 0;
        Пока ВыборкаМатериалы.Следующий() Цикл
            ОбластьМатериалы.Параметры.Заполнить(ВыборкаМатериалы);
            ТабДок.Вывести(ОбластьМатериалы, ВыборкаМатериалы.Уровень());
            // увеличиваем сумму на каждой итерации
            СуммаИтог = СуммаИтог + ВыборкаМатериалы.Сумма;
        КонецЦикла;
        
        // устанавливаем значение параметра области
        ОбластьВсего.Параметры.ВсегоПоДокументу = СуммаИтог;
        // выводим область макета «Всего»
        ТабДок.Вывести(ОбластьВсего);
        ВставлятьРазделительСтраниц = Истина;
    КонецЦикла;
КонецПроцедуры

Поиск:
1С:Предприятие • Документ • Макет • Печать

Большинство обучающих материалов по программированию в системе 1С при описании формирования печатных форм на основе объекта «Табличный документ» ограничиваются выводом готовой формы на экран. Для пользователей же куда более важным является то, как документ будет выглядеть в распечатанном виде. Здесь, кроме хорошо сверстанного макета, играют роль и установки параметров печати.Почти все параметры, доступные в диалогах настройки печати (настройки принтера, свойства страницы), можно указать непосредственно при формировании табличного документа.Рассмотрим свойства и методы табличного документа, относящиеся к настройкам печати (в приведенных примерах «ТабДок» это объект типа «Табличный документ»).

Свойство «ИмяПринтера» позволяет задать для печати принтер, отличный от установленного по умолчанию. Имя должно совпадать с именем принтера, заданным в системе:

ТабДок.ИмяПринтера=»HP LaserJet 3050 Series PCL 6″;

При печати пакета документов можно сэкономить время, установив признак разбора по копиям:

ТабДок.РазборПоКопиям=истина;

Число копий можно указать так:

ТабДок.КоличествоЭкземпляров=5;

Разумеется, можно задать поля:

ТабДок.ПолеСлева=20;//Поле слева 20мм, остальные поля 10мм (по умолчанию)

Еще несколько свойств страницы:

ТабДок.ОриентацияСтраницы=ОриентацияСтраницы.Ландшафт; ТабДок.ЭкземпляровНаСтранице=2; //на листе будет размещено 2 страницы ТабДок.Автомасштаб=истина; //аналогично настройкам масштаба «по ширине страницы»

При необходимости можно указать конкретное значение масштабирования в процентах (свойство «МасштабПечати»).

Свойство «РазмерСтраницы» позволяет задать стандартные форматы страницы – “A3”, “A4”, “A5” (полный список вариантов доступен в справке 1С).

ТабДок.РазмерСтраницы=»A3″;// буква А должна быть английской

Для нестандартного размера бумаги (Custom) можно указать значения высоты и ширины страницы (в мм):

ТабДок.РазмерСтраницы=»Custom»;//нестандартный размер ТабДок.ВысотаСтраницы=350; ТабДок.ШиринаСтраницы=350;

Также в табличном документе доступно управление выводом колонтитулов и их содержимым. Для этого служат свойства «ВерхнийКолонтитул» и «НижнийКолонтитул». Например:

ТабДок.ВерхнийКолонтитул.Выводить=истина; //будет напечатан верхний колонтитул ТабДок.РазмерКолонтитулаСверху=7; //размер колонтитула 7мм (по умолчанию 10мм) ТабДок.ВерхнийКолонтитул.ВертикальноеПоложение=ВертикальноеПоложение.Верх; ТабДок.ВерхнийКолонтитул.НачальнаяСтраница=2;//колонтитул выводится со второй страницы ШрифтКолонтитула=Новый Шрифт(«Courier New», 8,,Истина); ТабДок.ВерхнийКолонтитул.Шрифт=ШрифтКолонтитула; //наклонный шрифт ТабДок.ВерхнийКолонтитул.ТекстВЦентре=»Верхний колонтитул»; ТабДок.ВерхнийКолонтитул.ТекстСправа=»Стр.[&НомерСтраницы] из [&СтраницВсего]»; //нумерация страниц ТабДок.ВерхнийКолонтитул.ТекстСлева=»[&Дата]»;//текущая дата

Сформированный документ отправляется на печать с помощью метода «Напечатать()». Возможно два варианта вызова.

1) Непосредственно на принтер:ТабДок.Напечатать(РежимИспользованияДиалогаПечати.НеИспользовать); ТабДок.Напечатать(истина);

2) Перед печатью будет выведен диалог печати:ТабДок.Напечатать(РежимИспользованияДиалогаПечати.Использовать); ТабДок.Напечатать(ложь);

Кроме того можно управлять и разбиением документа на страницы. Оценить количество страниц в документе по настройкам текущего принтера можно так:

ТабДок.КоличествоСтраниц();

С помощью методов «ПроверитьВывод()» и «ПроверитьПрисоединение()» можно определить, умещается ли табличный документ или массив областей табличного документа на странице в высоту и в ширину при текущих настройках принтера.Надо иметь ввиду, что работа последних трех методов зависит от установленного принтера. Если методу не удается его найти, вызывается исключение.

Принудительно вставить разрывы страниц позволяют методы «ВывестиВертикальныйРазделительСтраниц()» и «ВывестиГоризонтальныйРазделительСтраниц()».Таким образом, можно управлять постраничным выводом на печать и контролировать заполнение страницы:

Если Не ТабДок.ПроверитьВывод(МассивВыводимыхОбластей) Тогда ТабДок.ВывестиГоризонтальныйРазделительСтраниц();КонецЕсли;

UlybinAnton

1 / 1 / 1

Регистрация: 09.06.2020

Сообщений: 8

1

Изменение стандартного заголовка «Печать документа» из внешней печатной формы

09.06.2020, 18:11. Показов 8958. Ответов 7

Метки нет (Все метки)


Добрый день!
Возник такой вопрос: необходимо при создании внешней печатной формы изменить заголовок формы. Стандартный «Печать документа» не подходит.
Нашел, что окно формы изменяется при формировании команды печати:

1C
1
2
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.МенеджерПечати = "Документ._ДемоСчетНаОплатуПокупателю";

А вот как это сделать в модуле внешней печатной формы не в курсе.
Вроде как команда печати формируется в ф-ии СведенияОВнешнейОбработке(). Но там ничего подобного не задашь.
К тому же, заголовок формы необходимо из процедуры Печать() менять …
Подскажите, куда нужно копать, что читать. Заранее спасибо.

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



Модератор

Эксперт 1С

3700 / 2899 / 570

Регистрация: 10.03.2011

Сообщений: 11,411

Записей в блоге: 1

10.06.2020, 05:37

2

UlybinAnton, через внешнюю обработку никак

Добавлено через 1 минуту
точнее можно, но придется написать очень много кода

Добавлено через 1 минуту
Повторить кучу функционала из БСП до открытия формы «ПечатьДокументов» — открыть ее самостоятельно и передать в параметрах «ЗаголовокФормы»



1



1123 / 675 / 197

Регистрация: 22.04.2013

Сообщений: 5,094

Записей в блоге: 1

10.06.2020, 08:01

3

мне кажется, что возникло разногласие.
можете картинку приложить — что на что поменять? а то вроде путаница в терминах. я ответов не знаю. но тем не менее
спасибо



0



1 / 1 / 1

Регистрация: 09.06.2020

Сообщений: 8

10.06.2020, 11:02

 [ТС]

4

Думаю, что путаницы нет. Необходимо из внешней печатной формы получить доступ до параметра «ЗаголовокФормы». Он потом отобразится здесь — https://www.cyberforum.ru/atta… 1591775959

Изображения

 



0



1123 / 675 / 197

Регистрация: 22.04.2013

Сообщений: 5,094

Записей в блоге: 1

10.06.2020, 18:53

5

да, как ни странно, но десмонт, наверно, прав. я немного поковырялся — мне кажется, что далеко это имя запрятано



0



UlybinAnton

1 / 1 / 1

Регистрация: 09.06.2020

Сообщений: 8

11.06.2020, 10:38

 [ТС]

6

Лучший ответ Сообщение было отмечено Tklwegsd как решение

Решение

В общем сделал. Не знаю, правильный ли это подход….
1. Регистрируемся как ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКома ндыВызовКлиентскогоМетода();
2. В модуле формы сами формируем что нам надо:

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
&НаКлиенте
Процедура Печать(ИдентификаторКоманды, ОбъектыНазначенияМассив) Экспорт    
    
    ПрефиксОкнаЗадания = "ПрефиксОкнаЗадания";
    КлючУникальности = Строка(Новый УникальныйИдентификатор);
    ИдентификаторПечатнойФормы = "";
    
    ТабличныйДокумент = <Формируем ТабДок из ОбъектыНазначенияМассив>;
    
    КоллекцияПечатныхФорм = УправлениеПечатьюКлиент.НоваяКоллекцияПечатныхФорм(ИдентификаторПечатнойФормы); 
    
    
    ПечатнаяФорма = УправлениеПечатьюКлиент.ОписаниеПечатнойФормы(КоллекцияПечатныхФорм, ИдентификаторПечатнойФормы);
    ПечатнаяФорма.ТабличныйДокумент = ТабличныйДокумент;
    ПечатнаяФорма.ИмяФайлаПечатнойФормы = НСтр("ru = '<ИмяФайлаПечатнойФормы >");
        ....
    ОбъектыПечати = Новый СписокЗначений;
    
    ПараметрыОткрытия = Новый Структура("ИмяМенеджераПечати, ИменаМакетов, ПараметрКоманды, ПараметрыПечати");
    ПараметрыОткрытия.ПараметрКоманды = Новый Массив;
    ПараметрыОткрытия.ПараметрыПечати = Новый Структура;
    ПараметрыОткрытия.ПараметрыПечати.Вставить("ЗаголовокФормы", ПрефиксОкнаЗадания+<Что нужно>);   
    ПараметрыОткрытия.Вставить("КоллекцияПечатныхФорм", КоллекцияПечатныхФорм);
    ПараметрыОткрытия.Вставить("ОбъектыПечати", ОбъектыПечати);
    
    ОткрытьФорму("ОбщаяФорма.ПечатьДокументов", ПараметрыОткрытия, Неопределено, КлючУникальности);  
КонецПроцедуры



1



1123 / 675 / 197

Регистрация: 22.04.2013

Сообщений: 5,094

Записей в блоге: 1

11.06.2020, 11:21

7

круто. спасибо. то есть вместо «УправлениеПечатью.ВывестиТабличныйДокументВКоллек цию» сам открываешь.



0



Модератор

Эксперт 1С

3700 / 2899 / 570

Регистрация: 10.03.2011

Сообщений: 11,411

Записей в блоге: 1

11.06.2020, 15:09

8

UlybinAnton, норм.
Нужно то было всего покопаться в процедуре «ПриСозданииНаСервере» формы «ПечатьДокументов»



0



При помощи табличных документов, в 1С можно организовывать вывод печатных форм. В этой статье мы научимся создавать макеты табличных документов объектов, на примере макета печатной формы документа.

Чтобы при помощи табличного документа вести какую-то печатную форму, необходимо создать макет табличного документа.  Научимся создавать макеты конкретных объектов (справочники, документы). Для этого в конфигураторе 1С нужно выделить ветку «Макеты» ветки соответствующего объекта, вызвать правой клавишей мышки контекстное меню

Создание макета 1С

После выполнения команды откроется конструктор 1С, где можно поменять название макета, но необходимо оставить тип макета «Табличный документ».

Конструктор макета 1С

Нажимаем кнопку «Готово», после этого будет создан макет табличного документа, который имеет форму таблицы.

Макет табличного документа

Этот макет состоит из строк, столбцов и ячеек. Каждая ячейка имеет свои свойства. Для того, чтобы открыть палитру свойств ячейки, необходимо выделить нужную ячейку, вызывать контекстное меню, и в этом меню выполнить команду «Свойства».

Открытие свойств ячейки табличного документа

В палитре свойств ячейки можно осуществлять различные настройки, мы же заполним текст ячейки.

Свойство текст ячейки табличного документа

Этот текст отобразится в нашей ячейки, и вы заметили, что он как бы сдвинулся относительно самой ячейки.  И у нас автоматически появились пунктирные линии. Пунктирные линии ограничивают область, которая выведется на печать. И как вы видите на предыдущей картинке, наш текст немного сдвинулся относительно пунктира. Это значит, что мы хоть и увидим весь текст при просмотре, на печать выйдет только та часть текста, что была до пунктира.

В том случае, когда текст не помещается в ячейку (как у нас сейчас), сделать так, чтобы он весь отображался можно двумя способами:  расширить саму ячейку и объединить ячейки.

Объединим ячейки. Для этого выделим нужную область, вызовем контекстное меню и выполним команду «Объединить»

Объединение ячеек табличного документа

После этого, ячейки, куда входит наша строка, объединятся, а линии печати сдвинутся.

Объединение ячеек табличного документа

Области макета табличного документа 1С

В макете табличного документа существует возможность задать области. Для чего нужны области?  Для того, чтобы более оптимально работать с макетом в программном коде: мы можем несколько раз получать одну и туже область и выводить её в результирующем табличном документе (по сути, на печать).

Зададим в нашем макете табличного документа три области: Шапка, ШапкаТаблицы, СтрокаТаблицы и Подвал. Это будут области строк.

Для того, чтобы задать область, необходимо выделить нужное количество строк (или столбцов), из которых мы хотим сделать область, после выполнить команду «Назначить имя» (Главное меню – Таблица – Имена).

Задаем область макета табличного документа

После этого нужно указать имя области (все имена в макете должны быть уникальны)

Задаем имя области макета табличного документа

После этого внешний вид нашего макета изменится – слева появится название области. Область в макете табличного документа

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

Области в макете табличного документа

Области Шапка, ШапкаТаблицы и Подвал будут выводится один раз, а область СтрокаТаблицы будет выводится столько раз сколько строк в табличной части документа.

В нашей выводимой таблице будет 5 столбцов: номер, номенклатура, количество, цена и сумма. Оформим теперь шапку таблицы, написав название каждого столбца. Также мы расширим или сузим ячейки для более удобного просмотра. И сдвинем наш заголовок в шапке на одну ячейку влево (для этого нужно выделить объединенные ячейки и перетащить их мышкой влево)

Области в макете табличного документа

Параметры макета табличного документа

В  область СтрокаТаблицы скопируем те же названия, что из области шапки (кроме №, его так и назовем НомерТаблицы), но это у нас будут не просто названия, а параметры, в которые мы будем передавать данные, при формировании табличного документа. Для того, чтобы сделать данные названия параметрами, первым делом выделим все заполненные ячейки области СтрокаТаблицы, вызовем  контекстное меню и выполним команду свойства.

Вызываем палитру свойств для ячеек в макете табличного документа

У свойств всех пяти ячеек мы изменим одно только свойство Заполнение — выберем у него значение Параметр.

Свойство заполнение ячеек в макете табличного документа

После этого вид нашего макета табличного документа опять изменится.

Макет табличного документа с параметрами

Теперь нам осталось сделать нашу таблицу таблицей в прямом смысле. Для этого нужно выделить каждую ячейку  шапки и строки (удерживаете клавишу CTRL, кликаете по каждой ячейке мышкой, тогда будет выделена каждая ячейка в отдельности), вызвать, уже знакомым способом, контекстное меню, и в группе Оформление, изменить параметр Обвести.

Параметр Обвести палитры свойств макета

После этих действий, все нужные ячейки будут обведены.

Обведенные ячейки макета табличного документа

Печатная форма почти готова, нам осталось сделать, чтобы в шапке вместе с поступлением товара выходил номер и дата документа. Для этого мы выделим  ячейку, где введен тест «Документ…» вызовем контекстное меню и в свойстве Заполнение  укажем значение Шаблон.

Свойство заполнение ячейки макета табличного документа

И в тексте ячейки укажем параметры, в которые будем передавать значения. Если в тексте шаблона мы указываем какое-то слово в квадратных скобках, то в эту «переменную» будут переданы параметры  при формировании отчета.

Заполнение параметров в макете табличного документа

Я добавил левую ячейку в объединение ячеек. Чтобы это сделать нужно снять объединение, и создать новое объединение ячеек с еще одной ячейкой.

Всё наш макет готов, в следующей статье научимся выводить его на печать.

Простой пример вывода на печать:
Вывод на печать табличного документа в 1С 8.3

Пример вывода на печать, с использованием команды объекта:
Вывод на печать табличного документа в 1С 8.3. Используем команды объектов

Вывод табличного документ на управляемой форме
Табличный документ на управляемой форме 1С 8.3

Использование расшифровки табличного документа
Расшифровка в табличном документе 1С 8.3

Как использовать расшифровку табличного документа на управляемой форме 1С
Расшифровка в табличном документе на управляемой форме 1С 8.3

Более подробно и основательно работа с печатными формами в 1С дается в моей книге:  «Программировать в 1С за 11 шагов»

Изучайте программирование в 1С в месте с моей книги «Программировать в 1С за 11 шагов»

  1. Книга написана понятным и простым языком — для новичка.
  2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  3. Научитесь понимать архитектуру 1С;
  4. Станете писать код на языке 1С;
  5. Освоите основные приемы программирования;
  6. Закрепите полученные знания при помощи задачника;

О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»

Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.

  1. Очень доступный и понятный язык изложения
  2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  3. Поймете идеологию управляемого приложения 1С
  4. Узнаете, как разрабатывать управляемое приложение;
  5. Научитесь разрабатывать управляемые формы 1С;
  6. Сможете работать с основными и нужными элементами управляемых форм
  7. Программирование под управляемым приложением станет понятным

Промо-код на скидку в 15% — 48PVXHeYu

Вступайте в мои группы:

Вконтакте: https://vk.com/1c_prosto
Фейсбуке: https://www.facebook.com/groups/922972144448119/
ОК: http://ok.ru/group/52970839015518
Твиттер: https://twitter.com/signum2009

Понравилась статья? Поделить с друзьями:

Читайте также:

  • Как изменить жизнь методика
  • Как изменить жизнь людей устройство общества к лучшему аргументы
  • Как изменить жизнь людей к лучшему сочинение егэ
  • Как изменить жизнь когда нет сил
  • Как изменить жизнь к лучшему кардинально что нужно делать

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии