|
УФ: Засунуть / вынуть файл .xml в реквизит типа ХранилищеЗначения справочника | ☑ | ||
---|---|---|---|---|
0
bvb
17.12.19
✎
13:23
|
Чего то нет могу разобраться как правильно сделать
реквизит типа ХранилищеЗначения недоступен в данных формы и как в него сувать Новый ДвоичныеДанные(ПутьКФайлуXML) если это вообще новый элемент справочника ? |
|||
1
palsergeich
17.12.19
✎
13:25
|
(0) РеквизитФормыВЗначение
и ЗначениеВРеквизитФормы |
|||
2
palsergeich
17.12.19
✎
13:27
|
Как то так
Спробъект = РеквизитФормыВЗначение("объект"); Спробъект.имяРеквизитаХранилищеЗначений = ХранилищеЗначений; ЗначениеВРеквизитФормы(Спробъект, "объект"); |
|||
3
dka80
17.12.19
✎
13:30
|
МояКартинка = Новый Картинка("C:\Мои документы\Картинка1.bmp");
ХранилищеКартинки = Новый ХранилищеЗначения(МояКартинка); НовНоменклатура = Справочники.Номенклатура.СоздатьЭлемент(); НовНоменклатура.Наименование = "Диван ""Маргарита"""; НовНоменклатура.Изображение = ХранилищеКартинки; НовНоменклатура.Записать(); из СП |
|||
4
RomaH
naïve
17.12.19
✎
13:34
|
... ща начоветуют
&НаСервере Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) ТекущийОбъект.ИсторияБолезни = Новый ХранилищеЗначения(ИсторияБолезни); КонецПроцедуры |
|||
5
palsergeich
17.12.19
✎
13:39
|
(4) а кто сказал что надо перед записью?
|
|||
6
RomaH
naïve
17.12.19
✎
13:43
|
(5)а когда?
|
|||
7
bvb
17.12.19
✎
13:49
|
(3) Я в форме элемента.
Читаю файл в новом или существующем элементе . Визуализирую его. Затем нужно сохранить в реквизит существующего элемента справочника (4) Это для нового. А для существующего ? |
|||
8
RomaH
naïve
17.12.19
✎
13:50
|
(6) так пофиг
|
|||
9
RomaH
naïve
17.12.19
✎
13:50
|
(7) - так пофиг - если в форме элемента в который записываешь
|
|||
10
bvb
17.12.19
✎
13:51
|
(8) В смысле всегда перед записью ?
А читать его когда для визуализации приОткрытии или присозданииНаСервере ? |
|||
11
RomaH
naïve
17.12.19
✎
13:52
|
(10) при чтении
при создании - оно выполняется и для новых - а там в хранилище еще ничего нет |
|||
12
bvb
17.12.19
✎
13:53
|
Меня вообще терзают смутные сомнения : а уместно ли использовать ХЗ в УФ ?
|
|||
13
RomaH
naïve
17.12.19
✎
13:54
|
(12) а альтернатива?
|
|||
14
RomanYS
17.12.19
✎
13:55
|
(12) Как-будто есть какая-нибудь альтернатива...
|
|||
15
RomaH
naïve
17.12.19
✎
13:56
|
(12) и как бы ХЗ - к УФ (интерфейсу) не имеет отношения - это способ хранения информации
|
|||
16
RomaH
naïve
17.12.19
✎
13:57
|
(12) но мысль правильная - используй БСП и прикрепленные файлы
можно в любой момент из ХЗ свалить на хранение в каталоге |
|||
17
bvb
17.12.19
✎
13:58
|
(11)При чтении на сервере ?
|
|||
18
RomaH
naïve
17.12.19
✎
13:58
|
+(16) но в ХЗ надо тогда хранить именно двоичные
у меня там, например, зачастую просто текст/текстовый документ |
|||
19
Радим1987
17.12.19
✎
14:02
|
Вот пример
|
|||
20
RomaH
naïve
17.12.19
✎
14:05
|
(19) - если не секрет - это что? ... вижу что СКД - прикладной смысл какой?
|
|||
21
bvb
17.12.19
✎
14:05
|
(4) А Как передать в ПередЗаписьюНаСервере двоичные данные.
Через реквизит формы ? ПутьКФайлуXML на недоступен &НаСервере Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) ТекущийОбъект.ФайлПоставщика = Новый ХранилищеЗначения(Новый ДвоичныеДанные(ПутьКФайлуXML)); КонецПроцедуры |
|||
22
RomaH
naïve
17.12.19
✎
14:07
|
(21) ... ВременноеХранилище
понеслась... |
|||
23
Радим1987
17.12.19
✎
14:09
|
(20) Это справочник настройка загрузки файлов Excel где отборы строк (какие строки грузить) устанавливается в режиме 1с предприятия
|
|||
24
RomaH
naïve
17.12.19
✎
14:11
|
адрес хранилища - реквизит формы
перед записью - помещаешь файл во временное перед записью на сервере - получаешь из временного а какова логика? ПутьКФайлуXML - это выбор на клиенте готового файла а вот при открытии уже записаного элемента - файл - это где? |
|||
25
Радим1987
17.12.19
✎
14:11
|
(20) Я храню настройки компоновщика (всякие отборы) в этом справочнике в хранилище значений
|
|||
26
bvb
17.12.19
✎
14:27
|
(22) Осилил
&НаКлиенте АдресДвоичныхДанных = ПоместитьВоВременноеХранилище(Новый ДвоичныеДанные(ПутьКФайлуXML), Новый УникальныйИдентификатор); &НаСервере Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) ТекущийОбъект.ФайлПоставщика = Новый ХранилищеЗначения(ПолучитьИзВременногоХранилища(АдресДвоичныхДанных)); КонецПроцедуры |
|||
27
bvb
17.12.19
✎
15:17
|
При открытии формы
&НаСервере Процедура ПриЧтенииНаСервере(ТекущийОбъект) ИмяФайла = ПолучитьИмяВременногоФайла(".xml"); //Временный файл у нас на сервере ДД = Объект.Ссылка.ФайлПоставщика.Получить(); Если ТипЗнч(ДД) = Тип("ДвоичныеДанные") Тогда ДД.Записать(ИмяФайла); ЧтениеXML = Новый ЧтениеXML; ЧтениеXML.ОткрытьФайл(ИмяФайла); //И понеслась... ПрочитатьФайлПоставщикаXML(ЧтениеXMLя); КонецЕсли; КонецПроцедуры |
|||
28
RomaH
naïve
17.12.19
✎
15:25
|
(27)
посмотри в сторону ДвоичныеДанные.ОткрытьПотокДляЧтения (временный файл не нужен) Объект.Ссылка. ну ё-моё ... ТекущийОбъект Ссылка - тут зачем? |
|||
29
bvb
17.12.19
✎
15:48
|
(28) Спасибо Исправился :
&НаСервере Процедура ПриЧтенииНаСервере(ТекущийОбъект) ИмяФайла = ПолучитьИмяВременногоФайла(".xml"); //Временный файл у нас на сервере ДвоичныеДанные = ТекущийОбъект.ФайлПоставщика.Получить(); Если ТипЗнч(ДвоичныеДанные) = Тип("ДвоичныеДанные") Тогда ЧтениеXML = Новый ЧтениеXML; ЧтениеXML.ОткрытьПоток(ДвоичныеДанные.ОткрытьПотокДляЧтения()); ПрочитатьФайлПоставщикаXML(ЧтениеXML); |
|||
30
bvb
17.12.19
✎
15:50
|
Можно вопрос не по топику ?
Файл здоровый и при открытии элемента спр происходит подвисание Как отобразить длительную операцию ? Строка состояния то недоступна |
|||
31
Радим1987
17.12.19
✎
15:55
|
(30) Никак
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |