Работа с хранилищем значения в табличной части 8.3 #734561


#0 by Adoff
Есть документ в табличной части которого хранятся сканы документов. Код открытия вложения: этот код работает без проблем много лет в базе 8.2, но после перехода на 8.3 (текущая 8.3.5.1460) выдает ошибку: Ошибка при вызове метода контекста (ПолучитьФайл) ПолучитьФайл(Адрес, ИмяФайлаВрем, Ложь); по причине: Встречал очень много похожих тем, но решения так и не увидел. Этот же код отрабатывает, если брать вложение не из ТЧ, а из реквизита документа. Может кто помочь?
#1 by Adoff
в режиме совместимости вплоть до 8.3.2 (включая) всё работает.
#2 by Записьдампа
Это - неверное предположение.
#3 by Adoff
С чего это вдруг? Это номер строки, можно заменить на НомерСтроки = 0; результат не изменится.
#4 by WebberNSK
он просто хочет сказать, что там хранится идентификатор, а не номер строки... имхо тут надо писать на партнерский форму
#5 by МимохожийОднако
Покажи функцию ПолучитьФайл в СП для  8.3.5.1460
#6 by МимохожийОднако
Параметры: Тип: Строка. Расположение данных во временном хранилище или в информационной базе. ... Навигационная ссылка немного другое
#7 by Adoff
и что же, по-вашему, такое навигационная ссылка? еще раз говорю, этот код работает на платформе 8.3.2 почему он перестал работать на более поздних версиях найти информацию не могу
#8 by WebberNSK
а как подобные задачи решаются в типовых? в той же
#9 by Smallrat
там поведедение похоже на то что для реквизита хранилища не вызывается метод Получить я тут это выяснял - помочь никто не смог остаётся только переписать типа так:
#10 by Smallrat
Элементы.ПечатныеФормы.ТекущаяСтрока -> Элементы.Вложения.ТекущаяСтрока
#11 by Smallrat
забыл еще:
#12 by Adoff
в типовых все вложения помещены в отдельный справочник (бывает регистр), а в ТЧ ссылка на него Да, через временное хранилище работает. Спасибо!!!
#13 by fisher
"в типовых все вложения помещены в отдельный справочник (бывает регистр), а в ТЧ ссылка на него" - и это неспроста так сделано. У тебя, каждый раз когда создается ДокументОбъект, вычитываются в память все его сканы.
#14 by Adoff
это хранилище, оно не "вычитывается", пока я не выполню Получить
#15 by fisher
Ты заблуждаешься.
#16 by Adoff
Это как-то аргументируется или просто топтание клавиатуры? Интересно зачем тогда метод Получить, если значение читается из базы в любом случае?
#17 by mehfk
А ты воспользуйся профайлером в SQL.
#18 by fisher
И в рекомендациях 1С прописано (то ли на ИТС, то ли в проф-разработке видел) и на практике проверяли. Пруфы искать лень. Если не веришь - сам найдешь. А Получить, выходит, только преобразование данных к исходному типу выполняет.
#19 by fisher
Таки нашел, не поленился. В проф-разработке: "Особенно аккуратно нужно относиться к возможности использования полей типа ХранилищеЗначения в составе объектов (например, справочников, документов), активно использующихся при реализации основной бизнес-логики. Ведь данные объектов считываются целиком при обращении к ним. Поэтому, например, вопрос хранения тех же фотографий лучше решать не в составе справочника Сотрудники, а в отдельном подчиненном справочнике или регистре сведений."
#20 by Adoff
Спасибо за инфу!
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С