|   |   | 
| 
 | Нужен ли Excel на сервере где лежит база (база серверная) | ☑ | ||
|---|---|---|---|---|
| 0
    
        moonq4 01.10.15✎ 16:00 | 
        Такая ситуация:
 Имеется серверная база, написал для нее обработку по загрузке номенклатуры из эекселя (упр. прил.). У меня на локальной работает, на серверной (рабочей) нет. Я грешу на то, что самого экселя нету на сервере и поэтому проблемы с "Новый COMОбъект("Excel.Application")", в чем может быть проблема? | |||
| 1
    
        Попытка1С 01.10.15✎ 16:00 | 
        В этом и есть проблема, что нет кома объекта екселя.     | |||
| 2
    
        ДенисЧ 01.10.15✎ 16:01 | 
        Грузить из xls можно и без екселя     | |||
| 3
    
        Попытка1С 01.10.15✎ 16:03 | ||||
| 4
    
        moonq4 01.10.15✎ 16:07 | 
        (2) А xlsx?     | |||
| 5
    
        Fragster гуру 01.10.15✎ 16:08 | 
        (4) тоже можно     | |||
| 6
    
        Fragster гуру 01.10.15✎ 16:09 | 
        а загрузка должна быть неинтерактивной? или форма все-такие есть, и в ней работает пользователь?     | |||
| 7
    
        moonq4 01.10.15✎ 16:12 | 
        (6) Мне вообще для одно разовой загрузки, просто есть внешняя обработка с одной кнопкой и полем для файла, код такой:
 &НаСервере Функция ЗагрузкаИзExel_В_ТЧ() //Открываем файл Excel.. Попытка Excel = Новый COMОбъект("Excel.Application"); WB = Excel.Workbooks.Open(ИмяФайла); WS = WB.ActiveSheet; arr = WS.UsedRange.Value; WB.Close(0); Исключение Сообщить("Внимание! Файл не открыт." + Символы.ПС + "Попробуйте открыть и пересохранить данный файл программой MS Excel."); Возврат Неопределено; КонецПопытки; МассивКолонок = arr.Выгрузить(); КоличествоКолонок = МассивКолонок.ВГраница(); КоличествоСтрок = МассивКолонок.Получить(0).Количество(); ТаблицаЗначений = Новый ТаблицаЗначений; Для Колонка = 0 По КоличествоКолонок Цикл ИмяКолонки = "Колонка" + (Колонка + 1); ТаблицаЗначений.Колонки.Добавить(ИмяКолонки); КонецЦикла; Для Строка = 1 По КоличествоСтрок Цикл ТаблицаЗначений.Добавить(); КонецЦикла; Сч = 0; Для каждого Колонка Из МассивКолонок Цикл ИмяКолонки = ТаблицаЗначений.Колонки.Получить(Сч).Имя; ТаблицаЗначений.ЗагрузитьКолонку(Колонка, ИмяКолонки); Сч = Сч + 1; КонецЦикла; Возврат ТаблицаЗначений; КонецФункции Может просто закинуть комобъект на клиент и все? | |||
| 8
    
        Fragster гуру 01.10.15✎ 16:13 | 
        (7) норм вариант     | |||
| 9
    
        Fish гуру 01.10.15✎ 16:13 | 
        (7) Делай на клиенте, раз одноразовая.     | |||
| 10
    
        moonq4 01.10.15✎ 16:15 | 
        Спасибо за ответы     | |||
| 11
    
        Живой Ископаемый 01.10.15✎ 16:17 | 
        Грузить нужно через АДО будет и быстрее и екселя не нужно. Вот если бы ты записывал, да еще и с формулами, вот тогда бы нужен был Ком екселя на сервере     | |||
| 12
    
        Fragster гуру 01.10.15✎ 16:18 | 
        (11) воообще через ADO можно и писать в эксель. ну и да - сильно быстрее чем через comsafearray не будет. по крайней мере основнаячасть времени в любом случае будет не на вытягивании данных из экселя.     | |||
| 13
    
        mehfk 01.10.15✎ 16:26 | 
        (0) В 8.3.6 объект ТабличныйДокумент умеет загружать XLS     | |||
| 14
    
        Timon1405 01.10.15✎ 16:28 | 
        (13) киньте ссылкой подробнее     | |||
| 15
    
        mehfk 01.10.15✎ 16:45 | 
        ТабличныйДокумент.Прочитать (SpreadsheetDocument.Read)
 ТабличныйДокумент (SpreadsheetDocument) Прочитать (Read) Синтаксис: Прочитать(<ИмяФайла>, <СпособЧтенияЗначений>) Параметры: <ИмяФайла> (обязательный) Тип: Строка. Имя файла табличного документа. <СпособЧтенияЗначений> (необязательный) Тип: СпособЧтенияЗначенийТабличногоДокумента. Определяет, каким образом нужно интерпретировать значения, считываемые из исходного документа XLS, XLSX или ODS. При загрузке табличного документа из формата Excel 97 - 2010 и OpenOffice Calc, в случае если в ячейке исходного документа содержалось значение типа Дата или Число, то в ячейку результирующего табличного документа это значение попадает в зависимости от значения этого параметра. Значение по умолчанию: Текст. Описание: Считывает табличный документ из файла. Позволяет считывать табличный документ из файла табличного документа Microsoft Excel 97 - 2010 ( *.xls и *.xlsx) или электронной таблицы OpenOffice Calc ( *.ods). Доступность: Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер). Пример: ТабДок = Новый ТабличныйДокумент; ТабДок.Прочитать("C:\My Documents\Таблица1.mxl"); -------------------------------------------------------------------------------- Методическая информация | |||
| 16
    
        UFO 01.10.15✎ 16:55 | 
        xlsx формат это один из клонов xml     | |||
| 17
    
        UFO 01.10.15✎ 16:56 | 
        Его можно открывать xml viewer который в фаре есть     | |||
| 18
    
        Живой Ископаемый 01.10.15✎ 16:58 | 
        2(12) Формулы к сожалению в ячейки через АДО не запишешь... 
 Ну или я был бы здорово рад ошибиться. | |||
| 19
    
        organizm 01.10.15✎ 17:00 | 
        Использовать ADO на сервере то же никак.
 Вариант 1) Microsoft Data Access Components (MDAC) 2.8 SP1 http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=5793 на 64х сервере не ставится 2) Microsoft Access Database Engine 2010 http://www.microsoft.com/en-us/download/details.aspx?id=13255 требует аксесса... Грузите на клиенте... | |||
| 20
    
        stix2010 01.10.15✎ 17:00 | 
        Для чтения:
 8.3.6 - табличный документ читает этот ваш xls, остальное yoksel в пакете может сохранить xls в mxl. все остальное неправославно | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |