8.х Загрузка из эксель в табличную часть документа

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем AlenkaInt, 18 фев 2014.

  1. TopicStarter Overlay
    AlenkaInt
    Offline

    AlenkaInt Опытный в 1С

    Регистрация:
    26 фев 2012
    Сообщения:
    1.008
    Симпатии:
    4
    Баллы:
    29
    Здравствуйте.
    Помогите пожалуйста с обработкой. Нужна обработка заполнения ТЧ документа, загружать из Эксель. Я открываю обработку из документа. На клиенте, в модуле формы обработки я получаю файл Эксель, вернее путь к нему.
    Код:
    Режим = РежимДиалогаВыбораФайла.Открытие;
            ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим);
            ДиалогОткрытияФайла.ПолноеИмяФайла = "";
            Фильтр = "|*.xls";
            ДиалогОткрытияФайла.Фильтр = Фильтр;
            ДиалогОткрытияФайла.МножественныйВыбор = Ложь;
            ДиалогОткрытияФайла.Заголовок = "Выберите файл";        
            Если ДиалогОткрытияФайла.Выбрать() Тогда
                ИмяФайла = ДиалогОткрытияФайла.ПолноеИмяФайла;
            КонецЕсли; 
    Дальше, мне надо его открыть на сервере и заполнить документ?
  2. mialord
    Offline

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

    Регистрация:
    31 июл 2009
    Сообщения:
    5.400
    Симпатии:
    40
    Баллы:
    54
    Возьмите с ИТС "Загрузка данных их табличного документа", Ексель читается и передается в ТЗ, после этого ТЗ разбирается в документы
  3. TopicStarter Overlay
    AlenkaInt
    Offline

    AlenkaInt Опытный в 1С

    Регистрация:
    26 фев 2012
    Сообщения:
    1.008
    Симпатии:
    4
    Баллы:
    29
    Я уже почти сделала. Через временные файлы, но почему то ругается на ком объект.
    Код:
    &НаСервере
    Процедура ЗагрузитьБазуНаСервере(ИмяФайла, ДокументПоступления) Экспорт
        ДокПТУ = ДокументПоступления.ПолучитьОбъект();
        ТЗ = ДокПТУ.Товары.Выгрузить();   
        ИмяФайла = ПолучитьИмяВременногоФайла();
        АдресВремХран = ПоместитьВоВременноеХранилище(ИмяФайла,  );
        Док = ПолучитьCOMОбъект(АдресВремХран);
    
  4. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    Вы хоть сами поняли что написали в коде ?
  5. TopicStarter Overlay
    AlenkaInt
    Offline

    AlenkaInt Опытный в 1С

    Регистрация:
    26 фев 2012
    Сообщения:
    1.008
    Симпатии:
    4
    Баллы:
    29
    :) Примерно. Сначала помещаю во временное хранилище файл, потом получаю и начинаю с ним работать.
  6. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    Вы написали бред. Сами посмотрите. В параметры процедуры вы передаете ИмяФайла, далее по коду вы его затираете, и получаете ком объект х.з. чего.
  7. TopicStarter Overlay
    AlenkaInt
    Offline

    AlenkaInt Опытный в 1С

    Регистрация:
    26 фев 2012
    Сообщения:
    1.008
    Симпатии:
    4
    Баллы:
    29
    Я сначало без этого - ИмяФайла = ПолучитьИмяВременногоФайла(); делала. Все одно.
  8. nbIpKuH_BaH9I
    Online

    nbIpKuH_BaH9I Гость Гость

    Эх, как это прекрасно :D
  9. TopicStarter Overlay
    AlenkaInt
    Offline

    AlenkaInt Опытный в 1С

    Регистрация:
    26 фев 2012
    Сообщения:
    1.008
    Симпатии:
    4
    Баллы:
    29
    Спасибо Ваня. А по существу? Почему ругается на сом объект?
    {Форма.Форма.Форма(38)}: Ошибка при вызове метода контекста (ПолучитьCOMОбъект)
    Док = ПолучитьCOMОбъект(АдресВремХран);
    по причине:
    Ошибка получения объекта COM: -2147221014(0x800401EA): Не удается открыть файл при помощи специального имени
  10. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    Да посмотрите отладчиком, в чем проблема ????
  11. TopicStarter Overlay
    AlenkaInt
    Offline

    AlenkaInt Опытный в 1С

    Регистрация:
    26 фев 2012
    Сообщения:
    1.008
    Симпатии:
    4
    Баллы:
    29
    У меня во внешней обработке не срабатывает.
  12. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    Ну что тут еще скажешь......
  13. eksetro
    Offline

    eksetro

    Регистрация:
    2 апр 2013
    Сообщения:
    19
    Симпатии:
    0
    Баллы:
    1
    Зачем вообще ВременноеХранилище?
    Код:
    Ex= Новый COMОбъект("Excel.Application");
       
        НоваяКнига=Ex.workbooks;
        НоваяКнига.Open(имяФайла);
    
    не подойдет?
  14. Tiger86
    Offline

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

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    потому что файл сам по себе не является ComОбъектом, потому и не работает
  15. nbIpKuH_BaH9I
    Online

    nbIpKuH_BaH9I Гость Гость

    Не делайте из мухи слона. Вам во втором посте сказали, что нужно сделать. Откройте обработку в конфигураторе и проанализируйте код. И возьмите его за основу.
  16. mialord
    Offline

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

    Регистрация:
    31 июл 2009
    Сообщения:
    5.400
    Симпатии:
    40
    Баллы:
    54
    Вот вот!
  17. x_under
    Offline

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

    Регистрация:
    25 апр 2007
    Сообщения:
    2.576
    Симпатии:
    13
    Баллы:
    29
    А может у вас на сервере нет экселя?
    Посмотрите в УТ 11 в документе установка цен номенклатуры есть загрузка данных из Excel. Сделаете по аналогии
    AlenkaInt нравится это.
  18. TopicStarter Overlay
    AlenkaInt
    Offline

    AlenkaInt Опытный в 1С

    Регистрация:
    26 фев 2012
    Сообщения:
    1.008
    Симпатии:
    4
    Баллы:
    29
    Похоже действительно на сервере нет экселя. Узнаю попозже. Спасибо.

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