У сховищі значення можна зберегти майже будь-яку інформацію, наприклад,
. картинки (фотки):
// в цьому місці він все виводить. ЕлементиФорми.ПолеКартінкі1.Картінка = Храніліще.Получіть (); ТекІзображеніе.Запісать ();
. табличний документ:
. довільні файли (двійкові дані):
Вісімка підтримує стиснення даних, які розміщені в сховище:
. зовнішні обробки і звіти:
Робота зі сховищем
Якщо це були ДвоічниеДанние, то їх можна відновити з сховища значення методом Отримати і записати в файл методом Записати ().
КонецЕсли; ДвоічниеДанние.Запісать (имяфайла);
Якщо це був, наприклад, Word-документ (doc-файл, або інший файл зареєстрованого типу), то його можна відкрити так:
Щоб очистити поле типу Сховище значення, потрібно присвоїти йому Не визначено:
Робота з файлами і картинками у вбудованій мові 1С: Підприємство 8
призначення
У керованому додатку реалізований новий механізм роботи з файлами. Він забезпечує обмін файлами між інформаційною базою і клієнтським додатком. Особливістю даного механізму є те, що він орієнтований на використання в тонкому клієнті і Веб-клієнті і розроблений з урахуванням обмежень на роботу з файлами, що накладаються веб-браузерами.
Механізм являє собою набір методів, за допомогою яких можна помістити дані, що зберігаються локально у користувача, у тимчасове сховище інформаційної бази, перенести цю інформацію з тимчасового сховища в базу даних і отримати її назад на комп'ютер користувача. Найбільш поширені прикладні завдання, які вирішуються цим механізмом, - це зберігання супровідної інформації, наприклад, зображень товарів, пов'язаних з договорами документів і т. П.
Область дії методів
тимчасове сховище
Тимчасове сховище - це спеціалізована область інформаційної бази, в яку можуть бути поміщені двійкові дані. Основне призначення - це тимчасове зберігання інформації при клієнт-серверному взаємодії до її перенесення до бази даних.
Необхідність у тимчасовому сховищі виникає через те, то в моделі роботи веб-браузера потрібно передати вибраний користувачем файл безпосередньо на сервер без можливості його зберігання на клієнті. При передачі файлу він поміщається в тимчасове сховище і вже потім може бути використаний під час запису об'єкта в базу даних.
Найбільш типова розв'язувана тимчасовим сховищем прикладна задача - забезпечення доступу до файлів або картинок до того, як об'єкт буде записаний в інформаційну базу, наприклад, у формі елемента.
інформаційна база
Механізм дозволяє отримати доступ до двійковим даних, що зберігаються в реквізитах типу ХраніліщеЗначеній.
Методи роботи з файлами мають обмеження при роботі з реквізитами інформаційної бази. Для них, на відміну від тимчасового сховища, є тільки читання інформації, але не її запис або видалення.
Опис методів роботи з файлами
Збереження даних в тимчасове сховище
Найбільш типовий сценарій використання даного механізму передбачає початкове розміщення даних користувача у тимчасове сховище. Для цього призначені два методи: ПоместітьФайл () і ПоместітьФайлВоВременноеХраніліще ().
Як результат метод повертає Брехня, якщо користувач в інтерактивному режимі відмовився від здійснення операції в діалозі вибору файлу. Метод доступний тільки на клієнті.
Отримання файлу з тимчасового сховища
Видалення файлу з тимчасового сховища
Після того, як дані поміщені в реквізит в інформаційній базі, може знадобитися отримати доступ до них за допомогою файлових методів.
Отримання файлу з інформаційної бази
За замовчуванням метод виповнюється в інтерактивному режимі, тобто останній параметр дорівнює Істина. Це означає, що видається діалогове вікно, в якому можна вказати дію з отриманим файлом: запустити його або зберегти за вказаною користувачем розташуванню. Якщо активний інтерактивний режим, а параметр Цільовий шлях до файлу на диску не вказано, то операція відкриття файлу не доступна. Повертає булевское значення. Брехня означає, що користувач вибрав скасування операції в діалоговому вікні збереження файлів в інтерактивному режимі.
Приклад використання файлових методів
// Зчитування файлу з реквізиту та збереження його // на локальному диску в інтерактивному режимі НаКліенте Процедура ПрочітатьФайлІСохранітьНаДіск ()
Обмеження при роботі з Веб-клієнтом
Робота описуваного механізму при використанні Веб-клієнта має деякі обмеження. Ці обмеження пов'язані з особливостями моделі безпеки браузера. Так, наприклад, клієнт самостійно не може зберегти файл в локальну файлову систему, тобто доступний тільки інтерактивний варіант клієнтських методів ПоместітьФайл () і ПолучітьФайл (). При спробі використовувати не інтерактивний режим генерується виняток. Діалогові вікна, які відображаються в інтерактивному режимі, специфічні для конкретного типу браузера.
Особливості при роботі з ХраніліщемЗначеній на Клієнта
Коли у Документа в табличній частині є реквізит типу ХраніліщеЗначеній, то гальмує відкриття форми документа, якщо в цьому реквізиті записані дані великого розміру.
- У властивостях табличного реквізиту форми є прапор "Використовувати завжди". Якщо він встановлений, то вміст поля завжди передається між сервером і клієнтом - наприклад, при відкритті форми. Цей прапор треба відключити, але при цьому потрібно врахувати це в коді, так як за замовчуванням значення цього поля на клієнті не буде. Приклад можна подивитися в 1С: Архів.
Ще краще використовувати тимчасове сховище для передачі файлів між клієнтом і сервером.