|
Как прикрепить файл к документу в упр.формах. | ☑ | ||
---|---|---|---|---|
0
oleg_prg
11.02.14
✎
13:59
|
Уважаемые форумчане, добрый день.
Задача - в документе создать функционал позволяющий сохранять в документе файлы произвольного формата с диск ПК. Например word, excel, чертежи, аудиофайлы и т.д. Для этих целей в документе создал ТЧ, с реквизитом Файл тип ХранилищеЗначений Вот мой код //********************************************************** &НаСервере Процедура ПолучитьДанныеХранилищаЗначений(Парам, НомерСтроки) СтрокаПрикрепленныеФайлы = Объект.ПрикрепленныеФайлы[НомерСтроки-1]; СтрокаПрикрепленныеФайлы.Файл = Новый ХранилищеЗначения( Парам, новый СжатиеДанных(9)); КонецПроцедуры //********************************************************** &НаКлиенте Процедура ПрикрепленныеФайлыПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование) Если НЕ НоваяСтрока Тогда Возврат; КонецЕсли; ДиалогФыбораФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие); ДиалогФыбораФайла.Фильтр = "Все файлы (*.*)|*.*"; ДиалогФыбораФайла.Заголовок = "Выберите файл"; ДиалогФыбораФайла.ПредварительныйПросмотр = Истина; ДиалогФыбораФайла.ИндексФильтра = 0; Если ДиалогФыбораФайла.Выбрать() Тогда Элемент.ТекущиеДанные.ИмяФайла = ДиалогФыбораФайла.ПолноеИмяФайла; ПолучитьДанныеХранилищаЗначений(новый ДвоичныеДанные(ДиалогФыбораФайла.ПолноеИмяФайла), Элемент.ТекущиеДанные.НомерСтроки); КонецЕсли; КонецПроцедуры Проблема в ошибке {Документ.ОбращениеКлиента.Форма.ФормаДокумента.Форма(597)}: Поле объекта не обнаружено (Файл) СтрокаПрикрепленныеФайлы.Файл = Новый ХранилищеЗначения( Парам, новый СжатиеДанных(9)); Реквизит ТЧ есть!, но как до него достучаться? Заранее спасибо! |
|||
1
zak555
11.02.14
✎
14:00
|
посмотри, как сделано в типовых
|
|||
2
Wobland
11.02.14
✎
14:00
|
не надо порнофильмы в объектах хранить
|
|||
3
ДенисЧ
11.02.14
✎
14:03
|
Отладчик что говорит?
|
|||
4
oleg_prg
11.02.14
✎
14:03
|
http://yadi.sk/d/2o-krpPlHgvo8 вот ошибка, (2) у каждого свои данные в 1С :)
|
|||
5
AaNnDdRrEeYy
11.02.14
✎
14:05
|
Надо через временно хранилище данные на сервер гнать.
кури ПОместитьВоВременноеХранилище() |
|||
6
oleg_prg
11.02.14
✎
14:07
|
(5) а смысл, если я на сервере не вижу реквизита СтрокаПрикрепленныеФайлы.Файл
Гнать данные надо если ошибка при переброске данных из функции в функцию/процедуру, ну вы понимаете, а здесь другое! |
|||
7
Wobland
11.02.14
✎
14:08
|
&НаКлиенте
Процедура Загрузить(Команда) ВыбранноеИмя=""; Диалог=Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие); Диалог.Фильтр=ПолучитьФильтрFB2(); Если Диалог.Выбрать() Тогда ПоместитьФайл(Адрес, Диалог.ПолноеИмяФайла, ВыбранноеИмя, Ложь, УникальныйИдентификатор); Модифицированность=Истина; КонецЕсли; ПрочитатьСвойстваНаСервере(); КонецПроцедуры &НаСервере Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) Если ЭтоАдресВременногоХранилища(Адрес) Тогда ХЗ=Новый ХранилищеЗначения(ПолучитьИзВременногоХранилища(Адрес)); Запись=РегистрыСведений.Файлы.СоздатьМенеджерЗаписи(); Запись.Книга=Объект.Ссылка; Запись.Файл=ХЗ; Запись.Записать(); КонецЕсли; КонецПроцедуры |
|||
8
AaNnDdRrEeYy
11.02.14
✎
14:13
|
(6)зато там есть "ИсходныйНомерСтроки"! которого я не вижу в дереве метаданных.
|
|||
9
AaNnDdRrEeYy
11.02.14
✎
14:15
|
и вообще не храни в документе файлы.
когда будешь писать ПолучитьОбъект() для ссылки такого документа в оперативку весь этот файл считаватся будет. |
|||
10
GROOVY
11.02.14
✎
14:17
|
||||
11
oleg_prg
11.02.14
✎
14:28
|
(7) Спасибо! ;)
(9) Не хранить файлы в доке - согласен! Точно! (10) Спасибо! Всем, всем, всем спасибо ОГРОМНОЕ, выручили, буду разбираться :) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |