|   |   | 
| 
 | Запись файла в реквизит документа | ☑ | ||
|---|---|---|---|---|
| 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) да это бот     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |