|
Проблема с двоичными данными в 1С 8.3 | ☑ | ||
---|---|---|---|---|
0
9451523
27.08.18
✎
13:15
|
Привет всем
в версии 1С 8.3 при попытке сохранить файл вылетела ошибка Файл не обнаружен заходишь в подробно там пишет: Ошибка при вызове конструктора (ДвоичныеДанные) вот код: &НаКлиенте Процедура ИмяФайлаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие); диалог.МножественныйВыбор = Ложь; диалог.Заголовок = "Выберите прикрепляемый файл"; Если диалог.Выбрать() Тогда файл = Новый Файл(диалог.ПолноеИмяФайла); Запись.ИмяФайла = файл.Имя; ЗагрузитьФайл(ПоместитьВоВременноеХранилище(Новый ДвоичныеДанные(файл.Имя))); Элементы.ОткрытьФайл.Видимость = Истина; Если Не РольДоступнаПолныеПрава() Тогда Попытка ЭтаФорма.ВладелецФормы.Родитель.Элементы.Список.Обновить(); Исключение КонецПопытки; ЭтаФорма.Закрыть(); КонецЕсли; КонецЕсли; КонецПроцедуры тот же код свободно и без ошибок отрабатывает в 1С 8.2, не подскажите где копать? вроде все правильно С уважением Дамир |
|||
3
Cyberhawk
27.08.18
✎
13:18
|
Ну а так-то не то свойство объекта "Файл" берешь. Полное имя надо
|
|||
6
9451523
27.08.18
✎
13:21
|
Файл.ПолноеИмя?
|
|||
7
lubitelxml
27.08.18
✎
13:22
|
(6) ну если такое поле есть, то да, если нет - то тот же диалог.ПолноеИмяФайла
|
|||
8
9451523
27.08.18
✎
13:22
|
а в 8.2 так же отработает?
|
|||
9
Малыш Джон
27.08.18
✎
13:23
|
База поди в другом месте лежит? Файлик лежит рядом с одной базой - она его по одному имени находит, а другая база лежит в другом месте и этот файл не находит
|
|||
10
9451523
27.08.18
✎
13:25
|
Файл.ПолноеИмя правильный вариант, спасибо всем
|
|||
11
Cyberhawk
27.08.18
✎
13:26
|
(9) Все на клиенте
|
|||
12
spiller26
27.08.18
✎
13:30
|
(0) Вот примерно что у тебя должно быть
&НаКлиенте Процедура СохранитьДеревоВФайл(Команда) ДиалогСохраненияФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение); ДиалогСохраненияФайла.Фильтр = "Файлы Дерева (*.tab) |*.tab"; ДиалогСохраненияФайла.Заголовок = "Укажите имя файла для сохранения!"; ДиалогСохраненияФайла.ПредварительныйПросмотр = Ложь; ДиалогСохраненияФайла.МножественныйВыбор = Ложь; ДиалогСохраненияФайла.Расширение = "tab"; Если ДиалогСохраненияФайла.Выбрать() Тогда ФайлДанные = ИспользоватьВременныйФайл(); ФайлДанные.Записать(ДиалогСохраненияФайла.ПолноеИмяФайла); КонецЕсли; КонецПроцедуры &НаСервере Функция ИспользоватьВременныйФайл() тДерево = РеквизитФормыВЗначение("ДеревоОстатков"); Попытка ИмяВремФайл = ПолучитьИмяВременногоФайла(); ВремФайл = Новый Файл(ИмяВремФайл); ЗначениеВФайл(ИмяВремФайл, тДерево); Если ВремФайл.Существует() Тогда ФайлДанные = Новый ДвоичныеДанные(ИмяВремФайл); Хранилище = Новый ХранилищеЗначения(ФайлДанные); КонецЕсли; УдалитьФайлы(КаталогВременныхФайлов(), ИмяВремФайл); Исключение ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ОписаниеОшибки()); //сообщение пользователю КонецПопытки; Возврат Хранилище.Получить(); КонецФункции |
|||
13
spiller26
27.08.18
✎
13:32
|
(0) Вот тебе открытие
&НаКлиенте Процедура ЗагрузитьДеревоИзФайла(Команда) ОписаниеОповещения = Новый ОписаниеОповещения("ОбработатьВыборФайла", ЭтаФорма); ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие); ДиалогОткрытияФайла.Фильтр = "Файлы Дерева (*.tab) |*.tab"; ДиалогОткрытияФайла.Заголовок = "Укажите имя файла для открытия!"; ДиалогОткрытияФайла.ПредварительныйПросмотр = Ложь; ДиалогОткрытияФайла.МножественныйВыбор = Ложь; ДиалогОткрытияФайла.Расширение = "tab"; НачатьПомещениеФайлов(ОписаниеОповещения, , ДиалогОткрытияФайла, Истина, УникальныйИдентификатор); КонецПроцедуры &НаКлиенте Процедура ОбработатьВыборФайла(ПомещенныеФайлы, ДополнительныеПараметры) Экспорт Если ПомещенныеФайлы = Неопределено Тогда Возврат; КонецЕсли; Для каждого ПереданныйФайл Из ПомещенныеФайлы Цикл ВосстановитьДеревоНаФорме(ПереданныйФайл.Хранение); КонецЦикла; КонецПроцедуры // () &НаСервере Процедура ВосстановитьДеревоНаФорме(КлючФайлаДерево) Попытка ИмяВремФайл = ПолучитьИмяВременногоФайла(); ФайлДанные = ПолучитьИзВременногоХранилища(КлючФайлаДерево); ФайлДанные.Записать(ИмяВремФайл); тДерево = ЗначениеИзФайла(ИмяВремФайл); УдалитьФайлы(ИмяВремФайл); ЗначениеВРеквизитФормы(тДерево, "ДеревоОстатков"); Исключение ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ОписаниеОшибки()); //сообщение пользователю КонецПопытки; КонецПроцедуры |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |