|   |   | 
| 
 | Не определяется серверная функция | ☑ | ||
|---|---|---|---|---|
| 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, начало находиться. Всем спасибо за помощь!     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |