|
v8: ХранилищеЗначений в табличной части | ☑ | ||
---|---|---|---|---|
0
Молодой 1Снег
12.03.13
✎
10:37
|
Есть документ с табличной частью один из реквизитов которой ХранилищеЗначений. Формы обычные.
Записываю туда файлы вот таким образом: Процедура ДокументооборотТехЗаданиеНачалоВыбора(Элемент, СтандартнаяОбработка) ЗначениеВозврата = ВыбратьФайл(); //стандартный диалог выбора файла Если ЗначениеВозврата = Неопределено Тогда Возврат; КонецЕсли; ИмяФайла = ЗначениеВозврата.ПолноеИмяФайлаОбработки; ЭлементыФормы.Документооборот.ТекущиеДанные.ТехЗадание = Новый ХранилищеЗначения(Новый ДвоичныеДанные(ИмяФайла)); КонецПроцедуры Правильно ли я записываю данные? Если да, то как их оттуда потом прочитать (например, запустить файл в событии Открытие)? |
|||
1
butterbean
12.03.13
✎
10:38
|
ТехЗадание.Получить().Записать(ИмяФайла)
|
|||
2
Молодой 1Снег
12.03.13
✎
10:51
|
Делаю вот так:
Процедура ДокументооборотТехЗаданиеОткрытие(Элемент, СтандартнаяОбработка) ТехЗадание = ЭлементыФормы.Документооборот.ТекущиеДанные.ТехЗадание.ПолучитьОбъект(); ИмяФайла = КаталогВременныхФайлов() + "TempFile." + "txt"; ТехЗадание.Получить().Записать(ИмяФайла); ЗапуститьПриложение(ИмяФайла); КонецПроцедуры Ругается: "Метод объекта не обнаружен (ПолучитьОбъект)" Не пойму, в чём ошибка? |
|||
3
patapum
12.03.13
✎
10:52
|
(2) надо просто понять, какой тип у ЭлементыФормы.Документооборот.ТекущиеДанные.ТехЗадание
|
|||
4
Молодой 1Снег
12.03.13
✎
10:57
|
(3) Отладчик говорит, что там ХранилищеЗначения
|
|||
5
butterbean
12.03.13
✎
10:59
|
(4) код в (0) не записывает файл в твой реквизит ТехЗадание
|
|||
6
Молодой 1Снег
12.03.13
✎
11:00
|
Сделал так:
Процедура ДокументооборотТехЗаданиеОткрытие(Элемент, СтандартнаяОбработка) ТехЗадание = ЭлементыФормы.Документооборот.ТекущиеДанные.ТехЗадание; ИмяФайла = КаталогВременныхФайлов() + "TempFile." + "txt"; ТехЗадание.Получить().Записать(ИмяФайла); ЗапуститьПриложение(ИмяФайла); КонецПроцедуры Всё заработало. Даже файл открывается. (5) А что там не так? |
|||
7
Молодой 1Снег
12.03.13
✎
11:08
|
Появился ещё вопрос. В ЗранилищеЗначения хранится расширение файла? Мне нужно хранить в нём файлы разных типов, а затем запускать их соответствующими приложениями.
Как это сделать? |
|||
8
cw014
12.03.13
✎
11:13
|
(7) Для таких вещей уже нужно справочник делать. С типами файлов и т.д. В хранилище хранится только двоичные данные файла
|
|||
9
Молодой 1Снег
12.03.13
✎
11:19
|
(8) Я думал про это. Но не придумал как сделать, чтобы при заполнении реквизита ТехЗадание пользователю не справочник открывался, а сразу диалог выбора файла. Такое возможно?
|
|||
10
cw014
12.03.13
✎
11:27
|
(9) Если руки из правильного места растут - все возможно
|
|||
11
samozvanec
12.03.13
✎
11:31
|
(9) хранилище с файлом суй в структуру, вместе с расширением, ее опять в хранилище, его в реквизит
|
|||
12
samozvanec
12.03.13
✎
11:31
|
+(11) да и ваще не хранилище, а ДД в структуру суй.
|
|||
13
Молодой 1Снег
12.03.13
✎
11:37
|
(12) Если я структуру засуну в хранилище данных, а потом получу оттуда значение это будет опять структура?
|
|||
14
samozvanec
12.03.13
✎
11:43
|
(13) да
|
|||
15
Молодой 1Снег
12.03.13
✎
11:59
|
(14) Всё получилось! Спасибо!
Теперь последний вопрос. В табличной части реквизит ТехЗадание всегда отображается надписью ХранилищеЗначения. Мне нужно чтобы там отображалось название хранимого файла. Как это сделать с учетом того что название файла я сохраняю в той же структуре, что и сам файл? |
|||
16
cw014
12.03.13
✎
12:01
|
(15) Отлучи колонку от данных, и ПриВыводеСтроки тебе в помощь
|
|||
17
Молодой 1Снег
12.03.13
✎
12:03
|
(16) Пробую
|
|||
18
Молодой 1Снег
12.03.13
✎
13:35
|
Создал новую колонку не привязанную к данным. Повесил на неё все обработчики с колонки ТехЗадание. Всё работает, файл сорхраняется и открывается.
Но не пойму как теперь имя файла отображать в этой колонке. Подскажите, что написать в обработчике ПриВыводеСтроки? |
|||
19
Молодой 1Снег
12.03.13
✎
14:00
|
Сделал вот так:
Процедура ДокументооборотПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки) техзадание = ДанныеСтроки.техзадание.Получить(); если не техзадание = неопределено Тогда ОформлениеСтроки.Ячейки.Колонка1.ОтображатьТекст = Истина; ОформлениеСтроки.Ячейки.Колонка1.Текст=техзадание.имя; КонецЕсли; КонецПроцедуры Вроде работает, но не совсем хорошо. Наименование файла отображается в ячейке только после того как закончишь её редактирование. Когда ячейка редактируется, т.е. в ней моргает курсор, то она пуста. Даже если в реквизите Техзадание что-то есть. Может как то по-другому надо было сделать? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |