Контакти

1с відкрити табличний документ. Керовані форми: читання макетів з об'єднаними осередками (зокрема, і з Ексель). Читання табличного документа

Більшість навчальних матеріалів з програмування в системі 1С при описі формірованіяпечатних форм на основі об'єкта «Табличний документ» обмежуються висновком готової форми на екран. Для користувачів ж куди більш важливим є те, як документ буде виглядати в роздрукованому вигляді. Тут, крім добре зверстаного макета, грають роль і установки параметрів друку.

Майже всі параметри, доступні в діалогах налаштування друку (настройки принтера, властивості сторінки), можна вказати безпосередньо при формуванні табличного документа.

Розглянемо властивості і методи табличного документа, що відносяться до налаштувань друку (в наведених прикладах «ТабДок» це об'єкт типу «Табличний документ»).

властивість «ІмяПрінтера»дозволяє задати для друку принтер, відмінний від встановленого за замовчуванням. Ім'я повинно збігатися з ім'ям принтера, заданим в системі:

ТабДок. ІмяПрінтера \u003d "HP LaserJet 3050 Series PCL 6";

При друку пакету документовможно заощадити час, встановивши ознаку розбору по копіях:

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

Число копій можна вказати так:

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

Зрозуміло, можна задати поля:

ТабДок. ПолеСлева \u003d 20; // Поле зліва 20мм, інші поля 10мм (за замовчуванням)

Ще кілька властивостей сторінки:

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

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

властивість «РазмерСтраніци» дозволяє задати стандартні формати сторінки - "A 3 "," A4 "," A 5” (повний список варіантів доступний в довідці 1С).

ТабДок. РазмерСтраніци \u003d "A3"; // буква А має бути англійською

для нестандартного розміру паперу (Custom) можна вказати значення висоти і ширини сторінки (в мм):

ТабДок. РазмерСтраніци \u003d "Custom"; // нестандартний розмір
ТабДок. ВисотаСтраніци \u003d 350;
ТабДок. ШірінаСтраніци \u003d 350;

Також в табличному документі є управління висновком колонтитулів і їх вмістом. Для цього служать властивості "Верхній колонтитул" і "Нижній колонтитул". наприклад:

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

Сформований документ відправляється на друк за допомогою методу «Надрукувати ()». Можливо два варіанти виклику.

1) Безпосередньо на принтер:

ТабДок. Надрукувати (. Невикористаних);
ТабДок. Надрукувати (істина);

2) Перед друком буде виведений діалог друку:

ТабДок. надрукувати ( РежімІспользованіяДіалогаПечаті. Використовувати);
ТабДок. Надрукувати (брехня);

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

ТабДок. Кількість сторінок();

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

Треба мати на увазі, що робота останніх трьох методів залежить від встановленого принтера. Якщо методом не вдається його знайти, викликається виняток.

Примусово вставити розриви сторінок дозволяють методи«ВивестіВертікальнийРазделітельСтраніц ()» і «ВивестіГорізонтальнийРазделітельСтраніц ()».

Таким чином, можна управляти посторінковим друком і контролювати заповнення сторінки:

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

Важливою характеристикою платформи «1С: Підприємство 8.2» є суворе поділ властивостей і методів по контексту виконання. Якщо всі наведені вище властивості доступні в будь-якому контексті, то перелічені методи недоступні на тонкому клієнті. Винятком є \u200b\u200bметод «Надрукувати ()», доступність якого зі зрозумілих причин обмежена клієнтською частиною. Це означає, що формування табличного документа повинно відбуватися на сервері, а відправляти його на друк слід в клієнтської процедурі.

Табличний документ 1С: Підприємство 8 служить не тільки для друку документів і звітів. Він має розширені можливості, які перетворюють його в інтерактивне засіб взаємодії з користувачем. До таких можливостей відносяться:
- розшифровки,
- угруповання,
- примітки.
Варто зауважити, що до інтерактивних можливостям табличного документа можна також віднести зведені таблиці і елементи управління, розташовані в осередках, але зараз ми не будемо на них зупинятися, а докладніше розглянемо перераховані вище механізми.

