Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ABOYO_praktikum.docx
Скачиваний:
0
Добавлен:
04.01.2020
Размер:
2.19 Mб
Скачать

1.1.2. Зумовлені типи даних

Платформа 1С:Підприємства 8.0 дозволяє розробникові використовувати різні типів даних. Є велика кількість типів даних, які визначені на рівні самої платформи. Наприклад, це примітивні (базові) типи даних, такі як рядок, число, дата тощо (рисунок 4.2).

Рисунок 4.2 – Опис примітивних типів даних в Синтаксис-помічнику

Опис примітивних типів даних:

  1. NULL - відсутнє значення. Використовується, наприклад, в запитах.

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

  3. Булевий - містить два значення: True або False. Використовується, наприклад, в логічних виразах - логічне вираження має тип "Булевий".

  4. Дата - містить дату і час. За умовчанням має значення - 01.01.01 00:00:00 дата початку нашої ери. Час вимірюється від початку дня. Запис виразу, що має літерал типу "дата", здійснюється таким чином - '00010101000000'. Спочатку записується рік, потім місяць, число і після цього час. Можливий наступний запис: '20041031'. Час за умовчанням - початок дня.

  5. Рядок - буває змінною, фіксованої і необмеженої довжини. У загальному випадку рекомендується використовувати рядки змінної довжини.

  6. Число - збільшена розрядність числа до 38 розрядів.

  7. Тип - служить для визначення типів значень. Використовується, наприклад, для порівняння типів даних. Не має літералів і повертається функціями Тип(<Ім'я типу>) або Тип значення(<Значення>).

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

Рисунок 4.3 – Типи даних "Універсальні колекції"

Типи даних "Універсальні колекції" (рисунок 4.3) - список (набір) об'єктів даних будь-яких типів, до значень якого можна звернутися перебором або по вказаному індексу (ключу). Нумерація елементів колекцій починається з 0. Всі перераховані типи даних створюються тільки програмно.

  1. Масив. Є пронумерованою колекцією значень довільного типу. До елементу масиву можна звертатися по його індексу. Елементами масиву можуть виступати, зокрема, інші масиви. Це дозволяє створювати багатовимірні масиви.

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

  3. Відповідність. Також, як і Структура, є колекцією пар Ключ - Значення. Проте, на відміну від Структури, ключ може бути практично будь-якого типу.

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

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

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

  7. COMSafeArray. Є об'єктною оболонкою над багатовимірним масивом SAFEARRAY з COM. Дозволяє створювати і використовувати SAFEARRAY для обміну даними між COM-об’єктами.

  8. Фіксований масив. Незмінний масив. Масив заповнюється системою при ініціалізації об'єктів даного типу або розробником, за допомогою конструктора.

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

Рисунок 4.4 – Опис загальних типів даних в Синтаксис-помічнику

Зупинимося докладніше на типові даних "Сховище значень". Сховища призначені для зберігання значень, тип яких не може бути вибраний як тип поля, наприклад: картинки, двійкові дані.

До значення, що зберігається в сховищі, не можна звертатися безпосередньо. Перед використанням значення його необхідно «витягувати». Не рекомендується зберігати посилання на об'єкти, оскільки в системі не підтримується контроль цілісності посилань по об'єктах, збережених в полях типу "Сховище значення".

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

Розглянемо приклад використання сховища значення на прикладі довідника "Картинки":

Процедура Відобразити картинку()

Значення картинки = Картинка. Отримати();

Якщо Значення картинки <> Невизначене Тоді

Елементи форми. Поле Картинки. Картинка = Значення картинки;

В іншому разі

Елементи форми. Поле Картинки. Картинка = Нова Картинка(Невизначено);

Якщо кінець;

Кінець процедури

Процедура Вибрати із файлу натискання (Елемент)

// Вибір файлу з переглядом

Діалог вибору файлу = Новий

Діалог вибору файлу (Режим діалогу вибору файлу. Відкриття);

Діалог вибору файлу. Каталог = "";

Діалог вибору файлу. Попередній Перегляд = Істина;

Діалог вибору файлу. Індекс Фільтру = 0;

Якщо Діалог вибору файлу. Вибрати() Тоді

Файл = Новий Файл(Діалог вибору файлу. Повне Ім’я Файлу);

Картинка = Новий Сховище значення (Нова Картинка (Діалог вибору файлу. Повне Ім’я Файлу));

Відобразити картинку();

Якщо Кінець;

Кінець процедури

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]