Значення осередків та елементи управління у табличному документі
Табличний документ (ТД) складається з рядків та стовпців, які утворюють осередки. У цій статті розглянуто можливості "1С:Підприємства 8", що дозволяють розмістити в осередках табличного документа елементи керування для редагування значень.
Нижче розглянуті такі теми:
Властивості "Текст" та "Значення" осередку табличного документа
Основні властивості кожної комірки табличного документа — це Текст і Значення , причому за умовчанням доступна властивість Текст , а властивість Значення заблоковано.
ВАЖЛИВО! Властивості Текст і значення не можна використовувати одночасно! Якщо властивість-ознака МіститьЗначення встановлено у значення Істина , то властивість Текст недоступне, і навпаки, якщо властивість-ознака МіститьЗначення дорівнює Брехня , то властивість Значення недоступне, а також всі пов'язані інші властивості, наприклад, ТипЗначення та ЕлементКерування .
Нижче на малюнку показано гамма властивостей для комірки табличного документа. Зверніть увагу, що прапорець Містить значення не встановлено, тому цей осередок буде відображати Текст .
Властивість Текст має тип Рядок. Якщо в осередку необхідно розмістити якусь текстову інформацію, необхідно використовувати саме властивість Текст, наприклад:
Зверніть увагу, що навіть якщо ви надаєте властивості Текст значення іншого типу (не рядкового), то воно все одно буде інтерпретовано як рядок. Значення базових типів перетворюються до рядка, а для типів посилань даних (елементів довідників, документів і т. д.) береться їх подання.Якщо ж необхідно розмістити в комірці значення іншого типу, наприклад, число, булево, дату або посилання, і при цьому не перетворювати це значення на рядок, то потрібно використовувати властивість Значення .
Для того щоб з'явилася можливість використовувати властивість Значення, необхідно явно привласнити властивості осередку МіститьЗначення значення Істина або встановити прапорець Містить значення на панелі властивостей, як це показано на наступному малюнку:
Для комірки, у якої встановлено ознаку МіститьЗначення, можна задати тип значення, що розміщується в комірці. На наступному малюнку вказано тип Рядок , але є також можливість вказати кілька можливих типів, використовуючи складовий тип даних:
Наступний фрагмент демонструє, як можна керувати цими властивостями із вбудованої мови:
Масив Бульово ПолеТабДок ПолеТабДок
Властивість "Формат" комірки табличного документа
Для комірки табличного документа можна задавати формат виведення даних. Для цього використовується властивість Формат, яка містить форматний рядок. Прийоми роботи з форматним рядком повністю збігаються з функцією Формат() системи "1С:Підприємство 8". Властивість Формат може бути встановлений як інтерактивно через палітру властивостей, так і програмно з вбудованої мови, наприклад:
ПолеТабДок ПолеТабДок
ПолеТабДок
Елемент управління у табличному документі
Елементи управління, вбудовані в комірку
Для комірки, в якій встановлена ознака МіститьЗначення , можна також задати елемент керування, який використовуватиметься для редагування цього значення.
Елемент керування можна призначити через палітру властивостей або з вбудованої мови за допомогою методу Встановити елемент управління () .
Елементи керування, вбудовані в комірку, відображаються тільки при вході в режим редагування значення.
Нижче наведено приклад встановлення елемента керування типу Прапорець із вбудованої мови:
Масив Бульово ПолеТабДок ПолеТабДок
ПолеТабДок Елементи управління, не вбудовані в комірку
Існує ще один спосіб розміщення елемента управління в комірці: використання незалежного елемента управління та його "прив'язка" до потрібної комірки. У цьому випадку сама комірка не бере участі в процесі роботи, а її значення та властивості ні на що не впливають. елемент управління як звичайного елемента форми. Осередок при цьому використовується тільки як область розміщення (прив'язки) елемента управління.
Нижче показано, як можуть виглядати такі елементи керування (не вбудовані в комірку):
У наступному фрагменті наводиться приклад розміщення не вбудованого в комірку елемента управління в табличному документі:
ЕлементиФорми ЕлементиФорми ЕлементиФорми ЕлементиФорми
n Встановити ЕУ n Розширення елементів керування, розташованих у полі табличного документа
Для елементів керування, розташованих у табличному документі, розширюється набір властивостей, методів та подій:
Розберемо найважливіші властивості та методи:
- Властивість Вбудований має тип Бульово і говорить про те, що елемент управління вбудовується в комірку або просто прив'язується до неї, про що було розказано вище.
- Властивість Видимість дозволяє показати або приховати елемент керування.
- Властивість Значення надає доступ до значення, яке редагується в елементі керування. Воно використовується лише для елементів керування, які підтримують зв'язок із даними.
- Метод Розташувати дозволяє розмістити елемент управління у конкретній області осередків табличного документа. Саме цей метод був використаний у наведеному вище прикладі.
Для елементів керування, розміщених у табличному документі, можна обробляти події, наприклад, При зміні . Процедура-обробник події має перебувати у модулі форми. Ось чому елементи управління має сенс розташовувати в табличному документі, тільки якщо він виводиться на діалог форми (у полі табличного документа).
Властивість "Захист" осередку табличного документа
Ця властивість має тип Бульова і містить ознаку захисту комірки від редагування. У режимі перегляду в табличному документі недоступні для редагування комірки та малюнки, які мають властивість Захист .
Встановлюється ця властивість так само, як і будь-яке інше:
Резюме
- У комірки табличного документа є дві альтернативні властивості – Текст та Значення.
- Комірці можна задати тип збереженого значення, формат виводу та елемент керування.
- Більшість властивостей і методів застосовні не тільки для окремого осередку, але і для осередків табличного документа.
- Засоби вбудованої мови дозволяють керувати структурою та зовнішнім виглядом осередків та областей табличного документа.
Редактор табличного документа
Редактор табличного документа — це один із інструментів розробки. Він дозволяє створювати та змінювати табличні документи, які є основою для створення різних друкованих форм.
Редактор табличних документів дозволяє розробнику повністю використати широкий набір можливостей табличного документа. Перелічимо основні з цих можливостей:
Загальні властивості табличного документа
Редактор дозволяє встановлювати загальні властивості табличного документа, такі як:
- варіанти відображення підсумків при використанні у документі угруповань рядків та стовпців;
- використання документа як макета;
- використання картинки як тло для документа;
- вказівку області документа, яка виводитиметься на друк;
- завдання кольорового оформлення документа;
- вказівка рядків та стовпців документа, які друкуватимуться на кожному новому аркуші.
Іменовані області
Реактор дозволяє розробнику задавати імена областей документа. Як область може виступати осередок або група осередків.
При іменуванні рядків та стовпців документа редактор може відображати імена областей у вікні редагування та виділяти іменовані області. Підтримується багаторівнева вкладеність іменованих областей:
Примітки
Розробник має можливість задавати примітки для окремих осередків або груп осередків документа:
Угруповання
Редактор табличного документа підтримує можливість групування рядків чи стовпців документа. Групи можна створювати, видаляти, розширювати (включати до них додаткові сусідні рядки чи колонки), створювати вкладені та зовнішні групи:
Графічні об'єкти
Редактор дозволяє використовувати при оформленні табличного документа малювання прямих, прямокутників, овалів та вставляти в документ готові картинки, збережені у зовнішніх файлах або створені за допомогою редактора картинок:
Крім цього, редактор підтримує можливість групування (розгрупування) графічних об'єктів та завдання імен графічних об'єктів.
Зведені таблиці
Однією з важливих можливостей редактора є можливість розміщення в табличному документі зведених таблиць. Зведені таблиці надають універсальний механізм для відображення та інтерактивного аналізу багатовимірних даних, отриманих як результати запитів:
Використання OLE-об'єктів
Підтримка роботи з OLE-об'єктами є універсальною можливістю, що дозволяє впроваджувати в табличні документи об'єкти, створені в інших програмах Windows. Наприклад, це може бути лист Word, малюнок CorelDraw або лист Excel. Використання механізму OLE дозволяє редагувати впроваджені об'єкти так, ніби розробник знаходиться в «рідному» додатку, в якому створено впроваджений об'єкт:
Діаграми
Редактор підтримує використання у табличних документах спеціальних графічних об'єктів 1С:Підприємства, таких як діаграма, діаграма Ганта та дендрограма. Ці об'єкти дозволяють представляти дані 1С:Підприємства у зручному графічному вигляді та можуть бути доступні засобами вбудованої мови:
Використання цих об'єктів дозволяє поліпшити оформлення вихідних документів і підвищити наочність інформації, що відображається:
Осередки табличного документа 1С
У цій статті я покажу, як працювати з осередками табличного документа.Ми створимо табличний документ і заповнимо його якими-небудь даними, не звертаючись при цьому до макету табличного документа, як ми це робили раніше, а одержуючи доступ до осередків табличного документа.
Також, як і у всіх попередніх статтях, для демонстрації створимо обробку та основну форму обробки, на яку помістимо команду.
Створимо обробник команди у клієнтському контексті, і функцію теж у клієнтському контексті, у якій створимо табличний документ, і цей табличний документ функція поверне. А в обробнику команди покажемо табличний документ, що повертається функцією.
&На Клієнті
Функція Повернення ТабличногоДокументу() ТабличнийДокумент =
Новий ТабличнийДокумент;
Повернення ТабличнийДокумент;
КінецьФункції
//ПоверненняТабличногоДокумента()
&На Клієнті
Процедура Вивести(Команда) ТабличнийДокумент = Повернення ТабличногоДокументу(); ТабличнийДокумент.Показати("Приклад роботи з осередками");
КінецьПроцедури
Надалі весь код буде з методу ПоверненняТабличногоДокумента(). У цьому коді ми будемо звертатися до осередків табличного документа щодо їх найменування. Для зручності роботи з іменами осередків табличного документа створимо порожній макет табличного документа. Він нам потрібний лише як допоміжний інструмент. Для виведення табличного документа цей макет не потрібний.
Якщо необхідно дізнатися ім'я осередку або групи осередків (області), слід виділити осередок, відкрити палітру властивостей цього осередку, і в цій палітрі властивостей цікавить одна властивість Ім'я.
Знаючи ім'я осередку або області осередків, ми можемо отримати цю область із вже створеного документа за допомогою методу Область().
ОбластьШапка = ТабличнийДокумент.Область("R2C1:R3C5"); ОбластьШапка.Об'єднати(); ОбластьШапка.Текст =
"Шапка прикладу табличного документа"; ОбластьШапка.Примітка.Текст =
"Це примітка"; ОбластьШапка.ГоризонтальнеПоложення = ГоризонтальнеПоложення.Центр; ОбластьШапка.ВертикальнеПоложення = ВертикальнеПоложення.Центр;
У коді вище ми отримали область осередків табличного документа на ім'я, яке визначили за допомогою порожнього макета табличного документа (він і потрібен тільки для з'ясування назв осередків). Потім ми об'єднали область осередків в один осередок, вказали текст осередку, примітку, і відцентрували текст в осередку.
Якщо ми спробуємо виконати команду обробки, то як результат буде показано табличний документ.
Ходімо далі. Створимо таблицю у нашому табличному документі. Спочатку зробимо шапку таблиці із осередків, які йдуть після області, з якої зробили шапку звіту. У нас буде дві колонки біля шапки таблиці.
Осередки першої колонки.
Отримаємо область для цих осередків, об'єднаємо осередки цієї області, напишемо якийсь текст і обведемо цю область, використовуючи метод Обвести табличного документа.
ЛініяОбведення =
Новий Лінія(ТипЛініїСкриніТабличногоДокументу.Суцільна,1); ОбластьШапкаТаблиці1 = ТабличнийДокумент.Область("R4C1:R4C2"); ОбластьШапкаТаблиці1.Об'єднати(); ОбластьШапкаТаблиці1.Текст =
"Номер"; ОбластьШапкаТаблиці1.ГоризонтальнеПоложення = ГоризонтальнеПоложення.Центр; ОбластьШапкаТаблиці1.Обвести(ЛініяОбведення,ЛініяОбведення,ЛініяОбведення,ЛініяОбведення);
Так само отримаємо область для сусідньої колонки.
Насамперед дізнаємося ім'я осередків. Осередки другої колонки.
А потім отримаємо область, і виконаємо над нею ті самі маніпуляції, що і над сусідньою областю.
ОбластьШапкаТаблиці2 = ТабличнийДокумент.Область("R4C3:R4C5"); ОбластьШапкаТаблиці2.Об'єднати(); ОбластьШапкаТаблиці2.Текст =
"Номер (рядок)"; ОбластьШапкаТаблиці2.ГоризонтальнеПоложення = ГоризонтальнеПоложення.Центр; ОбластьШапкаТаблиці2.Обвести(ЛініяОбведення,ЛініяОбведення,ЛініяОбведення,ЛініяОбведення);
А далі, для виведення таблиці зробимо цикл від 0 до 9, в якому в кожній ітерації циклу звертатимемося до областей табличного документа, але цього разу ми використовуватимемо не імена областей, а номери осередків.
Для н =
0
за
9
Цикл ОбластьРядок1 = ТабличнийДокумент.Область(5
+ н,1,5
+ н,2); ОбластьРядок1.Об'єднати(); ОбластьРядок1.Текст = Рядок(н +
1); ОбластьРядок1.ГоризонтальнеПоложення = ГоризонтальнеПоложення.Центр; ОбластьРядок1.Обвести(ЛініяОбведення,ЛініяОбведення,ЛініяОбведення,ЛініяОбведення); ОбластьРядок2 = ТабличнийДокумент.Область(5
+ н,3,
5
+ н,
5); ОбластьРядок2.Об'єднати(); ОбластьРядок2.Текст = ЧислоПрописом(н +
1,"НП = Брехня",". 0"); ОбластьРядок2.ГоризонтальнеПоложення = ГоризонтальнеПоложення.Центр; ОбластьРядок2.Обвести(ЛініяОбведення,ЛініяОбведення,ЛініяОбведення,ЛініяОбведення);
КінецьЦикл;
На цьому ми закінчимо змінювати табличний документ. Повна версія коду у функції Повернення ТабличногоДокументу буде наступною:
&На Клієнті
Функція Повернення ТабличногоДокументу() ТабличнийДокумент =
Новий ТабличнийДокумент; ОбластьШапка = ТабличнийДокумент.Область("R2C1:R3C5"); ОбластьШапка.Об'єднати(); ОбластьШапка.Текст =
"Шапка прикладу табличного документа"; ОбластьШапка.Примітка.Текст =
"Це примітка"; ОбластьШапка.ГоризонтальнеПоложення = ГоризонтальнеПоложення.Центр; ОбластьШапка.ВертикальнеПоложення = ВертикальнеПоложення.Центр; ЛініяОбведення =
Новий Лінія(ТипЛініїСкриніТабличногоДокументу.Суцільна,1); ОбластьШапкаТаблиці1 = ТабличнийДокумент.Область("R4C1:R4C2"); ОбластьШапкаТаблиці1.Об'єднати(); ОбластьШапкаТаблиці1.Текст =
"Номер"; ОбластьШапкаТаблиці1.ГоризонтальнеПоложення = ГоризонтальнеПоложення.Центр; ОбластьШапкаТаблиці1.Обвести(ЛініяОбведення,ЛініяОбведення,ЛініяОбведення,ЛініяОбведення); ОбластьШапкаТаблиці1 = ТабличнийДокумент.Область("R4C3:R4C5"); ОбластьШапкаТаблиці1.Об'єднати(); ОбластьШапкаТаблиці1.Текст =
"Номер (рядок)"; ОбластьШапкаТаблиці1.ГоризонтальнеПоложення = ГоризонтальнеПоложення.Центр; ОбластьШапкаТаблиці1.Обвести(ЛініяОбведення,ЛініяОбведення,ЛініяОбведення,ЛініяОбведення);
Для н =
0
за
9
Цикл ОбластьРядок1 = ТабличнийДокумент.Область(5
+ н,1,5
+ н,2); ОбластьРядок1.Об'єднати(); ОбластьРядок1.Текст = Рядок(н +
1); ОбластьРядок1.ГоризонтальнеПоложення = ГоризонтальнеПоложення.Центр; ОбластьРядок1.Обвести(ЛініяОбведення,ЛініяОбведення,ЛініяОбведення,ЛініяОбведення); ОбластьРядок2 = ТабличнийДокумент.Область(5
+ н,3,
5
+ н,
5); ОбластьРядок2.Об'єднати(); ОбластьРядок2.Текст = ЧислоПрописом(н +
1,"НП = Брехня",". 0"); ОбластьРядок2.ГоризонтальнеПоложення = ГоризонтальнеПоложення.Центр; ОбластьРядок2.Обвести(ЛініяОбведення,ЛініяОбведення,ЛініяОбведення,ЛініяОбведення);
КінецьЦикл;
Повернення ТабличнийДокумент;
КінецьФункції
//ПоверненняТабличногоДокумента()
Перевіримо, що ми виведемо табличний документ.
Таким чином, безпосередньо звертаючись до областей (осередків) табличного документа, ми можемо змінювати цей табличний документ без використання макета.
Інші статті про табличні документи в 1С:
Докладніше і ґрунтовніше розробка в 1С дається в моїй книзі: «Програмувати в 1С за 11 кроків»
Вивчайте програмування в 1С на місці з моєї книги «Програмувати в 1С за 11 кроків»
- Книга написана зрозумілою та простою мовою – для новачка.
- Книга надсилається на електронну пошту у форматі PDF.
- Навчіться розуміти архітектуру 1С;
- Станете писати код мовою 1С;
- Опануйте основні прийоми програмування;
- Закріпіть отримані знання з допомогою задачника;
Про те, як розробляти під керованим додатком 1С, читайте у книзі Книга «Основи розробки в 1С: Таксі»
Відмінний посібник з розробки в керованому додатку 1С, як для розробників-початківців, так і для досвідчених програмістів.
- Дуже доступна та зрозуміла мова викладу
- Книга надсилається на електронну пошту у форматі PDF.
- Зрозумієте ідеологію керованого додатка 1С
- Дізнаєтеся, як розробляти керовану програму;
- Навчіться розробляти керовані форми 1С;
- Зможете працювати з основними та потрібними елементами керованих форм
- Програмування під керованим додатком стане зрозумілим
Промо-код на знижку в 15% 48PVXHeYu
Ці книги плюс книга з програмування оперативного обліку є в єдиному комплекті: комплект книг з розробки в 1С.
Тільки для читачів мого блогу
промо-код на знижку в 300 рублів на весь комплект: blog
Якщо Вам сподобався цей урок, був корисним чи допоміг вирішити якусь проблему, то Ви можете підтримати мій проект, перерахувавши будь-яку суму.
можна сплатити вручну:
Яндекс.Гроші — 410012882996301
Web Money - R955262494655
Вступайте до моїх груп: