Имя: Пароль:
1C
1С v8
Не определяется серверная функция
,
0 skuma
 
31.10.19
15:08
Добрый день!

Хочу перегнать файл эксель в таблицу значений для последующего сравнения записей и занесения в справочник. Первый шаг - загрузить файл эксель и превратить его в ТЗ. Делаю обработку с кодом:

Процедура Кнопка1Нажатие(Элемент)
    Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
    Диалог.Заголовок = "Выберите файл";
    Диалог.ПолноеИмяФайла = "c:\";
    Диалог.Фильтр = "Книга Excel 97-2003 (*.xls)|*.xls|Книга Excel 2007 (*.xlsx)|*.xlsx";
    
    Если Диалог.Выбрать() Тогда
        
            ПутьКФайлу = Диалог.ПолноеИмяФайла;
                    
        КонецЕсли;
        
    КонецПроцедуры
    
    
&НаКлиенте
Процедура ЗагрузитьEXCEL(ПутьКФайлу) Экспорт
    
    Файл = Новый Файл(ПутьКФайлу);
    Если НЕ Файл.Существует() Тогда
        Возврат;
    КонецЕсли;
    ДвоичныеДанные = Новый ДвоичныеДанные(ПутьКФайлу);
    ДокументРезультат = EXCELВТаблицуЗначений(ДвоичныеДанные, Файл.Расширение);
    ДокументРезультат.Показать();
    
КонецПроцедуры

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

    
КонецФункции



На что проверка модуля говорит, что ошибок не обнаружено, а приложение сообщает, что:
{ВнешняяОбработка.ВнешняяОбработка3.Форма.Форма.Форма(30,22)}: Процедура или функция с указанным именем не определена (EXCELВТаблицуЗначений)
    ДокументРезультат = <<?>>EXCELВТаблицуЗначений(ДвоичныеДанные, Файл.Расширение);

Что я делаю не так?
1 vicof
 
31.10.19
15:13
С поменять на C
Х поменять на X
Е поменять на E
2 vicof
 
31.10.19
15:16
И что-то я не вижу, где вызывается ЗагрузитьEXCEL
3 skuma
 
31.10.19
15:40
(2) Пардон, скопировал из другой обработки, в которой я вторую кнопку городил.


Если Диалог.Выбрать() Тогда
        
            ПутьКФайлу = Диалог.ПолноеИмяФайла;
            ЗагрузитьEXCEL(ПутьКФайлу)        
        КонецЕсли;
        
    КонецПроцедуры
    
В этом месте вызывается
4 vicof
 
31.10.19
15:42
Процедура Кнопка1Нажатие(Элемент)

Где контекст?
5 Cyberhawk
 
31.10.19
15:44
Поешь еще лунного сахара
6 pechkin
 
31.10.19
15:45
даже если процедура найдется, то тз на клиент все равно нельзя передавать
7 skuma
 
31.10.19
15:45
(4) в смысле? по нажатию кнопки(обычная форма) открывается диалог выбора файла
8 pechkin
 
31.10.19
15:45
у тебя обычные формы? тогда зачем все эти на клиенте-сервере?
9 skuma
 
31.10.19
15:56
(8) Да, у меня подобная обработка была для управляемых, там работало, переписал, начала находиться. Но теперь она пишет:

Ошибка при выполнении файловой операции  'C:\Users\1\Desktop\Список.xls'. Доступ к файлу не может быть получен.
10 skuma
 
31.10.19
15:58
перекинул на D, начало находиться. Всем спасибо за помощь!
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.