8.х Ошибка выгрузка из Exel в 1С

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем Shvetka, 4 май 2012.

  1. TopicStarter Overlay
    Shvetka
    Offline

    Shvetka

    Регистрация:
    17 янв 2012
    Сообщения:
    23
    Симпатии:
    0
    Баллы:
    1
    Здраствуйте, столкнулась с такой ошибкой.
    Есть обработчик выгрузке активов.
    Когда запускаешь на локальной базе все нормально работает-выгружает. А не серверной базе пишет: "Файл не найден".
    Я этот файл уже куда только не ложила и как только не называла и все равно не найден.
  2. alexburn
    Online

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    Что-то не понятно. Вы этот файл сами в обработке выбираете или он сам в коде выбирается?
  3. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    опишите подробнее, приведите код...
  4. TopicStarter Overlay
    Shvetka
    Offline

    Shvetka

    Регистрация:
    17 янв 2012
    Сообщения:
    23
    Симпатии:
    0
    Баллы:
    1
    Код:
    &НаСервере
    Процедура ЗагрузитьАктивыИзФайла()
    ТЗ=Новый ТаблицаЗначений;
    ТЗ.Колонки.Добавить("Тип");
    ТЗ.Колонки.Добавить("Модель");
    ТЗ.Колонки.Добавить("СерийныйНомер");
    ТЗ.Колонки.Добавить("ИнвентарныйНомер");
    ТЗ.Колонки.Добавить("ВидТМЦ");
    ТЗ.Колонки.Добавить("Сотрудник");
    ТЗ.Колонки.Добавить("Отдел");
    ТЗ.Колонки.Добавить("КодРабМеста");
    ТЗ.Колонки.Добавить("Поставщик");
    ТЗ.Колонки.Добавить("ДатаПоставки");
    ТЗ.Колонки.Добавить("ИндексОтбора");
    Спр=Справочники.itilПроизводители.Выбрать();
    Попытка
    ФайлВыгрузки = Новый COMОбъект("Excel.Application");
    ФайлВыгрузки.Visible=Истина;
    Исключение
    Сообщить("Не удается запустить MS Excel!");
    Возврат;
    КонецПопытки;
    Books=ФайлВыгрузки.WorkBooks.Open(Объект.ИмяФайла);
    ДанныеПоиска=Новый Структура;
    ДанныеПоиска.Вставить("Тип");
    ДанныеПоиска.Вставить("Модель");
    ДанныеПоиска.Вставить("СерийныйНомер");
    ДанныеПоиска.Вставить("ИнвентарныйНомер");
    ДанныеПоиска.Вставить("ВидТМЦ");
    ДанныеПоиска.Вставить("Сотрудник");
    ДанныеПоиска.Вставить("Отдел");
    ДанныеПоиска.Вставить("Поставщик");
    ДанныеПоиска.Вставить("ДатаПоставки");
    ДанныеПоиска.Вставить("КодРабМеста");
    
    Для Л=НачальнаяСтрока По КонечнаяСтрока Цикл
    Тип=?(КолонкаТип>0,СокрЛП(Books.ActiveSheet.Cells(Л,КолонкаТип).Value),"");
    Модель=?(КолонкаМодель>0,СокрЛП(Books.ActiveSheet.Cells(Л,КолонкаМодель).Value),"");
    СерийныйНомер=?(КолонкаСерийныйНомер>0,СокрЛП(Books.ActiveSheet.Cells(Л,КолонкаСерийныйНомер).Value),"");
    ИнвентарныйНомер=?(КолонкаИнвентарныйНомер>0,СокрЛП(Books.ActiveSheet.Cells(Л,КолонкаИнвентарныйНомер).Value),"");
    ВидТМЦ=?(КолонкаВидТМЦ>0,СокрЛП(Books.ActiveSheet.Cells(Л,КолонкаВидТМЦ).Value),"");
    Сотрудник=?(КолонкаСотрудник>0,СокрЛП(Books.ActiveSheet.Cells(Л,КолонкаСотрудник).Value),"");
    Отдел=?(КолонкаОтдел>0,СокрЛП(Books.ActiveSheet.Cells(Л,КолонкаОтдел).Value),"");
    Поставщик=?(КолонкаПоставщик>0,СокрЛП(Books.ActiveSheet.Cells(Л,КолонкаПоставщик).Value),"");
    ДатаПоставки=?(КолонкаДатаПоставки>0,Дата(СокрЛП(Books.ActiveSheet.Cells(Л,КолонкаДатаПоставки).Value)+""),"");
    КодРабМеста=?(КолонкаКодРабМеста>0,СокрЛП(Books.ActiveSheet.Cells(Л,КолонкаКодРабМеста).Value),"");
    Если ИнвентарныйНомер="" Тогда
    Продолжить;
    КонецЕсли;
    ДанныеПоиска.Тип=Тип;
    ДанныеПоиска.Модель=Модель;
    ДанныеПоиска.СерийныйНомер=СерийныйНомер;
    ДанныеПоиска.ИнвентарныйНомер=ИнвентарныйНомер;
    ДанныеПоиска.ВидТМЦ=ВидТМЦ;
    ДанныеПоиска.Сотрудник=Сотрудник;
    ДанныеПоиска.Отдел=Отдел;
    ДанныеПоиска.Поставщик=Поставщик;
    ДанныеПоиска.ДатаПоставки=ДатаПоставки;
    ДанныеПоиска.КодРабМеста=КодРабМеста;
    
    РабочееМесто=ПолучитьitilРабочиеМестаОтдел(ДанныеПоиска);
    Актив=ПолучитьАктив(ДанныеПоиска);
    НСТР=ТЗ.Добавить();
    НСТР.Тип=Тип;
    НСТР.Модель=Модель;
    НСТР.СерийныйНомер=СерийныйНомер;
    НСТР.ИнвентарныйНомер=ИнвентарныйНомер;
    НСТР.ВидТМЦ=ВидТМЦ;
    НСТР.Сотрудник=Сотрудник;
    НСТР.Отдел=Отдел;
    НСТР.КодРабМеста=КодРабМеста;
    НСТР.Поставщик=Поставщик;
    НСТР.ДатаПоставки=ДатаПоставки;
    НСТР.ИндексОтбора=""+ДатаПоставки+" "+СокрЛП(Поставщик)+" "+СокрЛП(Отдел)+" "+СокрЛП(Сотрудник);
    
    //Сообщить("Тип "+ДанныеПоиска.Тип);
    КонецЦикла;
    ТЗ.Сортировать("ИндексОтбора");
    СП_Индексов=Новый ТаблицаЗначений;
    СП_Индексов=ТЗ.Скопировать();
    СП_Индексов.Свернуть("ИндексОтбора",);
    СоздатьПоступлениеАктивов(ТЗ, СП_Индексов);
    КонецПроцедуры
    &НаКлиенте
    Процедура ИмяФайлаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
    ДиалогВыбораФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
    ДиалогВыбораФайла.Фильтр = "Файл данных (*.xls)|*.xls|Файл данных (*.xlsx)|*.xlsx";
    ДиалогВыбораФайла.Расширение = "xlsx";
    ДиалогВыбораФайла.Заголовок = "Выберите файл";
    ДиалогВыбораФайла.ПредварительныйПросмотр = Ложь;
    ДиалогВыбораФайла.ИндексФильтра = 0;
    ДиалогВыбораФайла.ПолноеИмяФайла = Объект.ИмяФайла;
    ДиалогВыбораФайла.ПроверятьСуществованиеФайла = Истина;
    Если ДиалогВыбораФайла.Выбрать() Тогда
    Объект.ИмяФайла = ДиалогВыбораФайла.ПолноеИмяФайла;
    КонецЕсли;
    КонецПроцедуры
    
    &НаКлиенте
    Процедура ЗагрузитьАктивы(Команда)
    ЗагрузитьАктивыИзФайла();
    КонецПроцедуры
  5. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    1. А сам ексель запускается на сервере то
    2. вот тут Books=ФайлВыгрузки.WorkBooks.Open(Объект.ИмяФайла); путь к файлу надо посмтреть как задается.... т.к. на локальной машине он может выглядеть так
    "С:\1.xls", а для выполнения на стороне сервера это совсем другой путь будет. Посмотрите в этом направлении. На форуме уже было обсуждение по поводу указания пути к файлу при исполнении кода На Сервере
  6. TopicStarter Overlay
    Shvetka
    Offline

    Shvetka

    Регистрация:
    17 янв 2012
    Сообщения:
    23
    Симпатии:
    0
    Баллы:
    1
    Вот у меня и пишет когда на сервере запускаешь: Не может найти файл.
    А на локалке выполняется
  7. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    само собой что пути к файлу со стороны сервера и со стороны локальной машины - это 2 разных пути, пускай даже к одному и тому же файлу. Т.е. вам надо преобразовывать тогда исходный путь. Полистайте форум, uza по этому поводу тогда хорошо высказался...
  8. alexburn
    Online

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    Единственное что подскажу - посмотрите в отладчике, какое значение принимает Books.
  9. TopicStarter Overlay
    Shvetka
    Offline

    Shvetka

    Регистрация:
    17 янв 2012
    Сообщения:
    23
    Симпатии:
    0
    Баллы:
    1
    Че то я найти на форуме не могу...:(
  10. TopicStarter Overlay
    Shvetka
    Offline

    Shvetka

    Регистрация:
    17 янв 2012
    Сообщения:
    23
    Симпатии:
    0
    Баллы:
    1
    Нашла, но не уверенна, что это поможет
  11. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    может конечно глупый вопрос, но все же спрошу, а почему нельзя сформировать ТЗ на стороне клиента, а уже потом с ней работать со стороны сервера?
  12. alexburn
    Online

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    :))))))))) это каким образом???? Все данные хранятся на сервере, и только потом, по требованию, передаются на клиента.
  13. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    что каким образом? проблем с подключением к файлу на локальной машине и выгрузке его в ТЗ не должно возникнуть, а как передать ТЗ с клиента на сервер вот тут обсуждали и вроде как работает http://www.1c-pro.ru/topic42003.html
  14. TopicStarter Overlay
    Shvetka
    Offline

    Shvetka

    Регистрация:
    17 янв 2012
    Сообщения:
    23
    Симпатии:
    0
    Баллы:
    1
    Придется, наверное так делать. Потому что ничего не помогает. Даже если запуск от самой 1с.
    Видимо это бак какой то.
  15. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    у вас дело не в 1с, а в пути к файлу... я с такой бедой пока не сталкивалась, потому пути решения предложить не могу...
  16. TopicStarter Overlay
    Shvetka
    Offline

    Shvetka

    Регистрация:
    17 янв 2012
    Сообщения:
    23
    Симпатии:
    0
    Баллы:
    1
    Я знаю, что дело в пути. Не имеет значение, ты выбираешь сам файл или жестко путь прописываешь. Причем если добавляешь функцию НайтиФайл, то 1с его находит, а потом опять та же ошибка.
  17. x_under
    Offline

    x_under Модераторы Команда форума Модератор

    Регистрация:
    25 апр 2007
    Сообщения:
    2.576
    Симпатии:
    13
    Баллы:
    29
    А тут что лежит: Объект.ИмяФайла? Покажите скрин табло отладчика по этой переменной.
  18. TopicStarter Overlay
    Shvetka
    Offline

    Shvetka

    Регистрация:
    17 янв 2012
    Сообщения:
    23
    Симпатии:
    0
    Баллы:
    1
    [​IMG]

    Адрес передает. Это с локалки
  19. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    ну дак, а при выполнении на сервере то, если я не ошибаюсь, платформа будет искать файл по этому же пути только на сервере, поэтому получается, что файла нет....
  20. TopicStarter Overlay
    Shvetka
    Offline

    Shvetka

    Регистрация:
    17 янв 2012
    Сообщения:
    23
    Симпатии:
    0
    Баллы:
    1
    Нет, вы ошибаетесь. Файл я кидаю на сервер. И когда запускаю на сервере, я же сама выбираю файл, он на сервере.
    Просто отладка почему то на сервере не работает...

Поделиться этой страницей