Имя: Пароль:
1C
 
ошибка "Обращение к процедуре объекта как к функции" после перехода на 8.3
,
0 Shur1cIT
 
29.11.16
11:19
УПП модуль обычного приложения обновил платформу на 8.3 работаем в режиме совместимости.
Вылетает ошибка:

НаборЗаписей[0].ХранилищеФайла.Получить().Записать(КаталогПрограммы()+ Выборка.ИмяФайла)

{(1)}: Обращение к процедуре объекта как к функции (Записать)  


вот сама процедура

Процедура ПолучитьВнешниеКомпонентыПриНеобходимости()
    
    Запрос = Новый Запрос;
    
    Запрос.Текст =
    "ВЫБРАТЬ РАЗРЕШЕННЫЕ
    |    ВнешниеКомпоненты.ИмяФайла,
    |    ВнешниеКомпоненты.ДатаИзмененияФайла
    |ИЗ
    |    РегистрСведений.ВнешниеКомпоненты КАК ВнешниеКомпоненты";
    
    Выборка = Запрос.Выполнить().Выбрать();
    
    Пока Выборка.Следующий() Цикл
        
        Файл = Новый Файл(КаталогПрограммы()+ Выборка.ИмяФайла);
        
        Если Не Файл.Существует() Или Не Файл.ПолучитьВремяИзменения() = Выборка.ДатаИзмененияФайла Тогда
            НаборЗаписей = РегистрыСведений.ВнешниеКомпоненты.СоздатьНаборЗаписей();
            НаборЗаписей.Отбор.ИмяФайла.Установить(Выборка.ИмяФайла);
            НаборЗаписей.Прочитать();
            
            Попытка
                НаборЗаписей[0].ХранилищеФайла.Получить().Записать(КаталогПрограммы()+ Выборка.ИмяФайла);
                Файл = Новый Файл(КаталогПрограммы()+ Выборка.ИмяФайла);
                Файл.УстановитьВремяИзменения(Выборка.ДатаИзмененияФайла);
                
                
                
            Исключение
            КонецПопытки;
            
        КонецЕсли;
        
    КонецЦикла;
    
КонецПроцедуры // ПолучитьВнешниеКомпонентыПриНеобходимости()
1 Живой Ископаемый
 
29.11.16
11:21
быть как ты?
2 Shur1cIT
 
29.11.16
11:25
не дописал, от записать не какого присваивания нет тоесть она не как функция вызываеться от неё не пытаюсь ни чего получить почему он ругаетьсся? плюс процедура типовая УПП шная
3 Живой Ископаемый
 
29.11.16
11:28
какой тип у значения НаборЗаписей[0].ХранилищеФайла.Получить()
?
4 Shur1cIT
 
29.11.16
11:44
(3) двоичные данные
5 Живой Ископаемый
 
29.11.16
11:49
а можешь сделать из этой строки:
НаборЗаписей[0].ХранилищеФайла.Получить().Записать(КаталогПрограммы()+ Выборка.ИмяФайла)

вот такие ТРИ:
двДанные = НаборЗаписей[0].ХранилищеФайла.Получить();
имяФайла = КаталогПрограммы()+ Выборка.ИмяФайла;
двДанные.Записать(имяФайла);
?
6 Shur1cIT
 
29.11.16
13:13
извиняюсь за задержку

двДанные.Записать(имяФайла);

сыпеться точно такаеже ошибка, в 8.3 небыло недокуметированых изменений??? хотя я же в режиме совместимости работаю должно всё ок быть
7 Lexey_
 
29.11.16
13:28
(6) ошибка хоть от этой строки?
8 Mankubus
 
29.11.16
13:36
(6) эту строку не в отладчике выполняешь?
9 Shur1cIT
 
29.11.16
13:36
(7) Свойство    Значение    Тип
двДанные.Записать(имяФайла)    {(1)}: Обращение к процедуре объекта как к функции (Записать)


(8) в отладчике
10 Shur1cIT
 
29.11.16
13:37
(9) точнее у меня отладка по ошибке стоит и потом второй раз уже сам проверяю
11 Cool_Profi
 
29.11.16
13:37
"эту строку не в отладчике выполняешь?"
"в отладчике"

Вот и ответ. Отладчик своё выражение считает как вызов функции, а не процедуры.
12 Shur1cIT
 
29.11.16
13:39
(11) так у меня по ошибке он сам без точки остановки вылетает
13 Shur1cIT
 
29.11.16
13:43
14 Lexey_
 
29.11.16
13:55
(13) с этого и надо было начинать, текст ошибки в (0) не имеет отношения к проблеме, добавь в исключение Сообщить(ОписаниеОшибки());
15 Fedor-1971
 
29.11.16
13:56
(9) двДанные - проверь отладчиком тип. Может там не ДвоичныеДанные и права, куда пытаешься Записать() у пользователя сервера 1С