|
Запись файла в реквизит документа | ☑ | ||
---|---|---|---|---|
0
Lite777888
naïve
26.08.24
✎
16:25
|
Здравствуйте, УТ11, в расширении создан документ, в нем реквизит файл- тип Хранилище Значения , нужно сохранить файл в 1с и привязать его к документу.( Подсистему работа с файлами не использовал), код такой-
&НаСервере Процедура ПослеВыбораФайла(Результат,ДополнительныеПараметры) ДД = Новый ДвоичныеДанные(Результат[0]); //ПУТЬ К ФАЙЛУ Объект.Файл = Новый ХранилищеЗначения(ДД) ; КонецПроцедуры |
|||
1
Lite777888
naïve
26.08.24
✎
16:26
|
Проблема-в отладке зависает на строке Объект.Файл =
|
|||
2
Волшебник
26.08.24
✎
16:28
|
Не надо хранить файлы в реквизите документа
|
|||
3
timurhv
27.08.24
✎
15:26
|
||||
4
Lite777888
naïve
26.08.24
✎
16:36
|
(2) Сначало хранил только путь, но нужно чтобы в этот путь не погли попасть пользователи которые должны читать этот файл.(там есть файлы которые они не должны видеть)
|
|||
5
Волшебник
26.08.24
✎
16:43
|
(4) Вам повторить мысль? Не надо хранить файлы в реквизите документа
|
|||
6
Михаил Козлов
26.08.24
✎
16:44
|
Штатно используют справочник ПрисоединенныеФайлы<чего-то там>. Можете добавить такой справочник и использовать штатный механизм.
|
|||
7
Lite777888
naïve
26.08.24
✎
16:47
|
(5) регистр типовой -сведения о файлах ,не может хранить привязку к документам из расширений.
|
|||
8
Волшебник
26.08.24
✎
16:48
|
(7) Сделайте новый регистр или справочник. Но не храните бинарные данные в документе.
|
|||
9
Волшебник
26.08.24
✎
16:49
|
(7) Кстати, в расширениях не надо создавать новые документы. Чревато
|
|||
10
Lite777888
naïve
26.08.24
✎
16:53
|
(6) В справочнике будет реквизит -ссылка на документ , и реквизит файл с типов хранилище значений.
|
|||
11
Волшебник
26.08.24
✎
16:56
|
(10) Аминь.
|
|||
12
Шебвольник С1
26.08.24
✎
16:57
|
||||
13
Шебвольник С1
26.08.24
✎
17:02
|
(8) Какая разница в данном случае, справочник или документ?
|
|||
14
Мультук
гуру
26.08.24
✎
17:06
|
(10) (13)
Раньше (когда трава была зеленой), хранить BLOB в одной таблице с основными реквизитами считалось "моветон". А за написание SELECT * в одной nntp-конференци был сразу "эцих с гвоздями" Возможно сейчас, современные SQL-сервера стали "умные" и умеют "сами" выносить BLOB в отдельные страницы (тут нужен умный термин), ну и всё остальное. Но дедушки продолжают делать "как учили". |
|||
15
Волшебник
26.08.24
✎
17:05
|
(13) Документ хранит учётные формализованные данные. Всю бинарную часть храните отдельно от него со ссылкой на него.
|
|||
16
Волшебник
26.08.24
✎
17:05
|
(14) Вы извините, но ДокументОбъект будет считывать всё: все реквизиты и все табличные части.
|
|||
17
Мультук
гуру
26.08.24
✎
17:07
|
(16)
Я не об этом |
|||
18
Волшебник
26.08.24
✎
17:09
|
(17) Ну так проблема именно в этом
|
|||
19
Шебвольник С1
26.08.24
✎
17:10
|
(15) А справочник формализованные данные не хранит?
(16) Как и СправочникОбъект, поэтому в данном случае разницы между справочником и документом не будет |
|||
20
Галахад
гуру
26.08.24
✎
17:11
|
(0) Пользователь выбрал файл на клиенте, а загрузка на сервере?
|
|||
21
Волшебник
26.08.24
✎
17:13
|
(19) >> А справочник формализованные данные не хранит?
Не хранит. |
|||
22
Волшебник
26.08.24
✎
17:14
|
(19) Есть существенная разница между:
Документ.РасходнаяНакладная и Справочник.РасходнаяНакладнаяПрисоединенныеФайлы |
|||
23
craxx
26.08.24
✎
17:15
|
(7) С чего это вдруг? все вполне решаемо.
|
|||
24
Мультук
гуру
26.08.24
✎
17:17
|
(19)
Представьте вы SQL-сервер Вам нужно выбрать некоторые книги в библиотеке В библиотеке два зала. В первом зале книги аккуратно стоят на полочках. Вы быстро находите нужные. Во втором почти после каждой книги идут разрывы и стоят бетонные блоки. Блоки разного размера. Есть маленькие, есть огромные. Удобненько ? Вам же в вашей работе поиска книг бетонные блоки почти никогда не нужны. И было бы лучше, если бы они все лежали в отдельной кладовой. Но архитектору так было быстрее и удобнее. |
|||
25
craxx
26.08.24
✎
17:17
|
(19) Бинарные данные хранятся в регистре, справочник ПрисоединенныеФайлы соответствующего объекта - для информации о загруженном файле.
|
|||
26
Волшебник
26.08.24
✎
17:21
|
(24) Я добавлю, что бетонные блоки привязаны к книгам. Чтобы взять книжку, надо погрузить бетонные блоки с помощью погрузчика на какую-то тележку, потом толкать её перед собой в читальный зал. Потом обратно...
👇Вот ваши документы с бинарными данными внутри ![]() |
|||
27
Шебвольник С1
26.08.24
✎
17:43
|
(21) Ха-ха.
(22) Под капотом скуля нет ее. (24) Не поверите, но BLOB давно хранятся в отдельной таблице. И получается, что вместо бетонного блока там просто записка с адресом. Удобненько? (25) Хвастаетесь? Вообще, схема стандартная |
|||
28
Волшебник
26.08.24
✎
18:38
|
(27) Да Вы ещё ламер, как я посмотрю... Вы спутали справочник а ля Номенклатура и НоменклатураПрисоединенныеФайлы. Для второго справочника формализованные данные (дата изменения файла, например) — это не главное, а главное там сам файл.
|
|||
29
craxx
27.08.24
✎
01:56
|
(28) Сам файл в РС ДвоичныеДанныеФайлов.
|
|||
30
Михаил Козлов
27.08.24
✎
09:30
|
(29) Вроде бы можно и в томах хранить.
|
|||
31
Волшебник
27.08.24
✎
09:32
|
(29) Это ради бога
|
|||
33
Lite777888
naïve
27.08.24
✎
13:25
|
&НаСервере
Процедура ПослеВыбораФайла(Результат,ДополнительныеПараметры) ЭКСПОРТ ДД = Новый ДвоичныеДанные(Результат[0]); //ПУТЬ Почему то возникает ошибка на длинных названиях файлов Ошибка при вызове конструктора (ДвоичныеДанные) |
|||
34
Волшебник
27.08.24
✎
13:27
|
(33) что за ошибка-то?
|
|||
35
craxx
27.08.24
✎
13:28
|
(33) Потому что сервер не видит файла на клиенте.
Передай его на сервер. |
|||
36
craxx
27.08.24
✎
13:29
|
(33) И кстати, в описании оповещения должны быть клиентские методы.
|
|||
37
Lite777888
naïve
27.08.24
✎
13:29
|
по причине:
Ошибка при выполнении файловой операции '\\192.168.0.9\общая\.... |
|||
38
Lite777888
naïve
27.08.24
✎
13:30
|
(35) Через временное хранилище чоль ?
|
|||
39
craxx
27.08.24
✎
13:33
|
(38) Можно и через него, если файл не гигантский.
|
|||
40
Lite777888
naïve
27.08.24
✎
13:33
|
Тоесть процедуру после выбора делать на клиенте, потом передать файл на сервер через Врем Хр и на сервере делать -ДД = Новый ДвоичныеДанные(
|
|||
41
craxx
27.08.24
✎
13:38
|
(40) Именно так.
|
|||
42
Мультук
гуру
27.08.24
✎
14:07
|
(40)
В (3) дали все ссылки, нужно только прочитать |
|||
43
Lite777888
naïve
27.08.24
✎
15:15
|
&НаКлиенте
Процедура ПослеВыбораФайла(Результат,ДополнительныеПараметры) ЭКСПОРТ АдресВХ = ПоместитьВоВременноеХранилище(Результат[0],Новый УникальныйИдентификатор()) ; //ПУТЬ ПередатьНасервер(АдресВХ) ; КонецПроцедуры Процедура ПередатьНасервер(АдресВХ) Путь = ПолучитьИзВременногоХранилища(АдресВХ) ; ДД = Новый ДвоичныеДанные(Путь); |
|||
44
Lite777888
naïve
27.08.24
✎
15:13
|
так чтоли ?
|
|||
45
Волшебник
27.08.24
✎
15:25
|
(43) Прогнали путь к файлу через временное хранилище? ну-ну 👋
|
|||
46
Lite777888
naïve
27.08.24
✎
15:30
|
Двоичные данные чтоли помещать ? в ВХ
|
|||
47
craxx
27.08.24
✎
15:55
|
(46) Ты точно программист? Ты точно не прикалываешься сейчас?
|
|||
48
Lite777888
naïve
27.08.24
✎
15:58
|
ДД = Новый ДвоичныеДанные(Результат[0]);
АдресВХ = ПоместитьВоВременноеХранилище(ДД,Новый УникальныйИдентификатор()) ; ПередатьНасервер(АдресВХ,Результат[0]) ; КонецПроцедуры Процедура ПередатьНасервер(АдресВХ,Путь) ДД = ПолучитьИзВременногоХранилища(АдресВХ) ; так вроде заработало, спасибо) |
|||
49
Lite777888
naïve
27.08.24
✎
16:00
|
(47) А ты кто ,не надо тут нести чушь ? ХХ это хер
|
|||
50
Волшебник
27.08.24
✎
16:10
|
(47) да это бот
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |