|
Работа с хранилищем значения в табличной части 8.3 | ☑ | ||
---|---|---|---|---|
0
Adoff
19.02.15
✎
03:47
|
Есть документ в табличной части которого хранятся сканы документов. Код открытия вложения:
&НаКлиенте Процедура ВложенияСохранить(Команда) НомерСтроки = Элементы.Вложения.ТекущаяСтрока; Адрес = ПолучитьНавигационнуюСсылку(Объект.Ссылка, "Вложения.Файл", НомерСтроки); ПолучитьФайл(Адрес, "c:\Tmp\1.jpg", Истина); КонецПроцедуры этот код работает без проблем много лет в базе 8.2, но после перехода на 8.3 (текущая 8.3.5.1460) выдает ошибку: Ошибка при вызове метода контекста (ПолучитьФайл) ПолучитьФайл(Адрес, ИмяФайлаВрем, Ложь); по причине: Неправильный путь к файлу 'e1c://filev/C/1C_Bases/v83/Test/e1cib/data/Документ.Заявка.Вложения.Файл?ref=b485002590e5a7ad11e4b311d46304e2&index=0' Встречал очень много похожих тем, но решения так и не увидел. Этот же код отрабатывает, если брать вложение не из ТЧ, а из реквизита документа. Может кто помочь? |
|||
1
Adoff
19.02.15
✎
05:27
|
в режиме совместимости вплоть до 8.3.2 (включая) всё работает.
|
|||
2
Записьдампа
19.02.15
✎
08:06
|
НомерСтроки = Элементы.Вложения.ТекущаяСтрока;
Это - неверное предположение. |
|||
3
Adoff
19.02.15
✎
08:31
|
(2) С чего это вдруг? Это номер строки, можно заменить на НомерСтроки = 0; результат не изменится.
|
|||
4
WebberNSK
19.02.15
✎
08:40
|
(3) он просто хочет сказать, что там хранится идентификатор, а не номер строки...
имхо тут надо писать на партнерский форму |
|||
5
Мимохожий Однако
19.02.15
✎
08:43
|
Покажи функцию ПолучитьФайл() в СП для 8.3.5.1460
|
|||
6
Мимохожий Однако
19.02.15
✎
08:44
|
Параметры:
<Адрес> (обязательный) Тип: Строка. Расположение данных во временном хранилище или в информационной базе. ... Навигационная ссылка немного другое |
|||
7
Adoff
19.02.15
✎
10:53
|
(6) и что же, по-вашему, такое навигационная ссылка?
еще раз говорю, этот код работает на платформе 8.3.2 почему он перестал работать на более поздних версиях найти информацию не могу |
|||
8
WebberNSK
19.02.15
✎
11:00
|
(7) а как подобные задачи решаются в типовых? в той же
|
|||
9
Smallrat
19.02.15
✎
11:02
|
(0) там поведедение похоже на то что для реквизита хранилища не вызывается метод Получить()
я тут это выяснял - помочь никто не смог http://infostart.ru/public/195003/#comm остаётся только переписать типа так:
|
|||
10
Smallrat
19.02.15
✎
11:02
|
Элементы.ПечатныеФормы.ТекущаяСтрока -> Элементы.Вложения.ТекущаяСтрока
|
|||
11
Smallrat
19.02.15
✎
11:05
|
забыл еще:
|
|||
12
Adoff
20.02.15
✎
02:08
|
(8) в типовых все вложения помещены в отдельный справочник (бывает регистр), а в ТЧ ссылка на него
(9) Да, через временное хранилище работает. Спасибо!!! |
|||
13
fisher
20.02.15
✎
11:37
|
(12) "в типовых все вложения помещены в отдельный справочник (бывает регистр), а в ТЧ ссылка на него" - и это неспроста так сделано. У тебя, каждый раз когда создается ДокументОбъект, вычитываются в память все его сканы.
|
|||
14
Adoff
24.02.15
✎
03:42
|
(13) это хранилище, оно не "вычитывается", пока я не выполню Получить()
|
|||
15
fisher
26.02.15
✎
10:52
|
(14) Ты заблуждаешься.
|
|||
16
Adoff
27.02.15
✎
05:14
|
(15) Это как-то аргументируется или просто топтание клавиатуры?
Интересно зачем тогда метод Получить(), если значение читается из базы в любом случае? |
|||
17
mehfk
27.02.15
✎
06:07
|
(16) А ты воспользуйся профайлером в SQL.
|
|||
18
fisher
27.02.15
✎
13:37
|
(16) И в рекомендациях 1С прописано (то ли на ИТС, то ли в проф-разработке видел) и на практике проверяли. Пруфы искать лень. Если не веришь - сам найдешь. А Получить(), выходит, только преобразование данных к исходному типу выполняет.
|
|||
19
fisher
27.02.15
✎
13:51
|
Таки нашел, не поленился. В проф-разработке:
"Особенно аккуратно нужно относиться к возможности использования полей типа ХранилищеЗначения в составе объектов (например, справочников, документов), активно использующихся при реализации основной бизнес-логики. Ведь данные объектов считываются целиком при обращении к ним. Поэтому, например, вопрос хранения тех же фотографий лучше решать не в составе справочника Сотрудники, а в отдельном подчиненном справочнике или регистре сведений." |
|||
20
Adoff
02.03.15
✎
04:53
|
(19) Спасибо за инфу!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |