![]() |
![]() |
![]() |
|
Загрузка внешнего файла в базу данных | ☑ | ||
---|---|---|---|---|
0
Новичок1С Учится
05.03.19
✎
08:37
|
Добрый день. Прошу помочь разобраться в механизме загрузки внешнего файла в базу данных. Хранить двоичные данные буду в реквизите регистра сведений с типом "ХранилищеЗначения". Пытаюсь сделать по статье https://sites.google.com/site/1sspravocniktipovyhzadac/integracia-1s/rabota-s-fajlami/rabota-s-fajlami-v-8-3#TOC-WEB--
Первый момент который меня смущает это то что окно выбора файла открывается 2 раза. Первый раз на клиенте &НаКлиенте Процедура ПрисоединенныеДокументыИмяФайлаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) Если Параметры.Ключ.Пустая() Тогда Сообщить("Перед присоединением файлов необходимо записать документ!", СтатусСообщения.Внимание); Возврат КонецЕсли; а = 0; ДанныеВыполнения = Новый Структура; ДанныеВыполнения.Вставить("Элемент", Элемент); ТекущаяСтрока = Элементы.ПрисоединенныеДокументы.ТекущиеДанные; ДанныеВыполнения.Вставить("ТекущаяСтрока", ТекущаяСтрока); ВидДокумента = ТекущаяСтрока.ВидДокумента; Если не ЗначениеЗаполнено(ВидДокумента) Тогда Сообщить("Перед выбором файла необходимо указать вид присоединяемого документа!", СтатусСообщения.Внимание); Возврат КонецЕсли; ДанныеВыполнения.Вставить("ВидДокумента", ВидДокумента); ОписаниеОповещения = Новый ОписаниеОповещения("ОбработатьВыборФайла", ЭтотОбъект); ДанныеВыполнения.Вставить("ОписаниеОповещения", ОписаниеОповещения); ДиалогВыбора = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие); ДиалогВыбора.Заголовок = "Выберите файл для прикрепления"; ДиалогВыбора.Фильтр = "Все файлы (*.*)|*.*"; ДиалогВыбора.МножественныйВыбор = Ложь; ДиалогВыбора.Выбрать(); ДанныеВыполнения.Вставить("ДиалогВыбора", ДиалогВыбора); ТекущийФайл = Элемент.ТекстРедактирования; Если НЕ ПустаяСтрока(ТекущийФайл) Тогда ЗаменаСуществующегоФайла(ЭтотОбъект, ДанныеВыполнения); Иначе ПродолжениеВызова(ДанныеВыполнения); КонецЕсли; И второй раз &НаКлиенте Процедура ПродолжениеВызова(ДанныеВыполнения) НовыйФайл = ДанныеВыполнения.ДиалогВыбора.ПолноеИмяФайла; ИмяФайла = ПолучитьИмяФайла(НовыйФайл); Отбор = Новый Структура; Отбор.Вставить("ИмяФайла",ИмяФайла); Отбор.Вставить("ВидДокумента",ДанныеВыполнения.ВидДокумента); НачатьПомещениеФайлов(ДанныеВыполнения.ОписаниеОповещения, , ДанныеВыполнения.ДиалогВыбора, Истина, УникальныйИдентификатор); ЗаписатьВХранилищеЗаписьДанныхОФайлеВРегистр(НовыйФайл, Отбор, ИмяФайла, ДанныеВыполнения.ВидДокумента); ДанныеВыполнения.ТекущаяСтрока.ИмяФайла = ИмяФайла; ДанныеВыполнения.ТекущаяСтрока.ДатаИзменения = ТекущаяДата(); ТекущаяСтрока.Пользователь = ОбщийМодульГРО.ПолучитьТекущегоПользователя(); Записать(); КонецПроцедуры Ну и самый главный вопрос в том что в процедуре ЗаписатьВХранилищеЗаписьДанныхОФайлеВРегистр не формируется ни ФайлДвоичныхДанных ни ФайлХранилища &НаСервере Процедура ЗаписатьВХранилищеЗаписьДанныхОФайлеВРегистр(НовыйФайл, Отбор, ИмяФайла, ВидДокумента) Сжатие = Новый СжатиеДанных(9); Адрес = ПолучитьНавигационнуюСсылку(Объект.Ссылка); ФайлДвоичныхДанных = Новый ДвоичныеДанные(НовыйФайл); ФайлХранилища = Новый ХранилищеЗначения(ПолучитьИзВременногоХранилища(Адрес), Сжатие); НаборЗаписей = РегистрыСведений.ХранилищеФайлов_ЕО.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Хранилище.Установить(Объект.Ссылка); НаборЗаписей.Отбор.ВидДокумента.Установить(ВидДокумента); НаборЗаписей.Отбор.ИмяФайла.Установить(ИмяФайла); НоваяЗапись = НаборЗаписей.Добавить(); НоваяЗапись.Хранилище = Объект.Ссылка; НоваяЗапись.Файл = ФайлХранилища; НоваяЗапись.ВидДокумента = ВидДокумента; НоваяЗапись.ИмяФайла = ИмяФайла; НоваяЗапись.Автор= ОбщийМодульГРО.ПолучитьТекущегоПользователя(); Попытка НаборЗаписей.Записать(); Сообщить ("Успешно сформирована записть в регистре сведений",СтатусСообщения.Информация); Исключение Сообщить ("Ошибка во время записи данных в регистр",СтатусСообщения.Важное); КонецПопытки КонецПроцедуры При этом никакие ошибки не возникают, запись в регистре формируется корректно. Так же не совсем понятно как формируется и передаётся навигационная ссылка... Объясните пожалуйста где и что я упустил. |
|||
1
Новичок1С Учится
05.03.19
✎
08:42
|
Конфигурация Бухгалтерия 3.0
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |