Вивести дані до табличного документа 1с 8.3. Інтерактивні можливості табличного документа

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

В одній таблиці перераховані товари для відвантаження зі складу. В іншій таблиці – зобов'язання щодо оплати цих товарів.

Тому в 1С чільне місце займає робота з таблицями.

Таблиці 1С також називають «табличні частини». Вони є у довідників, документів та інших.

Запит в результаті виконання повертає таблицю, доступ до якої можна отримати двома різними способами.

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

//Варіант 1 – послідовний доступ до результатів запиту

//отримання таблиці
Вибірка = Запит.Виконати().Вибрати();
//по порядку обходимо всі рядки результату запиту
Поки Вибірка.Наступний() Цикл
Повідомити(Вибірка.Найменування);
КінецьЦикл;

//Варіант 2 – вивантаження таблицю значень
Запит = Новий Запит («ВИБРАТИ Найменування З Довідник. Номенклатура»);
//отримання таблиці
Таблиця = Запит.Выполнить().Выгрузить().
//Далі можемо також обійти всі рядки
Для кожного Рядок з Таблиця Цикл
Повідомити (Рядок.Найменування);
КінецьЦикл;
//або довільно звертатися до рядків
Рядок = Таблиця. Знайти («Лопата», «Найменування»);

Важлива особливість – у таблиці, яка отримана з результату запиту всі колонки будуть строго типізовані. Це означає, що запитавши поле Найменування із довідника Номенклатура, Ви отримаєте колонку виду Рядка з допустимою довжиною не більше N символів.

Таблиця на формі (товстий клієнт)

Користувач працює із таблицею, коли вона розміщена на формі.

Базові принципи роботи з формами ми з Вами обговорювали в уроці з і в уроці з

Отже, розмістимо таблицю на формі. Для цього можна перетягнути таблицю з панелі елементів керування. Аналогічно можна вибрати в меню Форма/Вставити елемент керування.

Дані можуть зберігатися в конфігурації – тоді потрібно вибрати існуючу (раніше додану) табличну частину об'єкта конфігурації, форму якого Ви редагуєте.

Натисніть кнопку «…» у властивості Дані. Щоб побачити список табличних частин, потрібно розкрити гілку Об'єкт.

При виборі табличної частини 1С сама додасть колонки таблиці на формі. Рядки введені користувачем у таку таблицю зберігатимуться автоматично разом із довідником/документом.

У цьому ж властивості Дані Ви можете ввести довільне ім'я та вибрати тип ТаблицяЗначень.

Це означає, що обрано довільну таблицю значень. Вона не додасть автоматично колонки, не автоматично зберігатиметься, але й робити з нею можна все, що завгодно.

Натиснувши правою кнопкою на таблиці, Ви можете додати колонку. У властивості колонки можна вказати його ім'я (для звернення в коді 1С), заголовок колонки на формі, зв'язок з реквізитом табличної частини (останнє – якщо обрано не довільну таблицю, а табличну частину).

У властивостях таблиці на формі Ви можете вказати, чи доступно користувачеві додавати/видаляти рядки. Більш просунута форма – галочка Тільки Перегляд. Ці властивості зручно використовуватиме організації таблиць призначених висновку інформації, але з редагування.

Щоб керувати таблицею, потрібно вивести форму командну панель. Виберіть пункт Форма/Вставити елемент керування/Командна панель.

У властивостях командної панелі виберіть пункт Автозаповнення, щоб кнопки на панелі з'явилися автоматично.

Таблиця на формі (тонкий/керований клієнт)

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

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

Щоб додати колонки, використовуйте меню правою кнопкою миші на цьому реквізиті форми, пункт Додати колонку реквізиту.

Після цього перетягніть таблицю вліво.

Щоб у таблиці з'явилася командна панель, у властивостях таблиці виберіть значення у розділі Використання – Положення командної панелі.

Вивантаження таблиці в Excel

Будь-яку таблицю 1С, розташовану на формі, можна роздрукувати чи вивантажити до Excel.

Для цього клацніть правою кнопкою миші на вільному місці в таблиці та виберіть пункт Вивести список.

У керованому (тонкому) клієнт аналогічні дії можна виконати за допомогою пункту меню Усі дії/Вивести список.

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

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

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

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

ТабДок. Ім'яПринтера = "HP LaserJet 3050 Series PCL 6";

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

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

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

ТабДок. КількістьПримірників= 5 ;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Оформлення осередків

Табличний документ має великі можливості оформлення. Розробник може задавати тип і розмір шрифту для відображення тексту, розташованого в осередках табличного документа:

Табличний документ дозволяє оформляти комірки рамками різного виду:

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

Угруповання

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

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

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

Відступ рівнів ієрархії під час використання угруповань формується системою автоматично:

Розшифрування

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

Стандартні дії під час розшифрування виконуються, наприклад, якщо клацнути мишею на документі або елементі довідника. У цьому випадку система відкриє цей об'єкт для перегляду (якщо інша поведінка не передбачена розробником).

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

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

Примітки

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

Ширина стовпців

Табличний документ підтримує можливість завдання різної ширини колонок для різних рядків. Ця можливість є дуже важливою для регламентованих звітів. Фактично в цьому випадку табличний документ буде кількома таблицями, що, наприклад, часто зустрічається в бухгалтерській та податковій звітності:

Зведені таблиці

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

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

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

Додаткова інформація

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

Введення даних у табличний документ

Хоча табличні документи в системі 1С:Підприємство 8.0 використовуються, в основному, для подання вже обробленої інформації, існує можливість безпосереднього введення даних у табличний документ як "звичайну" електронну таблицю.

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

Безпосереднє введення даних у табличний документ може застосовуватися, наприклад, для формування бухгалтерського балансу:

Збереження

Оскільки табличний документ найчастіше використовується для формування вихідних документів, він може бути збережений у файлі на диску для подальшого використання або перенесення на інші комп'ютери. Табличний документ може бути збережений як у власному форматі, так і експортований в інші формати зберігання даних, у тому числі аркуш Excel або MXL7 (для сумісності з версією платформи 7.7):

Редактор табличних документів

Для створення макетів, з яких в результаті буде сформовано табличний документ, показаний користувачеві, розробник може використовувати редактор табличних документів - потужний засіб, що поєднує в собі можливості оформлення табличної структури і векторної графіки. Він дозволяє створювати як невеликі документи з дуже складною структурою ліній (типу платіжного доручення), і об'ємні відомості, журнали тощо.

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

Розшифрування

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

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

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

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

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

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

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

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

Угруповання

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

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

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

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

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


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

Область = Макет.Отримати Область("Рядок");

Вибірка = Довідники.Номенклатура.ВибратиІєрархічно();
ТабДок.ПочатиАвтоУгрупованняРядок();
Поки Вибірка.Наступний() Цикл
Область.Параметри.Номенклатура = Вибірка.Посилання;
ТабДок.Вивести(Область, Вибірка.Посилання.Рівень(), Вибірка.Найменування, Істина);
КінецьЦикл;

ТабДок.ЗакінчитиАвтоУгрупованняРядок();
ТабДок.Показати();

Примітки

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

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

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

Макет = Довідники.Номенклатура.ОтриматиМакет("Каталог");
Вибірка = Довідники.Номенклатура.Вибрати();
Поки Вибірка.Наступний() Цикл

ОбластьКомірокМакета = Макет.Область("КоміркаНайменування");
ОбластьКомірокМакета.Примітка.Текст = Вибірка.Посилання.Коментар;

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

КінецьЦикл;

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

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



Подібні публікації