Вход | Регистрация

1С:Предприятие ::

Метки: 

Проблема с двоичными данными в 1С 8.3

Я
   9451523
 
27.08.18 - 13:15
Привет всем
в версии 1С 8.3 при попытке сохранить файл вылетела ошибка Файл не обнаружен заходишь в подробно там пишет: Ошибка при вызове конструктора (ДвоичныеДанные)
вот код:

&НаКлиенте
Процедура ИмяФайлаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
    диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
    диалог.МножественныйВыбор = Ложь;
    диалог.Заголовок = "Выберите прикрепляемый файл";
    Если диалог.Выбрать() Тогда
        файл = Новый Файл(диалог.ПолноеИмяФайла);
        Запись.ИмяФайла = файл.Имя;
        ЗагрузитьФайл(ПоместитьВоВременноеХранилище(Новый ДвоичныеДанные(файл.Имя)));
        Элементы.ОткрытьФайл.Видимость = Истина;
        Если Не РольДоступнаПолныеПрава() Тогда
            Попытка
                ЭтаФорма.ВладелецФормы.Родитель.Элементы.Список.Обновить();
            Исключение
                
            КонецПопытки;
            ЭтаФорма.Закрыть();
        КонецЕсли;
    КонецЕсли;
КонецПроцедуры

тот же код свободно и без ошибок отрабатывает в 1С 8.2, не подскажите где копать? вроде все правильно
С уважением Дамир
 
 
   Cyberhawk
 
3 - 27.08.18 - 13:18
Ну а так-то не то свойство объекта "Файл" берешь. Полное имя надо
   9451523
 
6 - 27.08.18 - 13:21
Файл.ПолноеИмя?
   lubitelxml
 
7 - 27.08.18 - 13:22
(6) ну если такое поле есть, то да, если нет - то тот же диалог.ПолноеИмяФайла
   9451523
 
8 - 27.08.18 - 13:22
а в 8.2 так же отработает?
   Малыш Джон
 
9 - 27.08.18 - 13:23
База поди в другом месте лежит? Файлик лежит рядом с одной базой - она его по одному имени находит, а другая база лежит в другом месте и этот файл не находит
   9451523
 
10 - 27.08.18 - 13:25
Файл.ПолноеИмя правильный вариант, спасибо всем
 
 Рекламное место пустует
   Cyberhawk
 
11 - 27.08.18 - 13:26
(9) Все на клиенте
   spiller26
 
12 - 27.08.18 - 13:30
(0) Вот примерно что у тебя должно быть

&НаКлиенте
Процедура СохранитьДеревоВФайл(Команда)
    
    ДиалогСохраненияФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение);
    ДиалогСохраненияФайла.Фильтр                      = "Файлы Дерева (*.tab) |*.tab";
    ДиалогСохраненияФайла.Заголовок                   = "Укажите имя файла для сохранения!";
    ДиалогСохраненияФайла.ПредварительныйПросмотр     = Ложь;
    ДиалогСохраненияФайла.МножественныйВыбор          = Ложь;
    ДиалогСохраненияФайла.Расширение                  = "tab";
    Если ДиалогСохраненияФайла.Выбрать() Тогда
        ФайлДанные = ИспользоватьВременныйФайл();
        ФайлДанные.Записать(ДиалогСохраненияФайла.ПолноеИмяФайла);
    КонецЕсли;    
    
КонецПроцедуры

&НаСервере
Функция ИспользоватьВременныйФайл()
    
    тДерево = РеквизитФормыВЗначение("ДеревоОстатков");
    
    Попытка
        ИмяВремФайл = ПолучитьИмяВременногоФайла();
        ВремФайл = Новый Файл(ИмяВремФайл);
        ЗначениеВФайл(ИмяВремФайл, тДерево);
        Если ВремФайл.Существует() Тогда
            ФайлДанные = Новый ДвоичныеДанные(ИмяВремФайл);
            Хранилище = Новый ХранилищеЗначения(ФайлДанные);
        КонецЕсли;
        УдалитьФайлы(КаталогВременныхФайлов(), ИмяВремФайл);
    Исключение
        ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ОписаниеОшибки());//сообщение пользователю        

    КонецПопытки;
    
    Возврат Хранилище.Получить();
    
КонецФункции
   spiller26
 
13 - 27.08.18 - 13:32
(0) Вот тебе открытие

&НаКлиенте
Процедура ЗагрузитьДеревоИзФайла(Команда)
    
    ОписаниеОповещения = Новый ОписаниеОповещения("ОбработатьВыборФайла", ЭтаФорма);
    
    ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
    ДиалогОткрытияФайла.Фильтр                      = "Файлы Дерева (*.tab) |*.tab";
    ДиалогОткрытияФайла.Заголовок                   = "Укажите имя файла для открытия!";
    ДиалогОткрытияФайла.ПредварительныйПросмотр     = Ложь;
    ДиалогОткрытияФайла.МножественныйВыбор          = Ложь;
    ДиалогОткрытияФайла.Расширение                  = "tab";
    
    НачатьПомещениеФайлов(ОписаниеОповещения, , ДиалогОткрытияФайла, Истина, УникальныйИдентификатор);
    
КонецПроцедуры

&НаКлиенте
Процедура ОбработатьВыборФайла(ПомещенныеФайлы, ДополнительныеПараметры) Экспорт

    Если ПомещенныеФайлы = Неопределено Тогда
        Возврат;
    КонецЕсли;

    Для каждого ПереданныйФайл Из ПомещенныеФайлы Цикл
        ВосстановитьДеревоНаФорме(ПереданныйФайл.Хранение);
    КонецЦикла;
    
КонецПроцедуры// ()


&НаСервере
Процедура ВосстановитьДеревоНаФорме(КлючФайлаДерево)
    
    Попытка
        ИмяВремФайл = ПолучитьИмяВременногоФайла();
        ФайлДанные = ПолучитьИзВременногоХранилища(КлючФайлаДерево);    
        ФайлДанные.Записать(ИмяВремФайл);

        тДерево = ЗначениеИзФайла(ИмяВремФайл);
    
        УдалитьФайлы(ИмяВремФайл);
        ЗначениеВРеквизитФормы(тДерево, "ДеревоОстатков");
    Исключение
        ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ОписаниеОшибки());//сообщение пользователю

    КонецПопытки;

КонецПроцедуры


Список тем форума
Рекламное место пустует Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует