ХранилищеЗначения (ValueStorage)
Методы:
Получить (Get)
Конструкторы:
На основании значения
Описание:
Предназначен для хранения значения в специальном формате. Он может быть записан в поля базы данных, имеющие соответствующий тип. Это позволяет сохранять в базе данных значения, тип которых не может быть выбран в качестве типа поля, например, Картинка.
Большинство объектов, которые имеют неизменяемое значение, а также универсальные коллекции, могут быть помещены в ХранилищеЗначения. К значению, хранящемуся в объекте, нельзя обращаться, его можно только извлечь из хранилища.
Описания типов объектов, которые могут быть помещены в ХранилищеЗначения, включают текст "Сериализуется".
Замечание! Не рекомендуется хранить в реквизитах типа ХранилищеЗначения ссылки на другие объекты базы данных.
Важно! В системе не поддерживается ссылочная целостность по объектам, сохраненным в базе данных в полях типа ХранилищеЗначения. Это означает, что при попытке удаления, например, элементов справочников система не контролирует ссылки на эти элементы, сохраненные в ХранилищеЗначения.
Как трактовать эту запись выделенную жирным?
Методы:
Получить (Get)
Конструкторы:
На основании значения
Описание:
Предназначен для хранения значения в специальном формате. Он может быть записан в поля базы данных, имеющие соответствующий тип. Это позволяет сохранять в базе данных значения, тип которых не может быть выбран в качестве типа поля, например, Картинка.
Большинство объектов, которые имеют неизменяемое значение, а также универсальные коллекции, могут быть помещены в ХранилищеЗначения. К значению, хранящемуся в объекте, нельзя обращаться, его можно только извлечь из хранилища.
Описания типов объектов, которые могут быть помещены в ХранилищеЗначения, включают текст "Сериализуется".
Замечание! Не рекомендуется хранить в реквизитах типа ХранилищеЗначения ссылки на другие объекты базы данных.
Важно! В системе не поддерживается ссылочная целостность по объектам, сохраненным в базе данных в полях типа ХранилищеЗначения. Это означает, что при попытке удаления, например, элементов справочников система не контролирует ссылки на эти элементы, сохраненные в ХранилищеЗначения.
Как трактовать эту запись выделенную жирным?
По теме из базы знаний
- Сохрание таблицы (дерева) значений в ХранилищеЗначения/восстановление из ХранилищеЗначения c возможностью произвольной обработки данных
- 1с v8.2.13 ХранилищеЗначений в Табличной части объекта
- Групповая обработка справочников и документов (Управляемая форма. Отлажена работа, если реквизиты типа ХранилищеЗначений + Выбор групп в Новом значении)
- Альтернативное получение значения из хранилища значения. Свой ХранилищеЗначения.Получить();
- Уменьшаем трафик: читаем HTTP ответ, сжатый GZip, используя ХранилищеЗначения 1С (без ЧтениеZipФайла)
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Все просто. Поле Хранилища значения - это BLOB, и в отличии от ссылки на ТИП и ссылки на ВИД ТИПА, там просто бинарные данные.
Если ты превратишь например ссылку на объект в строку, например функцией ЗначениеВСтрокуВнутр(), никто не мешает в поле Хранилища значения, такую ссылку хранить, но движок 1С не сможет ни как идентифицировать, что же ты там хранишь, картинку, текст или преобразованную в текстовую форму ссылку. И когда будет производится поиск всех ссылок на объект функцией НайтиПоСсылкам(), то реквизиты где тип Хранилище Значения - вообще проверяться не будут.
Если ты превратишь например ссылку на объект в строку, например функцией ЗначениеВСтрокуВнутр(), никто не мешает в поле Хранилища значения, такую ссылку хранить, но движок 1С не сможет ни как идентифицировать, что же ты там хранишь, картинку, текст или преобразованную в текстовую форму ссылку. И когда будет производится поиск всех ссылок на объект функцией НайтиПоСсылкам(), то реквизиты где тип Хранилище Значения - вообще проверяться не будут.
(7) Xershi, поле реквизита с хранилищем значения в СУБД имеет тип:
Ну, например
Здесь "44a01d39-c2b6-4751-85e6-06fdc2f23043" - это идентификатор типа;
b682485b39c6b2ee11e1fd9682ae5cd6 - внутреннее значение идентификатора ссылки, то же самое что СсылкаНаОбъект.УникальныйИдентификатор()
image
Этот тип представляет двоичные данные переменной длины, включающие от 0 до 2^31 – 1 (2 147 483 647) байт.
Этот тип представляет двоичные данные переменной длины, включающие от 0 до 2^31 – 1 (2 147 483 647) байт.
идентификатор типа + идентификатор ссылки
Ну, например
СсылкаНаОбъект = Справочник.Номенклатура.НайтиПоКоду("00000029004");
ЗначениеВСтрокуВнутр(СсылкаНаОбъект) = {"#",44a01d39-c2b6-4751-85e6-06fdc2f23043,93:b682485b39c6b2ee11e1fd9682ae5cd6}
ЗначениеВСтрокуВнутр(СсылкаНаОбъект) = {"#",44a01d39-c2b6-4751-85e6-06fdc2f23043,93:b682485b39c6b2ee11e1fd9682ae5cd6}
Здесь "44a01d39-c2b6-4751-85e6-06fdc2f23043" - это идентификатор типа;
b682485b39c6b2ee11e1fd9682ae5cd6 - внутреннее значение идентификатора ссылки, то же самое что СсылкаНаОбъект.УникальныйИдентификатор()
(8) Allexe8.1, я так понял ты хочешь сказать, что система 1С не может сама подобрать метод распознавания данных. И про это и говорится в справке.
Так при удалении элемента справочника Хранилище Дополнительной Информации двоичные данные, которые лежат в одном из реквизитов тоже удалятся корректно?
Так при удалении элемента справочника Хранилище Дополнительной Информации двоичные данные, которые лежат в одном из реквизитов тоже удалятся корректно?
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот