[РЕШЕНО] УТ 11.3 Выбор файла Excel и подсчет кол-ва строк и столбцов в нем

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем p-roman, 6 дек 2016.

  1. TopicStarter Overlay
    p-roman
    Offline

    p-roman

    Регистрация:
    6 дек 2016
    Сообщения:
    34
    Симпатии:
    0
    Баллы:
    1
    Добрый день.

    Столкнулся с необходимостью осуществить на 1С 8.3. то, что без проблем делал ранее на платформе 8.0 - 8.1 . Нужно во внешней обработке выбрать нужный файл эксель, открыть его и подсчитать кол-во строк и столбцов в нем. БД файловая, УТ типовая 11.3.9.1850

    На данный момент у меня никак не срабатывает диалог, и...я понимаю что в 1с за последнее время много чего изменилась, но не могли бы вы посмотреть, и может подкорректировать код? Но главное, потом пояснить что я делаю не так?

    Вложения:

  2. web.num
    Offline

    web.num Опытный в 1С Команда форума

    Регистрация:
    6 окт 2011
    Сообщения:
    932
    Симпатии:
    5
    Баллы:
    29
    Вот лень смотреть в твою обработку, а у меня так работает:
    Код:
         
        Попытка       
            // Загрузка Microsoft Excel
            ЭксельПриложение = Новый  COMОбъект("Excel.Application");       
        Исключение       
            Сообщить("Ошибка при загрузке Microsoft Excel.");
            Возврат;       
        КонецПопытки;
      
        Попытка
            // Открытие файла Microsoft Excel
            ЭксельФайл = ЭксельПриложение.WorkBooks.Open(Эксель);
            xlCellTypeLastCell = 11;      
        Исключение       
            Сообщить("Ошибка при загрузке Microsoft Excel." + Символы.ПС + ОписаниеОшибки(), СтатусСообщения.Внимание);
            ЭксельПриложение.Quit();
            Возврат;       
        КонецПопытки;
      
        // Обработка файла Microsoft Excel
        ЭксельЛист = ЭксельФайл.WorkSheets(1);
        ExcelПоследняяСтрока  = ЭксельЛист.Cells.SpecialCells(xlCellTypeLastCell).Row;
        ExcelПоследняяКолонка = ЭксельЛист.Cells.SpecialCells(xlCellTypeLastCell).Column;
    
  3. 1с-ник
    Online

    1с-ник Профессионал в 1С

    Регистрация:
    5 окт 2014
    Сообщения:
    856
    Симпатии:
    149
    Баллы:
    104
    В своей процедуре добавь директиву &НаКлиенте
  4. TopicStarter Overlay
    p-roman
    Offline

    p-roman

    Регистрация:
    6 дек 2016
    Сообщения:
    34
    Симпатии:
    0
    Баллы:
    1
    {ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(16,54)}: Переменная не определена (Эксель)
    ЭксельФайл = ЭксельПриложение.WorkBooks.Open(<<?>>Эксель); (Проверка: Сервер)


    Добавил реквизит Эксель тип Табличный документ.
    В итоге - все равно не открывается выбор эксель файла и нрчего не происходит.
    Вот что сделал

    Вложения:

    Последнее редактирование: 6 дек 2016
  5. web.num
    Offline

    web.num Опытный в 1С Команда форума

    Регистрация:
    6 окт 2011
    Сообщения:
    932
    Симпатии:
    5
    Баллы:
    29
    Эксель это реквизит формы типа строка, у которой есть кнопка выбора, при нажатии на которую вызываешь диалог выбора файла эксель:
    Код:
        Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
        Диалог.Заголовок = "Выберите файл "".xlsx""";
        Диалог.МножественныйВыбор = Ложь;
        Диалог.Фильтр = "Табличный документ(*.xlsx)|*.xlsx";
      
        Если НЕ Диалог.Выбрать() Тогда
            Возврат;
        Иначе
            Эксель = Диалог.ВыбранныеФайлы[0];
        КонецЕсли;
      
        Если ПустаяСтрока(Эксель) Тогда
            Сообщить("Вы не выбрали файл!");
            Возврат;
        КонецЕсли;
    
    --- Объединение сообщений, 6 дек 2016 ---
    У меня на этом моем коде 2 обработины, одна оф другая уф, и создаю я в ней динамически таблицу на форме с такими же колонками как в эксель :), а дальше мона делать что угодно, была бы фантазия :)
    Последнее редактирование: 6 дек 2016
  6. TopicStarter Overlay
    p-roman
    Offline

    p-roman

    Регистрация:
    6 дек 2016
    Сообщения:
    34
    Симпатии:
    0
    Баллы:
    1
    Спасибо, разобрался
    Последнее редактирование: 6 дек 2016

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