Робота зі сховищем значень в 1cv8

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

. картинки (фотки):

// в цьому місці він все виводить. ЕлементиФорми.ПолеКартінкі1.Картінка = Храніліще.Получіть (); ТекІзображеніе.Запісать ();

. табличний документ:

Процедура СохранітьВХраніліщеНажатіе (Елемент)

. довільні файли (двійкові дані):

ХЗ = Новий ХраніліщеЗначенія (Новий ДвоічниеДанние (файл));

Вісімка підтримує стиснення даних, які розміщені в сховище:

ХЗ = Новий ХраніліщеЗначенія (Новий ДвоічниеДанние (файл), Новий СжатіеДанних (9));

. зовнішні обробки і звіти:

Процедура ЗагрузітьОбработкуВХраніліще (РеквізітТіпХраніліще)

Робота зі сховищем

Якщо це були ДвоічниеДанние, то їх можна відновити з сховища значення методом Отримати і записати в файл методом Записати ().

Якщо ТіпЗнч (Сховище) <> Тип ( "ДвоічниеДанние") Тоді

КонецЕсли; ДвоічниеДанние.Запісать (имяфайла);

Якщо це був, наприклад, Word-документ (doc-файл, або інший файл зареєстрованого типу), то його можна відкрити так:

ЗапустітьПріложеніе (имяфайла);

Щоб очистити поле типу Сховище значення, потрібно присвоїти йому Не визначено:

РеквізітХраніліще = Не визначено;

Робота з файлами і картинками у вбудованій мові 1С: Підприємство 8

призначення

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

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

Область дії методів

тимчасове сховище

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

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

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

інформаційна база

Механізм дозволяє отримати доступ до двійковим даних, що зберігаються в реквізитах типу ХраніліщеЗначеній.

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

Опис методів роботи з файлами

Збереження даних в тимчасове сховище

Найбільш типовий сценарій використання даного механізму передбачає початкове розміщення даних користувача у тимчасове сховище. Для цього призначені два методи: ПоместітьФайл () і ПоместітьФайлВоВременноеХраніліще ().

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

Отримання файлу з тимчасового сховища

Видалення файлу з тимчасового сховища

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

Отримання файлу з інформаційної бази

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

Приклад використання файлових методів

// Отримання в інтерактивному режимі файлу з диска // і приміщення його в тимчасове сховище НаКліенте Процедура ВибратьФайлСДіскаІЗапісать ()

// Зчитування файлу з реквізиту та збереження його // на локальному диску в інтерактивному режимі НаКліенте Процедура ПрочітатьФайлІСохранітьНаДіск ()

Обмеження при роботі з Веб-клієнтом

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

Особливості при роботі з ХраніліщемЗначеній на Клієнта

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

  • У властивостях табличного реквізиту форми є прапор "Використовувати завжди". Якщо він встановлений, то вміст поля завжди передається між сервером і клієнтом - наприклад, при відкритті форми. Цей прапор треба відключити, але при цьому потрібно врахувати це в коді, так як за замовчуванням значення цього поля на клієнті не буде. Приклад можна подивитися в 1С: Архів.


Ще краще використовувати тимчасове сховище для передачі файлів між клієнтом і сервером.