Имя: Пароль:
1C
1С v8
Возможно ли использовать хранилище двоичных данных для реквизитов табличных частей?
0 ADV
 
06.02.26
19:30
Платформа 8.3.27.1936, режим совместимости не используется.
Для реквизитов справочников типа Хранилище значений в "Использовании" есть переключатель "Использование хранения в хранилище двоичных данных".
Для реквизитов табличной части справочников типа Хранилище значений в "Использовании" такого переключателя не вижу.
Реквизиты табличных частей в хранилище двоичных данных хранить нельзя или в конфигурации можно включить такую возможность?
1 Кирпич
 
07.02.26
22:28
Ну сделай строковой реквизит и пихай в него двоичные данные
2 craxx
 
08.02.26
21:12
(0) За хранилище в реквизитах ТЧ нужно жарить на медленном огне. Чтоб было мучительно больно за содеянное.
3 ADV
 
09.02.26
14:41
(1) Куда именно "пихать", если для реквизитов ТЧ переключатель "Использование хранения в хранилище двоичных данных" отсутствует?
4 ADV
 
09.02.26
14:43
(2) я уже сделал через регистр сведений, но буду благодарен за ссылку где о причинах такой жестокости можно почитать. Не спора ради, исключительно для самообразования))
5 lEvGl
 
гуру
10.02.26
00:36
Должен быть ананонс в зазеркалье в духе «после добавления хдд в тч встал вопрос о максимальном количестве строк в тч, а также возможности удалять строки из тч. Мы планируем реализовать это в 8.3.50.1. Следите за событиями в утренних новостных сервисах 1с»
6 ADV
 
10.02.26
09:48
(5) Дал команду своему ИИ-ассистенту следить за ананонсами зазеркалья по теме и если таковые появятся, то докладывать немедленно))
7 Мультук
 
гуру
10.02.26
10:09
(2)

Я спросил у google - ИИ, читает ли метод ПолучитьОбъект() содержимое BLOB ?

Ответ:

Нет, метод ПолучитьОбъект() не считывает содержимое BLOB-полей (Хранилищ значения) сразу.
В 1С реализована «ленивая загрузка» (lazy loading) для тяжелых данных. Вот как это работает на техническом уровне:
Как 1С экономит память
Когда вы вызываете Объект = Ссылка.ПолучитьОбъект(), происходит следующее:

    Загрузка метаданных и простых типов: 1С считывает из СУБД все обычные реквизиты (строки, числа, даты, ссылки).
    Пропуск BLOB: Поля с типом ХранилищеЗначения в этот момент не загружаются в оперативную память. Вместо самих данных в объекте создается только "указатель" или пустой контейнер.
    Чтение по требованию: Обращение к данным произойдет только в тот момент, когда вы явно вызовете метод .Получить() у этого реквизита.


Что насчет табличных частей?

Если BLOB-поле находится в табличной части, правило остается тем же:
при чтении объекта загружается структура строк ТЧ,
но содержимое ХранилищаЗначения в каждой строке будет прочитано из базы только при вызове метода .Получить().

P.S.

Есть правда два нюанса:
1) Это всё же ответ ИИ
2) Я не знаю работает ли это, при чтении объекта в форме, при отображении табличной части на клиенте.

У кого-то есть линк на ИТС, где разжеван ответ?

P.P.S.
На вопрос ИИ "а пруфы где" ? Был даны ответы в стиле
-- Читай ИТС. ИТС рулез.
-- Запускай SQL Server Profiler и тестируй сам
-- Человек, не делай мозг машине, думай головой сам
Основная теорема систематики: Новые системы плодят новые проблемы.