Живе на форумі
Група: Команда
Повідомлень: 3414
З: Одеса
Подякували: 1256 раз
Рейтинг: 911.9
В 1С: Підприємство 8 існує можливість зберігання різних даних в полях типу ХраніліщеЗначенія. У цих полях можуть зберігатися значення типу ХраніліщеЗначенія. Сам тип ХраніліщеЗначенія призначений, перш за все, для зберігання значень різних типів в серіалізовані вигляді, тобто в тому вигляді, який дозволяє записувати дані і потім відновлювати їх. У документації по вбудованому мови в описі об'єктів можливість сериализации вказується позначкою "серіалізуются". Ці значення, а також значення примітивних типів, можуть поміщатися в сховище значення і таким чином можуть записуватися в поля бази даних з типом ХраніліщеЗначенія. Важливою особливістю сховища значень є можливість зберігання даних в стислому вигляді. Це дозволяє істотно скоротити об'єм інформації для великих об'єктів.
Таким чином, за допомогою полів типу ХраніліщеЗначенія існує можливість зберігання в базі даних істотно більш широкого переліку типів даних, в порівнянні з тим, який може бути в явному вигляді зазначений для полів. Однак слід враховувати, що такий спосіб зберігання і можливості маніпулювання такими даними істотно відрізняються від звичайного зберігання даних в полях бази даних. Для таких полів система не підтримує практично ніякої функціональності, крім власне записи і читання. Для таких полів не може використовуватися індексування, по ним не можна впорядковувати дані в запитах і вибірках, такі поля не можуть підсумовуватися і т.д. Можна вважати, що в цьому випадку механізм бази даних зберігає деяку інформацію, нічого не знаючи про її природі.
Відповідно поля типу ХраніліщеЗначенія слід використовувати тільки в тих випадках, коли це відповідає їх призначенню і технологічних особливостях.
Одним з основних застосувань полів типу ХраніліщеЗначенія є зберігання зображень і образів файлів. Для цього використовуються типу Картинка і ДвоічниеДанние. Це дозволяє зберігати в базі даних фотографії співробітників, документи створені в різних форматах і т.д. При реалізації зберігання такої інформації можна рекомендувати створювати структури даних, які забезпечать окреме зберігання цих полів від основної інформації. Наприклад, для зберігання фотографій співробітників можна реалізувати окремий довідник або регістр відомостей, а не поміщати поля типу ХраніліщеЗначенія в самі об'єкти, що зберігають список фізичних осіб. Слід враховувати, що об'єкти (наприклад, елементи довідника) зчитуються системою завжди цілком. Тому зберігання великих обсягів інформації безпосередньо в полях об'єктів може істотно уповільнити роботу системи.
У полях типу ХраніліщеЗначенія допускається, наприклад, зберігання таблиць значень і структур. При цьому в таблицях значень і структурах можуть зберігатися будь-які типи даних, в тому числі і посилальні типи. Зауважимо, що в ХраніліщеЗначенія колекція може бути поміщена, якщо в ній містяться тільки Серіалізуемое значення. Однак слід враховувати, що цей варіант зберігання даних істотно відрізняється, від явного зберігання значень в окремих полях і від зберігання інформації в табличних частинах або регістрах відомостей. Система не буде підтримувати для таких полів посилань цілісність, що не буде забезпечувати пошук даних у запитах і т.д. Таким чином, зберігання колекцій в таких полях можна застосовувати для реалізації істотних частин прикладного рішення відповідають за бізнес логіку. Таке зберігання може допускатися тільки для допоміжних даних, які не мають істотного значення для бізнес-логіки прикладного рішення, наприклад, для зберігання будь-яких налаштувань роботи користувачів.
Хоча в системі не існує явного обмеження на розмір даних, що зберігаються в полях типу ХраніліщеЗначенія, слід все-таки обачно ставитися до обсягів інформації, що зберігається. Слід враховувати, що приміщення великих обсягів в такі поля збільшує загальний обсяг інформаційної бази, і це буде негативно позначатися на роботі системи при виконанні різних адміністративних операцій, таких як створення резервної копії бази даних. Наприклад, при зберіганні образів файлів, можна рекомендувати зберігати в таких полях дані, дійсно необхідні в роботі, але не використовувати їх для зберігання великих обсягів файлів, що не використовуються в розв'язуваної прикладної задачі.