розшифровки

Система "1С: Підприємство 8" підтримує механізм розшифровок (drill-down, drill-through), коли користувач клацає на рядку або осередку звіту і отримує більш детальний звіт, якщо звичайно це передбачено програмістом.

Розшифровки діляться на стандартні і нестандартні. Стандартні розшифровки обробляються системою автоматично і не вимагають додаткових зусиль від програміста, наприклад, для документів буде відкрита форма документа, а для елементів довідника буде відкрита форма елемента. Якщо довідник редагується в списку, то курсор буде встановлений на поточному елементі в формі списку. Для виконання нестандартної розшифровки призначене подія ОбработкаРасшіфровкі.

Подія "ОбработкаРасшіфровкі" можна обробити, тільки якщо табличний документ поміщений в форму як елемент управління, а не відкривається в окремому вікні, оскільки ця подія існує тільки у елемента управління "ПолеТаблічногоДокумента". Нижче показані категорія властивостей "Події" елемента управління "ПолеТаблічногоДокумента", де призначається процедура-обробник розшифровки.

Сама процедура "РасшіфроватьСтроку" може виглядати наступним чином (як приклад):

Процедура РасшіфроватьСтроку (Елемент, Розшифровка, СтандартнаяОбработка)
Якщо ТіпЗнч (Розшифровка) \u003d Тип ( "ДокументСсилка.ДоговорПродажі") Тоді

СтандартнаяОбработка \u003d Брехня;
Звіт \u003d Отчети.АналізДоговора.Создать ();
Отчет.Договор \u003d Розшифровка; // заповнюємо реквізит звіту
Отчет.Сформіровать (ЕлементиФорми.ПолеТаблічногоДокумента1);
КонецЕсли;
КонецПроцедури

Примітка 1. У модулі додатка (аналог глобального модуля в версії 7.7) більше немає події ОбработкаЯчейкіТабліци. Вся обробка розшифровок повинна бути проведена в модулі форми, де розташовується елемент управління "ПолеТаблічногоДокумента".

Примітка 2. Подія "ОбработкаРасшіфровкі" виникає при натисканні на осередку або малюнку, що містять розшифровку. Не плутайте його з подією "Вибір", що виникають для всіх осередків і малюнків при подвійному натисканні миші або натисканні клавіші Enter, причому, спочатку виникає подія "Вибір", а потім "ОбработкаРасшіфровкі".

угруповання

В 1С: Підприємство 8 з'явилася можливість групувати дані в звіті. Угруповання можуть бути горизонтальні і вертикальні, тоді зліва і зверху з'являються спеціальні маркери, що дозволяють користувачеві розгортати і згортати групи.

Найпростіший спосіб додати угруповання в звіт - довірити цю задачу системі, тоді від програміста будуть потрібні мінімальні зусилля. Необхідно всього лише застосувати методи НачатьАвтоГруппіровкуСтрок / НачатьАвтоГруппіровкуКолонок і ЗакончітьАвтоГруппіровкуСтрок / ЗакончітьАвтоГруппіровкуКолонок, які включають режим автоматичної угруповання рядків або колонок відповідно. У цьому режимі при виклику методів Вивести (для рядків) і Приєднати (для колонок) вказуються додаткові параметри для угруповання:

вивести (<Таблица>, <Уровень>, <Имя группы>, <Открыта>)
приєднати (<Таблица>, <Уровень>, <Имя группы>, <Открыта>)

При використанні угруповань дуже корисно встановити властивість осередку "автовідступ" в яке-небудь нульове значення, наприклад, 5. Тоді система буде автоматично додавати задану кількість прогалин зліва тексту осередку, грунтуючись на поточному рівні угруповання. В результаті звіт придбає зручний зовнішній вигляд для відображення ієрархії даних.

Наступний приклад виводить список товарів з угрупуваннями:


ТабДок \u003d Новий ТаблічнийДокумент;

Область \u003d Макет.ПолучітьОбласть ( "Рядок");

Вибірка \u003d Справочнікі.Номенклатура.ВибратьІерархіческі ();
ТабДок.НачатьАвтоГруппіровкуСтрок ();
Поки Виборка.Следующій () Цикл
Область.Параметри.Номенклатура \u003d Виборка.Ссилка;
ТабДок.Вивесті (Область, Виборка.Ссилка.Уровень (), Виборка.Наіменованіе, Істина);
КонецЦікла;

ТабДок.ЗакончітьАвтоГруппіровкуСтрок ();
ТабДок.Показать ();

Примітки

Осередки табличного документа можуть мати примітки, тоді в правому верхньому кутку осередку виводиться маленький червоний трикутник. При наведенні курсора миші на осередок примітка показується у спливаючому вікні.

Програмна установка приміток реалізується в такий спосіб:

ТабДок \u003d ЕлементиФорми.ПолеТаблічногоДокумента1;
ТабДок.Очістіть ();

Макет \u003d Справочнікі.Номенклатура.ПолучітьМакет ( "Каталог");
Вибірка \u003d Справочнікі.Номенклатура.Вибрать ();
Поки Виборка.Следующій () Цикл

ОбластьЯчеекМакета \u003d Макет.Область ( "ЯчейкаНаіменованіе");
ОбластьЯчеекМакета.Прімечаніе.Текст \u003d Виборка.Ссилка.Комментарій;

ОбластьТабДок \u003d Макет.ПолучітьОбласть ( "Рядок");
ОбластьТабДок.Параметри.Номенклатура \u003d Виборка.Ссилка;
ТабДок.Вивесті (ОбластьТабДок);

КонецЦікла;

Зверніть увагу, що властивість "Примітка" у об'єкта "ОбластьЯчеекМакета" є об'єктом типу "Малюнок", а не простий рядком. Через цей об'єкт можна редагувати зовнішній вигляд примітки, шрифт і колір тексту, фон, лінії і т.д.

резюме
- табличний документ служить не тільки для друку документів і звітів, але має також потужні інтерактивні можливості. До таких можливостей відносяться в першу чергу розшифровки, угруповання і примітки (розглянуті в цьому розділі), а також зведені таблиці і елементи управління (будуть розглянуті в інших розділах).
- Нестандартні розшифровки, тобто оброблювані програмістом, можна реалізувати, якщо тільки табличний документ виводиться в екранну форму (елемент управління "ПолеТаблічногоДокумента").
- Найпростіший спосіб задіяти угруповання - це включити режим автогруппіровок рядків, а при виведенні кожної області в табличний документ вказувати рівень, до якого вона належить. Рекомендується також в макеті встановити властивість "автовідступ" для потрібних осередків.
- Примітки "спливають" при наведенні курсору миші на осередок. Є можливість змінити зовнішній вигляд приміток засобами вбудованої мови.

Табличний документ використовується для створення первинних документів і звітів, які складаються з осередків організованих в рядки і колонки. У кожного рядка і колонки є свій унікальний номер. При цьому окремим осередкам, діапазонами і графічних об'єктів можна присвоїти ім'я виділивши потрібну область використовуючи розділ "Таблиця - Імена". Після введемо ім'я в поле введення і натиснемо "Присвоїти".

Для того, щоб видалити ім'я виберемо його зі списку і натиснемо на кнопку "Видалити". Тим областям, яким користувач не привласнив ім'я, програма дасть назву автоматично. Ці імена можна побачити в палітрі властивостей. Табличний редактор може використовуватися для створення нового документа, перегляду результатів колишніх звітів і редагування документів табличного типу.

Як в 1С створити табличний документ

Для створення нового документа необхідно натиснути на розділ "Файл" - "Новий", після чого вибрати рядок "Табличний документ" і підтвердити кнопкою "ОК". Якщо потрібно відкрити вже створений документ, тоді в розділі "Файл" - "Відкрити" вибираємо в списку ім'я файлу необхідного документа. При цьому можна вибрати будь-який формат документа, що відкривається натиснувши на поле "Тип файлу".

При створенні таблиці виділимо осередок і введемо дані (текст, формула, чисельні дані). Якщо необхідно змінити розмір осередків, тоді в Меню виберемо "Формат - Рядок - Автоподбор висоти - Стовпець - Автоподбор ширини". Для цього наведемо мишку на межу заголовку рядка або стовпчика, утримуючи ліву кнопку миші, протяжкой змінимо розмір. Видозміниться в 1С висота рядка табличного документа і ширина стовпчика. Команда автопідбору відкривається подвійним кліком на кордон заголовка.


Ви можете сміливо повторювати всі дії у себе в базі або з легкістю створити табличний документ в 1С: Готові рішення - хмарної версії ліцензійної програми 1С. Тестируйте сервіс безкоштовно протягом 14 днів в 1С Онлайн.

Як змінити в 1С висоту рядка і ширину колонок

Розмір рядків і стовпців табличного документа можна змінити вручну або автоматично.

У програмі 1С висота рядка табличного документа зміниться вручну, Якщо навести мишку на нижню межу заголовка рядка і дочекатися коли курсор миші перетвориться в роздвоєну вертикальну стрілку. Після цього встановлюємо необхідну нам висоту рядка переміщаючи кордону заголовка.

Змінити ширину стовпця можна, якщо встановити покажчик миші на праву межу заголовку і дочекатися коли курсор миші перетвориться в роздвоєну горизонтальну стрілку. Перемістивши мишкою кордон заголовка, встановимо необхідну ширину.

Мінімально необхідну ширину шпальти можна встановити за допомогою двох клацань миші на межу заголовку. Редактор самостійно встановить ту ширину, в яку повністю поміщається текст.

Існує ще один спосіб ручного зміни. Натисніть на клавішу "Ctrl" і наведіть мишку на потрібну кордон осередки. Після того як форма курсора зміниться - встановіть потрібний розмір.

В 1С ширина колонки табличного документа зміниться автоматично, Якщо виділити необхідний стовпець і вибрати розділ "Таблиця" - "Осередки" - "Ширина колонок". У вікні вказати ширину і натиснути "ОК".

Створюючи новий табличний документ ширина всіх стовпців встановлюється за умовчанням. Але її також можна змінити. Для цього в "Таблиці" вибрати "Осередок" - "Ширина колонок". У вікні задати розмір колонки і натиснути "ОК". Якщо вибрати "Авто", тоді розмір встановлюється на весь документ.

Автоматично зміниться висота рядка, якщо встановити прапорець "Автовисота рядки". Якщо прапорець знятий встановити, тоді в поле "Висота рядків" задається фіксований розмір рядка.

Для того, щоб встановити різну ширину колонок для різних рядків, необхідно виділити одну або кілька рядків документа.

Підіб'ємо мишкою до разделителю колонок і натиснемо ліву кнопку миші. Не відпускаючи кнопку потягнемо стовпець в потрібну сторону (наприклад, вліво) і відпустимо кнопку. У вікні натиснемо на "ОК".

Також можна управляти кольором тексту, фону і рамок.


Як правило, табличний документ формується на основі макета, який представляє собою шаблон для формування друкованої форми. У сам макет можна включити малюнки, діаграми, а також зведені таблиці. На прикладі зображений макет для друку видаткової накладної:


В одних осередках міститься тільки текст, в інших - імена параметрів, які необхідно вказати в програмному модулі через "Параметри" об'єкти "Табличний документ".

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

У табличному документі є можливість групувати рядки і стовпці для того, щоб класифікувати дані в звітах. Існують горизонтальні угруповання, які можуть бути розташовані праворуч або ліворуч, і вертикальні розміщені зверху чи знизу.

Також можна відобразити рівні угруповання. При натисканні цифр в заголовку розгортаються відразу все угруповання. При застосуванні угруповання відступ рівнів формується автоматично:


Розшифровка табличного документа 1C

Скористаємося механізмом розшифровки, щоб отримати детальний або додатковий звіт. Для цього натискаємо мишкою на рядок або елемент документа.

Існує два дії при розшифровці документа:

  • Стандартні - натискаємо мишкою на документ або елемент довідника, після чого система відкриє цей об'єкт для перегляду.
  • Нестандартні - задамо алгоритм отримання детального звіту. Для цього необхідно переформувати існуючий з використанням додаткових умов відбору ( "показати продажу тільки з цього контрагенту"). Або ж,

При використанні розшифровки можна отримати абсолютно новий звіт (наприклад "показати видаткові накладні, які зробили внесок в обсяг продажів по даному контрагенту").

Так як виклик звітів, що містяться в конкретному прикладному рішенні, відбувається автоматично - це ускладнює роботу користувача. Для того, щоб полегшити роботу і потрібен механізм розшифровок.

Як в 1С зберегти табличний документ

Для того, щоб в подальшому можна було користуватися табличним документом (відкривати, переглядати, роздруковувати) - необхідно його зберегти. Виберемо розділ "Файл" і натиснемо "Зберегти". Після цього на екрані з'явиться вікно, в якому вкажемо каталог і ім'я файлу. Якщо необхідно перейменувати документ, або зберегти його в іншому форматі - виберемо розділ "Файл" і "Зберегти як".

Як правило, документ зберігається в тому форматі, яку використовує система "1С: Підприємство" (* .mxl). При цьому табличний документ може бути експортований в інші формати зберігання даних, в тому числі в формат електронної таблиці ODF (* .ods), документ Word (* .Docx), документ HTML (* .Htm) або в текстовий файл UNICODE (* .txt). До того ж є можливість зберегти в 1С табличний документ в excel або в pdf.

Друк табличного документа в 1С

Для перегляду документ перед друком, виберемо розділ "Файл - Попередній перегляд". Для того, щоб вийти з попереднього перегляду натиснемо кнопку "Закрити".

В налаштуваннях сторінки встановимо в 1С параметри друку табличного документа - масштаб, розмір, межі і т.д. В табличному редакторі встановимо параметри розміщення рядків і стовпців. В "Положення на сторінці" примусово встановлено розбиття на сторінки, повторення рядків і стовпців і т.д.

Виведемо документ на принтер натиснувши на розділ "Файл" - "Друк". На сторінці з'явиться вікно з настройками, де потрібно встановити параметри друку - вибрати принтер, діапазон сторінок і кількість копій - і натиснути "ОК".

У Вас залишилися питання? Задавайте їх в коментарях і ми
обов'язково на них відповімо.

Всім добрий період часу!

Суть завдання, яку ми розберемо, в тому, як прочитати дані з об'єднаних осередків табличного документа за допомогою об'єкта "ТаблічнийДокумент". Також торкнемося того, як пройтися по виділеним даними. Отже, приступимо.

ЧИТАННЯ табличний документ

Для читання табличного документа в 1С можна використовувати як не дивно об'єкт "ТаблічнийДокумент". З версії 8.3.7 (якщо не зраджує пам'ять) даний об'єкт здатний читати не тільки MXL-файли, але і XLS / XLSX / ODT і якісь ще варіанти таблиць (а також, до речі, і писати).

Але як завжди є одна маленька проблемка - об'єкт створюється тільки на сервері. Але 1С спробувала вирішити дану проблему створивши потоки в пам'яті і надавши програмісту можливість використовувати їх замість шляху до файлу в конструкторі об'єкту, але при цьому необхідно вказати тип читаного файлу. Правда у мене на платформі Windows 7 pro x64 c 1C 8.3.10.2466 Ексель таким чином прочитати не вийшло, а ось MXL читає чудово, тому для екселевскій файлів все-одно доведеться створити тимчасовий файл.

Отже, код читання файлів:

& НаСервере Процедура ЗагрузітьФайлНаСервере (ДД, Розширення) Якщо Розширення \u003d "xml" Тоді ЧД \u003d Новий ЧтеніеДанних (ДД); Таб.Прочітать (ЧД, СпособЧтеніяЗначенійТаблічногоДокумента.Значеніе, ТіпФайлаТаблічногоДокумента.MXL); Інакше имяфайла \u003d ПолучітьІмяВременногоФайла (Розширення); ДД.Запісать (имяфайла); Таб.Прочітать (имяфайла); УдалітьФайли (имяфайла); КонецЕсли; КонецПроцедури & НаКліенте Процедура ЗагрузітьФайл (Команда) ДЛГ \u003d Новий ДіалогВибораФайла (РежімДіалогаВибораФайла.Откритіе); Длг.Фільтр \u003d "MXL-files (* .mxl) | * .mxl | XLS-files (* .xls) | * .xls | XLSX-files (* .xlsx) | * .xlsx | ODS-files (*. ods) | * .ods "; Длг.Показать (Новий ОпісаніеОповещенія ( "ПріВибореФайла", ЕтаФорма)); КонецПроцедури & НаКліенте Процедура ПріВибореФайла (рез, Доп) Експорт Якщо рез \u003d Не визначено Тоді Повернення КонецЕсли; фл \u003d Новий Файл (рез); ЗагрузітьФайлНаСервере (Новий ДвоічниеДанние (рез), НРег (фл.Расшіреніе)); КонецПроцедури

Створимо форму з табличним документом і кнопкою "Завантажити файл" і отримаємо фот таку формочку, яка зможе прочитати MXL, XLS, XLSX і ODS файли в табличний документ.

ВИДІЛЕНІ ОСЕРЕДКУ

Давайте розберемося, де тут у нас знаходяться виділені користувачем осередки. І ось тут цікава дивина платформи в тому, що ці виділені осередки доступні тільки на клієнті у відповідному елементі форми. Давайте пробіжимося по виділених клітинок і роздрукуємо результат в рядок повідомлень:

& НаКліенте Процедура СообщітьВиделенное (Команда) Для Кожного Область ІЗ Елементи.Таб.ПолучітьВиделенниеОбласті () Цикл Для Х \u003d Область.Лево ПО Область.Право Цикл Для У \u003d Область.Верх ПО Область.Ніз Цикл Повідомити (Таб.Область (У, Х) .Текст); КонецЦікла; КонецЦікла; КонецЦікла; КонецПроцедури

Якщо ми виділимо тепер перший рядок без об'єднаних осередків, то отримаємо наступний результат:

Тобто тут у нас надрукувати А, Б і В. Якщо ж ми виберемо другий рядок, то отримаємо іншу картину:

Як бачите, наявність об'єднання жодним чином не заважає нам отримати дані з рядка, яка у нас об'єднана з рядком, При тому в обох цих рядках буде знаходитися значення "А". Якщо ми виділимо третій рядок, то отримаємо висновок "А А А" (ну ви вже зрозуміли, чому, так?)

ОБ'ЄДНАНІ ОСЕРЕДКУ

Для того, щоб виправити проблему з об'єднаними осередками, потрібно просто дізнатися одну подробицю: кожна клітинка має реквізити "Ліво", "Право", "Верх" і "Низ". І для об'єднаних осередків вони не будуть рівні. Для простого об'єднання по осі Х провести читання з урахуванням об'єднання буде досить просто:

Для Кожного Область ІЗ Елементи.Таб.ПолучітьВиделенниеОбласті () Цикл Для Х \u003d Область.Лево ПО Область.Право Цикл Для У \u003d Область.Верх ПО Область.Ніз Цикл Повідомити (Таб.Область (У, Х) .Текст); Х \u003d Х + Таб.Область (У, Х) .Право - Таб.Область (У, Х) .Лево; КонецЦікла; КонецЦікла; КонецЦікла;

Ми просто додаємо до "Х" "право" і віднімаємо "ліво".

А для осі "У" пропоную розібратися самостійно (в якості домашнього завдання).

Більшість навчальних матеріалів з програмування в системі 1С при описі формірованіяпечатних форм на основі об'єкта «Табличний документ» обмежуються висновком готової форми на екран. Для користувачів ж куди більш важливим є те, як документ буде виглядати в роздрукованому вигляді. Тут, крім добре зверстаного макета, грають роль і установки параметрів друку.

Майже всі параметри, доступні в діалогах налаштування друку (настройки принтера, властивості сторінки), можна вказати безпосередньо при формуванні табличного документа.

Розглянемо властивості і методи табличного документа, що відносяться до налаштувань друку (в наведених прикладах «ТабДок» це об'єкт типу «Табличний документ»).

властивість «ІмяПрінтера»дозволяє задати для друку принтер, відмінний від встановленого за замовчуванням. Ім'я повинно збігатися з ім'ям принтера, заданим в системі:

ТабДок. ІмяПрінтера \u003d "HP LaserJet 3050 Series PCL 6";

При друку пакету документовможно заощадити час, встановивши ознаку розбору по копіях:

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

Число копій можна вказати так:

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

Зрозуміло, можна задати поля:

ТабДок. ПолеСлева \u003d 20; // Поле зліва 20мм, інші поля 10мм (за замовчуванням)

Ще кілька властивостей сторінки:

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

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

властивість «РазмерСтраніци» дозволяє задати стандартні формати сторінки - "A 3 "," A4 "," A 5 "(повний список варіантів доступний в довідці 1С).

ТабДок. РазмерСтраніци \u003d "A3"; // буква А має бути англійською

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

ТабДок. РазмерСтраніци \u003d "Custom"; // нестандартний розмір
ТабДок. ВисотаСтраніци \u003d 350;
ТабДок. ШірінаСтраніци \u003d 350;

Також в табличному документі є управління висновком колонтитулів і їх вмістом. Для цього служать властивості "Верхній колонтитул" і "Нижній колонтитул". наприклад:

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

Сформований документ відправляється на друк за допомогою методу «Надрукувати ()». Можливо два варіанти виклику.

1) Безпосередньо на принтер:

ТабДок. Надрукувати (. Невикористаних);
ТабДок. Надрукувати (істина);

2) Перед друком буде виведений діалог друку:

ТабДок. надрукувати ( РежімІспользованіяДіалогаПечаті. Використовувати);
ТабДок. Надрукувати (брехня);

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

ТабДок. Кількість сторінок();

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

Треба мати на увазі, що робота останніх трьох методів залежить від встановленого принтера. Якщо методом не вдається його знайти, викликається виняток.

Примусово вставити розриви сторінок дозволяють методи«ВивестіВертікальнийРазделітельСтраніц ()» і «ВивестіГорізонтальнийРазделітельСтраніц ()».

Таким чином, можна управляти посторінковим друком і контролювати заповнення сторінки:

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

Важливою характеристикою платформи «1С: Підприємство 8.2» є суворе поділ властивостей і методів по контексту виконання. Якщо всі наведені вище властивості доступні в будь-якому контексті, то перелічені методи недоступні на тонкому клієнті. Винятком є \u200b\u200bметод «Надрукувати ()», доступність якого зі зрозумілих причин обмежена клієнтською частиною. Це означає, що формування табличного документа повинно відбуватися на сервері, а відправляти його на друк слід в клієнтської процедурі.



Сподобалася стаття? поділіться їй